logo
флеров

Максимальный поток в сети

Под сетью будем понимать пару S=<G, c >, где G = <V, E> - произвольный ориентированный граф, а с: - функция, которая каждому ребру <u,v> ставит в соответствие неотрицательное вещественное число с(u,v), называемое пропускной способностью ребра.

Если для f(u,v) мы интерпретируем как поток из u в v , то величина ,

,

определяет «количество потока», выходящего из вершины v.

Если Df(v) > 0, то вершина v называется источником, если Df(v) < 0, то вершина v называется стоком. Для большинства вершин Df(v)>0.

Выделим в нашей сети две вершины - источник s и сток t. Под потоком из вершины s в вершину t в сети S будем понимать произвольную функцию для которой выполняются условия:

1. для всех ребер <u, v>  E;

2.

Величину будем называть величиной потока.

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

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

Под разрезом Р(А) сети S, соответствующим подмножеству мы понимаем множество ребер <u,v>E, таких, что т.е. .

Разрез - это линия или множество линий, которые полностью разделяют источник и сток.

Для произвольного потока f в сети S поток через разрез Р(А) определяется естественным образом:

Лемма 3.24. Если и то для произвольного потока f из s в t имеет место соотношение

W(f)=f(A,V\A) - f(V\A,A)

В общем виде лемма говорит, что общее количество потока можно измерить в произвольном разрезе, отделяющем s от t.

В частности, если A=V\{t}, получаем в этом случае из леммы:

что выражает интуитивно понятный факт: в сток входит в точности такое количество потока, какое выходит из источника.

Доказательство леммы. Просуммируем уравнения для всех Эта сумма состоит из некоторого количества слагаемых со знаком + или - , причем хотя бы одна из вершин принадлежит А. Если обе вершины принадлежат А, то появляется со знаком плюс в и со знаком минус в, что в сумме дает 0.

Каждое из слагаемых появляется в точности один раз со знаком плюс в , что в сумме дает f(A,V\A). Аналогичные слагаемые , отвечают за слагаемое С другой стороны, сумма равна , ибо для каждого

Определим пропускную способность разреза Р(А) следующим способом:

.

Под минимальным разрезом, разделяющим s и t, будем понимать произвольный разрез Р(А), , с минимальной пропускной способностью. Фундаментальным фактом теории потоков в сетях является классическая теорема о максимальном потоке и минимальном разрезе.

Теорема 3.25. Величина каждого потока из s в t не превосходит пропускной способности минимального разреза, разделяющего s и t, причем существует поток, достигающий этого значения.

Доказательство. Пусть Р(А) - минимальный разрез. В силу леммы для произвольного потока f имеем

Существование потока, для которого указанное неравенство переходит в равенство (такой поток, очевидно, максимален), гораздо более глубокий факт, который здесь мы доказывать не будем.