ПОТОКИ В СЕТЯХ


Баранов Виктор Павлович. Дискретная математика. Раздел 3. Графы и сети.

Лекция 13. Потоки в сетях

Лекция 13. ПОТОКИ В СЕТЯХ

План лекции:

  1. Задача о максимальном потоке.
  2. Определение сети, потока и разреза.
  3. Теорема Форда-Фалкерсона.

  1. Задача о максимальном потоке

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

Метод решения задачи о максимальном потоке (от к ) предложен Фордом и Фалкерсоном, и их «техника пометок» составляет основу других алгоритмов решения многочисленных задач, являющимися простыми обобщениями или расширениями указанной задачи. Рассмотрим возможные варианты задачи о максимальном потоке.

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

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

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

  1. Определение сети, потока и разреза

Граф, некоторые вершины которого выделены, называется сетью. Выделенные вершины называются полюсами сети. Например, дерево с корнем можно рассматривать как однополюсную сеть.

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

-полюсником называется сеть с полюсами, разбитыми на два класса: входных и выходных полюсов. (1,1)-полюсник называется также двухполюсной сетью.

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

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

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

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

Потоком в сети называется целочисленная функция , определенная на дугах сети и удовлетворяющая условиям:

  1. , ; (1)
  2. , (, , ). (2)

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

На рис. 1 приведен пример сети , в которой каждой дуге приписана двойка .

8,8 7,6

2,2 2,0

5,5

9,7

Рис. 1. Пример транспортной сети

Если сложить уравнения сохранения для всех вершин, то останутся только члены, соответствующие дугам и :

.

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

.

Поток в сети, имеющий наибольшую величину, называется максимальным.

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

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

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

.

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

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

В 1955 г. Форд и Фалкерсон доказали следующую теорему о максимальном потоке и минимальном разрезе.

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

Доказательство. Докажем сначала, что величина любого потока не превосходит пропускной способности любого разреза:. Просуммируем уравнения сохранения (2) по всем вершинам . Получим

, (3)

где значения коэффициентов зависят от расположения концов дуги относительно множеств и . На рис. 2 показаны шесть возможных вариантов такого расположения.

2

3

5 1

6 4

Рис. 2. Возможные расположения концов произвольной дуги

1. . В этом случае в ходит в складываемые уравнения дважды: со знаком ”+” для вершины и со знаком ”–” для вершины . Следовательно, .

2. . В этом случае в ходит только в уравнение сохранения для вершины , поэтому .

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

4. . В этом случае , т. к. нет в складываемых уравнениях.

5. . Результат аналогичен п. 3.

6. . Результат аналогичен п. 4.

Для дуг шестого типа в сумму (3) добавим и вычтем . Тогда для дуг, выходящих из источника (), и дуг, идущих против разреза ; для дуг разреза ; для остальных дуг.

Перепишем уравнение (3) в виде

,

откуда для любого потока и любого разреза

. (4)

Отсюда следует, что максимальное значение потока в сети равно минимальному значению пропускных способностей разрезов этой сети:

.

1

ПОТОКИ В СЕТЯХ