Edmonds-Karp Algoritma: A detailed Verimlilik Analizi

Edmonds-Karp algoritması, bir akış ağıdaki maksimum akışı hesaplamak için Ford-Fulkerson yönteminin belirli bir uygulamadır (bu da patolojik durumlarda üst düzey bir süre yol için yol bulmakta fayda sağlar), Edmonds-Karp uygulama bir BFS tabanlı arama, en kısa bir akış yolunu sağlamak (çoğunlukla bir dizi kenar açısından) her bir iterasyon için bir arama yapılır.Bu garantiler iyi tanımlanmış bir polinoma yol açar ve algoritmayı giriş ağının temel taşı haline getirir.

Algoritma Açıklama ve Anahtar Özellikler

Yönlendirilmiş bir grafik:0)G = (V, E)) Kaynak:2[Dönetici: 3 ), batlangıç:D[Döntme: 4)))

  1. İlk olarak akışFL:0)f (e) = 0) tüm kenarlar için.
  2. Yersel grafikler inşa edin:0)G[DÜDÜT:2] )[Güncel aklara eşit kapasiteye sahip olan geri kenarlar dahil).
  3. BFS'yi [FONT:0)G[DÜDÜDÜDÜ:2] [DÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜDÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜŞÜNÜŞÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN
  4. Eğer hiçbir yol mevcut değilse, sona erer; mevcut akış maksimumdur.
  5. Aksi takdirde, yol boyunca şişenck kapasitesini belirler (minimum ikamet kapasitesi).
  6. Yol boyunca bu miktar tarafından artırılmış ve güncel kapasiteleri güncelle.
  7. 2. adımdan tekrar 2.

BFS kullanımı, her bir augmenting yolunun bulunulduğunu garanti eder, oturma grafiğinde en kısa bir yol değildir. kritik bir özellik ortaya çıkar: mesafe (düşükler) · 0,0)).

Kompleksi Analiz Analizi

Her BFS'nin runtime'si şöyledir: 0)O(V + E)[Döneticileri) [Döneticileri) ve her kenarı en kötü şekilde şarj edilebilir.[D)[Döneticileri için)[Döneticileri (Döneticileri)

Daha doğrusu, standart analiz, bir sürü augmentasyon sayısının çoğu en fazla [FONT) [DÜDÜSÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNÜŞÜNCÜŞÜNCÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜNÜŞÜN

Diğer Max Flow Algorithms ile Karşılaştırma

Dinic'in Algoritma

Dinic'in algoritması da BFS'yi bir seviye grafiği inşa etmek için kullanır, ancak sonra her aşamayı DFS ile tek bir aşamadan DFS ile bir aşamaya kadar tek bir aşamaya yönlendirir.Bu, BFST'nin sayısını azaltır.[DVD:0)[DDDDDDDDDDDDDDDDDDDDDDDDDDD)[DDDDDDDDDDDDDDDD)[Döneticileri için)[Döneticileri aynı anda tüm karmaşıklık noktalarına gönderir.

Push-Relabel Algorithms

Push-relabel yöntemleri, genel algoritma veya en yüksek etiketli değişken olarak, geçerli bir etiket tutmak için yerel olarak hareket ederek çalışır.(V2 √E)) veya [[Dönetici:2)[V3)))[Düzücük iter.Bu algoritmaların geçerli bir etiketli olmasını sağlamak için daha karmaşıktır.

Başka bir önemli değişken ise, [[0) kapasite ölçeklendirme[Dönetici:0)) algoritması, Ford-Fulkerson yöntemine ölçeklendirme parametresi ekler, verimleme [[U)[DDDDDDDDDDDDDDDDD][/FONT=3][/FONT][/FONT=FONT=FONT=FONT=3][/FONT=)[FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT=FONT

Edmonds-Karp Hala Maddeler

Dinic'ten daha yavaş olmasına ve it-relabel'ten daha yavaş olmasına rağmen, Edmonds-Karp pedagojik olarak değerli. Basitlik ve polinom runtime (en kısa yolda monotonluk) onu mükemmel bir öğretim aracı haline getirir. Birçok bilgisayar bilimi curricula, Edmonds-Karp daha ileri yöntemlere taşınmadan önce.

Pratik Implikasyonlar ve Vakaları Kullanın

Gerçek dünya uygulamalarında, algoritma seçimi problem kısıtlamalarına bağlıdır. Örneğin:

  • [FONT:0]Bipartite eşleştirme[[DÜDÜT:1)[Üye Olmayanlar İçindekiler (Cep)[değiştir | kaynağı değiştir][değiştir | kaynağı değiştir][değiştir | kaynağı değiştir][değiştir | kaynağı değiştir][değiştir | kaynağı değiştir][değiştir | kaynağı değiştir][değiştir | kaynağı değiştir][değiştir | kaynağı değiştir]
  • [FONT:0]Traffic Engineering[[Dönetici ve yol ağlarında, akışlar genellikle büyük ve grafikler sparse. Dinic veya it-relabel daha iyi ölçeklendirme nedeniyle tercih edilir.
  • [FONT=0]Image Segmentation[[[Dönetici: Graph cut algoritmaları bilgisayar vizyonu için genellikle max-flow /min-cut hesaplamalara güvenebilir. Boykov-Kolmogorov algoritması, bu tür grafikler için özel bir augmenting-path yöntemi, genellikle sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık sık kullanılan grafikler için kullanılmaktadır, ancak Edmonds-Karp daha küçük sorunlar için kullanılabilir.
  • [FONT:0]Eğitim ve prototipleme[Dönetici: Basitlik ve doğruluk ham hız üzerinde önemli olduğunda, Edmonds-Karp güvenli bir seçimdir. davranışları öngörülebilirdir ve bugging uygulamak kolaydır çünkü BFS uygulamak kolaydır.

Empirical Performance

Benchmarks rastgele grafiklere göre, Edmonds-Karp genellikle kenar kapasiteleri küçük olduğunda pratik olarak çalışır ()O (1)) çünkü birçok augmenta değeri çok büyük olabilir, bu tür durumlarda, Dinsel veya ölçeklendirme yöntemleri daha sağlam olabilir.

Uygulamayı Değerlendirme

Edmonds-Karp'ı uygulama yaparken, dikkat çekici grafikler yönetimi önemlidir. Hem ileriye hem de geriye dönük kenarlar kolay bir augmentasyon ve geri dönüş listesi kullanarak, işaretçileri ters kenarlara (veya geri dönüşümlü kenarlara) benzer şekilde genişletilebilir. BFS'nin ayrıca bir yükseltme yolu yeniden inşa etmesi gerekir.

Optimizasyonlar şunları içerir:

  • BFS'ye ulaşamıyorsa erken sona erer:0)).
  • Yüzer nokta problemlerinden kaçınmak için tam kapasite ve akış kullanmak.
  • Grafikin birçok paralel kenarları varsa birçok augmentasyonunu (daha az yaygın olsa da).

Çok büyük ağlar için, güncellemelerin kademeli olarak artmakta olan dinamik bir BFS kullanmayı düşünün, ancak bu genellikle Edmonds-Karp için önemli kazanımlar olmadan karmaşıklaşır.

Orijinal Ford-Fulkerson Yöntemine Yeniden Yapılanma

Jack Edmonds ve Richard Karp, 1972'de algoritmalarını yayınladı, BFS'nin çalışmasını kullanarak, ağ akışları için güçlü polinom algoritmalarının geliştirilmesinde temel bir adım olduğunu gösterdi.The paperurkerson method (1956) Yol seçimi kuralı belirtmedi ve zayıf seçimlerin üst düzeye gelebileceği biliniyordu.

Dahililer ve Variations

Edmonds-Karp'ın Variants şunları içerir:

  • [FONT:0)Kapşehir ölçekleme versiyonu[[Dönetici:0)[Dönetici:0)Küresel ölçeklendirme versiyonu[Dön kapasiteye sahip olan kenarlar dikkate alınır. [Dönetici:0)[Düzen yol boyunca her zaman bir augmental yol boyunca çalışır, algoritma ölçeklendirme parametresi ile çalışır.[D)[Dönetici).[Dönetici).
  • [FONT:0) Kapasite optimizasyonu[[[Dönetici:0)[Dönetici 1 olduğunda, BFS tabanlı augmenting road algoritması Hopcroft-Karp algoritmasına uzmanlaşır, ancak ikincisi BFS/DFS'yi elde etmek için dikkatli bir şekilde değiştirir:2).
  • [FONT:0)Integrality): Algoritma, kapasitelerin integral olduğunda integral akışları korur ve düktörel sorunlar için uygun hale getirir.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Edmonds-Karp algoritması, maksimum akış problemlerini çözmek için güvenilir ve iyi düşünülmüş bir yöntemdir. itsETHFLT:0)O(V E2)) en kötü zaman karmaşıklığı, çok büyük veya yoğun ağlar için pratik yapar, ancak polinom runtime'nun basit kanıtı algoritma ders kitaplarının yerini sağlamlaştırdı.

İleri akış algoritmaları üzerinde daha fazla okuma, akanslanış algoritmalarının (CLT:0) Wikipedia makalesi[Dönetici:0) ve klasik ders kitaplarının [[Dönetici:2) Algoritmalara Giriş[Döneticiler[Döneticiler için[Döneticiler için)[Döneticiler için, akış algoritması performansın daha derin bir analizi için, bakınız).