Алгоритм масштабирования потока
Алгоритм масштабирования потока - алгоритм поиска максимального потока путем регулирования пропускной способности ребер.
Суть
Этот алгоритм работает в предположении, что все пропускные способности ребер целые. Пусть у нас есть граф
Будем решать задачу методом Форда-Фалкерсона сначала для графа с урезанными пропускными способностями
. Решив ее и получив поток , добавим следующий бит и вычтем грубое приближение. То есть . Далее наше приближение становится точнее и точнее, пока не станет решением для исходной задачи.Оценка сложности
Сложность этого алгоритма
, где - количество итераций. Докажем, что сложность каждой итерации .На первой итерации мы имеем только ребра веса 1. Это значит, что
. Значит количество итераций (дополняющих путей) не превосходит , поиск доп. пути занимает . Получаем сложность .Теперь рассмотрим переход ко второй итерации. Граф
несвязен. Рассмотрим разрез , где и - компоненты связности. . Значит в новом графе с пропускными способностями : . Так как - разрез, то . Здесь - максимальный поток в с пропускными способностями , а . Так как пропускная способность каждого дополняющего пути не меньше 1, мы получили оценку на количество итераций. Дополняющий путь же мы можем найти за .