Для решения проблемы максимального потока , кажется, существует ряд очень сложных алгоритмов, по крайней мере один из которых был разработан совсем недавно, в прошлом году. Макс Орлина течет за O (MN) времени или лучше дает алгоритм, который работает в O (VE).
С другой стороны, алгоритмы, которые я чаще всего вижу реализованными, таковы (я не утверждаю, что провел исчерпывающий поиск; это просто случайное наблюдение):
- Эдмондс-Карп: ,
- Push-релабель: или O ( V 3 ) с использованием выбора вершины FIFO,
- Алгоритм Диника: .
Являются ли алгоритмы с лучшим асимптотическим временем выполнения просто непрактичными для размеров задач в реальном мире? Кроме того, я вижу, что «Динамические деревья» задействованы в довольно многих алгоритмах; они когда-либо использовались на практике?
Примечание: этот вопрос был первоначально спросил на переполнение стека, здесь , но мне сказали , что это будет лучше подходит здесь.
РЕДАКТИРОВАТЬ : я задал связанный вопрос на cs.stackexchange , в частности, об алгоритмах, которые используют динамические деревья (иначе говоря , деревья среза ссылок), которые могут быть интересны для людей, следующих за этим вопросом.