Поиск потока минимальной стоимости методом дополнения вдоль путей минимальной стоимости
Теорема Форда-Фалкерсона
Задача о потоке минимальной стоимости состоит в нахождении среди всех потоков данной величины наименее затратного.
| Лемма (о представлении потоков): |
Пусть и — потоки в сети . Тогда можно представить как сумму , где — поток в остаточной сети . |
| Доказательство: |
|
Рассмотрим произвольное ребро из . . Таким образом, поток через каждое ребро не превосходит пропускной способности остаточной сети. Антисимметричность и закон сохранения потока проверяются аналогично лемме о сложении потоков. |
| Теорема: |
Пусть:
Тогда: поток — поток минимальной стоимости среди потоков величины , где — поток величины , проходящий по пути . |
| Доказательство: |
|
Пусть — поток минимальной стоимости величины в . Представим , где — поток в остаточной сети . Тогда разность будет потоком в сети и по лемме о сложении потоков его величина будет равна . По теореме о декомпозиции можно представить как сумму элементарных потоков вдоль путей и циклов . В этом представлении нет отрицательных циклов, иначе прибавление его к даст поток меньшей стоимости. Если есть положительный цикл, то вычтем его из и получим поток меньшей стоимости. Таким образом, для всех циклов. Тогда . Отсюда и поток — минимальный. |
Алгоритм
В основе алгоритма лежит описанная выше теорема. На каждой итерации алгоритма будем находить путь минимальной стоимости из в и дополнять поток вдоль этого пути. Выбирать алгоритм для поиска кратчайших путей следует с учетом того, что в ходе алгоритма появляются ребра отрицательного веса.
Реализация
for { } while (существует путь в остаточной сети ) { кратчайший в смысле стоимости путь дополнить поток вдоль }
Корректность
Непосредственно следует из теоремы Форда-Фалкерсона о потоке минимальной стоимости.
Асимптотика
Каждая итерация выполняется за время работы поиска кратчайшего пути, обозначим его . В сетях с целочисленной пропускной способностью итераций будет не более .
Итого получаем время работы .
Литература
- Ravindra Ahuja, Thomas Magnanti, James Orlin. Network flows (1993)