Min. Kesimden maksimum akış hesaplayın


16

Biliyoruz ki bir maksimum akış hesaplaması. kapasiteleri olan bir ağın minimum kesimi eşdeğerdir; bakınız Maksimum akım dakika kesilmiş teoremi .

Maksimum akışları hesaplamak için (az ya da çok verimli) algoritmalarımız var ve maksimum akış göz önüne alındığında minimum kesimi hesaplamak da ne zor ne de pahalı.

Peki bunun tersi ne olacak? Minimum bir kesim verildiğinde, maksimum akışı nasıl belirleyebiliriz? Max-Flow'u sıfırdan çözmeden elbette ve tercihen bundan daha hızlı .

Bazı düşünceler:

  • Minimum kesimden maksimum akış değerini biliyoruz. Bu bilgilerin standart artırım yolu ve itme-yeniden etiketleme yaklaşımlarına nasıl yardımcı olduğunu görmüyorum, ancak ikincisini uyarlamak biraz daha makul görünüyor.

  • Ağı iki parçaya ayırmak ve en aza indirmek için minimum kesimi kullanamayız, çünkü bu en kötü durumda problemi küçültmez (bir bölüm tekilse); ayrıca daha küçük örneklerde minimum bir kesimimiz olmazdı.

  • Max-Flow LP'yi çözerken maksimum akış hızının değerini bilmek, belki de tamamlayıcı gevşeklik koşulları aracılığıyla mı?


İlgili soru: min-cut'ları hesaplamak için algoritmalar (maksimum akış algoritmaları kullanmayan) biliyor muyuz?
Raphael

3
Kesinlikle yapıyoruz, Karger'in rastgele algoritması çok popüler ve bunun için maksimum akış bilgisine sıfır ihtiyacınız var.
Juho

2
Rasgele algoritmalar istemiyorsanız, Stoer-Wagner algoritması çok basit bir yöntemdir ve akış tekniği de yoktur.
Juho

2
İyi şeyler! Burada başka bir zorluk var. Sadece min-cut konveyörleri bilmek bilgi kesimleri (en fazla), çünkü her kesim V'nin bir alt kümesine izomorfiktir. Ancak, bir maksimum akış | V | temsil edilecek bilgi bitleri (özellikle kapasiteler büyükse). Yani, teorik olarak, sadece kesime bakan ve akışı dışarı veren bir algoritma için ümit edemezsiniz; grafiğe de bakması ve bazı ek hesaplamalar yapması gerekir. (Ben bu değildir gerçekleştirmekçokbir bariyerin.)|V|V|V|
DW

Yanıtlar:


6

En kötü durumda, minimum kesimin kendisi maksimum akış hakkında fazla bilgi vermez. Minimum s , t -cut'un w değerine sahip olduğu bir grafiği düşünün . I uzanıyorsa G yeni tepe noktası ekleyerek ler ' ve bir kenarı ( s ' , s )G,=(V,E)s,twG,s'(s',s) ağırlığı az, s ' , t kes yeni grafik sadece kenar oluşur ( s ' , s )ws',t(s',s)ama bu nasıl hakkında herhangi bir bilgi vermez gelen akışın birimlerine s için t .wst

Etkili olarak, minimum kesim size akışın değerini söyler, ancak bu akışa nasıl ulaşılacağını değil. Bu, minimum kesimi bilmek, akışı en fazla logaritmik bir faktörle bulma işlemini hızlandırabileceği anlamına gelir, çünkü kesimin değerini bulmak için ikili arama yapabiliriz.


Ancak bu logaritmik faktör, potansiyel akış değerleri aralığının büyüklüğünde olacaktır, bu nedenle sadece grafik boyutuna bağlı olan maksimum akışı çözmede mevcut üst sınırlarla karşılaştırılamaz. Bununla birlikte, logaritmik bir hızlanma bile ilgi çekici olacaktır. Maksimum akışın değerini bilmenin hiç faydası olmadığına ikna olmadım.
Raphael

-2

Kesinlikle maxflow hesaplamadan önce min cut hesaplamak sağlayan algoritmalar vardır. Bu tür iki algoritma, itme yeniden etiketleme ve yakından ilişkili olan sahte akış algoritmalarıdır. İkincisi daha verimlidir. Bu algoritmaların her ikisi de, min kesimden maksimum akışı türetmek için yinelemeyle geliştirdikleri artık grafiğin özel özelliklerini kullanır. Ayrıntılar için kodu ve belgeleri okumanızı şiddetle tavsiye ederim.

İtme yeniden etiketleme durumunu ayrıntılı olarak açıklamak için, algoritma lavaboya daha fazla akış gönderemediğinde, bir min kesme hesapladığı garanti edilir. Algoritmanın bu bölümüne, daha iyi bir adın bulunmaması nedeniyle faz 1 denir. Faz 2, tek bir derinlikli ilk arama kullanarak ve fazlalığı kaynağa geri iterek artık grafikteki döngüleri tekrarlı olarak iptal ederek minimum kesimi bir maksimum akışa dönüştürdüğü daha verimli aşamadır. Faz 2'nin, faz 1'den asemptomatik olarak daha verimli olduğu kanıtlanabilir.


4
Lütfen soruyu tekrar okuyun; cevapladığınız kişi değil.
Raphael

Verdiğim PR örneği, min-cut hesaplaması yaparken yol boyunca diğer bilgileri hesapladığınızı varsayar. Orijinal sorunuz, sonraki maksimum akış hesaplamasını kolaylaştırmak için min-cut ile birlikte diğer bilgileri korumanıza izin verilip verilmediğini belirtmedi. Orijinal sorunuzu "Minimum kesinti ve başka bilgi verilmeden maksimum akışı nasıl belirleyebiliriz?"
ldog

2
"A verildi, B hesaplama" dedim. Tek makul varsayım size sadece A verildiğidir , aksi takdirde hesaplama problemlerinden bahsetmek çok bulanık bir olay olacaktır.
Raphael

Naçizane size katılmıyorum. Pratik bir perspektiften, ek bilgileri (PR algoritmasındaki gibi) hesaplamadan asla bir min-cut hesaplama yapamazsınız. Bağlam burada anahtardır.
ldog
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.