Шаг 4. Обновить поток и возвращаться к шагу 2 до тех пор, пока все активные циклы не будут дезактивированы и больше не будет существовать никаких активных циклов; после чего перейти к шагу 5. (На этом этапе поток будет оптимальным потоком
Шаг 5. Найти аугментальный маршрут от с наибольшим выигрышем. Посылать поток по этому маршруту до тех пор, пока инкрементальная пропускная способность не уменьшится до нуля.
Шаг 6. Обновить поток и повторять шаг 5 до тех пор, пока или чистый выходной поток не примет требуемое значение (оптимального потока), или больше не будет существовать никаких аугментальных маршрутов; тогда полученный поток будет оптимально-максимальным потоком
Шаги вышеприведенного алгоритма очень просты, а сам метод эффективен. Шаги 2 и 5 можно выполнять и с помощью алгцритма кратчайшей цепи. А именно определим инкрементальный граф соответствующий графу с множеством вершин и множеством дуг таким, что
причем инкрементальная «стоимость
и пропускная способность
и
инкрементальная «стоимость»
и пропускная способность
Цикл в графе имеющий выигрыш, больший чем единица, соответствует тогда циклу с отрицательной «стоимостью» в графе В этом можно убедиться, прологарифмировав обе части соотношения (11.15), в котором в качестве маршрута надо взять цикл Тогда получим
где как и прежде, — множества прямых и обратных дуг цикла
Если то откуда следует, что стоимость цикла в т. е. Должна быть отрицательной. Обратно, если то стоимость цикла неотрицательна.
Таким образом, активные циклы в на шаге 2 вышеописанного алгоритма — могут быть определены посредством нахождения всех кратчайших (наименьшей «стоимости») цепей, идущих из вершин графа к конечной вершине (для чего можно воспользоваться методом из разд. 2.2.1 гл. 8, как это было объяснено в разд. 4 настоящей главы), и проверки циклов на отрицательную стоимость. Если, однако, поток циркулирующий по активному циклу на шаге 3 и передаваемый по аугментальному маршруту к не уменьшает до нуля пропускную способность самого цикла а вместо этого уменьшает до нуля пропускную способность аугментального маршрута, то при следующем выполнении шага 2 нужно только найти другой аугментальный маршрут, ведущий из вершины цикла в вершину Такой маршрут снова сделает цикл активным и можно будет перейти к шагу 3 и т. д. вплоть до того момента, когда цикл дезактивируется. Тогда на шаге 2 ищется некоторый другой активный цикл.
Шаг 5 вышеописанного алгоритма также можно выполнить с помощью метода разд. 2.2.1 гл. 8, так как он состоит просто в вычислении кратчайшей цепи от в графе Этот граф «освобождается» от циклов отрицательной стоимости, как только выполнены четыре предыдущие шага алгоритма.