Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Баушев, Гадасина - Оптимизационные задачи на се...doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
4.39 Mб
Скачать

§ 3. Поток минимальной стоимости.

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

Если , то подмножество дуг называется носителем потока .

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

Стоимостью потока называется величина

. (5.9)

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

, (5.10)

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

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

(5.11)

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

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

. (5.12)

Разложение (5.12) неоднозначно, однако суммарная стоимость потоков в правой его части одна и та же для различных разложений, так как она равна стоимости потока :

(5.13)

Пример такой неоднозначности разложения на единичные потоки показан на рис. 5.6. Поток величины 2 имеет представления , где

, , , .

Рис. 5.6. Неоднозначность разложения на единичные потоки.

Соотношения (5.12) и (5.13) подсказывают следующую идею решения задачи (5.10). Поскольку требуется найти поток , для которого найдется разложение (5.12) с минимальным значением правой части равенства (5.13), разумно действовать следующим образом. На первом шаге следует найти наиболее дешевый путь от источника к стоку и вычислить его пропускную способность . Если окажется, что , то очевидно, что поток является решением задачи. В противном случае положим и найдем наиболее дешевый путь , состоящий из ненасыщенных дуг.

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

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

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

. (5.14)

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

(5.15)

На рис. 5.7 приведен пример применения описанной процедуры, т. е. показано соответствие между маршрутами в исходной Т-сети и путями в расширенной сети. Маршруту в исходной сети соответствует путь в расширенной сети. Первое число на дуге – ее остаточная пропускная способность, второе – стоимость транспортировки единичного потока по дуге. Сумма первых чисел на прямой и обратной дугах равна исходной пропускной способности дуги. Вес пути , равный , совпадает со значением выражения в квадратных скобках (5.14) для маршрута .

Рис. 5.7. Соответствие между маршрутами в исходной Т-сети и

путями в расширенной сети.

Если в выражении (5.14) положить , то можно видеть, что приращение стоимости будет наименьшим из возможных в том и только том случае, когда является кратчайшим (самым дешевым) путем от источника к стоку в расширенной сети. Очевидно, что путь не должен содержать насыщенных дуг, а также то, что пропускные способности прямых дуг в расширенной сети следует положить равными остаточным пропускным способностям, поскольку речь идет об алгоритме последовательного насыщения путей в исходной Т-сети, основанного на соотношениях (5.13).

Уточним понятие модифицированной сети.

Определение 5.3. Сеть называется модификацией Т-сети относительно потока , если:

1) , где ;

2)

3)

Замечание 5.6. Если поток ненулевой, то модифицированная сеть не являетя Т-сетью, поскольку нарушены пункты 1) и 2) определения Т-сети. Однако фактически сеть используется только для корректного поиска оптимального разложения (5.12). Значения возникающих в процессе алгоритма потоков на фиктивных дугах всегда равны нулю, т. е. потоки всегда текут в исходной Т-сети.

Алгоритм решения задачи (5.10), основанный на поочередном использовании алгоритма поиска кратчайшего пути в модифицированной сети, увеличения потока вдоль маршрута, соответствующего найденному пути, и построения новой модификации сети, называется алгоритмом Басакера – Гоуэна по именам авторов, впервые его предложивших [19]. Обоснование корректности этого алгоритма является нетривиальной задачей, поскольку даже если в выражении (5.14) – поток минимальной стоимости величины , а – маршрут, для которого выражение в квадратных скобках минимально, то отсюда еще не следует, что будет потоком минимальной стоимости величины . Дело в том, что множество маршрутов, удовлетворяющих условиям применимости процедуры , т. е. множество, по которому ищется минимум выражения в квадратных скобках соотношения (5.14), зависит от имеющегося потока. Доказательство корректности алгоритма Басакера – Гоуэна можно найти в работе [6]. Отметим, что замечательной особенностью этого алгоритма является тот факт, что на каждой итерации он строит поток наименьшей стоимости, выполняя их до тех пор, пока либо не будет построен поток требуемой величины , либо будет сделан вывод, что задача не имеет решения, т. е. что .

Пример 5.2. Построить поток величины в Т-сети, изображенной на рис. 5.8, который имеет минимальную стоимость. (Первое число на дуге – ее пропускная способность, второе – стоимость транспортировки единичного потока по дуге).

Рис. 5.8. Т-сеть к примеру задачи о потоке

минимальной стоимости.

Для решения задачи применим алгоритм Басакера – Гоуэна.

1-я итерация. Находим кратчайший путь в сети . Это путь . Стоимость транспортировки единичного потока по этому пути равна , а его пропускная способность равна Поскольку , полагаем и модифицируем сеть (рис. 5.9).

Рис. 5.9. Сеть после первой модификации.

2-я итерация. Находим кратчайший путь от источника к стоку в сети по рис. 5.9: . Стоимость транспортировки единичного потока по этому пути равна , а пропускная способность составляет Так как , полагаем и модифицируем сеть (рис. 5.10).

Рис. 5.10 . Сеть после второй модификации.

3-я итерация. Находим кратчайший путь от источника к стоку в сети по рис. 5.10: . Стоимость транспортировки единичного потока по этому пути равна , а его пропускная способность равна . Поскольку , полагаем и модифицируем сеть (рис. 5.11).

Рис. 5.11. Сеть после третьей модификации.

4-я итерация. Находим кратчайший путь от источника к стоку в сети по рис. 5.11: . Стоимость транспортировки единичного потока по этому пути равна , а его пропускная способность составляет . Так как , оставшиеся пять единиц мы «переправляем» вдоль пути , что фактически означает увеличение в исходной Т-сети потока на пять единиц применением к маршруту процедуры . Следовательно, на дугах поток увеличивается на 5 единиц, а на дуге уменьшается. Модификация сети относительно итогового потока показана на рис. 5.12.

Рис. 5.12. Сеть после итоговой модификации.

По рис. 5.12 легко строится итоговый поток . Он показан на рис. 5.13.

Рис. 5.13. Поток минимальной стоимости величины 25 для Т-сети на рис. 5.8.

Для потока можно написать следующее представление в виде суммы -потоков: . Стоимость потока равна у.е.

При реализации алгоритма Басакера – Гоуэна на компьютере для поиска кратчайшего пути в модифицированной сети можно воспользоваться любым из описанных в главе 2 алгоритмов поиска кратчайших путей в сети с произвольными весами. Если использовать, например, алгоритм Форда – Беллмана, то время его работы допускает оценку при . В этом случае для времени работы алгоритма Басакера – Гоуэна имеем оценку .

Наряду с алгоритмом Басакера – Гоуэна для решения задачи построения потока минимальной стоимости широкой популярностью пользуется также алгоритм Клейна [20]. В этом алгоритме задача решается в два этапа: на первом этапе строится начальный поток требуемой величины, а на втором осуществляется процедура уменьшения стоимости имеющегося потока, также использующая модификацию исходной Т-сети относительно имеющегося потока.