Алгоритм Форда - Фалкерсона для нахождения потока наибольшей величины.
1°. Перенумеровать произвольным образом вершины сети , отличные от входа и выхода .
2°. Построить произвольный поток на транспортной сети (например, положить ).
3°. Просмотреть пути, соединяющие вход сети c выходом . Если поток полный, то перейти к пункту 4°. В противном случае рассмотреть путь , соединяющий с , все дуги которого не насыщены. Построить новый поток :
где . Повторить этот процесс до получения полного потока .
4°. Присвоить целочисленные метки вершинам сети и знаки «+» или «-» дугам по следующим правилам:
а) входу присвоить метку 0;
б) если вершина получила некоторую метку, а — еще непомеченная вершина, то вершине , такой что присвоить метку , а дуге— знак «+»; вершине , такой что , присвоить метку , а дуге— знак «-». Остальные непомеченные вершины и дуги метки и знака не получают;
в) повторить процесс, описанный в пункте 4°б) до тех пор, пока не прекратится появление новых отмеченных вершин и дуг. Если в результате процесса 4°б) вершина не получит метки, то поток обладает наибольшей величиной. В противном случае перейти к пункту 5°.
5°. Рассмотреть последовательность отмеченных вершин , каждая из которых имеет метку, равную номеру последующей вершины, и последовательность дуг и (не обязательно путь), соединяющих последовательные вершины из . Построить новый поток :
Перейти к пункту 4°.
2. Соотношение между величиной потока и пропускной способностью разреза сети.
Введем новые понятия теории транспортных сетей.
Определение 4: Пусть множество - такое множество вершин графа, что . Множество дуг, заходящих в , т. е. соединяющих вершины с вершинами, называется разрезом сети .
Определение 5:Пропускной способностью разреза называется сумма пропускных способностей дуг, входящих в разрез, т. е.
.
Лемма: Для любого потока и любого разреза справедливо соотношение:
.
Доказательство: В силу того, что выход сети , для величины потока справедливы соотношения:
.
Следствие: Если для некоторого потока и некоторого разреза выполняется равенство , то поток обладает наибольшей величиной.
Лемма и следствие необходимы для обоснования рассмотренного алгоритма.