Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Транспортные сети. Максимальный поток

.doc
Скачиваний:
133
Добавлен:
20.06.2014
Размер:
1.05 Mб
Скачать

5.4. Разрез. Пропускная способность разреза

Пусть D – транспортная сеть. Для любого множества V1V такого, что v1V1, vnV1, разрезом сети D относительно множества вершин V1 называется множество дуг X(V1) = {(w, v)X | wV1, vV1}. Таким образом, это множество, которое включает в себя все дуги, исходящие из вершин, не принадлежащих V1, и заходящие в вершины, принадлежащие V1.

Число называется пропускной способностью разреза X(V1). Разрез с минимальной пропускной способностью называется минимальным.

Пример.

Рассмотрим транспортную сеть D (рис. 5.1) и множество вершин V1={v2, v3, v4}. Тогда разрез сети представляет собой множество дуг X(V1) = {(v1, v2), (v1, v3), (v1, v4)}. Его пропускная способность c(X(V1)) = с(v1, v2) + с(v1, v3) + с(v1, v4) = 7 + 4 + 3 = 14.

Теперь рассмотрим множество V1={v3, v4}. В этом случае разрез сети представляет собой множество дуг X(V1) = {(v1, v3), (v1, v4), (v2, v3), (v2, v4)}. Его пропускная способность c(X(V1)) = с(v1, v3) + с(v1, v4) + с(v2, v3) + с(v2, v4) = 4 + 3 + 5 + 4 = 16.

Утверждение 5.2. Для любого допустимого потока в транспортной сети D и любого множества V1V, где v1V1, vnV1, выполняется неравенство , т.е. величина любого допустимого потока в сети D (в том числе и максимального) не превышает пропускной способности любого разреза сети (в том числе и минимального).

Теорема 5.1 (теорема Форда-Фалкерсона). Пусть D – транспортная сеть, – допустимый поток в этой сети, V1 – множество вершин vV таких, что длина минимального пути из v в vn в орграфе приращений I(D, ) равна нулю. Тогда, если v1V1, то – максимальный поток, величина которого равна .

Следствие 1. Используя теорему Форда-Фалкерсона, а также утверждение 5.2, получаем, что величина максимального потока в транспортной сети равна пропускной способности минимального разреза.

Следствие 2. Пусть – допустимый поток в транспортной сети D. Тогда, если длина минимального пути из v1 в vn в орграфе приращений I(D, ) равна , то – максимальный поток.

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

Важным следствием теоремы Форда – Фалкерсона является алгоритм построения максимального потока в транспортной сети D.

1. Полагаем i=0. Пусть 0 – любой допустимый поток в транспортной сети D (например, полный; можно начать с нулевого потока).

2. По сети D и потоку i строим орграф приращений I(D, i).

3. Рассматриваем все пути из вершины v1 в вершину vn в нагруженном орграфе I(D, i). Если длины всех таких путей равны , то i – максимальный поток и работа алгоритма закончена. В противном случае выбираем путь i (минимальный путь из v1 в vn), длина которого равна 0.Увеличиваем поток вдоль этого пути на максимально допустимую величину ai>0, aiZ, такую, что при этом сохраняется условие 1 допустимого потока. При этом:

а) прибавляем ai к потоку по дуге х, если направления х и i совпадают;

б) вычитаем ai из потока по дуге х, если направления х и i противоположны.

В силу l(i), используя (5.4), (5.5), получаем, что указанная величина ai существует. В результате меняется поток в транспортной сети D: . Присваиваем и переходим к пункту 2.

Пример.

Построим максимальный поток для транспортной сети D (рис. 5.3).

Начинаем с полного потока 4 (рис. 5.11). Рассмотрим нагруженный орграф приращений I(D, 4) (рис. 5.13). В этом орграфе имеется простой путь 5=v1v3v2v5v6, длина которого равна 0. Таким образом, путь 5 является минимальным из v1 в v6 в I(D, 4). Увеличиваем поток на а5=2. При этом:

а) прибавляем а5 к потокам по дугам (v1, v3), (v2, v5) и (v5, v6);

б) вычитаем а5 из потока по дуге (v2, v3) до его обнуления.

Рис. 5.14. Поток , .

В результате получим поток (), содержащий четыре насыщенные дуги. Построим орграф приращения I(D, 5)

Рис. 5.15. Орграф приращений I(D, 5).

Рассматривая все пути из v1 в v6 в I(D, 5), приходим к выводу, что их длины равны . Следовательно, по следствию 2 теоремы Форда – Фалкерсона, поток является максимальным. Более того, величина этого потока совпадает со значением пропускной способности минимального разреза.

Минимальный путь в нагруженном графе

Орграф D=(V, X) называется нагруженным, если на множестве дуг Х определена некоторая функция l: XR, которую называют весовой функцией. Тем самым в нагруженном орграфе D каждой дуге хХ поставлено в соответствие некоторое действительное число l(x). Значение l(x) называют длиной дуги х.

Для любого пути нагруженного орграфа D обозначим через l() сумму длин входящих в дуг, при этом каждая дуга учитывается столько раз, сколько она входит в путь. Величину l() называют длиной пути в нагруженном орграфе D.

Путь в нагруженном орграфе D из вершины v1 в вершину vn, где v1 vn, называют минимальным, если он имеет минимальную длину среди всех путей орграфа D из v1 в vn.

5.6. Разрешимые и неразрешимые проблемы. Сложности вычислений

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

Поиск эффективных алгоритмов для решения задач дискретной математики привел к одной из важнейших ее проблем – к решению вопроса о возможности исключения перебора вариантов в комбинаторных алгоритмах.

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

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

Оценка сложности алгоритмов и создание эффективных алгоритмов – одна из важнейших задач современной дискретной математики.

Будем оценивать алгоритмы лишь по временной сложности. Время работы алгоритма можно выразить в виде функции от «размеров» входных данных, требуемых для описания задачи. Входные и выходные данные можно кодировать некоторым «разумным» способом в виде двоичных последовательностей из нулей и единиц. Тогда алгоритм можно рассматривать как последовательность двоичных операций, работающих с памятью из двоичных же символов.

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

Из курса математического анализа известно, что функция f(n) есть O(g(n)), если существует константа с такая, что | f(n) | ≤ с(g(n)) для всех п0.

Полиномиальным алгоритмом (или алгоритмом полиномиальной временной сложности) называется алгоритм, у которого временная сложность равна O(Р(n)), где Р(n) – некоторая полиномиальная функция от входной длины п. Алгоритмы, для временной сложности которых не существует такой оценки, называются экспоненциальными.

Задача считается труднорешаемой, если для нее не существует разрешающего полиномиального алгоритма.

Многие прикладные задачи могут быть сформулированы в терминах теории графов. Однако при решении реальных задач характеристики соответствующих графов (например, число вершин п и число ребер т) могут быть весьма велики, и их анализ возможен лишь с привлечением ЭВМ.

Задачи теории графов можно классифицировать следующим образом:

  1. задачи, для которых имеются алгоритмы сложности О(п+т);

  2. задачи, для которых известны алгоритмы сложности О(Р(п+т)), где Р – нелинейный полином;

  3. задачи, для которых известны только алгоритмы экспоненциальной сложности, но про которые нельзя сказать, что для них нет алгоритмов полиномиальной сложности;

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

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

К первому классу относят следующие задачи: отыскание остовного дерева графа; выделение компоненты связности графа и сильной связности орграфа; нахождение минимального пути в орграфе (или минимального маршрута в неориентированном графе); нахождение эйлерового цикла.

Второй класс в настоящее время включает в себя такие задачи: нахождение матрицы связности (например, алгоритм Уоршела имеет сложность О(п3)); нахождение циклового базиса (сложность алгоритма О(пт)); нахождение минимального пути в нагруженном графе (алгоритм Форда – Белламана имеет сложность О(п3)); нахождение минимального остовного дерева в нагруженном графе (сложность алгоритма О(т2)).

Третий класс содержит следующие задачи: о существовании в графе гмильтонова цикла (задача коммивояжера); об определении изоморфизма данного графа G1 какому-нибудь подграфу графа G2; задача о выполнимости формулы логики высказываний, находящейся в КНФ и другие. Для многих задач этого класса справедливо следующее свойство сводимости: существование полиномиального алгоритма для решения одной из них дало бы полиномиальный алгоритм для решения другой.

К четвертому классу относятся задачи перечисления всех остовных деревьев графа и перечисления всех циклов графа. Это объясняется тем, что у полного п-вершинного графа число остовных деревьев равно пп-2, число циклов длины i равно , т.е. общее число циклов составляет .

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

5