Изменения

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

Схема алгоритма Диница

Нет изменений в размере, 22:46, 4 июня 2012
Нет описания правки
Для начала определим для каждой вершины <tex>v</tex> данной сети <tex>G</tex> длину кратчайшего <tex>s \leadsto v</tex> пути из истока и обозначим ее <tex>d[v]</tex> (для этого можно воспользоваться [[Обход в ширину|обходом в ширину]]).<br/> В слоистую сеть включаем только те ребра <tex>(u,v)</tex> исходной сети, для которых <tex>d[u] + 1 = d[v]</tex>.
Полученная сеть ациклична, и любой <tex>s \leadsto t</tex> путь во вспомогательной сети является кратчайшим путём в исходной, из свойств обхода в ширину.
[[Файл:Слоистая_сеть.png|300px 500px |thumb|center| Слоистая сеть с пятью слоями. s = 0, t = 6]]
<br/>В примере ребра, обозначенные пунктиром, не входят в слоистую сеть.
144
правки

Навигация