693
правки
Изменения
Нет описания правки
'''function''' relabel('''Node''' u)
h(u) = min({h(v): f(u, v) - c(u, v) < 0) } + 1
== Схема алгоритма ==
'''function''' pushRelabelMaxFlow('''Node''' s, '''Node''' t)
initializePreflow(s)
'''while''' e(u) > 0 '''and''' (h(u) = h(v) + 1 '''or''' <tex> \forall </tex> (u, v) <tex>\in E_f </tex> E_f h(u) <tex> \leqslant</tex> h(v))
'''if''' e(u) > 0 '''and''' h(u) = h(v) + 1
push(u, v)
'''if''' e(u) > 0 '''and''' <tex> \forall </tex> (u, v) <tex>\in E_f </tex> E_f 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>.]]