Изменения

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

Метод проталкивания предпотока

79 байт убрано, 00:13, 18 апреля 2018
Схема алгоритма
'''function''' initializePreflow(s)
'''for''' u <tex> \in </tex> V
h(u) = <tex>0</tex> e(u) = <tex>0</tex>
'''for''' (u, v) <tex>\in</tex> E
f(u, v) = <tex>0</tex> f(v, u) = <tex>0</tex>
'''for''' u: (s, u) <tex>\in </tex> E
f(s, u) = c(s, u)
initializePreflow(s)
'''while''' <tex> \exists </tex> push(u, v) '''or''' <tex>\exists </tex> relabel(u)
'''if''' e(u) <tex> > 0</tex> '''and''' h(u) = h(v) + <tex>1</tex>
push(u, v)
'''if''' e(u) <tex> > 0</tex> '''and''' <tex> \forall </tex> (u, v) <tex>\in </tex> E_f<tex>\quad</tex> h(u)<tex> \leqslant</tex> h(v)
relabel(u)
[[Файл:OrGraphPush0.png|545px|left|Пример сети.]] [[Файл:OrGraphPush1.png|545px|right|Сеть после запуска потока, остаточная сеть, применение операции <tex>\mathrm{relabel}</tex>.]][[Файл:OrGraphPush2.png|545px|left|Применение операции <tex>\mathrm{push}</tex>.]]
693
правки

Навигация