Изменения

Перейти к: навигация, поиск

Поток минимальной стоимости

477 байт добавлено, 19:07, 14 декабря 2018
Поправил определение, которое не значило ничего и путало обозначениями
{{Определение
|definition='''Стоимость потока'''. Дана Пусть дана сеть <tex>G(V,E)</tex>. <tex>S, T \in V</tex> {{---}} источник и сток. Ребра <tex>\forall (u,v) \in E</tex> имееют пропускную способность <tex>\exists c(u, v), </tex> поток <tex> f(u,v)</tex> {{---}} стоимость пересылки единицы и цену за единицу потока и пропускная способность<tex>a(u, v) </tex>. Тогда '''общая стоимость потока''' из <tex>S</tex> в <tex>T</tex>::<tex>p(u,v) = \sum_sum\limits_{u,v \in V, f(u,v)>0} ca(u,v) \cdot f(u,v)</tex>
}}
===Свойства стоимостисети===
* Поток не может превысить пропускную способность.
:<tex>f(u,v) \le leqslant c(u,v)</tex>.
* Поток из <tex>u</tex> в <tex>v</tex> должен быть противоположным потоку из <tex>v</tex> в <tex>u</tex>.
:<tex>f(u, v)=-f(v, u)</tex>.* Сохранение потока. Для каждой вершины, сумма входящего и исходящего потоков равно <tex>0</tex>.
:<tex> \sum\limits_{w \in V} f(u,w) = 0</tex>
===Формулировка===
{{Задача
|definition = Дана сеть <tex>G(V,E)</tex>. <tex>S, T \in V</tex> {{---}} источник и сток. Ребра <tex>\forall (u,v) \in E</tex> имееют пропускную способность <tex>\exists c(u, v), </tex> поток <tex> f(u,v)</tex> {{---}} стоимость пересылки единицы и цену за единицу потока и пропускная способность<tex> a(u, v) </tex>. Требуется найти максимальный поток, суммарная стоимость которого минимальна.
}}
== Алгоритмы решения ==
===Метод устранения отрицательных циклов в остаточной сети===
Воспользуемся [[Лемма об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети|леммой об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети]]. Получим следующий алгоритм:
====Алгоритм====
* '''Начало.'''
* '''Шаг 1'''. Требуется найти максимальный поток минимальной стоимости.
* '''Шаг 2'''. Для каждого ребра зададим поток равный <tex>0</tex>.
* '''Шаг 3'''. Построим остаточную сеть <tex>G_f</tex>.
* '''Шаг 4'''. При помощи [[Алгоритм Форда-Беллмана| алгоритма Форда-Беллмана]] найдем отрицательные циклы в остаточной сети. Если нет {{---}} перейдем к '''шагу 7'''.
* '''Шаг 5'''. Выберем один из отрицательных циклов.
* '''Шаг 6'''. Избавимся от отрицательного цикла, для этого пустим по нему максимально возможный поток. Перейдем к '''шагу 5'''.
* '''Шаг 7'''. Отрицательных циклов в остаточной сети нет, значит, максимальный поток минимальной стоимости найден.
* '''Конец.'''
=== Алгоритмы решения =Асимптотика====* Воспользуемся [[Лемма об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети|Леммой об эквивалентности свойства Алгоритм Форда-Беллмана работает за <tex>O(VE)</tex>. Нахождение максимального потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети]]** Найдем любой поток величины улучшение цикла работает за <tex>f_0O(E)</tex>.** При помощи [[Алгоритм Форда-Беллмана|Форда-Беллмана]] найдем отрицательные циклы в остаточной сети.** Избавимся от всех найденных циклов, для этого, пустим по ним максимально возможный потокВ итоге имеем <tex>O(V E^2)</tex>.
*[[Поиск_потока_минимальной_стоимости_методом_дополнения_вдоль_путей_минимальной_стоимости|Поиск ===Метод дополнения потока минимальной стоимости методом дополнения вдоль путей минимальной стоимости]].===*[[Использование_потенциалов_Джонсона_при_поиске_потока_минимальной_стоимости{{main|Поиск_потока_минимальной_стоимости_методом_дополнения_вдоль_путей_минимальной_стоимости}} ===Использование потенциалов Джонсона при поиске потока минимальной стоимости (модификация предыдущего алгоритма)]].==={{main|Использование_потенциалов_Джонсона_при_поиске_потока_минимальной_стоимости}}
== См. также ==
* [[Поиск потока минимальной стоимости методом дополнения вдоль путей минимальной стоимости|Поиск потока минимальной стоимости методом дополнения вдоль путей минимальной стоимости]]* [[Теорема Форда-Фалкерсона Сведение задачи о назначениях к задаче о потоке минимальной стоимости|Теорема Форда-Фалкерсона Сведение задачи о назначениях к задаче о потоке минимальной стоимости]]* [[Лемма об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сетиВенгерский алгоритм решения задачи о назначениях|Лемма об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сетиВенгерский алгоритм решения задачи о назначениях]]
== Источники информации ==
*[http://ru.wikipedia.org/wiki/Поток_минимальной_стоимости Википедия {{- --}} Поток минимальной стоимости]
*[http://rain.ifmo.ru/cat/view.php/vis/graph-flow-match/min-cost-max-flow-2009 Визуализатор алгоритма нахождения максимального потока минимальной стоимости]
*[http://habrahabr.ru/blogs/algorithm/61884/ Хабрахабр {{- --}} Максимальный поток минимальной стоимости] == Литература ==* ''Кормен, Томас Х., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штайн Клиффорд'' '''Алгоритмы: построение и анализ''', 2-е издание. Пер. с англ. {{---}} М.:Издательский дом "Вильямс", 2010. {{---}} 1296 с.: ил. {{---}} Парал. тит. англ. {{---}} ISBN 978-5-8459-0857-5 (рус.)
[[Категория:Алгоритмы и структуры данных]]
[[Категория: Задача о потоке минимальной стоимости]]
Анонимный участник

Навигация