Son teknoloji Maksimum Akış algoritmalarının herhangi biri pratikte var mı?


30

İçin maksimum akış problemi , geçen yıl olduğu gibi gelişmiş en az biri ile, çok sofistike algoritmalar bir dizi var gibi görünüyor. Orlin'in Maks. O (mn) zamanda akar ya da daha iyisi , O (VE) ile çalışan bir algoritma verir.

Öte yandan, en sık uyguladığım algoritmalar şöyle:

  • Edmonds-Karp: ,O(VE2)
  • Push-relabel: FIFO vertex seçimini kullanarak veya O ( V 3 ) ,O(V2E)O(V3)
  • Dinic'in Algoritması: .O(V2E)

Asimptotik çalışma süresi daha iyi olan algoritmalar gerçek dünyada problem boyutları için pratik değil midir? Ayrıca, "Dinamik Ağaçlar" ın birkaç algoritmaya karıştığını görüyorum; Bunlar hiç pratikte kullanılıyor mu?

Not: Bu soru başlangıçta yığın taşması ile ilgili olarak burada sorulmuştu , ancak bunun burada daha uygun olacağı söylendi.

EDIT : cs.stackexchange'te , özellikle de bu soruyu izleyen kişiler için ilgi çekebilecek dinamik ağaçlar (aka link-cut ağaçlar) kullanan algoritmalar hakkında ilgili bir soru sordum .


1
Genel anlamda konuşursak, bir algoritmanın "pratik" olup olmadığı veya "uygulanıp uygulanmadığı" biraz farklıdır. ideal olarak yazarlar kendi algoritmalarının uygulamalarını yayınlarlar; bu durumda bunları kullanmak genellikle "pratik" olur. Bu, genellikle TCS literatüründe istisna değilse. ama onun sık sık "pratik" değil diğer yazarlar algoritmaları sadece bazen önemli ölçüde ya da son derece karmaşıktır pseudocode yazılmış kağıtlar, ... başarılı bir şekilde uygulanması doğruluğu için iyi test, bazen ürkütücü süreci ... kapsamaktadır açıklamaları verilen "uygulanmasına" da
vzn

3
Andrew Goldberg, push relabel çalışmalarına dayanarak farklı maksimum debiler için çok hoş bir kod tabanına sahipti. Geçmişte kodu kullandım ve çok temizdi. Ne yazık ki, site geçersiz görünüyor.
Suresh Venkat

3
@vzn Algoritmaların pratik uygulamaya kendilerini ödünç verip vermedikleri ile ilgileniyorum. Etmeyen algoritmalar var ve bazı insanlar bu "galaktik algoritmaları" olarak adlandırıyorlar çünkü mükemmel asimptotik davranışa sahipler ama o kadar çok yükü var ki bunları uygulamak için pratik bir kazanç elde etmiyorlar. (Her şeyden önce alt dereceden terimler önemlidir.) Matris çarpımı, asimptotik olarak en iyi çözümlerin pratik kullanımı hiç göremediği aklınıza gelebilecek en iyi örnektir. Max akışının benzer bir durum olup olmadığını merak ediyorum.
Rob Lachlan,

5
Bir algoritmanın “pratik” olup olmadığı - “uygulanıp uygulanmadığı” biraz farklıdır. - Bu doğru. Bir algoritma pratik olmadan uygulanabilir, ancak bunun tersi mümkün değildir.
Jeffε

Yanıtlar:


22

Ben yukarıda bağlantı verilen makalenin yazarlarından biriyim.

Sadece, bilgisayarlı görüşte ortaya çıkan maksimum akış örneklerinde iyi performans gösteren algoritmaları (kamuya açık uygulamaları olan) kastetmek için “son teknoloji” kullandığımızı belirtmek istiyorum.

Ayrıca, bu dar (henüz pratik) bağlamda, genellikle iyi performans gösteren algoritmaların zayıf teorik garantileri olanları da eklediğimi de belirtmek isterim. Örneğin, makalemizdeki [Boykov-Kolmogorov algoritması] makalemizden ref [5], bilgisayarlı görme topluluğunda yaygın olarak kullanılmaktadır, ancak çok zaman aralıklı bağlı çalışma süresine sahip değildir.

Son olarak, birinin ilgilenmesi durumunda, deneylerimizden elde edilen veriler burada bulunabilir: http://ttic.uchicago.edu/~dbatra/research/mfcomp/index.html

Kod yakında da mevcut olacak.


gruba katıldığınız için çok temiz! Hoşgeldiniz! bildiri ile ilgili bir soru [buldumdan beri]. Gazetede kullanılan algoritmaların seçim süreci hakkında daha fazla şey duymak çok ilginç olurdu - bu konu üzerinde tam bir ayrıntı vermedi. belki de bazı algoritmaların seçildiğini, hangilerinin ihmal edildiğini, niçin, uygulamaların elde edilmesinde / çalıştırılmasında zorlukların olduğunu, daha egzotik olduğunu düşündüğün bazı problemlerin arkasındaki notları paylaşabilirsin [ör. web sayfası?] Orlins gibi algoritmalar sonuncusu ve nihai uygulama için umutları, vs.
vzn

7

Bu soruyu cevaplamanın birkaç yolu vardır, ancak mutlaka bir fikir birliği cevabı yoktur. genel olarak kamu dağıtımı için uygulanan ve yayımlanan algoritmalar "pratiktir". bununla birlikte, ancak henüz uygulanmayan bazı algoritmalar pratik olabilir, fakat tabiri caizse "jüri çıktı". **

pratik amaçlar için iyi bir strateji bir anket aramaktır. Ayrıca, pratik algoritmalar ile ilgilenenler için, gerçek dünya verilerine karşı olan ölçütler, beklenen "gerçek dünya" davranışları konusunda mükemmel bir rehber olabilir.

bir kıyaslama anketi yeterli olabilir ancak uygulanabilir algoritmalar tarafında hatalar olacaktır. Bu, maksimum akışın birçok uygulamaya sahip olduğu, göreceli olarak kıyaslanan 14 "son teknoloji ürünü" maksimum akış algoritmasının ampirik olarak karşılaştırıldığı yakın tarihli ve kapsamlı bir deneysel analizdir. "Uygulanan" algoritmalara atıfta bulunmak için "son teknoloji" kullanılmaktadır.

[1] MaxFlow, Tekrar Görüldü: Yoğun Görme Problemleri için Maxflow Algoritmalarının , Verma ve Batra ile Yapılan Ampirik Bir Karşılaştırması , 2012

** bazı teorik algoritmalar, TCS topluluğunda, resmi olarak "galaktik" olarak adlandırılan, gayrı resmi olarak "galaktik" olarak adlandırılan bir kategoridedir, ancak ne yazık ki, TCS yazarları, bu kategorideki algoritmalarını şu anda açıkça etiketlememiştir ve "galaktik" algoritmalar, her ne kadar referans vardır bloglar .

Bu anlamda pratiklik, teorik çalışma için muhtemelen yeni ortaya çıkan bir boyuttur. İdeal olarak, özellikle bu "pratik" eksen / kriterler üzerinde, ancak muhtemelen yazı olarak bulunmayan bir maksimum akış algoritması araştırması olacaktır. TCS'de henüz tam olarak resmileştirilmemiş, daha yakın bir zamanda tanınan / kabul gören bir kavramdır (örneğin, P algoritmalarının "etkin" olarak yaygın olarak kabul edilmesinin aksine).


3
+1. Bunun neden indirildiğinden emin değilim; Bağlandığınız makaleyi okudum ve pratik yaklaşımların ne olduğuna, en azından bu problem alanında bakarken çok yardımcı oldu.
Rob Lachlan

3
Robert Sedgewick, oldukça yakın tarihli bir konuşmada , deney yapmayan algoritma tasarımcısının soyutlamada kaybolma riskini taşıdığını söyledi . Konuşma grafiklerdeki yolları bulmakla ilgili ve biraz da maxflow ile ilgili. Soruyu cevaplamıyor, ancak biri için ilginç olabilir.
Juho,

5
@Rob, bu cevabın tek ilgili kısmı kağıda bir bağlantıdır ve cevabın bu kağıdın neden bağlantılı olduğunu açıklayan pek bir şey yoktur. OP'nin bağlantıyı Google tarafından bulduğunu ve okumadığını tahmin ediyorum. Yanıtın geri kalanı, OP'nin uzman olmadığı ve burada gerçekten ilgili olmadığı konularla ilgili kişisel bakış açısını belirten bazı genel açıklamalar ve yorumlardır. Cevaplar blog yazısı değildir. İlgili bir kağıda bağlantı bir yorum olarak iyi olabilir, ancak bir cevap veremiyor. Bu ise, kötü bir cevap. Bu yüzden aşağı oy kullandım.
Kaveh

2
@Kaveh yeterince adil. Makaleyi insanların pratikte yararlı algoritmalar olarak gördüklerinin yararlı bir göstergesi olduğunu buldum. Bu kadarının cevapsız bırakıldığına katılıyorum.
Rob Lachlan

3
Olumsuz oylar da anlamıyorum. Posterin bağlantılı makaleyi YAZMADIĞINI inanmak için hiçbir sebep yoktur ve konu ile alakalı görünmektedir. Oy kullanma arzusunu değil, oy kullanma arzusunu göremiyorum.
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.