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.
źródło
Odpowiedzi:
Jestem jednym z autorów powyższego artykułu.
Chcę tylko wspomnieć, że użyliśmy `` najnowocześniejszych '', aby oznaczać algorytmy (z publicznie dostępnymi implementacjami), które działają dobrze na instancjach o maksymalnym przepływie powstających w wizji komputerowej.
Chciałbym również dodać, że w tym wąskim (ale praktycznym) kontekście często algorytmy, które działają dobrze, są tymi, które mają słabe gwarancje teoretyczne. Na przykład ref [5] z naszego artykułu (algorytm Bojkowa-Kołmogorowa) jest szeroko stosowany w środowisku komputerowym, ale nie ma silnie związanego z nim czasu działania.
Wreszcie, jeśli ktoś jest zainteresowany, dane z naszych eksperymentów są dostępne tutaj: http://ttic.uchicago.edu/~dbatra/research/mfcomp/index.html
Wkrótce również będzie dostępny kod.
źródło
istnieje kilka sposobów na udzielenie odpowiedzi na to pytanie, ale niekoniecznie odpowiedź konsensusu. ogólnie algorytmy, które zostały zaimplementowane i udostępnione do publicznej dystrybucji, są „praktyczne”. jednak niektóre algorytmy, które zostały opracowane, ale jeszcze nie wdrożone, mogą być praktyczne, ale można powiedzieć, że „nie ma jury”.
dobrą strategią do celów praktycznych jest poszukiwanie ankiety. również dla osób zainteresowanych praktycznymi algorytmami testy porównawcze w stosunku do rzeczywistych danych mogą być doskonałą wskazówką dotyczącą ich oczekiwanego zachowania w „prawdziwym świecie”.
badanie porównawcze może być wystarczające, ale będzie błędne ze strony wykonalnych algorytmów. jest to ostatnia, gruntowna analiza empiryczna 14 „najnowocześniejszych” algorytmów maksymalnego przepływu porównanych empirycznie z instancjami przetwarzania obrazu, w których maksymalny przepływ ma wiele zastosowań. „stan techniki” odnosi się do „wdrożonych” algorytmów.
[1] Weryfikacja MaxFlow: empiryczne porównanie algorytmów Maxflow dla problemów z gęstym widzeniem, Verma i Batra, 2012
** niektóre algorytmy teoretyczne są coraz częściej zaliczane do kategorii w społeczności TCS, która jest nieformalnie nazywana „galaktyczną”, ale niestety autorzy TCS obecnie nie określają wprost swoich algorytmów w tej kategorii i nie ma opublikowanych ani ogólnie przyjętych kryteriów dla algorytmy „galaktyczne”, choć na blogach znajduje się odniesienie .
praktyczność w tym sensie jest prawdopodobnie nowym wyłaniającym się wymiarem dla studiów teoretycznych. idealnie byłoby przeprowadzenie badania algorytmów maksymalnego przepływu specjalnie na tej „praktycznej” osi / kryteriach, ale prawdopodobnie nie istnieje ona w chwili pisania. jest to niedawno uznana / uznana koncepcja w TCS, która nie została jeszcze gruntownie sformalizowana (w przeciwieństwie np. do powszechnej akceptacji algorytmów P jako „wydajnych”).
źródło
Możesz być zainteresowany maksymalne przepływy według przyrostowego wyszukiwania według Goldberga, Heda, Kaplana, Tarjana i Wernecka
http://research.microsoft.com/pubs/150437/ibfs-proc.pdf http://www.cs.tau.ac.il/~sagihed/ibfs/
źródło