Bei vielen Max-Flow-Algorithmen, die meiner Meinung nach implementiert sind, bei Dinics Algorithmus, Push Relabel und anderen, können die asymptotischen Zeitkosten durch die Verwendung dynamischer Bäume (auch als Link-Cut-Bäume bezeichnet) verbessert werden .
- Push-Relabel läuft in oder O ( V 3 ) oder O ( V 2 √normal, aber mit dynamischem BäumenO(VElog(V2/E))
- Dinics Algorithmus läuft in , aber mit dynamischen Bäumen
Praktische Implementierungen von Max-Flow-Algorithmen in den meisten Bibliotheken scheinen diese Datenstruktur jedoch nicht zu nutzen. Werden in der Praxis jemals dynamische Bäume für die Berechnung des maximalen Durchflusses verwendet? Oder tragen sie zu viel Overhead, um für reale Problemgrößen nützlich zu sein?
Gibt es andere Problemdomänen, in denen Link-Cut-Bäume verwendet werden?
Diese Frage steht im Zusammenhang mit einer Frage, die ich in der Theorie gestellt habe: Sind einige der modernsten Maximum-Flow-Algorithmen praktisch?