Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_dm.docx
Скачиваний:
315
Добавлен:
16.02.2016
Размер:
1.03 Mб
Скачать

1) Процедура помечивания вершин.

Обработка i-й вершины с пометкой (x,e) заключается в том, что из вершины i помечаются смежные непомеченные вершины по следующему правилу:

- если дуга направлена из i в j и поток по этой дуге (fij) меньше пропускной способности дуги (cij), то вершине j присваивается метка (i+,min(e,cij-fij))

- если дуга направлена из j в i и поток по этой дуге (fji) больше нуля, то вершине j присваивается метка (i-,min(e,fji))

Эта процедура всегда начинается с помечивания и обработки истока. Он помечается особой меткой (-,). Затем обрабатываются другие помеченные вершины (после обработки истока пометятся вершины, смежные с ним) и т.д.

Процесс помечивания заканчивается в двух случаях:

1) Ни одну вершину больше нельзя пометить, но сток не помечен. Это значит, что найденный поток - максимальный и алгоритм останавливается.

2) Помечается сток. В этом случае производится изменение потока.

2) Процедура изменения потока.

Если сток получил метку (k+,d), то потоки будут изменяться на величину d следующим образом:

- если мы находимся в вершине j с меткой (i+,x), то прибавляем d к fij и переходим в вершину i.

- если мы находимся в вершине j с меткой (i-,x), то вычитаем d из fij и переходим в вершину i.

Изменение потока начинается от стока и продолжается до достижения истока. После этого все метки стираются и заново выполняется процедура помечивания вершин.

Этот процесс продолжается до тех пор, пока не будет найден максимальный поток (ни одну вершину больше нельзя пометить, но сток не помечен).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]