W przypadku problemu maksymalnego przepływu wydaje się, że istnieje wiele bardzo wyrafinowanych algorytmów, przy czym co najmniej jeden opracowano dopiero w zeszłym roku. Max przepływy Orlina w czasie O (mn) lub lepiej daje algorytm działający w O (VE).
Z drugiej strony algorytmy, które najczęściej widzę, są zaimplementowane (nie twierdzę, że przeprowadziłem wyczerpujące wyszukiwanie; to tylko przypadkowa obserwacja):
- Edmonds-Karp: ,
- Push-relabel: lub O ( V 3 ) przy użyciu wyboru wierzchołków FIFO,
- Algorytm Dinica: .
Czy algorytmy z lepszym asymptotycznym czasem działania są po prostu niepraktyczne dla rozmiarów problemów w świecie rzeczywistym? Widzę też, że „Drzewa dynamiczne” są zaangażowane w wiele algorytmów; czy są one kiedykolwiek stosowane w praktyce?
Uwaga: to pytanie zostało pierwotnie zadane przy przepełnieniu stosu, tutaj , ale powiedziano mi, że będzie lepiej tutaj pasować.
EDYCJA : Zadałem powiązane pytanie na temat cs.stackexchange , w szczególności na temat algorytmów wykorzystujących drzewa dynamiczne (inaczej drzewa cięte łączem), które mogą być interesujące dla osób podążających za tym pytaniem.