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

Лабораторные работы № 6,7

Оптимизация на сетях

Цель работы:ознакомление с методами оптимизации на сетях

Краткие теоретические сведения

Задача о максимальном потоке. Алгоритм Форда-Фалкерсона

Краткие теоретические сведения

Орграф G=(V, E) называется взвешенным, если каждой его дуге Метод расстановки пометок нахождения максимального потока - student2.ru приписано число Метод расстановки пометок нахождения максимального потока - student2.ru , называемое весом дуги.

Сетью называется конечный связный взвешенный орграф G=(V, E) без петель, в котором выделены две вершины:

1) вершина Метод расстановки пометок нахождения максимального потока - student2.ru , не имеющая входящих дуг и называемая источником или началом сети;

2) вершина Метод расстановки пометок нахождения максимального потока - student2.ru , не имеющая выходящих дуг и называемая стоком или концом сети, здесь n − число вершин графа G.

Каждой дуге Метод расстановки пометок нахождения максимального потока - student2.ru орграфа поставлено в соответствие некоторое неотрицательное число Метод расстановки пометок нахождения максимального потока - student2.ru , называемое пропускной способностью дуги (вес дуги). В дальнейшем предполагается, что Метод расстановки пометок нахождения максимального потока - student2.ru − целые числа.

Потоком по сети G=(V, E) из источника s в сток t называется неотрицательная функция f = Метод расстановки пометок нахождения максимального потока - student2.ru , определенная на дугах сети и такая, что выполняется:

1) Метод расстановки пометок нахождения максимального потока - student2.ru для любой дуги Метод расстановки пометок нахождения максимального потока - student2.ru ;

2) Метод расстановки пометок нахождения максимального потока - student2.ru = Метод расстановки пометок нахождения максимального потока - student2.ru Метод расстановки пометок нахождения максимального потока - student2.ru

Числа Метод расстановки пометок нахождения максимального потока - student2.ru называются дуговыми потоками,а число r − величиной потока.

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

Задача о максимальном потоке состоит в нахождении такого потока f = Метод расстановки пометок нахождения максимального потока - student2.ru , при котором величина потока r максимальна.

Введем вспомогательные понятия. Пусть Метод расстановки пометок нахождения максимального потока - student2.ru , а Метод расстановки пометок нахождения максимального потока - student2.ru . Разрезом Метод расстановки пометок нахождения максимального потока - student2.ru сети Метод расстановки пометок нахождения максимального потока - student2.ru называется множество дуг Метод расстановки пометок нахождения максимального потока - student2.ru таких, что Метод расстановки пометок нахождения максимального потока - student2.ru или Метод расстановки пометок нахождения максимального потока - student2.ru . Разрез Метод расстановки пометок нахождения максимального потока - student2.ru называется разделяющим источник Метод расстановки пометок нахождения максимального потока - student2.ru от Метод расстановки пометок нахождения максимального потока - student2.ru стока, если Метод расстановки пометок нахождения максимального потока - student2.ru .

Пропускной способностью или величиной разреза Метод расстановки пометок нахождения максимального потока - student2.ru называется величина Метод расстановки пометок нахождения максимального потока - student2.ru Метод расстановки пометок нахождения максимального потока - student2.ru .

Дуга Метод расстановки пометок нахождения максимального потока - student2.ru называется насыщеннойпотоком f, если Метод расстановки пометок нахождения максимального потока - student2.ru

Теорема Форда-Фалкерсона.

В любой сети величина максимального потока равна пропускной способности минимального разреза.

Из этой теоремы следует, что решив задачу о максимальном потоке мы одновременно решим и задачу о минимальном разрезе.

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

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

Решать задачу будем методом расстановки пометок, используя две операции:

− расстановки пометок;

− изменения потока.

В процессе работы каждая вершина графа может находиться в одном из трех состояний:

1) не помечена;

2) помечена, но не просмотрена;

3) помечена и просмотрена.

В процессе работы алгоритма каждая вершина данной сети получает метку. Метка произвольной вершины j имеет вид: Метод расстановки пометок нахождения максимального потока - student2.ru или Метод расстановки пометок нахождения максимального потока - student2.ru , где Метод расстановки пометок нахождения максимального потока - student2.ru , а Метод расстановки пометок нахождения максимального потока - student2.ru – натуральное число или бесконечность. Первая часть метки указывает на то, что можно увелить поток по дуге Метод расстановки пометок нахождения максимального потока - student2.ru на величину Метод расстановки пометок нахождения максимального потока - student2.ru в случае «+», и уменьшить поток по дуге Метод расстановки пометок нахождения максимального потока - student2.ru − в случае «-». Помеченная вершина считается просмотренной, если все смежные с ней вершины обработаны, т.е. сделана попытка их пометить.

Алгоритм Форда-Фалкерсона

Подготовительный этап.

Выбираем произвольный поток. В качестве начального потока можно взять нулевой поток: Метод расстановки пометок нахождения максимального потока - student2.ru для любой дуги Метод расстановки пометок нахождения максимального потока - student2.ru .

Помечаем источник s: Метод расстановки пометок нахождения максимального потока - student2.ru (эта метка означает, что мы пытаемся пропустить через сеть бесконечный по величине поток). Теперь источник помечен, но не просмотрен. Остальные вершины не помечены.

Этап расстановки пометок.

Выбираем произвольную помеченную и непросмотренную вершину i (например, вершину, имеющую минимальный номер) и пытаемся пометить все смежные с ней непомеченные вершины j:

все те вершины j, для которых Метод расстановки пометок нахождения максимального потока - student2.ru , получают метку Метод расстановки пометок нахождения максимального потока - student2.ru , где Метод расстановки пометок нахождения максимального потока - student2.ru ; такие узлы j теперь помечены и непросмотрены;

все те вершины j, для которых Метод расстановки пометок нахождения максимального потока - student2.ru , получают метку Метод расстановки пометок нахождения максимального потока - student2.ru , где Метод расстановки пометок нахождения максимального потока - student2.ru ; такие узлы j теперь помечены и непросмотрены.

После этой процедуры вершина i считается помеченной и просмотренной и больше не рассматривается на этом шаге даже в случае, если не все смежные с ней вершины удалось пометить.

Далее просматриваем следующую вершину, и так до тех пор, пока не пометим сток t или же пока нельзя будет больше пометить ни одной вершины, при этом сток останется не помеченным. Если сток окажется не помеченным, то процесс нахождения максимального потока в сети можно считать законченным, а если сток помечен, то переходим к следующему этапу.

Если максимальный поток найден, то все вершины, которые удалось пометить на этом этапе и вершина s образуют множество X и определяют минимальный разрез Метод расстановки пометок нахождения максимального потока - student2.ru . величины Метод расстановки пометок нахождения максимального потока - student2.ru . Отметим, что все дуги Метод расстановки пометок нахождения максимального потока - student2.ru разреза Метод расстановки пометок нахождения максимального потока - student2.ru такие,что Метод расстановки пометок нахождения максимального потока - student2.ru , являются насыщенными, а по остальным дугам разреза «течет» нулевой поток.

Этап изменения потока.

Используя первую часть метки вершины, определяем путь, по которому мы пришли из вершины s в вершину t. Выделение этого пути начинаем с вершины t: если вершина t имеет метку Метод расстановки пометок нахождения максимального потока - student2.ru , то вершина t помечена из вершины i и т.д. В результате мы получаем последовательность смежных вершин: Метод расстановки пометок нахождения максимального потока - student2.ru . По всем дугам Метод расстановки пометок нахождения максимального потока - student2.ru этого пути , начальная вершина которых имеет пометку «+», увеличиваем поток на величину Метод расстановки пометок нахождения максимального потока - student2.ru , а по всем остальным дугам этого пути , начальная вершина их имеет пометку «-», уменьшаем поток на эту же величину Метод расстановки пометок нахождения максимального потока - student2.ru «направление» дуги на этом пути совпадает с направлением пути. В результате − поток по сети увеличится на величину Метод расстановки пометок нахождения максимального потока - student2.ru .

После изменения потока все метки вершин, кроме метки вершины s , удаляются и возвращаемся на этап расстановки пометок.

Конец работы алгоритма.

Наши рекомендации