Пример №30.
Найдем максимальный поток в сети, показанной на рис. 8.2. Для уменьшения количества итераций начнем с ненулевого допустимого потока (рис. 8.5).
Шаг 1. Метим источник меткой . Шаг 2. Из вершины можно пометить вершину меткой и вершину меткой . Из вершины помечается вершина меткой . Из вершины метится вершина меткой (рис. 8.6).
Шаг 3. Найдена увеличивающая цепь. Вершина помечена от вершины , вершина — от вершины , а вершина — от вершины . Причем все вершины помечены по прямым дугам.
Шаг 4. Увеличивающая цепь имеет вид . На каждой дуге увеличивающей цепи величина потока возрастает на 1 (рис. 8.7).
Шаг 5. Стираем все пометки и возвращаемся к шагу 1 (рис. 8.8).
Шаг 2. От вершины можно пометить вершину меткой . От вершины по обратной дуге можно пометить вершину меткой . От вершины по прямой дуге метится вершина меткой , а от вершины метится сток — меткой (рис. 8.8).
Шаг 3. Вершина получила пометку, следовательно, поток в сети можно увеличить.
Шаг 4. Увеличивающая цепь имеет вид
По ней можно увеличить поток на 1 (рис. 8.9).
Шаг 5. Стираем все пометки и возвращаемся к шагу 1 (рис. 8.10).
Шаг 2. Все дуги, выходящие из источника, насыщены. Ни одной из вершин нельзя приписать метку. Следовательно, найден максимальный поток. Множество помеченных вершин содержит единственную вершину . Тогда
Минимальный разрез составляют дуги
Конец.
Эта задача взята со страницы решения задач по предмету «линейное программирование»:
Решение задач по линейному программированию
Возможно эти страницы вам будут полезны:
Пример №28. Построить увеличивающую цепь для паросочетания |
Пример №29. Решим ЗН с матрицей затрат, заданной в табл. 7.4. |
Пример №1. Задача распределения ресурсов. |
Пример №2. Задача о раскрое. |