Yönlendirilmiş bir grafikte aynı uzunlukta en az iki yol bulma


20

Yönlendirilmiş bir grafik ve iki A ve B düğümümüz olduğunu varsayalım . Aşağıdaki karar sorunu hesaplamak için zaten algoritmalar olup olmadığını bilmek istiyorum:G=(V,E)AB

ve B arasında aynı uzunlukta en az iki yol var mı?AB

Karmaşıklığa ne dersiniz? Polinom zamanında çözebilir miyim?


Grafikte yeni bir kısıtlama eklemek istiyorum, belki sorun daha çözülebilir. Bitişiklik matrisinde her sütun boş değildir. Böylece, her düğümün girişte en az bir oku vardır ve kendisine bağlı en az bir düğüm de vardır. Düğümü, yani -inci düğümü, daha sonra ( i , i ) grafiğinde bir kenardır.i(i,i)


Bunu mu demek istediniz: simple paths (her bir düğümü en fazla bir defa ziyaret ederek), Ortak bir iç düğüme sahip olmalarına da izin verilir mi?

1
hayır, yollarda herhangi bir kısıtlama yoktur. isterseniz, döngü yapabilirsiniz.
Paolo Parisen T.Haziran

Kolay gözlem şu şekildedir: arasında sadece basit bir yol varsa ve bu basit yol en fazla bir döngüye bağlıysa, basitçe N o diyebilirsiniz , Bu basitliğe bağlı farklı uzunlukta en az iki döngü varsa yol, evet diyebilirsiniz, .... (Ben benzer şeyler yararlı olduğunu ve bunu kanıtlayabilirsiniz), Ama ayrık basit yollar durumunda (eğer bunu kanıtlamak sırasında basit yolları ayrılmaya karşılaştıysanız), bu NPC olduğunu. A,BNo

1
@mrm: Bunu kopya olarak görmüyorum. Tüm yürüyüşleri istemek çok fazla zaman alan bir işlemdir (genel olarak sonsuz sayıda yürüyüş vardır), oysa OP tüm yürüyüşleri değil iki (basit) yol ister.
Dave Clarke

Yanıtlar:


10

Bir grafik düşünün , biz iki farklı yol vardır olmadığını bilmek isteyen A için B aynı uzunlukta. Ne yapalım? Basit: İki yolu bir arada kodlayın. G grafiğini V × V × { 0 , 1 } köşeleriyle tanımlayın . Sen bir adım yapmak G ' iki bağımsız adımları yaparak G . Ek bit, iki yolun zaten birbirinden ayrılıp ayrılmadığını gösterir.GABGV×V×{0,1}GG

Resmi olarak, bir kenar var içinde G ' IFF i i ' , J j ' de G ve e ' = E ( i , i ' ) ( j , j ) .(i,j,e)(i,j,e)GiijjGe=e(i,i)(j,j)

Algoritma kontrolleri bir yol olup olmadığını için ( B , B , 1 ) içinde G ' ise, O ( V 4 ) gibi, ya da bir şey O ( ( V + e ) 2 ) .(A,A,0)(B,B,1)GO(V4)O((V+E)2)

Bu algoritma bir sonucu olarak, daha sonra doğru kabul ediyorsanız, içinde yol en fazla uzunluğu olan 2 n 2 nedenle potansiyel "yol çarpışmalar" diye uzun uzadıya son gerçekleşmelidir. Bu gözlemden bir O ( V ω log V ) algoritması alabilirsiniz, burada ω matris çarpma karmaşıklığıdır (bir spoilere ihtiyacınız olup olmadığını sorun ...).G2n2O(VωlogV)ω

Sorunun yapısını daha fazla kullanan bir algoritması olduğunu kuvvetle hissediyorum .O(V+E)


3
Bu zarif.
Raphael

4

Muhtemelen bu soruna bir cevabım var, ama işe yaradığından emin değilim.

İki yolu "bulmak" önemli değildir, tek önemli şey var olup olmadıklarını "bilmek" tir. Bunun NP'nin tam bir sorunu olduğunu düşünmüyorum.

Bu yüzden bitişiklik matrisini alın . 0,1 değeriyle dolduğunu rahatlıkla söyleyebiliriz. (0 = kenar yok; 1 = kenar var) Aşağıdaki cebiri 3 değerle (0,1,2) kullanalım, burada her şey her zamanki gibi çalışır: 2 + <something> = 2 ; 2 <0'dan büyük her neyse> = 2A2+<something>=22<whatever greater than 0>=2

Aynı uzunlukta iki yol ile ilgili bulunmaktadır, bu yüzden, i bir değer olduğu burda olur s , öyle ki ( bir s ) i , j = 2 .i,jp(Ap)i,j=2

Let , o diyelim, tepe sayısının grafiğindeki (veyan boyuta sahiptir , n x n ). Ben p değerini bilmiyorum, ama benen çok n 2 için kendisi ile çarparak A yinelemeki cevap bulmak gerekir. (yani, p < n 2 ) (Demek ki A'yı kontrol ediyorum , sonra A 2'yi kontrol ediyorum , sonra A 3'ü kontrol ediyorum vb.)An×npAn2p<n2AA2A3

işte benim tartışmam:

  • iki yol basit yollarsa, işe yarar; eğer varsa, en çok kez yinelemeliyim .n
  • n2n2
  • İki yol, her ikisi de bir döngü ile iki ayrı yolsa, bu iki denklem için bir çözüm bulmak için aşağı yukarı benzerdir: , burada m tüm olası kombinasyondan 2 kez geçeriz arasında öα+βm=γ+δkmkAqijqAq1ijn2δβLCM(a,b)(ab)/GCD(a,b)n

(Ap)i,j=2

Yanlış mıyım?


αγ

2

@Raphae 1) iki döngülü bir yol varsa, o zaman aynı uzunlukta iki yol vardır. birincisi döngüde, diğeri ise ikinci döngüde. ne kadar döngü yapmaları gerekir? her iki çevrimin uzunluğu LCM. Bu tarafından sınırlanmaktadır , n . α + γ + a + b < n olduğunu biliyoruzn2nαγLCM(a,b)+α+γ<ab+α+γα+γ+a+b<nab+α+γn2
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.