Файл: Ху, Т. Целочисленное программирование и потоки в сетях.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.10.2024

Просмотров: 194

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

 

*

154

ГЛ. 8. МАКСИМАЛЬНЫЙ ПОТОК

О ^

hj ^ ха ^ bij. Требуется определить, существует ли поток

из источника N s в сток N и удовлетворяющий на дугах ограниче­ ниям сверху и снизу. Ответим на этот вопрос сначала в случае, когда в сети имеется только одна ориентированная дуга с ограни­ ченным снизу дуговым потоком. Обозначим эту дугу через A tj, а нижнюю границу потока по ней — через ltj. Расширим сеть, добавив два новых узла — искусственный источник N j с предло­ жением ltj и искусственный сток N t с таким же спросом Про­ пускную способность дуги А и изменим: если она была равна Ъц, то в новой сети она станет равной Ьц l tj. Добавим, кроме того,

v

•ориентированную дугу из N t в N s с бесконечной пропускной способностью. Будем искать в расширенной сети максимальный поток из источника Nj в сток N t. Если величина этого потока в расширенной сети больше или равна 1ц, причем поток по дуге A ts равен xts, то^в исходной сети существует такой поток из N s

в N t величины v = xts,

что

^ Хц. Исходная и расширенная

■сети изображены на рис.

8 . 1 1

и 8 . 1 2 соответственно.

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

Рассмотрим теперь несколько хорошо известных результатов из комбинаторики, которые могут быть сформулированы в терми­ нах максимального потока и минимального разреза. Подробности можно найти в [67].

Граф называется двудольным г), если его узлы можно разбить на два непересекающихся множества S и Т (S = {S t}, i = 1 , 2 , . . .

. . ., m, и Т = {ГД, ] = 1 , 2

, . . .,

п), так, что каждая дуга гра­

фа соединяет некоторый узел

из S

с узлом из Т.

х) В книге [67] такие графы называются двусторонними.— Прим, перев.


8.3. ПРИЛОЖЕНИЯ

155

Множество узлов называется (S , Т)-рассекающим множеством, «ели удаление из графа этих узлов вместе с инцидентными им дуга­ ми разрывает все цепи из S в Т .

Теорема 8.4 (теорема Кёнига — Эгервари). Пусть G дву­ дольный граф. Максимальное число дуг графа G, попарно не имею­ щих общих узлов, равно минимальному числу узлов в (S , Т)-рас- секающем множестве узлов.

Т еорема 8.5 (теорема Менгера). Пусть- S и Т два непересекающихся подмножества узлов графа. Максимальное число цепей из S в Т, попарно не имеющих общих узлов, равно минимальному числу узлов в (S , Т)-рассекающем множестве узлов.

Граф называется ориентированным, если он содержит только ориентированные дуги. Граф называется ациклическим, если он не содержит циклов. Пусть G — ациклический ориентированный граф. Разложение графа G на цепи есть такое разбиение множества узлов и дуг графа G на цепи, что каждый узел из G принадлежит одной и только одной цепи (или говорят, что множество цепей покрывает граф). Разложение с минимальным числом цепей назо­ вем минимальным. Будем говорить, что N j больше, чем N t, если имеется цепь, ведущая из N t в N } (это отношение порядка будем обозначать следующим образом: N t > N j). Два узла ациклическо­ го графа называются несравнимыми, если не выполняется ни N t >

> N j, ни N j >

N t.

*

(теорема Дилворта). Максимальное число взаимно

Т еорема 8 .6

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

Пусть

N — {N

N г, . . ., N n} — заданное множество эле­

ментов;

S = {St, S 2,

. . ., S m} — некоторое семейство подмно­

жеств данного множества N . Набор R различных элементов мно­

жества N

 

 

R

=■ { NH, N n , . . ., N jm)

называется системой различных представителей семейства S, если

N jt 6 St, i = 1 , . . .,

т.

3,

4, 5},

=

{2,

4,

5},

S 2 =

Например,

пусть

N = {1, 2,

= {1, 5}, S 3 =

{3, 4},

S t = {3,

4}.

Тогда

R =

{5,

1,

3,

4}

есть

система различных представителей для S — {Si,

S 2, S 3,

<S4}.

Т еорема 8.7 (теорема Холла). Система различных представи­ телей для семейства S существует в том и только том случае, если объединение любых к множеств из S содержит по крайней мере к различных элементов, к = 1 , 2 , . . ., т.


156

ГЛ. 8. МАКСИМАЛЬНЫЙ ПОТОК

8.4. Линейное программирование и потоки в сетях

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

Граф Н , содержащий п узлов, является деревом, если выпол­ няются любые два из следующих трех условий:

1)граф Н связный,

2)граф Н не имеет циклов,

3)число дуг в Н равно п — 1.

Подграф Я графа G называется связывающим деревом1), если Н является деревом и каждый узел из G принадлежит Н.

Если граф G содержит п узлов, то всякий подграф графа G, являющийся деревом и содержащий п узлов, будет являться свя­ зывающим деревом. Если каждой дуге графа или сети поставить в соответствие некоторое число dij (длину дуги), то можно ввести понятие минимального (или максимального) связывающего дерева.

Минимальным (или максимальным) связывающим деревом графа

(сети) называется такое связывающее дерево, у которого сумма длин dtj всех дуг минимальна (или максимальна) среди всех свя­ зывающих деревьев этого графа (сети).

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

Рассмотрим, например, сеть, изображенную на рис. 8.1. Дуго­ вые потоки в сети будем рассматривать в качестве 6 переменных: xs2 , xs3, . . ., Xjf Хотя v выражается через хц, (v = xs2 + xs3),

будем считать v седьмой переменной. Задачу о максимальном потоке можно сформулировать как задачу линейного программи­ рования следующим образом:

максимизировать

Z = сх

при условиях

А'х = 0, А"х<Ь, х > 0 ,

(1)

J) В литературе связывающее дерево часто называют деревом-остовом.—

П р и м , перее .


 

8.5. СВОЙСТВО АБСОЛЮТНОЙ УНИМОДУЛЯРНОСТИ

159

уравнений

 

Ах =

Ь,

 

 

 

 

где X — [р,

3'2ч ■• *?

?^2? • • •?

 

 

А — матрица размера

(п + т) X (2т + 1).

 

Если теперь нужно перевезти заданное количество товара из источника в сток с минимальными затратами, то, возможно, не удастся весь поток пропустить по единственной цепи. Но число

ненулевых

базисных переменных всегда будет меньше чем п

— 1 + т.

Это значит, что задача останется вырожденной.

8.5. Свойство абсолютной унимодулярности (Гофман, Краскал [103], Вейнотт, Данциг [199])

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

максимизировать

2

=

СХ

 

при условиях

 

 

 

Ах =

Ь,

х ГЗг 0.

(1)

Задача о максимальном потоке, изучаемая в этой главе, и зада­ ча о потоке минимальной стоимости (гл. 1 0 ) могут быть представ­

лены в виде (1). В § 8.2 было показано, что всегда существует целочисленное оптимальное решение задачи о максимальном потоке, если пропускные способности дуг целочисленны. Мы не мо­ жем утверждать, что и для общей задачи линейного программиро­ вания оптимальное решение всегда целочисленно.

Будем исследовать подкласс тех задач линейного программи­ рования, которые обладают целочисленным оптимальным реше­ нием. Гофман и Краскал [103] показали, что задача линейного программирования с ограничениями Ах ^ Ь, х ^ 0, всегда имеет целочисленное оптимальное решение при любом целочисленном векторе ограничений Ь, если матрица А является абсолютно унимодулярной.

Напомним, что матрица А называется абсолютно унимодулярной, если все ее миноры равны либо 0, либо ± 1 . Результат, полу­ ченный Гофманом и Краскалом, означает, что выпуклый много­ гранник, определяемый ограничениями Ах ^ Ь, х ^ 0, имеет целочисленные крайние точки при любом целочисленном векторе Ь, если матрица А абсолютно унимодулярна. Ясно, что условие абсо­ лютной унимодулярности матрицы А достаточно для существова­ ния целочисленного оптимального решения. Труднее показать, что это условие является и необходимым. Доказательство Гофма­


160

ГЛ. 8. МАКСИМАЛЬНЫЙ ПОТОК

на и Краскала [103] довольно громоздко, поэтому рассмотрим более простое доказательство Вейнотта и Данцига [199].

Если А есть X н)-матрица ранга т, то любую ее квадрат­ ную подматрицу ранга т назовем базисом матрицы А.

Т еорема 8.8. Пусть задача линейного программирования имеет ограничения вида Ах = Ь, х ^ 0. Если при этом матрица А целочисленна, ее вектор-строки линейно независимы, а вектор Ь целочислен, то следующие три условия являются эквивалентными.

1.Определитель любого базиса В матрицы А равен 1 или —1

2.Все крайние точки выпуклого многогранника С, определяе­ мого ограничениями Ах = Ь, х ^ 0, целочисленны при любом целочисленном векторе Ь.

3.Обращение В"1 любого базиса В является целочисленной матрицей.

Доказательство. Из условия 1 следует условие 2. Действи­

тельно, пусть х — произвольная крайняя точка выпуклого мно­

гогранника

С,

 

а В — соответствующий ей базис.

Тогда

х =

= [xB, x N],

где

Вхд = Ь,

и

x N = 0. По предположению

Ь —

целочисленный вектор, а по условию

1, det В = ± 1 .

Тогда по

правилу

Крамера

следует,

что

х в — целочисленный

вектор.

Значит,

крайняя точка х =

[хв, х^]

целочисленна.

 

 

 

 

Из условия 2 следует условие 3.

Действительно, пусть В —

базис, а

у — произвольный

целочисленный вектор,

такой,

что

у +

В _1ег ^

0,

где

е, есть

i-й единичный вектор-столбец. Пусть

z =

у +

В - Ч

^

0.

Тогда

Bz =

By

— целочисленный век­

тор, так как В, у, е* целочисленны. Поскольку в качестве Ь мож­ но взять любой целочисленный вектор, то положим Bz = Ь. Имеем Bz = b, z ^ 0, а это значит, что z является крайней точ­ кой выпуклого многогранника С, определяемого ограничениями Ах = Ь, х ^ 0. По условию 2 z является целочисленным векто­ ром. Но z — у В_1ег, значит, В_1ег — целочисленный вектор (как разность двух целочисленных векторов z и у). Вектор В_1ег является i-м вектор-столбцом в В-1, значит, i-й столбец матрицы

В-1

целочислен. Эти рассуждения справедливы для любого ег,

г =

1, 2, . . .,

т. Следовательно, матрица В-1 целочисленна.

Из условия

3 следует условие 1. Пусть В — некоторый базис.

По предположению матрица В целочисленна и, следовательно, det В — целое число, не равное 0. По условию 3, В-1 — целочис­ ленная матрица, det В-1 — также целое число, не равное 0. Но

(det В) (det В-1) = 1, откуда следует, что det В = det В-1 = ± l - i

Аналогичные результаты могут быть получены для выпуклого многогранника С, определяемого ограничениями Ах ^ Ь, х ^ 0.