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

Вагнер Г. Основы исследования операций [PDF] / Вагнер_Основы исследования операций_т1

.pdf
Скачиваний:
86
Добавлен:
02.05.2014
Размер:
6.68 Mб
Скачать

320

ПРИЛОЖЕНИЕ I

Шаг 2. Оценки vt и Wj изменяются таким образом, чтобы относительная оценка по крайней мере одного нового маршрута была равна нулю. Возвращаются к шагу 1.

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

 

10

ш

-2

 

 

~3

10]

J8

 

-2

 

-5

15 \

 

o

Р и с. 1.12. Оценки маршрутов оптимального решения задачи о назначениях.

 

/2 |

25]

т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

18

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

V;

 

JJ

JO]

 

-0]

 

vl

 

 

 

JO]

15j

 

Л]

 

0

 

J5]

2

0

to\

 

\M]

 

 

 

 

 

0

ff

3

 

8

 

 

 

 

 

 

 

 

 

 

 

 

^0

0

20]

3

 

0

8

 

10 \

18]

,20]

 

 

 

JJ]

0

0

 

a

 

i

 

0

0

ff

 

3

 

 

 

 

 

W]

 

 

 

Ml

 

M\

 

W

 

1S\

2

25]

0

12

 

 

3

4

 

4

^

0

 

1

2

 

 

 

 

 

 

 

 

 

 

izJ

JJ

 

 

M]

 

2J]

27]

 

J^ ff 8

 

12]

25]

 

10

 

 

2

^ 7

 

7

 

0

5

5

 

0

 

WJ

2

 

W

12

0

 

 

WJ

2

10

12

-2

 

 

Р и с. 1.13. Относительные оцен-

Р и с . 1.14. Измененные относи-

ки

маршрутов

модели назначе-

тельные оценки алгоритма макси-

ний:

сц -

 

 

 

 

 

 

мального потока.

 

 

 

 

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

со значений, приведенных в таблице на рис. 1.13.

Алгоритм максимального потока используется на шаге 1 для определения существования допустимого решения, содержащего только маршруты с нулевыми элементами таблицы на рис. 1.13. Имеются упрощенные табличные приемы реализации этого алгоритма, но поскольку основной целью в данном случае является разъяснение эффективности алгоритма максимального потока для решения

АЛГОРИТМЫ РЕШЕНИЯ СЕТЕВЫХ ЗАДАЧ

321

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

Сеть, содержащая маршруты (дуги) с нулевыми относительными оценками, соответствующими элементам таблицы на рис. 1.13, построена на рис. 1.15. Обозначения узлов гг соответствуют строке г таблицы на рис. 1.13, и аналогично обозначения kj соответствуют столбцу }

Поток=3

Р и с . 1.15. Поток в сети модели назначений.

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

Если бы максимальный поток в сети был равен четырем, то соот-

ветствующее этому потоку решение

являлось бы

оптимальным,

поскольку единичный поток по дуге

(r t , kj) означает, что Хц = 1.

Пробное решение, в котором величина потока равна

трем, показано

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

Рациональный путь изменения значений величин vl и Wj заключается в следующем. Поскольку поток в сети, изображенной на рисунке 1.16, максимален, но меньше четырех единиц, необходимо ввести по крайней мере одну новую дугу (rt , kj). Исходя из характера потокового алгоритма, целесообразно ограничиться только такими дугами, у которых узел rt помечен, а узел kj не помечен. Если ввести в сеть такую дугу, то шаги потокового алгоритма можно продолжить, что позволит просмотреть по крайней мере еще один узел kj.

Однако, изменяя значения величин vt и Wj, необходимо проявлять осмотрительность, чтобы не нарушить равенства Сц vt Wj = = 0 для дуг, по которым в текущем решении проходит ненулевой поток, а также для дуг, помеченных знаком -)- в процессе просмотра сети. В противном случае может оказаться невозможным продолже-

322

ПРИЛОЖЕНИЕ I

V

Р и с . 1.16. Просмотр сети для обнаружения возможности увеличения потока.

ние просмотра после реализации шага 1 (рис. 1.16). Кроме того, необходимо сохранить соотношение сц Vi Wj ^0 для всех i и /'. Правило, обеспечивающее выполнение всех этих условий, формулируется следующим образом.

1) Прибавить величину с

к vt,

если помечен узел rt.

 

2) Вычесть величину с из

Wj,

если помечен узел kj.

(5)

Здесь

с — наименьшая относительная оценка для дуг между каждым помеченным узлом гг и непомеченным узлом kj. (6)

На рис. 1.16 узлы г3 и г4 помечены, а узлы &ь kz, k3 не помечены. Следовательно, в таблице на рис. 1.13 нужно просмотреть элементы на пересечении строк 3 и 4 со столбцами 1, 2, 3, в результате чего получаем

7 = min (3,4, 4, 2 , 7 , 7 ) =2 = си.

(7)

В таблице на рис. 1.14 приведены измененные значения

vt и Wj,

а также новые значения относительных оценок. Отметим, что теперь дуга (r4, ki) имеет относительную оценку, равную нулю, хотя дуге (гь 4) соответствует положительная относительная оценка. Сеть, отображающая это решение, показана на рис. 1.17. Алгоритм максимального потока на такой сети продолжает работать и помечаются узлы ki, TI, k2, fa, &з и, наконец, сток. Знаки -[-и — на дугах определяют путь, увеличивающий поток, который приводит к оптимальному решению, показанному на рис. 1.18.

Повторим еще раз вкратце рассмотренный алгоритм. Начав с пробных значений v( и Wj на шаге 1, нужно применить алгоритм максимального потока к соответствующей сети. Если полученная в результате величина общего потока в сети равна п, то решение оптимально

АЛГОРИТМЫ РЕШЕНИЯ СЕТЕВЫХ ЗАДАЧ

323

V V

Р и с . 1.17. Измененная сеть.

Паток-Ч

Ри с . 1.18. Окончательное решение.

ивычислительная процедура заканчивается. В противном случав

следует перейти к шагу 2, на котором значения vt и Wj изменяются в соответствии с правилами (5) и (6). Далее возвращаются к шагу 1

инесколько измененной в результате выполнения этого шага сети,

вкоторую введена по крайней мере одна новая дуга (в предположе-

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

Доказательство того, что решение, полученное при остановке алгоритма, является оптимальным, идентично доказательству опти-

324 ПРИЛОЖЕНИЕ

мальности решения транспортной модели симплексным методом.

Сходимость

за

конечное число

итераций устанавливается, исходя

из следующих

соображений.

 

1. Всякий раз при реализации шага 2 по крайней мере один узел

оказывается

просмотренным на

последующем шаге 1. Поскольку

число узлов в сети конечно, шаг 2 в конце концов приводит к прорыву на последующем шаге 1.

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

Одним из следствий доказательства сходимости является то, что

для получения решения не требуется применять

шаг 2 более чем

0,5 (nz -{- Зп — 2) раа. Эта верхняя граница, как

правило, намного

превышает действительное число повторений шага 2. Вместе с тем следует подчеркнуть, что даже такая верхняя граница значительно меньше, чем (п*п~1), которая является верхней оценкой сходимости симплексного алгоритма, выраженной через число возможных базисных решений.

Потоковый подход к решению задачи о назначениях несколько

напоминает

двойственный симплексный

метод в том смысле, что

на каждой

итерации удовлетворяются

двойственные ограничения,

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

Метод минимальной стоимости/максимального потока. Чтобы приступить к шагу 1 изложенного выше метода, нужно найти оценки vf и Wj, такие, чтобы все относительные оценки ctj vt Wj были неотрицательными. Без потери общности можно предположить, что все C j / ^0, поскольку всегда можно прибавить некоторую поло-

жительную константу

с* к каждому коэффициенту ctj. Тогда шаг 1

изложенного ранее метода можно начать, положив

vt = ws ~ 0.

Если выполнить это

условие, то оказывается, что

последователь-

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

маршрута.

АЛГОРИТМЫ РЕШЕНИЯ СЕТЕЛЫХ ЗАДАЧ

325

Алгоритм минимальной стоимости/максимальногопотока сводит-

ся к выполнению следующих шагов.

Шаг 1. Исходя из текущего решения, строится новая сеть сле-

дующим образом. В эту

сеть включается каждая

дуга, имеющая

в исходной сети нулевой

поток, и сц принимается

за длину дуги.

Р и с . 1.19. Сеть, соответствующая методу минимальной стоимости максимального потока.

Если между узлами г( и kj существует поток, то вводится дуга (kj, rt} и ее длина принимается равной —с^. При таком принципе построения сети можно увеличить поток из источника в сток по любому пути новой сети по сравнению с величиной потока в исходной сети.

Шаг 2. Найти кратчайший маршрут из источника в сток в новой сети. По стандартным правилам увеличить поток по этому маршруту (пути) в исходной сети. Если все ограничения модели назначений удовлетворяются, то вычислительная процедура заканчивается.

Впротивном случае осуществляется переход к шагу 1. Изложенный метод демонстрируется на примере рис. 1.4. Пред-

положим, что в результате применения алгоритма найдено решение минимальной стоимости для величины потока в три единицы. Это решение совпадает с рис. 1.15, а его стоимость составляет 28 (= 2 + 18 + 8).

Новая сеть, построенная на шаге 1, показана на рис. 1.19. Отметим, что источник связан только с узлом ra, а сток — только с узлом &з> поскольку все остальные дуги являются насыщенными. Сеть

326

ПРИЛОЖЕНИЕ I

10

Р и с. 1.20. Кратчайший маршрут.

содержит дуги (&lt п), (&2, г2) и (&4, r4), так как в текущем решении поток имеет противоположное направление. В текущем решении

потоки по всем остальным дугам равны нулю.

Далее к этой сети применяется алгоритм выбора кратчайшего маршрута, изложенный в разд. 7.6, который приводит к результату, показанному на рис. 1.20. Направление единичного потока по указанному маршруту дает оптимальное решение, согласующееся с рис. 1.18. Отметим, что направление единичного потока по дуге (&4, г&) означает, что в исходной сети поток по дуге (г4, &4) должен быть снят. Поскольку длина кратчайшего пути равна 24, общая стоимость окончательного решения составляет 52 (— 28 + 24). Длина кратчайших маршрутов из каждого узла rt является оптимальным значением —vt, и аналогично длина кратчайшего маршрута из каж-

дого узла kj есть оптимальное значение Wj.

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

приведен в разд. 7.6.

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

АЛГОРИТМЫ РЕШЕНИЯ СЕТЕВЫХ ЗАДАЧ

327

СталВеи,

 

 

1

2

4

 

 

Строка. 7

®

10

0

1

Р и с . 1.21. Задача

о назначениях

 

 

 

 

 

 

 

размерности 3 X 3 .

2

10

®

3

 

 

4

12

25

®

1

размерности 2 x 2 , после чего продолжают действовать по той же

схеме, добавляя на каждой итерации по одной строке и одному столб-

цу, пока не получают решения задачи размерности п X п. При задан-

ном решении задачи

размерности р X р для формирования задачи

размерности (р + 1)

X

+ 1) можно выбрать любую из оставших-

ся строк и любой из

оставшихся столбцов.

Как и прежде, этот метод поясняется на примере рис. 1.4. Предположим, что решена задача размерности 3 X 3, в которую вошли строки 1, 2 и 4 и столбцы 1, 2 и 4 (таблица рис. 1.4). Для удобства на рис. 1.21 приведена соответствующая таблица, в которой обведенные кружками величины Сц соответствуют оптимальному решению этой задачи. Отметим, что решение не отличается от решения, пока-

занного на рис. 1.15.

Для формирования задачи размерности 4 x 4 добавим оставшиеся третью строку и третий столбец таблицы на рис. 1.4, в результате чего получим таблицу на рис. 1.22. Вычислим далее относительные

оценки Сц vt, где vt = 0 для новой строки, а остальные величины

z>i являются значениями ctj для оптимальных маршрутов в задаче

размерности

3x3 . Полученный результат приведен

в таблице

на рис. 1.23.

Отметим, что эта таблица имеет такой же

вид, как и

таблица задачи выбора кратчайшего маршрута, приведенная на рисунке 6.9. Сеть, в которой обозначения узлов соответствуют таблице на рис. 1.23, показана на рис. 1.24.

 

 

 

Столбец

 

 

 

 

 

Z

4

3

 

 

Строка 3

15

2<t

10

1

Р и с . 1.22. Задача о назначениях

1

2

10

0

15

1

размерности 4 x 4 .

2

10

IS

9

20

1

 

4

12

25

8

27

1

328

ПРИЛОЖЕНИЕ I

Узел

1BJ7

 

 

 

 

0

а

1S

24

10

25

г

0

8

-2

13

2

z

0

2

18

j

4

п

а

13

8

 

 

 

 

 

 

26

 

 

 

 

Р и с . 1.23. Относительные оценки маршрутов: с^ — vt.

Р и с . 1.24. Сеть, соответствующая методу решения задачи о назначениях размерности 4 x 4 .

Применим алгоритм выбора кратчайшего маршрута для отыскания наилучшего пути из узла 0 в узел 4 на сети, представленной на рис. 1.24. Решение, показанное на рис. 1.25, соответствует оптимальному решению исходной задачи о назначениях.

Чтобы показать эффективность предложенного метода, требуется доказать неотрицательность длины любого пути вдоль каждого контура, содержащегося в сети, где отыскивается кратчайший маршрут. Напомним, что это условие является обязательным для применения алгоритма отыскания кратчайшего маршрута. Анализируя рис. 1.24, приходим к выводу, что единственными возможными контурами являются контуры, проходящие через узлы 1, 2 и 3, соответствующие строкам и столбцам задачи размерности 3x3 . Как обычно, оптимальное решение задачи размерности 3 x 3 должно оставаться

Ш

24

Р и с . 1.25. Кратчайший маршрут из узла 0 в узел 4.

АЛГОРИТМЫ РЕШЕНИЯ СЕТЕВЫХ ЗАДАЧ

329»

оптимальным, если выразить его в относительных оценках таблицы на рис. 1.23. Контур, проходящий через узлы 1, 2 и 3, равносилен некоторому решению задачи 3 x 3 . Следовательно, ни один контур не может иметь отрицательной стоимости (длины), поскольку оптимальное решение задачи 3 x 3 , приведенное в таблице на рис. 1.23, имеет нулевую стоимость.

1.3. АЛГОРИТМЫ РЕШЕНИЯ ДРУГИХ КЛАССОВ СЕТЕВЫХ ЗАДАЧ

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

Единственной модификацией, которая требуется для использования метода максимального потока при решении стандартных транс-

портных

задач (разд. 6.2), является необходимость принять про-

пускную

способность дуги, идущей из источника

в узел гг , равной

б1;, и аналогично пропускную способность дуги, идущей из узла kj,

в сток,

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

оценка

числа повторений шага 2 определяется

выражением

Точно так же единственной существенной модификацией, требующейся для применения метода минимальной стоимости! максималь-

ного

потока при решении оптимизационных сетевых задач

общего

вида

(1) — (4) (см. разд. 6.8,

стр. 246),

является включение в шаг 1

каждой дуги исходной сети, являющейся

в текущем решении нена-

сыщенной. (Правило, касающееся узлов rt

и kj, относится к любым

узлам i

и у, содержащимся

в сети.)

Как было указано

в конце

разд. 6.8,

может возникнуть необходимость преобразования исходной

сети

к сети с одним источником и одним стоком.

 

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