Алгоритм нахождения max потока методом расстановки меток

 

Для выполнения алгоритма вводится понятие метка вершины. Каждая вершина может находится в одном из трех состояний:

1)  вершине приписана метка и вершина просмотрена (все смежные вершины просмотрены)

2)  метка приписана, но вершины смежные не просмотрены

3)  вершина не имеет метки

Метки могут быть двух типов

(+xj,e()),

когда поток допускает увеличение значения вдоль дуги (xi,yj), а e- максимальная величина дополнительного потока

(-xj,e()), когда поток может быть уменьшен вдоль дуги (xj,xi).

Шаг 1 (+х1,di) d(xi)=min

[d(xi),Cij-fij]

2)  xj принадлежит Г-1(xi)       xi<----àxj     fij>0

Шаг 1 (-xi,d(xj)

d(xj)=min(d(xi),fij)

После совершения шагов вершина хi будет просмотрена и помечена, а хj помечены, но не просмотрены.

Шаг 2 повторяем шаг 1 до тех пор, пока не достигнем стока. Либо получится ситуация, когда вершину стока пометить не удается, а других пометок поставить нельзя. В этом случае достигнут max поток в сети.

Шаг 3 (увеличение потока)

полагаем х=t.

Шаг 4 Если вершина Х имеет пометку вида (+z,dх)), то изменяем поток вдоль дуги(z,x) таким значением f(z,x)àf(z,x)+d(t)

Если пометка имеет вид (-z,d(х)), то заменяем поток вдоль дуги (z,x)

f(z/x)->f(z,x)-d(t).

Шаг 5 Если z=s то стираем все пометки и возвращаемся на шаг 1. Но вдоль дуг уже будут другие потоки. Если z<> s, то x=z  и возвращаемся на шаг 4

 

Рисунок 17. Пример задачи

 

Цифры на графике -максимальные пропускные способности. Необходимо найти мах поток.

1)(+х1,¥)-вершина

{xj|xjÎГ(х1) и fij<Cij}=x2,x4

fij=0

Для вершины х2 пометка следующая:

(+x1,min(¥,14-0)), т.е. (+х1,14)

Для х4 пометка будет (+х1,23)

Пример обозначения потоковых задач

Введено понятие внешних потоков.

В (    ) задается характеристика дуги, а в [   ]-характеристика узла. Например

к,fк,hкк)

к-номер дуги

fк- реальный поток по дуге

hк- стоимость передачи единицы потока по дуге

ак- min поток по дуге

Ск -max поток по дуге

[bi, bsi, hsi]

bi- фиксированный внешний поток в узел

bsi- свободный внешний поток в узел

hsi- цена единицы передачи внешнего потока.

 

 Внешние потоки отражают связь изучаемой системы с внешним миром. Фиксированные внешние потоки во время решения задачи не изменяются, а свободные потоки изменяются. В этом случае выполняется закон сохранения потока: Сумма потоков  втекающих в узел по дугам и внешних потоков равна сумме потоков вытекающих из узла.

Управляемой переменной здесь является потоки. Ограничения накладываются структурой графа, фиксированными внешними потоками, максимальными пропускными способностями.

Свободные потоки можно представить иначе, используя параметры дуг. При этом у узлов будет меньше параметров и они будут переносится на дуги. Для этого вводится свободный узел, в котором не требуется выполнения сохранения потока. Для положительного свободного потока fsi вводится дуга, а для отрицательного свободного потока вводится обратная дуга. Если характеризовать пропускную способность bsi, стоимость-hsi, тогда характеристики графа будут [bi] и (Ск,hк).

Все задачи сводятся к задаче минимизации стоимость передачи потока.