Для решения проблемы максимального потока , кажется, существует ряд очень сложных алгоритмов, по крайней мере один из которых был разработан совсем недавно, в прошлом году. Макс Орлина течет за O (MN) времени или лучше дает алгоритм, который работает в O (VE).
С другой стороны, алгоритмы, которые я чаще всего вижу реализованными, таковы (я не утверждаю, что провел исчерпывающий поиск; это просто случайное наблюдение):
- Эдмондс-Карп: ,
- Push-релабель: или O ( V 3 ) с использованием выбора вершины FIFO,
- Алгоритм Диника: .
Являются ли алгоритмы с лучшим асимптотическим временем выполнения просто непрактичными для размеров задач в реальном мире? Кроме того, я вижу, что «Динамические деревья» задействованы в довольно многих алгоритмах; они когда-либо использовались на практике?
Примечание: этот вопрос был первоначально спросил на переполнение стека, здесь , но мне сказали , что это будет лучше подходит здесь.
РЕДАКТИРОВАТЬ : я задал связанный вопрос на cs.stackexchange , в частности, об алгоритмах, которые используют динамические деревья (иначе говоря , деревья среза ссылок), которые могут быть интересны для людей, следующих за этим вопросом.
Ответы:
Я являюсь одним из авторов статьи, указанной выше.
Просто хочу упомянуть, что мы использовали «современное состояние» для обозначения алгоритмов (с общедоступными реализациями), которые хорошо работают на экземплярах с максимальным потоком, возникающих в компьютерном зрении.
Я также хотел бы добавить, что в этом узком (но все же практическом) контексте часто алгоритмы, которые хорошо работают, имеют плохие теоретические гарантии. Например, ссылка [5] из нашей статьи (алгоритм Бойкова-Колмогорова) широко используется в сообществе компьютерного зрения, но не имеет сильно ограниченного времени выполнения.
Наконец, если кому-то интересно, данные наших экспериментов доступны здесь: http://ttic.uchicago.edu/~dbatra/research/mfcomp/index.html.
Код также скоро будет доступен.
источник
Есть несколько способов ответить на этот вопрос, но не обязательно согласованный ответ. как правило, алгоритмы, которые были реализованы и выпущены для публичного распространения, являются «практическими». однако, некоторые алгоритмы, которые были разработаны, но еще не реализованы, могут быть практичными, но, так сказать, «у них нет присяжных» **.
Хорошая стратегия для практических целей - поискать опрос. Кроме того, для тех, кто интересуется практическими алгоритмами, сравнительные тесты с данными реального мира могут быть отличным ориентиром в отношении их ожидаемого поведения в реальном мире.
сравнительного опроса может быть достаточно, но это приведет к ошибкам в пользу жизнеспособных алгоритмов. это недавний, тщательный эмпирический анализ 14 «современных» алгоритмов максимального потока, сравнительно эмпирически сопоставленных со случаями обработки зрения, где у максимального потока много применений. «Уровень техники» используется для обозначения «реализованных» алгоритмов.
[1] Возвращение к MaxFlow: эмпирическое сравнение алгоритмов Maxflow для задач с плотным зрением , Верма и Батра, 2012
** некоторые теоретические алгоритмы относятся к категории, которая все чаще в сообществе TCS неофициально упоминается как «галактическая», но, к сожалению, авторы TCS в настоящее время прямо не маркируют свои алгоритмы в этой категории, и не существует опубликованных или общепринятых критериев для «Галактические» алгоритмы, хотя есть ссылки в блогах .
практичность в этом смысле, возможно, является новым зарождающимся измерением для теоретического изучения. в идеале было бы исследование алгоритмов максимального потока конкретно по этой «практической» оси / критериям, но, скорее всего, этого не было на момент написания. это более недавно признанная / признанная концепция в TCS, которая еще не была полностью формализована (в отличие, например, от широко распространенного признания алгоритмов P как «эффективных»).
источник
Возможно, вас заинтересуют Максимальные потоки с помощью инкрементального поиска в ширину по Гольдбергу, Хеду, Каплану, Тарьяну и Вернеку
http://research.microsoft.com/pubs/150437/ibfs-proc.pdf http://www.cs.tau.ac.il/~sagihed/ibfs/
источник