Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры 20103.doc
Скачиваний:
13
Добавлен:
27.10.2018
Размер:
2.59 Mб
Скачать

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

Основная теорема Форда-Фалкерсона: Для любой сети с истоком и стоком величина потока из истока в сток пропускной способности разреза раздел. исток от стока .

Док-во: Пусть - величина максимального потока по сети из истока в сток . Покажем, что существует разрез , для которого и построим некоторое мн-во по следующим правилам:

1) ;

2) если , дуга ; если , то ;

3) если , дуга ; если , то .

Докажем, что мн-во определяет разрез. Предположим обратное. Тогда вершина и пусть существует путь из в по вершинам мн-ва , определим величину и определим величину .

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

Опр. Будем говорить, сто путь из в увеличивает поток по сети, если на всех прямых дугах , а на всех обратных дугах .

Следствие: Поток является максимальным, если не существует путей из в увеличивающих поток.

Алгоритм расстановки пометок для построения максимального потока на сети.

1 этап (Предварительный): построить начальный поток , удовлетворяющий условиям 2 и 3. Таким потоком явл., например, нулевой поток.

2 этап (Расстановки пометок): он позволяет либо найти путь увеличивающий поток, либо доказывает, что ранее построенный поток максимальный.

На этом этапе каждая вершина находится в одном из трех состояний:

1. вершина не помечена;

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

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

Пометка вершины состоит из двух частей , здесь - номер вершины, из которой можно послать дополнительный поток в (т.е. вершина помечена из вершины );

«+» - ставится, если вершина помечена из вершины по прямой дуге;

«-» - ставится, если по обратной;

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

В начале все вершины не помечены.

1) вершина помечается , но не просмотрена;

2) выбираем любую помеченную, но не просмотренную вершину , если таковых нет, то переходим к 5);

3) для всех непомеченных , для которых к вершине присваиваем пометку , где для всех непомеченных , для которых к вершине приписываем пометку , .

После выполнения шага 3) вершины помечены, но не просмотрены, а вершины - помечены и просмотрены.

4) если помечен сток , то переходим к 3 этапу. Если на шаге 3) появились новые помеченные вершины, то мы возвращаемся к шагу 2);

5) если не помечен и других пометок расставить нельзя, при этом минимальный разрез, где - мн-во помеченных вершин, а - мн-во непомеченных вершин.

3 этап (Изменение потока по пути найденному в этапе 2):

1) положить ;

2) если у вершины потока , то положить . Если у вершины потока , то положить .

3) положить ;

4) если , то все пометки стираются и осуществляется переход к этапу 2, иначе возвращаются к шагу 2.

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