Алгоритм Форда - Фалкерсона для нахождения потока наибольшей величины.

1°. Перенумеровать произвольным образом вершины сети , отличные от входа и выхода .

2°. Построить произвольный поток на транспортной сети (например, положить ).

3°. Просмотреть пути, соединяющие вход сети c выходом . Если поток полный, то перейти к пункту 4°. В противном случае рассмотреть путь , соединяющий с , все дуги которого не насыщены. Построить новый поток :

где . Повторить этот процесс до получения полного потока .

4°. Присвоить целочисленные метки вершинам сети и знаки «+» или «-» дугам по следующим правилам:

а) входу присвоить метку 0;

б) если вершина получила некоторую метку, а еще непомеченная вершина, то вершине , такой что присвоить метку , а дуге знак «+»; вершине , такой что , присвоить метку , а дуге знак «-». Остальные непомеченные вершины и дуги метки и знака не получают;

в) повторить процесс, описанный в пункте б) до тех пор, пока не прекратится появление новых отмеченных вершин и дуг. Если в результате процесса б) вершина не получит метки, то поток обладает наибольшей величиной. В противном случае перейти к пункту 5°.

. Рассмотреть последовательность отмеченных вершин , каждая из которых имеет метку, равную номеру последующей вершины, и последовательность дуг и (не обязательно путь), соединяющих последовательные вершины из . Построить новый поток :

Перейти к пункту 4°.

 

2. Соотношение между величиной потока и пропускной способностью разреза сети.

Введем новые понятия теории транспортных сетей.

Определение 4: Пусть множество - такое множество вершин графа, что . Множество дуг, заходящих в , т. е. соединяющих вершины с вершинами, называется разрезом сети .

Определение 5:Пропускной способностью разреза называется сумма пропускных способностей дуг, входящих в разрез, т. е.

.

Лемма: Для любого потока и любого разреза справедливо соотношение:

.

Доказательство: В силу того, что выход сети , для величины потока справедливы соотношения:

.

Следствие: Если для некоторого потока и некоторого разреза выполняется равенство , то поток обладает наибольшей величиной.

Лемма и следствие необходимы для обоснования рассмотренного алгоритма.