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.