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

Материал из Викиконспекты
Перейти к: навигация, поиск
(Лемма о сложении потоков)
Строка 19: Строка 19:
 
Пусть <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> - транспортная сеть с источником <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=
 
|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>
+
Необходимо проверить, выполняются ли ограничения антисимметричности, пропускной способности и сохранения потока. <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>
+
1) Для подтверждения антисимметричности заметим, что для всех <tex>(u,v) \in V</tex>, справедливо: <br> <br> <tex> (f + f')(u, v) = f(u,v) + f'(u,v) = -f(v,u) - f'(v,u) = -(f(v,u) + f'(v,u)) = -(f + f')(v,u)</tex>.<br> <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>
+
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> <br>
Заметим, что для всех <tex>u \in V - \{s,t\}</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> <br>
 +
3) Заметим, что для всех <tex>u \in V - \{s,t\}</tex> справедливо равенство <br> <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> <br>
 +
<tex> |f + f'| = \sum\limits_{v\in V} (f + f')(s, v) = \sum\limits_{v\in V} (f(s,v) + f'(s,v)) = \sum\limits_{v\in V} f(s,v) + \sum\limits_{v\in V} f'(s,v) = |f| + |f'|</tex>
 +
 
  
 
}}
 
}}

Версия 19:27, 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]

Необходимо проверить, выполняются ли ограничения антисимметричности, пропускной способности и сохранения потока.
1) Для подтверждения антисимметричности заметим, что для всех [math](u,v) \in V[/math], справедливо:

[math] (f + f')(u, v) = f(u,v) + f'(u,v) = -f(v,u) - f'(v,u) = -(f(v,u) + f'(v,u)) = -(f + f')(v,u)[/math].

2) Покажем соблюдение ограничений пропускной способности. Заметим, что [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].

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)) = \sum\limits_{v\in V} f(s,v) + \sum\limits_{v\in V} f'(s,v) = |f| + |f'|[/math]
[math]\triangleleft[/math]