Изменения

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

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

2808 байт добавлено, 19:07, 14 декабря 2018
Поправил определение, которое не значило ничего и путало обозначениями
== Определение задачи ==Задача о потоке минимальной стоимости состоит в нахождении среди всех [[Определение сети, потока|потоков]] данной величины наименее затратного.== 
{{Определение
|definition=Дано число Пусть дана сеть <tex>f_0G(V,E)</tex> . <tex>S, T \in V</tex> {{---}} источник и транспортная сеть сток. Ребра <tex>(u,v) \in E</tex> имееют пропускную способность <tex> c(u, v),G</tex> поток <tex> f(Vu,Ev)</tex> с источником и цену за единицу потока <tex>s \in Va(u, v) </tex> и . Тогда '''общая стоимость потока''' из <tex>S</tex> в <tex>t \in VT</tex>, где ребра ::<tex>p(u,v) = \sum\limits_{u,v \in EV, f(u,v)>0} a(u,v) \cdot f(u,v)</tex> имеют }}===Свойства сети===* Поток не может превысить пропускную способность . :<tex>f(u,v) \,leqslant c(u,v)</tex> и цену * Поток из <tex>u</tex> в <tex>v</tex> должен быть противоположным потоку из <tex>v</tex> в <tex>u</tex>. :<tex>\,pf(u,v)=-f(v, u)</tex>* Сохранение потока. Для каждой вершины, сумма входящего и исходящего потоков равно <tex>0</tex>. Суть задачи — найти поток :<tex>\sum\limits_{w \in V} f(u, vw)= 0</tex>:
:{{Задача|definition = Дана сеть <tex>pG(fV,E) = \sum_{u</tex>. <tex>S,v T \in V, f(u,v)</tex>0{{---} p} источник и сток. Ребра <tex>(u,v) \cdot fin E</tex> имееют пропускную способность <tex> c(u,v) \rightarrow min , </tex>.:поток <tex>|f| = \sum_{u,v \in V, f(u,v)</tex>0{{---} f}и цену за единицу потока <tex> a(u,v) = f_0</tex>. Требуется найти максимальный поток, суммарная стоимость которого минимальна.
}}
== Алгоритмы решения ==
===Метод устранения отрицательных циклов в остаточной сети===Воспользуемся [[Лемма об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети|леммой об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети]]. Получим следующий алгоритм:====Алгоритм====* '''Начало.'''*Найти любой '''Шаг 1'''. Требуется найти максимальный поток минимальной стоимости.* '''Шаг 2'''. Для каждого ребра зададим поток величины равный <tex>f_00</tex>, после чего избавиться от всех .* '''Шаг 3'''. Построим остаточную сеть <tex>G_f</tex>.* '''Шаг 4'''. При помощи [[Алгоритм Форда-Беллмана| алгоритма Форда-Беллмана]] найдем отрицательные циклы в остаточной сети. Если нет {{---}} перейдем к '''шагу 7'''.* '''Шаг 5'''. Выберем один из отрицательных циклов отрицательной стоимости в остаточном графе. Чтобы избавиться * '''Шаг 6'''. Избавимся от отрицательного цикла, надо пустить для этого пустим по нему максимально возможный поток. Циклы ищутся алгоритмом [[Перейдем к '''шагу 5'''.* '''Шаг 7'''. Отрицательных циклов в остаточной сети нет, значит, максимальный поток минимальной стоимости найден.* '''Конец.''' ====Асимптотика====Алгоритм Форда-Беллманаработает за <tex>O(VE)</tex>. Нахождение максимального потока и улучшение цикла работает за <tex>O(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 (рус.)
== Литература ==
* ''Кормен, Томас Х., Лейзерсон, Чарльз И., Ривест, Рональд Л., Штайн Клиффорд'' '''Алгоритмы: построение и анализ''', 2-е издание. Пер. с англ. — М.:Издательский дом "Вильямс", 2010. — 1296 с.: ил. — Парал. тит. англ. — ISBN 978-5-8459-0857-5 (рус.)
[[Категория:Алгоритмы и структуры данных]]
[[Категория: Задача о потоке минимальной стоимости]]
Анонимный участник

Навигация