Дополняющая сеть, дополняющий путь — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 1: Строка 1:
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
<b>Остаточной пропускной способностью</b> ребра <tex>(u, v)</tex> называется величина дополнительного потока, который мы можем направить из <tex> u </tex> в <tex> v </tex>, не превысив пропускную способность <tex> c(u, v) </tex>.
+
<b>Остаточной пропускной способностью</b> ребра <tex>(u, v)</tex> называется величина дополнительного потока, который мы можем направить из <tex> u </tex> в <tex> v </tex>, не превысив пропускную способность <tex> c(u, v) </tex>. Иными словами <tex> c_f(u, v) = c(u, v) - f(u, v) </tex>.
 
}}
 
}}
  
Строка 12: Строка 12:
 
|definition=
 
|definition=
 
Для заданных транспортной сети <tex>G=(V,E)</tex> и потока <tex>f</tex> <b>дополняющим путем</b> (augmenting path) <tex>p</tex> является простой путь из истока в сток в остаточной сети <tex>G_f=(V,E_f)</tex>.
 
Для заданных транспортной сети <tex>G=(V,E)</tex> и потока <tex>f</tex> <b>дополняющим путем</b> (augmenting path) <tex>p</tex> является простой путь из истока в сток в остаточной сети <tex>G_f=(V,E_f)</tex>.
 +
}}
 +
 +
==Лемма о сложении потоков==
 +
{{Лемма
 +
|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>.
 +
|proof=
 +
Необходимо проверить, выполняются ли ограничения антисимметричности, пропускной способности и сохранения потока. Для подтверждения антисимметричности заметим, что для всех <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> <br> <tex> = -(f(v,u) + f'(v,u)) = -(f + f')(v,u)</tex>.<br>
 +
Покажем соблюдение ограничений пропускной способности. Заметим, что <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>(f + f')(u,v) = f(u,v) + f'(u,v) \le f(u,v) + (c(u,v) - f(u,v)) = c(u,v) </tex>. <br>
 +
Заметим, что для всех <tex>u \in V - \{s,t\}</tex> справедливо равенство <br>
 +
 
}}
 
}}

Версия 19:09, 20 декабря 2010

Определение:
Остаточной пропускной способностью ребра [math](u, v)[/math] называется величина дополнительного потока, который мы можем направить из [math] u [/math] в [math] v [/math], не превысив пропускную способность [math] c(u, v) [/math]. Иными словами [math] c_f(u, v) = c(u, v) - f(u, v) [/math].


Определение:
Для заданной транспортной сети [math]G=(V,E)[/math] и потока [math]f[/math], дополняющей сетью (residual network) в [math]G[/math], порожденной потоком [math]f[/math], является сеть [math]G_f=(V,E_f)[/math], где [math]E_f=\{(u,v) \in V\times V : c_f(u, v) \gt 0\}[/math]


Определение:
Для заданных транспортной сети [math]G=(V,E)[/math] и потока [math]f[/math] дополняющим путем (augmenting path) [math]p[/math] является простой путь из истока в сток в остаточной сети [math]G_f=(V,E_f)[/math].


Лемма о сложении потоков

Лемма:
Пусть [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]

Необходимо проверить, выполняются ли ограничения антисимметричности, пропускной способности и сохранения потока. Для подтверждения антисимметричности заметим, что для всех [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].
Покажем соблюдение ограничений пропускной способности. Заметим, что [math]f'(u,v) \le 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) \le f(u,v) + (c(u,v) - f(u,v)) = c(u,v) [/math].

Заметим, что для всех [math]u \in V - \{s,t\}[/math] справедливо равенство
[math]\triangleleft[/math]