Geçiş kontrolü ve Geçiş Kapatma


9

Bir digrafın geçişinin kontrol edilmesi (asimptotik karmaşıklık açısından) digrafın geçişli kapanışını almaktan daha kolay değil mi? Herhangi bir alt sınırı daha iyi biliyor muyuzΩ(n2) bir digrafın geçişli olup olmadığını belirlemek için?


1
Geçişli kapağın tamamını saklamak size daha fazla alan kazandırır. Bazı grafikler için, kenar kontrolünü değiştirmeden geçiş denetimini bağlamanız ve kısaltmanız gerekir. Bkz.O(logn)paralel bağlantı algoritması, Y Shiloach, U Vishkin - Algoritmalar Dergisi, 1982
Chad Brewbaker

1

2
Ne demek istediğinden emin değilim n, ancak alt sınırı Ω(|V|2) basit - düşünün Kn{e} bir kenar için e. Herhangi bir algoritma,(u,v)E hepsi için u,vVaksi takdirde sormadığı uç eksik olan kenar olabilir. O(|V||E|)bir üst sınırdır, çünkü bu geçişli bir kapanışın hesaplanması için geçen zamandır.
RB

2
İle yönlendirilmiş bir grafik düşünün n=3k köşe noktaları: kaynak köşe noktaları s1,,sk, ara köşeler t1,,tk her birinin derhal ardılı olan sive lavabo köşeleri u1,,uk her birinin derhal ardılı olan ti. Digraph, arkların her biri için geçişlidir(si,uj)grafikte bulunur. Bu kontrol gerektirirk2=(n/3)2=Ω(n2)kenarları. Öte yandan, geçişli kapanış bulmakO(nω) zaman, nerede ω<2.373matris çarpımının üssüdür. Bunlar en iyi bilinen sınırlardır.
András Salamon

DAG'nızın muhtemelen herhangi bir ek yapısı var mı yoksa tamamen genel sonuçlar mı istiyorsunuz?
Niel de Beaudrap

Yanıtlar:


9

Aşağıda aşağıdakileri göstereceğim: O'nuz varsa (n3ε) bir grafiğin herhangi biri için geçişli olup olmadığını kontrol etmek için zaman algoritması ε>0, sonra bir O (n3ε) bir üçgende bir algılamak için zaman algoritması ndüğüm grafiği ve dolayısıyla ( FOCS'10'dan bir kağıtla ) O (n3ε/3) iki booleanın çarpımı için zaman algoritması n×nmatrisler ve dolayısıyla 70'lerden Fischer ve Meyer'in bir sonucu olarak , bu aynı zamanda bir O (n3ε/3) geçişli kapatma için zaman algoritması.

Diyelim ki bir n düğüm G. Şimdi aşağıdaki grafiği oluşturabilirizH. H bölümlü üçlü I,J,K üzerinde ndüğümlerin her biri. İşte her düğümx nın-nin G kopyaları var xI,xJ,xK parçalarda I,J,K. Her kenar için(u,v) nın-nin G yönlendirilmiş kenarlar ekle (uI,vJ) ve (uJ,vK). Her çıkıntı için(u,v) nın-nin G yönlendirilmiş kenarı ekle (uI,vK).

İlk olarak, eğer G bir üçgen içerir u,v,w, sonra Hgeçişli değildir. Bu kenarlardan beri(uI,vJ),(vJ,wK) içeride H fakat (uI,wK)değil. İkincisi, eğerH geçişli değilse, o zaman bazı düğümlerden yönlendirilmiş bazı yollar olmalıdır s bazı düğüme t içinde H öyle ki (s,t) içinde yönlendirilmiş bir kenar değil H. Ancak, en uzun yollarH Sahip olmak 2 kenarlar, ve böylece böyle bir yol formda olmalıdır (uI,vJ),(vJ,wK) ve (uI,wK) içinde değil H, dolayısıyla u,v,w üçgen oluşturmak G.


1
Geçişli kapanışı bulmak, esasen matris çarpımı ile aynıdır. Soru, alt sınırdaki üssün 2'den yükseltilip yükseltilemeyeceği veya üst sınırdaki üssün 2.373'ten düşürülüp düşürülemeyeceğidir. Gösterdiğiniz akıl yürütme zinciri,O(n2) Geçiş kontrolü için algoritma sadece O(n2.667) geçişli kapatma için zaman algoritması - ama zaten bir O(n2.373)zaman algoritması.
András Salamon

Mesele şu ki kara kutu indirimleri var. O (n2.373) zaman algoritması pratik olmaktan uzaktır. Bununla birlikte, subkübik zamanda çalışan pratik bir geçiş kontrol algoritması, yukarıdaki indirimler ile BMM ve dolayısıyla geçişli kapanma için de pratik bir algoritma anlamına gelir. Ayrıca, pratik algoritmaları önemsemeseniz bile, FOCS'10 kağıdındaki üs kaybının gerekli olmaması ve üçgen tespitinin muhtemelen BMM'ye eşdeğer olması mümkündür.
virgi

Ve tabii ki, geçiş probleminin sertliğini sadece üçgen tespitinin varsayılan sertliğine dayandırabiliriz. Şundan daha iyi bilinen bir alt sınır olmadığını unutmayınn2 üçgen tespiti için ve en iyi üst sınır O(nω).
virgi

Herhangi bir hızlı matris çarpma yöntemini kullanarak zaten bir subkübik pratik algoritmaya sahibiz: örneğin bkz. Cacm.acm.org/magazines/2014/2/…
András Salamon

2
Alıntı yaptığınız Ballard ve arkadaşları, özellikle Strassen'in algoritması hakkında konuşuyor. Bildiğim kadarıyla, sınır sırasını kullanan matris çarpma algoritmalarının hiçbiri pratik değildir. Özellikle, herhangi bir sınır için pratik algoritmaların farkında değilimω daha düşük 2.78.
virgi

7

Öyle görünüyor Ω(n2)herhangi bir alt sınır, boolean matris çarpımı için bir alt sınır anlamına geldiğinden, en iyi bilinen alt sınırdır. Geçiş denetiminin bir boole matris çarpımı kullanılarak gerçekleştirilebileceğini biliyoruz, yaniG yalnızca ve yalnızca G=G2.


4

Bir DAG'ın geçişli olup olmadığını anlamak, genel bir digrafinin geçişli olup olmadığına karar vermek kadar zordur (bu da bizi önceki sorunuza geri getirir :)).

Zamanında çalışan bir algoritmanız olduğunu varsayalım O(f(n)) DAG'ın geçişli olup olmadığına karar vermek için.

Yönlendirilmiş bir grafik verildi G, aşağıdaki rastgele algoritmayı kullanarak G zaman içinde geçişlidir O(f(n)log(1δ)) ve hata olasılığı δ:

 1. for $O(\log{\frac{1}{\delta}})$ iterations:

   1.1. Compute a random permutation on $V$. Denote the result by $<v_1,v_2,...,v_n>$.

   1.2. Set $G'=(V,E\cup \{(v_i,v_j)|i<j\})$ (i.e. compute a random acyclic orientation).

   1.3. If $G'$ (which is acyclic) is not transitive return false.

 2. return true.

Şimdi belli ki G geçişlidir, bu algoritma true değerini döndürür.

Şimdi varsayalım Ggeçişli değildi. İzin Vermeke1=(vi,vj),e2=(vj,vk)E öyle ki (vi,vk)E (kenarları olması gerekir Ggeçişli değildir). Olasılığıe1,e2G dır-dir 16bu nedenle her bir yinelemede algoritmanın şekil verme olasılığı G geçişli değildi 16 ve sonra O(log(δ)) başarısızlık olasılığının en fazla olduğu yinelemeler δ.


1
Cevap için teşekkürler. DAG'ın geçişli olup olmadığına karar vermek için bir algoritmam olduğunu varsayalımO(f(n)) böyle f(n)=Ω(n2). Ardından, yönlendirilmiş bir G grafiğinin geçişli olup olmadığına karar verebilirimO(f(n))-zaman olarak; 1) Güçlü bir şekilde bağlı digrafO(n2)-zaman. 2) Her bir bileşeninO(n2)-zaman. 3) Bileşen digrafisinde bir kenarı olan her bir bileşen çiftinin iki tamamlanmış olup olmadığını, yani bir bileşenin her bir tepe noktasından ikinci bileşenin her bir tepe noktasına bir kenar olup olmadığını kontrol edin.O(n2)-zaman. 4) Bileşen digrafisinin geçişli olup olmadığını kontrol edinO(f(n))-zaman.
ekayaaslan

1

Bunun doğrusal zamanda mümkün olması gerektiğini düşünüyorum, yani O(n+m) nerede n köşe sayısıdır ve mkenar sayısı. Belki bazı grafik geçiş düzenini yönetilen ayara uyarlayarak? Başlangıç ​​noktası , burada açıklanan LexBFS / LexDFS olabilir ; yönlendirilmiş grafikler için DFS yerine topolojik sıralama kullanmamız gerektiği anlaşılıyor, belki bazı LexTSA algoritmasıyla keşfedilebilir mi?


2
Bu, IMO'dur, çünkü genel digrafilerde geçiş kontrolü için olasılıklı bir doğrusal zaman algoritması verecektir, cevabımı görün.
RB

0

Önceki cevaba gelince, böyle bir algoritmayı tanımlamanın basit bir yolu. Her bir tepe noktasına atax bir endeks i(x), ilklendirildi 0. Her biri içinx, İzin Vermek M(x)komşularının endekslerinin çoklu kümesini ifade eder. Bir seti koruyarak topolojik bir sınıflandırmayı simüle ediyoruzRtüm kümeye başlatılan, keşfedilmemiş köşelerin. Her adımda aşağıdakileri yaparız:

  1. Bir tepe noktası seç xR kimin çoklu ayarı M(x) minimaldir (çoklu set sırasıyla);

  2. Güncelleme i(x) geçerli döngü sayacına getirin ve kaldırın x itibaren R.

Bu algoritma sorununuz için veya başka bir uygulama için kullanılabilir mi?


Bu bir yorum olarak daha uygun olacaktır.
Suresh Venkat
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.