Потоки в сетях
Приложение
Теорема о максимальном потоке и минимальном разрезе позволяет проверять, максимален данный поток или нет, но только для достаточно простых сетей. Разумеется, на практике приходится иметь дело с большими и сложными сетями, и в общем случае трудно найти максимальный поток простым подбором. Опишем один алгоритм нахождения максимального потока в любой сети с целочисленными пропускными способностями. Перенесение этого алгоритма на сети с рациональными пропускными способностями осуществляется тривиальным образом и предоставляется читателю.
Шаг 1. Сначала подберем поток , обладающий ненулевой величиной (если такой поток существует). Стоит отметить, что чем больше величина выбранного нами начального потока , тем проще будут последующие шаги.
Шаг 2. Исходя из , строим новую сеть путем изменения направления потока на противоположное. Более точно, любая дуга , для которой , остается в со своей первоначальной пропускной способностью, а любая дуга , для которой , заменяется дугой с пропускной способностью и противоположно направленной дугой с пропускной способностью .
Шаг 3. Если в сети мы сможем найти ненулевой поток из в , то его можно добавить к первоначальному потоку и получить в новый поток большей величины. Теперь можно повторить шаг 2, используя при построении сети новый поток вместо . Повторяя эту процедуру, мы в конце концов придем к сети , не содержащей ненулевых потоков; тогда соответствующий поток будет максимальным потоком.