Лемма об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показано 10 промежуточных версий 4 участников)
Строка 3: Строка 3:
 
о разности потоков
 
о разности потоков
 
|statement=
 
|statement=
Пусть <tex> f </tex> и <tex> g </tex> - потоки равной величины в сети <tex> G </tex>. Тогда <tex> g </tex> можно представить как сумму <tex> f </tex> и нескольких циклов в остаточной сети <tex> G_f </tex>, т.е. <tex>g = f + \sum_{i} C_i </tex>.
+
Пусть <tex> f </tex> и <tex> g </tex> {{---}} потоки равной величины в сети <tex> G </tex>. Тогда <tex> g </tex> можно представить как сумму <tex> f </tex> и нескольких циклов в остаточной сети <tex> G_f </tex>, т.е. <tex>g = f + \sum_{i} C_i </tex>.
 
|proof=  
 
|proof=  
Рассмотрим разность потоков <tex> g - f </tex>. Она имеет поток величины <tex> 0 </tex>. Построим ее декомпозицию. В декомпозиции могут быть только циклы, т.к. наличие путей <tex> s \leadsto t</tex> противоречило бы нулевой величине потока. Таким образом получили разбиение разности потоков на циклы. Заметим, что <tex> g(u,v) - f(u,v) \le c(u, v) - f(u, v) = c_f(u, v)</tex>, т.е. все циклы принадлежат <tex>G_f</tex>.   
+
Рассмотрим разность потоков <tex> g - f </tex>, <tex> |g - f| = 0 </tex>. Построим ее [[теорема о декомпозиции|декомпозицию]]. В декомпозиции могут быть только циклы, т.к. наличие путей <tex> s \leadsto t</tex> противоречило бы нулевой величине потока. Таким образом, получили разбиение разности потоков на циклы. Заметим, что <tex> g(u,v) - f(u,v) \leqslant c(u, v) - f(u, v) = c_f(u, v)</tex>, т.е. все циклы принадлежат <tex>G_f</tex>.   
 
}}
 
}}
  
Строка 12: Строка 12:
 
об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети
 
об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети
 
|statement=
 
|statement=
Поток <tex> f </tex> {{---}} минимальной стоимости <tex> \iff </tex> в остаточной сети <tex> G_f </tex> нет циклов отрицательного веса.
+
Поток <tex> f </tex> {{---}} минимальной стоимости среди потоков своей величины <tex> \iff </tex> в остаточной сети <tex> G_f </tex> нет циклов отрицательной стоимости.
 
|proof=  
 
|proof=  
 
*<tex>\Rightarrow </tex>
 
*<tex>\Rightarrow </tex>
От противного. Пусть существует <tex> C </tex> {{---}} цикл отрицательного веса в <tex> G_f </tex>,
+
От противного. Пусть существует <tex> C </tex> {{---}} цикл отрицательной стоимости в <tex> G_f </tex>,
 
<tex> c_m </tex> {{---}} наименьшая остаточная пропускная способность среди рёбер <tex> C </tex>.
 
<tex> c_m </tex> {{---}} наименьшая остаточная пропускная способность среди рёбер <tex> C </tex>.
  
 
Пустим по <tex> C </tex> поток <tex> f_+ = c_m </tex>.  
 
Пустим по <tex> C </tex> поток <tex> f_+ = c_m </tex>.  
Так как сумма весов по циклу отрицательна и поток по каждому ребру одинаков, то <tex> \sum_{(u,v) \in E} p(u,v) \cdot f_+(u,v) < 0</tex>  
+
Так как сумма стоимостей по циклу отрицательна и поток по каждому ребру одинаков, то <tex> \sum_{(u,v) \in E} p(u,v) \cdot f_+(u,v) < 0</tex>  
  
<tex>\Rightarrow </tex> <tex>\sum_{(u,v) \in E} p(u,v) \cdot (f + f_+)(u,v) < \sum_{(u,v) \in E} p(u,v) \cdot f</tex> <tex>\Rightarrow f </tex> {{---}} не минимальный. Противоречие.
+
<tex>\Rightarrow </tex> <tex>\sum_{(u,v) \in E} p(u,v) \cdot (f + f_+)(u,v) < \sum_{(u,v) \in E} p(u,v) \cdot f(u, v)</tex> <tex>\Rightarrow f </tex> {{---}} не минимальный. Противоречие.
 
*<tex>\Leftarrow </tex>
 
*<tex>\Leftarrow </tex>
Рассмотрим поток <tex> f </tex>: в <tex> G_f </tex> нет циклов отрицательной стоимости. Рассмотрим <tex> f' </tex> - поток минимальной стоимости, т. е. <tex> p(f') <= p(f) </tex>. По лемме представим <tex>f' = f + \sum_{i} C_i </tex>. По условию стоимости всех циклов неотрицательны. Получаем <tex> p(f') >= p(f) \Rightarrow p(f') = p(f)</tex>.
+
Рассмотрим поток <tex> f </tex>, такой что в <tex> G_f </tex> нет циклов отрицательной стоимости. Рассмотрим <tex> f' </tex> {{---}} поток величины <tex> |f| </tex> и минимальной стоимости, т. е. <tex> p(f') \leqslant p(f) </tex>. По лемме представим <tex>f' = f + \sum_{i} C_i </tex>. По условию стоимости всех циклов неотрицательны. Получаем <tex> p(f') \geqslant p(f) \Rightarrow p(f') = p(f)</tex>.
 
}}
 
}}
  
== Литература ==
+
== Источники информации ==
 
* Ravindra Ahuja, Thomas Magnanti, James Orlin. Network flows (1993)
 
* Ravindra Ahuja, Thomas Magnanti, James Orlin. Network flows (1993)
  
 +
[[Категория:Алгоритмы и структуры данных]]
 
[[Категория: Задача о потоке минимальной стоимости]]
 
[[Категория: Задача о потоке минимальной стоимости]]

Текущая версия на 19:21, 4 сентября 2022

Лемма (о разности потоков):
Пусть [math] f [/math] и [math] g [/math] — потоки равной величины в сети [math] G [/math]. Тогда [math] g [/math] можно представить как сумму [math] f [/math] и нескольких циклов в остаточной сети [math] G_f [/math], т.е. [math]g = f + \sum_{i} C_i [/math].
Доказательство:
[math]\triangleright[/math]
Рассмотрим разность потоков [math] g - f [/math], [math] |g - f| = 0 [/math]. Построим ее декомпозицию. В декомпозиции могут быть только циклы, т.к. наличие путей [math] s \leadsto t[/math] противоречило бы нулевой величине потока. Таким образом, получили разбиение разности потоков на циклы. Заметим, что [math] g(u,v) - f(u,v) \leqslant c(u, v) - f(u, v) = c_f(u, v)[/math], т.е. все циклы принадлежат [math]G_f[/math].
[math]\triangleleft[/math]
Лемма (об эквивалентности свойства потока быть минимальной стоимости и отсутствии отрицательных циклов в остаточной сети):
Поток [math] f [/math] — минимальной стоимости среди потоков своей величины [math] \iff [/math] в остаточной сети [math] G_f [/math] нет циклов отрицательной стоимости.
Доказательство:
[math]\triangleright[/math]
  • [math]\Rightarrow [/math]

От противного. Пусть существует [math] C [/math] — цикл отрицательной стоимости в [math] G_f [/math], [math] c_m [/math] — наименьшая остаточная пропускная способность среди рёбер [math] C [/math].

Пустим по [math] C [/math] поток [math] f_+ = c_m [/math]. Так как сумма стоимостей по циклу отрицательна и поток по каждому ребру одинаков, то [math] \sum_{(u,v) \in E} p(u,v) \cdot f_+(u,v) \lt 0[/math]

[math]\Rightarrow [/math] [math]\sum_{(u,v) \in E} p(u,v) \cdot (f + f_+)(u,v) \lt \sum_{(u,v) \in E} p(u,v) \cdot f(u, v)[/math] [math]\Rightarrow f [/math] — не минимальный. Противоречие.

  • [math]\Leftarrow [/math]
Рассмотрим поток [math] f [/math], такой что в [math] G_f [/math] нет циклов отрицательной стоимости. Рассмотрим [math] f' [/math] — поток величины [math] |f| [/math] и минимальной стоимости, т. е. [math] p(f') \leqslant p(f) [/math]. По лемме представим [math]f' = f + \sum_{i} C_i [/math]. По условию стоимости всех циклов неотрицательны. Получаем [math] p(f') \geqslant p(f) \Rightarrow p(f') = p(f)[/math].
[math]\triangleleft[/math]

Источники информации

  • Ravindra Ahuja, Thomas Magnanti, James Orlin. Network flows (1993)