Сложение и разность потоков — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показано 9 промежуточных версий 5 участников)
Строка 1: Строка 1:
==Лемма о сложении потоков==
 
 
{{Лемма
 
{{Лемма
 +
|about =
 +
о сложении потоков
 
|statement=
 
|statement=
Пусть <tex> G = (V, E) </tex> - транспортная сеть с источником <tex>s</tex> и стоком <tex>t</tex>, а <tex>f</tex> - поток в <tex>G</tex>. Пусть <tex>G_f</tex> - остаточная сеть в <tex>G</tex>, порожденная потоком <tex>f</tex>, а <tex>f'</tex> - поток в <tex>G_f</tex>. Тогда сумма потоков <tex>f + f'</tex>, определяемая уравнением <tex>(f + f')(u, v) = f(u,v) + f'(u,v)</tex>, является потоком в <tex>G</tex>, и величина этого потока равна <tex>|f + f'| = |f| + |f'|</tex>.
+
Пусть <tex> G = (V, E) </tex> {{---}} [[Определение_сети,_потока#flow_network|транспортная сеть]] с источником <tex>s</tex> и стоком <tex>t</tex>, а <tex> f </tex> {{---}} [[Определение_сети,_потока#flow|поток]] в <tex>G</tex>. Пусть <tex> G_f </tex> {{---}} [[Дополняющая_сеть,_дополняющий_путь#residual_network|остаточная сеть]] в <tex>G</tex>, порожденная потоком <tex>f</tex>, а <tex> f' </tex> {{---}} поток в <tex>G_f</tex>. Тогда сумма потоков <tex>f + f'</tex>, определяемая уравнением <tex>(f + f')(u, v) = f(u,v) + f'(u,v)</tex>, является потоком в <tex>G</tex>, и [[Определение_сети,_потока#flow|величина]] этого потока равна <tex>|f + f'| = |f| + |f'|</tex>.
 
|proof=
 
|proof=
Необходимо проверить, выполняются ли ограничения антисимметричности, пропускной способности и сохранения потока. <br>
+
Необходимо проверить, выполняются ли ограничения антисимметричности, пропускной способности и сохранения [[Определение_сети,_потока#flow|потока]].
1) Для подтверждения антисимметричности заметим, что для всех <tex>(u,v) \in V</tex>, справедливо: <br>
+
<tex> (f + f')(u, v) = f(u,v) + f'(u,v) = -f(v,u) - f'(v,u) </tex> <tex> = -(f(v,u) + f'(v,u)) = -(f + f')(v,u)</tex>
+
# Для подтверждения антисимметричности заметим, что для всех <tex>(u,v) \in V</tex> справедливо:
 +
#: <tex> (f + f')(u, v) = f(u,v) + f'(u,v) = -f(v,u) - f'(v,u) </tex> <tex> = -(f(v,u) + f'(v,u)) = -(f + f')(v,u)</tex>
 +
#:
 +
# Покажем соблюдение ограничений пропускной способности.
 +
#: Заметим, что <tex>f'(u,v) \leqslant c_f(u,v)</tex> для всех <tex>u,v \in V </tex> и <tex> c_f(u, v) = c(u, v) - f(u, v) </tex>. Тогда <br>
 +
#: <tex>(f + f')(u,v) = f(u,v) + f'(u,v) \leqslant f(u,v) + (c(u,v) - f(u,v)) = c(u,v) </tex>.
 +
#:
 +
# Заметим, что для всех <tex>u \in V - \{s,t\}</tex> справедливо равенство: <br>
 +
#: <tex> \sum\limits_{v\in V} (f + f')(u, v) = \sum\limits_{v\in V} (f(u,v) + f'(u,v)) = \sum\limits_{v\in V} f(u,v) + \sum\limits_{v\in V} f'(u,v) = 0 + 0 = 0</tex> <br>
 +
#:<tex> |f + f'| = \sum\limits_{v\in V} (f + f')(s, v) = \sum\limits_{v\in V} (f(s,v) + f'(s,v)) </tex> <tex>= \sum\limits_{v\in V} f(s,v) + \sum\limits_{v\in V} f'(s,v) = |f| + |f'|</tex>
 +
}}
 +
 
 +
 
 +
{{Лемма
 +
|about =
 +
о разности потоков
 +
|statement=
 +
Пусть <tex> G = (V, E) </tex> {{---}} транспортная сеть с источником <tex>s</tex> и стоком <tex>t</tex>, а <tex>h</tex> и <tex> f </tex> {{---}} [[Определение_сети,_потока#flow|потоки]] в <tex> G </tex>. Пусть <tex>G_f</tex> {{---}} [[Дополняющая_сеть,_дополняющий_путь#residual_network|остаточная сеть]] в <tex>G</tex>, порожденная потоком <tex>f</tex>. Тогда разность потоков <tex>h - f</tex>, определяемая уравнением <tex>(h - f)(u, v) = h(u,v) - f(u,v)</tex>, является потоком в <tex>G_f</tex>, и величина этого потока равна <tex>|h - f| = |h| - |f|</tex>.
 +
|proof=
 +
Антисимметричность и правило сохранения потока для <tex>h - f</tex> проверяются аналогично лемме о сложении потоков.
  
 +
Покажем соблюдение ограничений пропускной способности.
  
2) Покажем соблюдение ограничений пропускной способности. Заметим, что <tex>f'(u,v) \le c_f(u,v)</tex> для всех <tex>u,v \in V </tex> и <tex> c_f(u, v) = c(u, v) - f(u, v) </tex>. Тогда <br>
+
<tex>(h - f)(u,v) = h(u,v) - f(u,v) \leqslant c(u,v) - f(u,v) = c_f(u,v) </tex>.  
<tex>(f + f')(u,v) = f(u,v) + f'(u,v) \le f(u,v) + (c(u,v) - f(u,v)) = c(u,v) </tex>.  
 
  
 +
Теперь покажем, что [[Определение_сети,_потока#flow|величина]] потока <tex>h - f</tex> равна разности величин потоков <tex>h</tex> и <tex>f</tex>.
  
3) Заметим, что для всех <tex>u \in V - \{s,t\}</tex> справедливо равенство <br>
+
<tex> |h - f| = \sum\limits_{v\in V} (h - f)(s, v) = \sum\limits_{v\in V} (h(s,v) - f(s,v)) </tex> <tex>= \sum\limits_{v\in V} h(s,v) - \sum\limits_{v\in V} f(s,v) = |h| - |f|</tex>
<tex> \sum\limits_{v\in V} (f + f')(u, v) = \sum\limits_{v\in V} (f(u,v) + f'(u,v)) = \sum\limits_{v\in V} f(u,v) + \sum\limits_{v\in V} f'(u,v) = 0 + 0 = 0</tex> <br>
 
<tex> |f + f'| = \sum\limits_{v\in V} (f + f')(s, v) = \sum\limits_{v\in V} (f(s,v) + f'(s,v)) </tex> <tex>= \sum\limits_{v\in V} f(s,v) + \sum\limits_{v\in V} f'(s,v) = |f| + |f'|</tex>
 
 
}}
 
}}
  
== Литература ==
+
== Источники информации ==
 
* ''Кормен Т., Лейзерсон Ч., Ривест Р.'' Алгоритмы: построение и анализ.[http://wmate.ru/ebooks/?dl=380&mirror=1] — 2-е изд. — М.: Издательский дом «Вильямс», 2007. — С. 1296.
 
* ''Кормен Т., Лейзерсон Ч., Ривест Р.'' Алгоритмы: построение и анализ.[http://wmate.ru/ebooks/?dl=380&mirror=1] — 2-е изд. — М.: Издательский дом «Вильямс», 2007. — С. 1296.
  
 
[[Категория:Алгоритмы и структуры данных]]
 
[[Категория:Алгоритмы и структуры данных]]
 
[[Категория:Задача о максимальном потоке]]
 
[[Категория:Задача о максимальном потоке]]

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

Лемма (о сложении потоков):
Пусть [math] G = (V, E) [/math]транспортная сеть с источником [math]s[/math] и стоком [math]t[/math], а [math] f [/math]поток в [math]G[/math]. Пусть [math] G_f [/math]остаточная сеть в [math]G[/math], порожденная потоком [math]f[/math], а [math] f' [/math] — поток в [math]G_f[/math]. Тогда сумма потоков [math]f + f'[/math], определяемая уравнением [math](f + f')(u, v) = f(u,v) + f'(u,v)[/math], является потоком в [math]G[/math], и величина этого потока равна [math]|f + f'| = |f| + |f'|[/math].
Доказательство:
[math]\triangleright[/math]

Необходимо проверить, выполняются ли ограничения антисимметричности, пропускной способности и сохранения потока.

  1. Для подтверждения антисимметричности заметим, что для всех [math](u,v) \in V[/math] справедливо:
    [math] (f + f')(u, v) = f(u,v) + f'(u,v) = -f(v,u) - f'(v,u) [/math] [math] = -(f(v,u) + f'(v,u)) = -(f + f')(v,u)[/math]
  2. Покажем соблюдение ограничений пропускной способности.
    Заметим, что [math]f'(u,v) \leqslant c_f(u,v)[/math] для всех [math]u,v \in V [/math] и [math] c_f(u, v) = c(u, v) - f(u, v) [/math]. Тогда
    [math](f + f')(u,v) = f(u,v) + f'(u,v) \leqslant f(u,v) + (c(u,v) - f(u,v)) = c(u,v) [/math].
  3. Заметим, что для всех [math]u \in V - \{s,t\}[/math] справедливо равенство:
    [math] \sum\limits_{v\in V} (f + f')(u, v) = \sum\limits_{v\in V} (f(u,v) + f'(u,v)) = \sum\limits_{v\in V} f(u,v) + \sum\limits_{v\in V} f'(u,v) = 0 + 0 = 0[/math]
    [math] |f + f'| = \sum\limits_{v\in V} (f + f')(s, v) = \sum\limits_{v\in V} (f(s,v) + f'(s,v)) [/math] [math]= \sum\limits_{v\in V} f(s,v) + \sum\limits_{v\in V} f'(s,v) = |f| + |f'|[/math]
[math]\triangleleft[/math]


Лемма (о разности потоков):
Пусть [math] G = (V, E) [/math] — транспортная сеть с источником [math]s[/math] и стоком [math]t[/math], а [math]h[/math] и [math] f [/math]потоки в [math] G [/math]. Пусть [math]G_f[/math]остаточная сеть в [math]G[/math], порожденная потоком [math]f[/math]. Тогда разность потоков [math]h - f[/math], определяемая уравнением [math](h - f)(u, v) = h(u,v) - f(u,v)[/math], является потоком в [math]G_f[/math], и величина этого потока равна [math]|h - f| = |h| - |f|[/math].
Доказательство:
[math]\triangleright[/math]

Антисимметричность и правило сохранения потока для [math]h - f[/math] проверяются аналогично лемме о сложении потоков.

Покажем соблюдение ограничений пропускной способности.

[math](h - f)(u,v) = h(u,v) - f(u,v) \leqslant c(u,v) - f(u,v) = c_f(u,v) [/math].

Теперь покажем, что величина потока [math]h - f[/math] равна разности величин потоков [math]h[/math] и [math]f[/math].

[math] |h - f| = \sum\limits_{v\in V} (h - f)(s, v) = \sum\limits_{v\in V} (h(s,v) - f(s,v)) [/math] [math]= \sum\limits_{v\in V} h(s,v) - \sum\limits_{v\in V} f(s,v) = |h| - |f|[/math]
[math]\triangleleft[/math]

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

  • Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ.[1] — 2-е изд. — М.: Издательский дом «Вильямс», 2007. — С. 1296.