Für das Problem des maximalen Durchflusses scheint es eine Reihe sehr ausgefeilter Algorithmen zu geben, von denen mindestens einer erst im letzten Jahr entwickelt wurde. Orlins Max. Fließt in O (mn) Zeit oder besser ergibt einen Algorithmus, der in O (VE) läuft.
Auf der anderen Seite sind die Algorithmen, die ich am häufigsten implementiert sehe (ich behaupte nicht, eine erschöpfende Suche durchgeführt zu haben; dies ist nur eine zufällige Beobachtung):
- Edmonds-Karp: ,
- Push-Relabel: oder O ( V 3 ) unter Verwendung der FIFO-Scheitelpunktauswahl,
- Dinics Algorithmus: .
Sind die Algorithmen mit besserer asymptotischer Laufzeit für die Problemgrößen in der realen Welt einfach nicht praktikabel? Außerdem sehe ich, dass "Dynamic Trees" an einigen Algorithmen beteiligt sind. Werden diese jemals in der Praxis eingesetzt?
Hinweis: Diese Frage wurde ursprünglich beim Stapelüberlauf hier gestellt , aber mir wurde gesagt, dass sie hier besser passt.
BEARBEITEN : Ich habe eine verwandte Frage zu cs.stackexchange gestellt , insbesondere zu den Algorithmen, die dynamische Bäume (auch als Link-Cut-Bäume bezeichnet) verwenden, die für Personen von Interesse sein können, die dieser Frage folgen.
quelle
Antworten:
Ich bin einer der Autoren des oben verlinkten Papiers.
Ich möchte nur erwähnen, dass wir "State-of-the-Art" -Algorithmen (mit öffentlich verfügbaren Implementierungen) verwenden, die für Instanzen mit maximalem Datenfluss, die in der Bildverarbeitung auftreten, eine gute Leistung erbringen.
Ich möchte auch hinzufügen, dass in diesem engen (aber praktischen) Kontext oft die Algorithmen mit schlechten theoretischen Garantien gut abschneiden. Zum Beispiel ist ref [5] aus unserer Arbeit (Boykov-Kolmogorov-Algorithmus) in der Computer-Vision-Community weit verbreitet, hat jedoch keine stark polyzeitgebundene Laufzeit.
Bei Interesse können Sie die Daten unserer Experimente hier abrufen : http://ttic.uchicago.edu/~dbatra/research/mfcomp/index.html
Der Code wird auch bald verfügbar sein.
quelle
Es gibt verschiedene Möglichkeiten, diese Frage zu beantworten, aber nicht unbedingt eine Konsensantwort. Im Allgemeinen sind Algorithmen, die implementiert und für den öffentlichen Vertrieb freigegeben wurden, "praktisch". Einige Algorithmen, die entwickelt wurden, aber noch nicht implementiert wurden, sind möglicherweise praktisch, aber "die Jury ist nicht einverstanden". **
Eine gute Strategie für praktische Zwecke ist die Suche nach einer Umfrage. Auch für diejenigen, die sich für praktische Algorithmen interessieren, können Benchmarks mit Daten aus der realen Welt eine hervorragende Richtlinie für das erwartete Verhalten in der realen Welt sein.
Eine Benchmarking-Umfrage kann ausreichend sein, wird sich jedoch auf die Seite praktikabler Algorithmen stellen. Dies ist eine aktuelle, gründliche empirische Analyse von 14 "State-of-the-Art" -Algorithmen für den maximalen Durchfluss, die empirisch im Vergleich zu Instanzen für die Bildverarbeitung verglichen wurden, bei denen der maximale Durchfluss viele Anwendungen hat. "Stand der Technik" bezieht sich auf "implementierte" Algorithmen.
[1] MaxFlow Revisited: Ein empirischer Vergleich von MaxFlow-Algorithmen für Sehprobleme von Verma und Batra, 2012
** Einige theoretische Algorithmen gehören zunehmend zu einer Kategorie in der TCS-Community, die informell als "galaktisch" bezeichnet wird. Leider kennzeichnen TCS-Autoren ihre Algorithmen in dieser Kategorie derzeit nicht direkt selbst, und es gibt keine veröffentlichten oder allgemein akzeptierten Kriterien für "galaktische" Algorithmen, obwohl es in Blogs Hinweise gibt .
Praktikabilität in diesem Sinne ist möglicherweise eine neue Dimension für das theoretische Studium. idealerweise würde es eine Übersicht über Max-Flow-Algorithmen speziell für diese "praktischen" Achsen / Kriterien geben, die zum Zeitpunkt des Schreibens jedoch wahrscheinlich nicht vorhanden sind. Es ist ein in jüngerer Zeit anerkanntes / anerkanntes Konzept in TCS, das noch nicht gründlich formalisiert wurde (im Gegensatz zu z. B. der weit verbreiteten Akzeptanz von P-Algorithmen als "effizient").
quelle
Möglicherweise interessieren Sie sich für Maximum Flows by Incremental Breadth-First Search von Goldberg, Hed, Kaplan, Tarjan und Werneck
http://research.microsoft.com/pubs/150437/ibfs-proc.pdf http://www.cs.tau.ac.il/~sagihed/ibfs/
quelle