Tüm ayrık yol çiftlerini numaralandırma


10

Bir çizge verilen ve iki köşe s , t V . Basit yolları arasında bir çift p 1 , s 2 den s için t bunlar bir kenar paylaşmıyorlarsa kenar ayrık olduğunu.G,=(V,E)s,tVp1,p2st

Maks akış kullanılarak, gelen kenar ayrık yollarının bir çift olup olmadığına karar kolaydır için t . Şimdi, gelen kenar ayrık yolunun tüm çiftleri numaralandırmak için bir polinom zaman gecikmesi algoritması olup s için t ?stst


1
Hayır, çünkü bu tür yollar katlanarak olabilir.
Kaveh

6
@Kaveh: Bence çıkışlar arasındaki gecikme polinom olarak uzun olduğu sürece bir "polinom gecikme algoritması" nın üstel zaman almasına izin verilir. Örneğin, maksimum klip sayısı üstel olsa bile, tüm maksimum klipleri artan sırada listeleyen bir polinom gecikme algoritması vardır.
Robin Kothari

3
Soruya polinom gecikmesinin açıklamasını dahil etmek mümkün müdür? Robin'in yorumunu okuyana kadar bunu bilmiyordum.
Artem Kaznatcheev

@ Robin, haklısın, "gecikme" kelimesine dikkat etmedim.
Kaveh

Yanıtlar:


6

Artem Kaznatcheev'in cevabının doğru olduğuna inanıyorum, ancak polinom alanı vermiyor. İşte bu açıdan biraz daha iyi çalışması gereken farklı bir yaklaşım.

Maksimum akışı kullanarak biraz daha genel bir sorunu çözmek mümkündür: bazı iki köşeden {s1, s2} diğer bazı köşe çiftlerine {t1, t2} kadar bir çift kenar ayrık yolu bulun, ancak hangi kaynak tepe noktasının bağlı olduğunu kontrol etmeden hangi hedef tepe noktasına.

Diyelim ki bir G grafiği ve tüm yol çiftlerini listelemek istediğimiz s1, s2, t1, t2 köşeleri var. Tek bir yol çifti P1, P2 bulun ve bu yollardan birinin ilk kenarı e = (s1, v) olsun. Sonra sorun alanını iki alt probleme bölebiliriz: e kullanan yol çiftleri, G-s1'deki {v, s2} ile {t1, t2} arasındaki yollarla ve kullanmayan yol çiftleriyle aynıdır e, Ge'deki {s1, s2} ile {t1, t2} arasındaki yollarla aynıdır. Her iki alt problemde de yineleme ve (tekrardan kaçınmak için) yalnızca özyinelemenin en altında olduğunuzda bir yol bildirin.


1
özyinelemenin sonuna kadar beklersek algoritmanın polinom gecikmesi olduğu açık mı?
Artem Kaznatcheev

Özyineleme, aşağıdan yukarıya doğru polinom olarak birçok seviye alır (her seviye grafikten bir şey sildiğinden) ve her dal ya hemen geri döner (çünkü bir çift yol bulamadığı için) veya aşağıya inip bir şey döndürür, bu yüzden evet, sadece polinom gecikmesi gerektirir.
David Eppstein

5

Bu polinom gecikme algoritmaları hakkında ilk kez okudum, bu yüzden cevabımdan% 100 emin değilim, ancak aşağıdaki gibi bir şeyin çalışması gerektiğini düşünüyorum.

Doğal bir toplam düzeni üzerinde tanımlanmış olan yolları temsil etmek için bir kural seçin . (Bir örnek sadece yolun köşe noktalarını listelemek ve sözlükbilimsel olarak sıralamak olabilir). Logaritmik aramayı ve eklemeyi destekleyen en sevdiğiniz yerinde veri yapısı D'yi seçin (kırmızı-siyah ağaç deyin). Let G senin grafiği olmak<DG,

Bir algoritma tanımlayın :F


:F(s,t,G,,*D)

(burada D , yerinde veri yapısına D atıfta bulunmak anlamına gelir )*DD

  1. kenar ayrık yolların bir çift dönen için poli-zaman algoritması tarafından işletilen ile p < Q dan s için t .(P,S)P<Sst
  2. Eğer içinde değil , D .(P,S)D

    2.1. Ekleme içine D (algoritmanın ishal olarak çıktı varsayalım halinde ve çıkış).(P,S)D

    uvE(PS)F(s,t,G,-{uv},*D)


Ds,tV(G,)s<tstF(s,t,G,,*D)

PSPbirCEPSPbirCE


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.