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

Учебное пособие 985

.pdf
Скачиваний:
7
Добавлен:
30.04.2022
Размер:
697.18 Кб
Скачать

Глава 2. Некоторые оптимизационные задачи на графах

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

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

2.1. Задача о кратчайшем пути

Задача о кратчайшем пути заключается в нахождении пути минимальной длины от заданной вершины s к заданной вершине t в ориентированном графе. Если граф является взвешенным, то под длиной пути подразумевается сумма длин дуг, которые этот путь составляют; иначе - длина пути - это количество дуг, образующих путь. Обобщениями задачи о кратчайшем пути являются:

а) задача о нахождении кратчайших путей между вершиной s и всеми другими вершинами графа;

б) задача нахождения кратчайших путей между всеми парами вершин. Если определить кратчайшие пути от заданной вершины s ко всем вершинам графа, то можно построить дерево кратчайших путей. При решении задачи о кратчайшем пути во взвешенном графе следует рассматривать три случая: а) все дуги имеют неотрицательный вес; б) некоторые дуги имеют отрицательный вес, но в графе не существует контуров с суммарным отрицательным весом; в) в сети присутствует один или несколько контуров с суммарным отрицательным весом. В последнем случае задачу о кратчайшем пути решить нельзя, но можно обнаружить контуры с отрицательным суммарным весом. В случае а) для поиска кратчайшего пути между заданными вершинами используется алгоритм Дейкстры; для поиска кратчайших путей между заданной вершиной и всеми остальными может быть использован также алгоритм Дейкстры. В случаях б) и в) используется алгоритм Форда-Мура [2]. Для определения кратчайшего пути между

всеми парами вершин применим алгоритм Флойда [2].

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

31

ство, состоящее из s , t и возможных перевалочных пунктов. Две вершины xi и x j графа соединяются дугой тогда и только тогда, когда из пункта xi в x j можно попасть. Длиной дуги (xi , x j ) назовем время, необходимое для того, чтобы попасть из пункта xi в пункт x j по дуге (xi , x j ) . Самый короткий путь, ведущий их вершины s в t , в получившемся графе, будет решением исходной задачи.

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

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

Постановка задачи. Пусть дан связный ориентированный граф G = ( X ,U ) , каждой дуге u которого в соответствие поставлено неотрицательное число c(u) ³ 0 , называемое длиной этого ребра. Пусть, кроме того, в графе выделены две вершины: s - начальная вершина, t - конечная вершина. Требуется найти: а) кратчайший путь из вершины s в t ; б) кратчайший путь из вершины s во все остальные вершины графа.

Алгоритм нахождения кратчайшего пути состоит из двух частей. В первой части определяется длина кратчайшего пути, во второй – сам этот путь; то и другое осуществляется за конечное число шагов. На первом шаге каждой вершине xi графа G приписывается некоторое число l(xi ) , которое называется пометкой. Различают пометки двух сортов: временную

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

ипоэтому, в конце концов, становится постоянной. Процесс изменения пометок устроен так, что постоянная пометка данной вершины равна наи-

меньшему расстоянию до этой вершины от вершины s .

Алгоритм Дейкстры

Первая часть.

Шаг 1. (присвоение начальных значений). Положить l(x) = 0 для x = s и считать эту пометку постоянной. Положить l(xi ) = ∞ для xi ¹ s и считать эти пометки временными. Положить p = s .

Шаг 2. (обновление пометок). Для всех xi Γ( p) , пометки которых временные, изменить пометки в соответствии с правилом:

l(xi ) = min{l(xi ), l( p) + c( p, xi )}.

Шаг 3. (превращение пометок в постоянные). Среди всех вершин с временными пометками найти такую xi* , для которой l(xi* ) = min{l(xi )}.

Считать эту пометку вершины xi* постоянной и положить p = xi* .

32

l(xi ) :
а через

Шаг 4. (i) (Если надо найти лишь путь от s к t .) Если p = t , то l( p) является длиной кратчайшего пути. Останов.

Если p ¹ t , то перейти к шагу 2.

(ii) (Если требуется найти пути от s ко всем остальным вершинам.) Если все вершины отмечены как постоянные, то эти пометки дают длины кратчайших путей. Останов.

Если некоторые пометки являются временными, перейти к шагу 2.

Вторая часть.

Чтобы найти сам путь, надо поступить следующим образом: положить y = t (или y = xk , в случае (ii)); из всех вершин xi Γ −1 ( y) выделить такую вершину x , для которой выполняется соотношение l( y) = l(x) + c(x, y) ; затем в качестве y рассматривается найденная вершина x - процесс продолжается до тех пор, пока не будет достигнута вершина s , тогда путь из дуг, соединяющих выделенные вершины – искомый кратчайший путь из s в t (или из s в xk ).

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

Заметим вначале, что пометка вершины xi ( l(xi ) ¹ ¥ ) равна длине пути от s к xi , который построен алгоритмом к этому моменту, причем путь проходит полностью по вершинам, имеющим постоянные пометки на данный момент. Поэтому для доказательства оптимальности пути из s в xi , соответствующего постоянной пометке l(xi ) , достаточно доказать, что постоянная пометка l(xi ) каждой вершины xi равна длине кратчайшего пути из s в xi . Доказательство проведем по методу математической ин-

дукции [11, гл. 1, § 6].

Пусть вершина xi получила свою постоянную пометку на k -ой итерации, то есть после k -го выполнения шага 3. При k = 1 справедливость утверждения очевидна. Предположим, что оно верно для вершин, получивших свои постоянные пометки на итерациях 2,3,..., k − 1. Обозначим че-

рез P 0 путь из s в xi , построенный алгоритмом в результате k итераций,

P * - кратчайший путь из s в xi . По условию длина пути P 0 равна

(P 0 ) = l(xi ) . Пусть X1 и X 2 - множество вершин, имеющих соответственно постоянные и временные пометки перед началом k -ой итерации. Рассмотрим две возможные ситуации:

1) Пусть P * содержит вершины из X 2 . Пусть x - первая (считая от s ) такая вершина, принадлежащая P *, а вершина x′ предшествует x на пути P *. Согласно выбору x имеем xX 1 . Обозначим через P1 * часть пути P * от s до x . По предположению индукции l(x′) - длина кратчайшего пути из s в x′ . Поэтому

D(P1*) = l(x′) + c(x′, x) ³ l(x) .

33

Поскольку l(x) - временная пометка, а постоянная пометка l(xi ) вершины

xi выбирается

на

k -ой итерации

 

как наименьшая

из

временных, то

l(

 

) ³ l(xi ) . Объединив полученные неравенства имеем

 

 

 

 

x

 

 

 

 

 

 

 

 

D(P*) ³ D(P1 *) ³ l(xi ) = D(P 0 ) ,

 

 

 

 

то есть P 0 - кратчайший путь из s в xi .

 

 

 

 

 

 

 

 

2) Все вершины пути P * входят в X1 . Пусть x

и x′′ - такие верши-

 

 

 

 

 

 

 

′′

 

- пути P

0

. Обо-

ны, что дуга (x , xi )

принадлежит пути P *, а дуга (x , xi )

 

значив через P

часть пути P * от s в

x′ , по предположению индукции

 

 

 

= x

′′

, то сразу получаем неравенство

имеем D(P ) ³ l(x ) . Поэтому, если x

 

 

D(P*) = D(P¢) + c(x¢, xi ) ³ l(x¢) + c(x¢, xi ) = D(P 0 ) .

Допустим теперь, что x¹ x′′ . Поскольку xi получает постоянную пометку l(xi ) из вершину x′′ , а не из x′ , то

D(P*) = l(x¢) + c(x¢, xi ) ³ l(x¢¢) + c(x¢¢, xi ) = D(P 0 ) .

Таким образом, и в случае 2) верно неравенство D(P*) ³ D(P 0 ) , то есть P 0 - кратчайший путь из s в xi .

Замечание. 1) Как легко видеть, алгоритм Дейкстры применим и к смешанным и, в частности, к неориентированным графам. Для этого достаточно каждое неориентированное ребро графа, имеющее вес, рассматривать как пару дуг того же веса; 2) Если кратчайший путь от s в любую вершину xk является единственным, то дуги этого кратчайшего пути образуют дерево кратчайших путей.

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

Шаг 1. l(s) = 0 , l(xi ) = ¥ для xi ¹ s , p = s .

Первая итерация

Шаг 2. Γ(s) = {x1 , x2 , x3 }. Согласно правилу l(x1 ) = min{∞,0 + 7}= 7 , l(x2 ) = min{∞,0 + 1}= 1, l(x3 ) = min{∞,0 + 3}= 3.

Шаг 3. min(7,1,3, ∞) = 1 соответствует x2 .

Шаг 4. x2 получает постоянную пометку l(x2* ) = 1, p = x2 .

Вторая итерация

Шаг 2. Γ(x2 ) = {x1 , x4 , x5 }. Согласно правилу l(x1 ) = min{7,1 + 2}= 3,

l(x4 ) = min{∞,1 + 5}= 6 , l(x5 ) = min{∞,1 + 4}= 5 .

Шаг 3. min(3,6,5, ∞) = 3 соответствует x1 .

Шаг 4. x1 получает постоянную пометку l(x1* ) = 3, p = x1 .

34

Третья итерация

Шаг 2. Γ(x1 ) = {x4 }. Согласно правилу

l(x4 ) = min{6,3 + 1}= 4 .

Шаг 3. min(3,4,5, ∞) = 3 соответствует x3 .

Шаг 4. x3 получает постоянную пометку l(x3* ) = 3, p = x3 .

Четвертая итерация

Шаг 2. Γ(x3 ) = {x5 }. Согласно правилу

l(x5 ) = min{5,3 + 5}= 5 .

Шаг 3. min(4,5, ∞) = 4 соответствует x4 .

Шаг 4. x4 получает постоянную пометку l(x4* ) = 4 , p = x4 .

Пятая итерация

Шаг 2. Γ(x4 ) = {}t . Согласно правилу

l(t) = min{∞,4 + 2}= 6 .

Шаг 3. min(5,6) = 5 соответствует x5 .

Шаг 4. x5 получает постоянную пометку l(x5* ) = 5 , p = x5 .

Шестая итерация

Шаг 2. Γ(x5 ) = {}t . Согласно правилу

l(t) = min{6,5 + 6}= 6 .

Шаг 3. min(6) = 6 соответствует t .

Шаг 4. t получает постоянную пометку l(t) = 6 , p = t .

Все вершины графа получили постоянные пометки. Останов.

Для нахождения кратчайшего пути между вершиной s и t (например) перейдем ко второй части алгоритма. Положим y = t , найдем вершину, для которой l( y) = l(x) + c(x, y) . Единственной такой вершиной является x4 . Затем, полагая y = x4 , аналогично, находим вершину x1 и т.д. Таким

образом, кратчайший путь из вершины s в t

имеет длину шесть и прохо-

дит по дугам: (s, x2 ), (x2 , x1 ), (x1 , x4 ), (x4 , t) .

 

 

 

 

 

 

 

 

 

 

 

x 1

1

x 4

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

7

 

 

 

s

 

0

 

 

 

 

 

 

2

5

t

 

x1

 

7

3

 

 

 

 

 

 

 

 

 

 

 

 

1

4

6

 

x2

 

1

 

 

 

 

s

 

 

x3

 

3

 

 

 

 

 

x 2

 

x 5

 

 

 

 

 

 

 

3

5

 

x4

 

 

6

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x5

 

 

5

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x 3

 

 

 

t

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.1

 

 

 

 

Таблица 2.1

35

Результаты вычислений сведены в таблицу 2.1, в первом столбце которой перечислены вершины графа, а в i -том – пометки вершин на (i − 1) - ом шаге первой части алгоритма. В кружочек в таблице 2.1 обведены постоянные пометки.

Задачи и упражнения

2.1.Используя алгоритм Дейкстры, найти кратчайший путь из s в t

вграфах, изображенных на рис. 2.2.

 

 

2

 

 

 

 

 

 

 

1

 

2

1

 

 

9

 

8

 

4

 

2

 

 

 

7

 

 

t

10

 

 

5

s

1

 

 

6

 

 

t

3

3

1

s

3

3

4

 

 

 

1

 

 

 

 

 

 

 

 

2

 

9

 

 

 

8

 

 

 

 

 

9

 

7

 

 

 

 

 

 

 

 

 

 

G1

 

 

 

 

 

G2

 

 

 

5

 

 

 

 

3

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

8

3

4

 

4

2

1

6 1

t

 

 

 

 

 

 

s

5

 

 

 

t

4

5

4

8

 

 

3

7

s

6

 

 

 

 

 

 

 

 

 

 

 

2

 

 

8

 

2

 

 

 

 

 

 

 

 

 

G3

 

 

 

 

 

G4

 

Рис. 2.2

2.2. Используя алгоритм Дейкстры, найти кратчайший путь из 1 в каждую другую вершину графа, изображенного на рис.2.3.

 

 

2

6

3

 

 

 

 

2

1

 

4

 

 

 

 

 

 

 

1

3

 

7

6

 

 

 

 

 

 

 

 

5

 

5

8

 

 

 

 

 

4

5

 

 

 

Рис. 2.3

36

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

Определение 2.1. Сетью называется связный ориентированный граф G = ( X ,U ) без петель, каждой дуге (xi , x j ) которого поставлено в соответствие неотрицательное число rij ³ 0 , называемое пропускной способно- стью этой дуги, и такой, что:

1)существует ровно одна вершина s , в которую не заходит ни одна дуга; эта вершина называется источником;

2)существует ровно одна вершина t , из которой не выходит ни одна дуга; эта вершина называется стоком.

Определение 2.2. Множество чисел {xij }, определенных на дугах (xi , x j ) ÎU называют потоком в сети, если выполняются следующие условия баланса:

 

 

v, если xi = s,

а) xij

 

 

xki = − v, если xi = t,

j:x jΓ( xi )

k:xk Γ−1( xi )

 

0, иначе.

 

 

 

б) 0 £ xij

£ rij для всех (xi , x j ) ÎU .

Величиной потока {xij } называется число v ³ 0 . Поток с максималь-

ной величиной v = v * называется максимальным потоком.

 

Замечание. Величина потока v =

xsj

- xks =

xsj , с дру-

 

 

 

j:x j Γ( s)

k:xk Γ(s)

j:x j Γ(s)

гой стороны - v = xtj -

xkt

= -

xkt

. Получаем, что

j:x j Γ(t )

k:xk Γ−1 (t )

 

k:xk Γ−1 (t )

 

 

v =

xsj =

 

xkt .

 

(2.1)

 

j:x j Γ( s)

k:xk Γ−1 (t )

 

 

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

Разрез в сети. Пусть R Ì X и R = X \ R - множество вершин графа, не принадлежащих множеству R , тогда множество дуг

(R, R ) = {(xi , x j ) U : xi R, x j R}

называется разрезом в сети.

Если при этом источник s R , а сток t R , то говорят, что разрез

(R, R ) отделяет s от t .

Любой разрез, отделяющий s от t , содержит по одной дуге каждого пути в графе G , ведущего из s в t . Таким образом, если из множества дуг сети изъять дуги произвольного разреза, отделяющего s от t , то не останется ни одного пути, ведущего из s в t .

Пропускной способностью разреза (R, R ) называется число

r(R, R ) = rij ,

( xi , x j ) ( R,R )

37

т.е. пропускная способность разреза равна сумме пропускных способно-

стей дуг, входящих в этот разрез.

Из всех разрезов, отделяющих s от t , минимальным называется разрез (R*, R*) с минимальной пропускной способностью r(R*, R*) :

r(R*, R*) = min r(R, R ) ,

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

Обозначим через Χ(R,

 

) =

 

 

xij

- сумму потоков ориентиро-

R

 

 

 

 

 

( xi , x j ) ( R,

 

)

 

 

 

 

 

 

 

 

R

 

 

 

ванных из R в

 

. Аналогично, Χ(

 

, R) =

xki - сумма потоков ориен-

R

R

 

 

 

 

 

 

 

( xk , xi ) (

 

,R)

 

 

 

 

 

 

 

R

тированных из R в R.

Вследующем подразделе будет доказана теорема Форда-Фалкерсона

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

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

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

Модификации задачи о максимальном потоке:

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

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

38

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

 

 

Теорема 2.1. Для

 

любого потока величины v

и любого разреза

(R,

 

) , отделяющего s от t , справедлива следующая формула

R

 

 

 

v = Χ(R,

 

) − Χ(

 

, R) .

 

(2.2)

 

 

 

R

R

 

 

 

Доказательство. По определению потока и величины потока

 

 

 

xij

 

 

 

v, если xi = s,

 

 

 

xki =

если xi R-{s}.

 

 

j:x jΓ( xi )

k:xk Γ−1( xi )

 

 

0,

Просуммируем по всем вершинам в R , получаем

 

 

 

 

xij

 

xki

= v .

(2.3)

 

 

xi R

j:x jΓ( xi )

 

xi R

k:xk Γ−1( xi )

 

В левой части этого равенства

xij и − xij для i R и

j R появляются

точно по одному разу и поэтому взаимно уничтожаются. Следовательно, выражение (2.3) упрощается до

∑ ∑ xij

∑ ∑ xki = v ,

xi R j:x jΓ( xi )

xi R k:xk Γ−1( xi )

x j

R

 

xk

 

 

 

R

Χ(R, R ) − Χ(R , R) = v .

Следствие 2.1. Формула (2.1) является частным случаем формулы

(2.2). (Доказать самостоятельно.)

 

 

 

Следствие 2.2. Для любого потока величины v

и любого разреза

(R,

 

) , отделяющего s от t , справедлива следующая формула

R

 

 

v r(R,

 

) .

(2.4)

 

 

R

Доказательство. Так как xij ³ 0 и xij £ rij для всех (xi , x j ) ÎU , то из формулы (2.2) следует

v = Χ(R, R ) − Χ(R , R) ≤ Χ(R, R ) ≤ r(R, R ) .

Теорема Форда-Фалкерсона. Величина максимального потока в сети из s в t совпадает с пропускной способностью минимального разреза, отделяющего s от t в этой сети, т.е. v* = r(R*, R*) .

Доказательство. Пусть {xij* } максимальный поток в величины v *.

Рассмотрим произвольный разрез (R, R ) , отделяющий s от t , в силу след-

ствия 2.2, справедлива следующая формула v* ≤ r(R, R ) .

Покажем, что существует разрез, где v* = r(R, R ) . Для этого по имеющемуся максимальному потоку {xij* } построим специальный разрез, следуя правилу:

1. Начать, полагая R* = {s}.

2. а) Если xi R * и, кроме того, xij* < rij , то x j включить в множество R *, т.е. x j R * (правило включения по прямой дуге);

б) Если xi R * и, кроме того, x*ji > 0 , то x j включить в множество R *, т.е. x j R * (правило включения по обратной дуге).

39

Докажем, что при таком способе построения множества R * сток t не попадет в R *.

Предположим, что существует путь P , соединяющий s и t , по дугам которого последовательно, используя правило 2а или 2б, удалось включить t в R *.

Пусть

 

θ1 = min [rij

xij* ], если (xi , x j ) U - прямая дуга,

( xi , x j )

 

θ 2 = min

xij* , если (xi , x j ) U - обратная дуга

( xi , x j )

 

Определим положительное число

θ = min{θ1 2 } , θ > 0 .

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

Рассмотрим вершину s , из нее выходит поток величины v *, после изменения величина потока стала v * +θ , но θ > 0 , следовательно, v * +θ > v *, но по определению величина потока v * максимальна, получи-

ли противоречие, следовательно,

такого пути P не существует, поэтому

t R *, следовательно t

 

* .

 

 

 

 

 

 

 

 

 

 

R

 

 

 

 

 

 

 

 

Таким образом,

 

 

 

разрез (R*,

 

*)

который является, во-

получили

R

первых, отделяющим s

от t , во-вторых, в силу теоремы 2.1,

v* = Χ(R*,

 

*) − Χ(

 

*, R*).

(2.5)

R

R

Покажем, что этот разрез есть искомый минимальный разрез.

Рассмотрим дуги, входящие в разрез. Пусть

(xi , x j ) (R*,

 

*) , т.е.

R

xi R *, x j R *. Рассмотрим величину максимального потока xij* на дуге

(xi , x j ) (R*, R*) . По определению потока: xij* < rij или xij* = rij . Если xij* < rij , то согласно правилу 2а, x j следует включить в R *, что противо-

речит тому,

что x j

 

*,

следовательно, xij*

= rij

на всех дугах разреза.

R

Рассмотрим

величину

максимального

потока

x*ji

на

дуге

(x j , x j ) (

 

*, R*) . По определению потока:

x*ji

> 0

 

x*ji = 0 .

 

R

или

Если

x*ji > 0 , то согласно правилу 2б, x j следует включить в R *, что противо-

речит тому,

 

x j

 

*, следовательно, x*ji = 0 на всех дугах разреза.

что

R

Итак, xij* = rij

и x*ji

= 0 .

 

 

Просуммируем

40