Алгоритм, который решает задачу нахождения максимального потока в транспортной сети, работает следующим образом:
- Обнуляются все потоки. 1 Остаточная сеть изначально совпадает с исходной сетью. 1
- В остаточной сети находится любой путь из источника в сток. 1 Если такого пути нет, алгоритм останавливается. 1
- Через найденный путь пускается максимально возможный поток: 1
- На найденном пути в остаточной сети ищется ребро с минимальной пропускной способностью. 13
- Для каждого ребра на найденном пути поток увеличивается на эту минимальную пропускную способность, а в противоположном ему — уменьшается на неё. 13
- Модифицируется остаточная сеть. 1 Для всех рёбер на найденном пути, а также для противоположных им рёбер, вычисляется новая пропускная способность. 1 Если она стала ненулевой, ребро добавляется к остаточной сети, а если обнулилась — стирается. 1
- Возвращается на шаг 2. 1
Алгоритм не конкретизирует, какой именно путь и как именно его ищут. 1 По этой причине он гарантированно сходится только для целых пропускных способностей. 1 Если пропускные способности вещественны, алгоритм может работать бесконечно долго, не сходясь к оптимальному решению. 1