Алгоритм Форда – Фалкерсона
Суть алгоритма: предположим, что в сети имеется некоторый поток и путь из s в t, состоящий из ненасыщенных дуг. Тогда очевидно, что поток в сети можно увеличить на величину , равную минимальной из остаточных пропускных способностей дуг, входящих в этот путь.
1. Перебираем все возможные “прямые” пути из s в t и проводим процедуру увеличения потока пока это возможно.
2. Не обращая внимания на ориентацию дуг, находим все возможные цепи, соединяющие вершины s и t. Возвращаясь к ориентации дуг, проводим процедуру увеличения потока, пока это возможно, для этих “ противоположных” путей.
3. В результате получим полный поток , т.е. поток, для которого каждый путь из s в t содержит по крайней мере одну насыщенную дугу.
4. Выбираем разрез сети, состоящий из насыщенных дуг, с минимальной пропускной способностью, значение которой равно значению максимального потока сети G .
Замечание. Для быстрого нахождения требуемого разреза рекомендуется изображать сеть с минимальным числом пересечений дуг.
Пример. Найти максимальный поток через сеть, заданную матрицей пропускных способностей дуг
v1 v2 v3 v4 v5 v6
□ Построим сеть G :
Исток (вершина входа сети) s = v1 , сток (вершина выхода сети) t = v6 .
1. Выбираем произвольно путь из вершины v1 в вершину v6 . Например, путь
.
Минимальную пропускную способность, равную 12, имеет дуга , т.е. . Увеличим по этому пути поток до 12 единиц. Дуга становится насыщенной. Дуги имеют на данный момент пропускную способность, равную 12.
Путь
, .
Здесь, согласно рассмотренному первому пути, пропускная способность дуги равна 12, но по условию ее пропускная способность равна 15. Значит, мы можем увеличить ее пропускную способность на 15 – 12 = =3 единицы. Следовательно, поток можно увеличить на 3 единицы. Дуга становится насыщенной. Дуга теперь имеет пропускную способность, равную 3.
Путь
. Поток можно увеличить на 7 единиц. Дуга становится насыщенной. Потоки на дугах примут вид:
, .
Больше “прямых “ путей нет, т.к. остальные пути проходят через насыщенные дуги.
2. Рассмотрим теперь “противоположные” пути. Отвлекаясь от ориентации дуг, выберем цепь, соединяющую вершины v1 и v6 без насыщенных дуг, например, цепь . Возвращаясь к ориентации дуг, получим “противоположный” путь:
,
. Следовательно, поток
можно увеличить на 1 единицу. Дуга становится насыщенной, .
Других маршрутов нет (другие маршруты проходят через насыщенные дуги).
3. Получен полный поток и он максимален.
4. Делаем разрез вокруг вершины v6 по насыщенным дугам и получаем его величину единицы. Разрез и насыщенные дуги сети G показаны на рис. 6.1
Рис. 6.1
■
- Богданов а.Е. Курс лекций
- Содержание
- § 1. Основные понятия теории множеств
- Основные понятия теории множеств
- Способы задания множеств
- Операции над множествами
- § 2. Соответствия. Функции. Отображения
- § 3. Понятие алгебры. Алгебра множеств кантора
- Диаграмма Эйлера-Венна
- § 4. Бинарные отношения
- Способы задания бинарных отношений
- Свойства бинарных отношений
- § 5. Бинарное отношение эквивалентности
- § 6. Бинарное отношение порядка. Упорядоченные
- § 7. Решетки (структуры). Изоморфизм
- Изоморфизм множеств
- Дедекиндовые решетки
- Дистрибутивные решетки
- § 8. Отношения (обобщение). Алгебраические
- Операции над отношениями
- Алгебраические системы
- Глава ιι. Комбинаторный анализ
- § 1. Основные определения
- Правила суммы и произведения
- § 2. Формулы расчета перестановок и сочетаний
- § 3. Бином и полином
- § 4. Подстановки
- § 5. Метод включений и исключений
- § 6. Метод производящих функций
- § 7. Комбинаторная мера информации. Вероятность искажения информации
- Глава ιіі. Теория графов
- § 1. Первоначальные понятия теории графов
- § 2. Операции над графами. Способы задания графов Операции над графами
- Способы задания графов
- § 3. Маршруты, цепи, циклы и другие характеристики графа
- § 4. Алгебраическая форма представления графа
- Глава іv. Некоторые приложения графов
- § 1. Эйлеровы графы. Алгоритм флери. Гамильтоновы
- Эйлеровы графы
- Алгоритм Флери.
- Метод построения эйлерового обхода двоичного куба
- Гамильтоновы графы. Метод Робертса – Флореса
- Метод перебора Робертса – Флореса
- § 2. Пространство циклов графа
- § 3. Независимое множество вершин графа
- Алгоритм выделения пустых подграфов
- § 4. Вершинное число внешней устойчивости графа
- § 5. Плотность графа
- Алгоритм выделения полных подграфов
- § 6. Раскраска графа
- Оценки хроматического числа
- Алгоритм минимальной раскраски вершин графа
- § 7. Планарность графа
- Глава V. Оптимизационные алгоритмы теории графов
- § 1. Определение кратчайших путей. Алгоритм дейкстры
- § 2. Максимальный поток через сеть. Алгоритм
- Алгоритм Форда – Фалкерсона
- § 3. Построение остова экстремального веса. Алгоритм краскала
- § 4. Метод ветвей и границ: задача коммивояжера. Общая модель задачи поиска
- Дерево поиска частичных решений
- § 5. Применение ориентированных деревьев в задачах теории кодирования и диагностирования
- § 6. Построение оптимального дерева бинарного поиска. Алгоритм гильберта – мура
- Алгоритм Гильберта – Мура построения оптимального дерева бинарного поиска Суть алгоритма
- Алгоритм
- § 7. Сложность задач теории графов. Задача синтеза управляющих систем
- Задача синтеза управляющих систем
- Задача о выполнимости
- Литература
- Электронное пособие курс лекций
- «Дискретная математика».