Изменения

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

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

256 байт убрано, 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\limits_{u,v \in V, f(u,v)>0} ca(u,v) \cdot f(u,v)</tex>
}}
===Свойства стоимостисети===
* Поток не может превысить пропускную способность.
:<tex>f(u,v) \leqslant c(u,v)</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>. Требуется найти максимальный поток, суммарная стоимость которого минимальна.
}}
* '''Шаг 2'''. Для каждого ребра зададим поток равный <tex>0</tex>.
* '''Шаг 3'''. Построим остаточную сеть <tex>G_f</tex>.
* '''Шаг 4'''. При помощи [[Алгоритм Форда-Беллмана| алгоритма Форда-Беллмана]] найдем отрицательные циклы в остаточной сети <span style="color: red">(но разве можно найти все циклы сразу?)</span>. Если нет {{---}} перейдем к '''шагу 7'''.
* '''Шаг 5'''. Выберем один из отрицательных циклов.
* '''Шаг 6'''. Избавимся от отрицательного цикла, для этого пустим по нему максимально возможный поток. Перейдем к '''шагу 5''' <span style="color: red">(но ведь остаточная сеть изменилась и могли появиться новые циклы, которые надо ещё найти)</span>.
* '''Шаг 7'''. Отрицательных циклов в остаточной сети нет, значит, максимальный поток минимальной стоимости найден.
* '''Конец.'''
Анонимный участник

Навигация