Изменения

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

Алгоритм "поднять-в-начало"

349 байт добавлено, 22:49, 26 декабря 2012
м
Операция разгрузки (discharged)
== Операция разгрузки (dischargeddischarge) ==
'''Разгрузка (discharge)''' - операция, которая применяется к переполненной вершине <tex>u</tex>, для того чтобы протолкнуть поток через допустимые ребра в смежные вершины, при необходимости поднимая <tex>u</tex>, делая недопустимые ребра, выходящие из вершины <tex>u</tex>, допустимыми.
Для каждой вершины <tex>u</tex> указатель <tex>current[u]</tex> - указатель на текущую вершину списка. Изначально <tex>current[u] = head[u]</tex>.
'''dischardgedischarge'''(u)
'''while''' e[u] > 0
v = current[u]
'''else'''
current[u] = next[v]
 
Докажем то, что когда операция '''discharge''' вызывает операции [[Метод проталкивания предпотока#Проталкивание (push)|push]] и [[Метод проталкивания предпотока#Подъем (relabel)|relable]], эти операции применимы.
== Схема алгоритма ==
338
правок

Навигация