Поток минимальной стоимости
НЕТ ВОЙНЕ |
24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян. Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием. Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей. Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить. Антивоенный комитет России |
Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению. |
meduza.io, Популярная политика, Новая газета, zona.media, Майкл Наки. |
Содержание
Задача о потоке минимальной стоимости
Определение: |
Пусть дана сеть | . — источник и сток. Ребра имееют пропускную способность поток и цену за единицу потока . Тогда общая стоимость потока из в :
Свойства сети
- Поток не может превысить пропускную способность.
- Поток из в должен быть противоположным потоку из в .
- Сохранение потока. Для каждой вершины, сумма входящего и исходящего потоков равно .
Задача: |
Дана сеть | . — источник и сток. Ребра имееют пропускную способность поток — и цену за единицу потока . Требуется найти максимальный поток, суммарная стоимость которого минимальна.
Алгоритмы решения
Метод устранения отрицательных циклов в остаточной сети
Воспользуемся леммой об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети. Получим следующий алгоритм:
Алгоритм
- Начало.
- Шаг 1. Определим для каждого прямого ребра обратное ребро . Определим его характеристики: , , .
- Шаг 2. Для каждого ребра зададим поток равный .
- Шаг 3. Найдем произвольный максимальный поток(любым алгоритмом нахождения максимального потока), построим для него остаточную сеть, где каждому ребру будет соответствовать величина .
- Шаг 4. При помощи алгоритма Форда-Беллмана найдем отрицательный цикл в построенной сети (отрицательный цикл ищется по стоимости ребра, т.е. ребра имеют вес ). Если отрицательный цикл не нашелся — перейдем к шагу 6.
- Шаг 5. Избавимся от отрицательного цикла, для этого пустим по нему максимально возможный поток. Величина потока равна минимальной остаточной пропускной способности в цикле. Перейдем к шагу 4.
- Шаг 6. Отрицательных циклов в остаточной сети нет, значит, максимальный поток минимальной стоимости найден.
- Конец.
Асимптотика
Алгоритм Форда-Беллмана работает за
, улучшение цикла за . Если обозначить максимальную стоимость потока как , а максимальную пропускную способность как , то алгоритм совершит итераций поиска цикла, если каждое улучшение цикла будет улучшать его на 1. В итоге имеем , где - асимптотика поиска максимального потока.Метод дополнения потока вдоль путей минимальной стоимости
Использование потенциалов Джонсона
См. также
- Сведение задачи о назначениях к задаче о потоке минимальной стоимости
- Венгерский алгоритм решения задачи о назначениях
Источники информации
- Википедия — Поток минимальной стоимости
- Визуализатор алгоритма нахождения максимального потока минимальной стоимости
- Хабрахабр — Максимальный поток минимальной стоимости
- Кормен, Томас Х., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штайн Клиффорд Алгоритмы: построение и анализ, 2-е издание. Пер. с англ. — М.:Издательский дом "Вильямс", 2010. — 1296 с.: ил. — Парал. тит. англ. — ISBN 978-5-8459-0857-5 (рус.)