книги / Математические методы принятия решений
..pdfравно количеству груза, необходимому потребителю. Несбаланси рованная транспортная задача сводится к сбалансированной путем введения фиктивного поставщика, если потребности превышают предложения, или фиктивного потребителя в противном случае. Расстояния в фиктивной строке (столбце) указываются равными нулю. Сбалансированная и несбалансированная задачи решаются по одному алгоритму.
Р е ш е н и е . Пусть Xÿ — количество груза, которое будет достав лено из г-го пункта отправления в j -й пункт назначения, i = 1, 2,3, j = 1,..., 4. Необходимо минимизировать целевую функцию
з4
fix ) = ^ ^ Cijx ij i=l j=l
при условиях, что весь груз от поставщика должен быть вывезен:
4
= Oj, i = 1, . . . , 3,
j = 1
и каждый потребитель получит необходимое ему количество груза:
3
= bj, j = 1,..., 4.
i = 1
Особенностью данной задачи является то, что в ограничениях все коэффициенты при неизвестных равны единице. Это облегчает вычисления по симплекс-методу.
Число переменных в данной задаче равно в общем случае тп, где т —число поставщиков, п — число потребителей. Число уравне ний в системе ограничений равно т + п. Однако нетрудно видеть, что одно из этих уравнений может быть получено из других. Так, если определены количества груза, имеющиеся у всех отправителей и необходимые всем получателям, кроме одного, то спрос послед него легко установить как разность между общим запасом и общей потребностью остальных получателей, т.е. система ограничений содержит т + п — I независимых уравнений с т п неизвестными. Число базисных переменных также будет равно т + п — I, осталь ные переменные являются свободными.
Алгоритм решения транспортной задачи сравним с алгоритмом симплекс-метода.
1. |
Н а х о ж д е н и е д о п у с т и м о г о б а з и с н о г о ( о п о р н о |
го) р е ш е н и я . Транспортную задачу решают несколькими мето |
|
дами. |
|
А. |
Метод северо-западного угла. Предположим, что весь груз |
из первого пункта перевезен к первому потребителю. Если потреб ности первого потребителя оказались выше возможностей первого поставщика, то перевозим груз от второго поставщика. Если за пасы первого поставщика выше потребностей первого потребите ля, то остаток запасов первого поставщика передаем второму по требителю и т. д. Мы должны заполнить т + п —1 клетку. Может оказаться, что число заполненных клеток меньше т + п — 1 (слу чай вырождения), тогда оставшиеся клетки заполняем нулями —это так называемые условные поставки. Процесс получения опорно го решения рассматриваемой задачи методом северо-западного угла представлен в табл. 2.7-2.10.
Таблица 2 .7
Первая итерация
Пункт |
В\ |
Вг |
Вз |
В.4 |
ai |
А\ |
30 |
|
|
|
50* 20 |
Аг |
|
|
|
|
40 |
Аз |
|
|
|
|
20 |
bj |
30* |
25 |
35 |
20 |
110 |
|
|
Таблица 2 .9 |
|||
Третья итерация |
|
||||
Пункт |
В 3 |
в4 |
ai |
Пункт |
|
А2 |
35 |
|
|
35* |
л, |
Аз |
|
20 |
20 |
Л2 |
|
bj |
35 |
20 |
55 |
Аз |
|
|
|
|
|
|
ь. |
Таблица 2 .8
Вторая итерация
Пункт |
Вг |
Вз |
в4 |
ai |
|
А\ |
|
20 |
|
|
20* |
Аг |
|
5 |
|
40* 35 |
|
Аз |
|
|
|
20 |
20 |
h |
|
25* 35 |
20 |
80 |
|
|
|
|
|
Таблица 2 .1 0 |
|
Четвертая итерация |
|
||||
В , |
|
В2 |
Вз |
в4 |
ai |
3 30 |
2 20 |
4 |
1 |
50 |
|
2 |
3 |
5 |
1 35 |
5 |
40 |
3 |
2 |
|
4 |
4 20 |
20 |
30 |
|
25 |
35 |
20 |
110 |
Помеченные звездочкой значения в табл. 2.1-2.9 обозначают предыдущие данные, которые изменились и стали равны числу, стоящему после звездочки, если это число не равно нулю.
За четыре итерации мы заполнили в таблице перевозок (см. табл. 2.10) пять клеток вместо шести, однако выполнили условияограничения. Необходимо ввести нулевую клетку —условную по ставку. Пусть это будет клетка (1,4): х\ц = 0. Получили опорное решение х\\ = 30, х \2 = 20, х и = 0, Х22 = 5, Х23 = 35, Х34 = 20. Зна чением целевой функции при таком решении является
f(x ) = 3 • 30 + 2 • 20 + 1 • 0 + 1 • 35 + 3 • 5 + 4 • 20 = 260
(тонно-километров).
Б. Метод учета наименьших расстояний (стоимостей) перево зок. Данный метод аналогичен методу северо-западного угла, толь ко заполняются в первую очередь те клетки, для которых указанные расстояния (стоимости) наименьшие.
2. П р о в е р к а о п т и м а л ь н о с т и п о л у ч е н н о г о п л а н а п е р е в о з о к . Рассмотрим двойственную задачу к поставленной транспортной задаче. В качестве двойственных переменных введем величины ai, аг, аз, соответствующие первым трем ограничени ям, и Рь Рг, Рз, р4 —остальным ограничениям. Эти переменные называют потенциалами, а метод решения транспортной задачи —
методом потенциалов.
Целевая функция двойственной задачи имеет вид
(р(а, р) = 50ai + 40аг + 20аз + 30Pi + 25Рг -I- 35рз + 2ОР4 —» m ax
при условиях (для базисных клеток)
ai + Pi О , |
a i + p 2 ^ 2, |
ai + Р4 ^ 1, |
|
аг+Рг^З, |
аг+Рз^Ь |
аз+Р4^4. |
^ ^ |
Для нахождения оптимального плана перевозки в исходной за даче условия-ограничения двойственной задачи выполнялись бы как равенства, так как согласно условиям дополняющей нежесткости если в оптимальном плане исходной задачи значение какойлибо переменной строго больше нуля, то соответствующее ограни чение двойственной задачи становится равенством при подстановке
в него оптимального плана. Получим систему (2.7) из шести урав нений с семью переменными. Поскольку количество независимых переменных в данной системе равно 3 + 4 - 1 = 6, то одна пере менная является свободной. Пусть это будет оц. Положим ai = 0 , получим Pi = 3, Рг = 2, ^4 = 1, аг = 1, Рз = 0, аз = 3. Составим таб лицу перевозок для данной итерации (табл. 2.11).
Таблица 2 .1 1
Первая итерация
П отенциал |
р.= з |
|
(32=2 |
рз = 0 |
р4 = 1 |
|||
ai |
= 0 |
3 30 |
2 |
20 |
4 |
1 |
0 |
|
аг |
= |
1 |
2 |
3 |
5 |
1 35 |
5 |
|
а 3 |
= |
3 |
3 |
2 |
|
4 |
4 |
20 |
Полученное решение ai, оç, аз, Рь Рг, Рз, Р4 подставляем в огра ничения двойственной задачи, не вошедшие в систему уравне ний (2.7), т. е. соответствующие пустым клеткам. Если эти ограни чения являются верными неравенствами для найденного решения, то проверяемый допустимый план исходной задачи является опти мальным. В противном случае он оптимальным не является. Для пустых клеток имеем
ai + Рз ^ 4, |
( К 4, |
|
аг +pi <2, |
4 |
^ 2 , |
аг + Р4 ^ 5, |
2 |
^ 5 , |
аз + Pi ^ 3, |
6 |
(2.8) |
< 3 , |
||
аз + рг ^ 2, |
5 |
^ 2 , |
а3 + р4 ^ 4, |
4 |
^ 4 . |
Второе, четвертое и пятое неравенства являются неверными, поэтому решение не является оптимальным. Необходимо провести улучшение плана.
3. С о с т а в л е н и е н о в о г о д о п у с т и м о г о плана . Наме тив свободную переменную, которую надо перевести в базисную, определим базисную переменную, переводимую в свободные. Пе ременные, соответствующие свободным клеткам (2, 1), (3 ,1) и (3 ,2) табл. 2.11, в которых неравенства (2.8) нарушаются, могут быть пе реведены в базисные. Выбираем клетку (3,2), т. е. переменную 132.
В симплекс-методе для выбора генерального элемента требует ся рассмотреть положительные отношения в столбце Ж32. В матрице перевозок положительные коэффициенты в столбце Ж32 равны +1 и отвечают тем базисным клеткам, которые соответствуют отрица тельным вершинам некоторой замкнутой ломаной линии, называ емой циклом пересчета для Х32. Следовательно, генеральным эле ментом является базисная переменная из числа всех переменных, отвечающих отрицательным вершинам цикла пересчета, значение которой минимально.
Цикл пересчета — это замкнутая ломаная линия, начинающаяся в свободной клетке. Координаты всех остальных вершин ломаной помещены в базисные клетки. Клетки соединены звеньями, распо ложенными вдоль строк и столбцов матрицы.
В каждую вершину входят только два звена, причем одно из них расположено по строке, другое по столбцу. Никакие три верши ны, встречающиеся подряд при обходе, не лежат на одной пря мой. Если циклом служит самопересекающаяся линия, то точки самопересечения не могут быть ее вершинами. Свободной клет ке в цикле присваивают знак + , другим вершинам — чередующиеся по ходу знаки —, — и т.д. Построим цикл пересчета для сво бодной клетки (3,2) (табл. 2.12). В отрицательных вершинах цикла пересчета стоят два числа: 20, 20; минимальным из них являет ся 20. Поскольку число положительных и отрицательных вершин одинаково, баланс не нарушится, если в отрицательных вершинах вычесть число о, а в положительных вершинах прибавить это же число а. Вычитая минимальное из чисел, стоящих в отрицательных вершинах, мы получаем новую свободную переменную Ж34, а ба зисной станет Ж32. Прибавим 20 в положительных вершинах цикла, вычтем 20 в отрицательных вершинах, получим второе допустимое решение (табл. 2.13).
Таблица 2.12
Цикл пересчета для клетки (3,2)
Потенциал |
р . = з |
р2 = 2 |
рз = |
0 р 4 = |
1 |
|||
ai |
= |
0 |
30 |
2 0 - |
|
+ |
0 |
|
a 2 |
= |
1 |
|
5 |
35 |
|
|
|
аз |
= |
3 |
|
+ |
|
- |
20 |
|
Таблица 2.13
Второе допустимое решение
Потенциал |
р. = 3 |
р2 = 2 |
|||
ai |
= 0 |
з - 30 |
2 + |
0 |
|
02 |
= |
1 |
2 + |
3 “ |
5 |
a 3 = |
3 |
3 |
2 |
20 |
хэ и> II о
4
1 35
4
04 « 1
1 20
5
4
4. П р о в е р к а о п т и м а л ь н о с т и в н о в ь п о л у ч е н н о г о р е ш е н и я . Находим значения потенциалов для данного допусти мого решения:
ai + 0i =3, a i +02 =2, a i +04=1,
<*2 + 0 2 = 3, а г + 0 з = 1, аз + 0 2 = 2 .
Пусть ai = 0, тогда 0i = 3, 02 = 2, 04 = 1, a2 = 1, 0з = 0, a3 = 0. Очевидно, что для клетки (2,1) табл. 2.13 неравенство аг + 01 ^ 2 не выполняется: 4 ^ 2, т. е. данное решение не является оптималь ным. Процедуры 3 и 4 повторяем до тех пор, пока не достигнем оптимального решения.
Цикл пересчета для клетки (2,1) показан в табл. 2.13. Третье допустимое решение приведено в табл. 2.14. Здесь же показаны зна чения рассчитанных для данной итерации потенциалов. Нетрудно убедиться в том, что для всех свободных клеток сумма потенциа лов меньше с^, т. е. получено оптимальное решение. Оно означает, что от первого поставщика к первому потребителю необходимо пе ревезти 25 т груза, ко второму — 5 т, к четвертому — 20 т; от второго поставщика необходимо перевезти к первому потребителю 5 т гру за, к третьему — 35 т; от третьего поставщика необходимо перевезти
Потенциал
ai = 0
02 = —1
аз = 0
bj
Таблица 2.14
Оптимальное решение
|
р. = з |
р2 = 2 |
рз =0 |
II тГ CCL |
d i |
|||
3 |
25 |
2 |
5 |
4 |
|
1 |
20 |
50 |
|
|
|||||||
2 |
5 |
3 |
|
1 |
35 |
5 |
|
40 |
|
|
|
|
|||||
3 |
2 |
20 |
4 |
|
4 |
|
20 |
|
|
|
|
|
|
|
|||
|
30 |
|
25 |
|
35 |
|
25 |
ПО |
4— 4077
20 т груза только ко второму потребителю. Вычислим минимальное значение целевой функции:
/min(z) = 3-25 + 2- 5 + 1- 20 + 2- 5 + 1 - 3 5 + 2- 20 = 190
(тонно-километров).
§ 2.7. Задача о перевозках с перегрузкой
Далее, в гп. 3, будет показано, что сетевой подход к решению транспортных задач позволяет использовать алгоритм, рассмотрен ный в §2.6, для решения более сложных задач. В транспортной задаче предполагается, что ни в одном маршруте, соединяющем источник (поставщика) с некоторым стоком (потребителем), не мо гут быть использованы другие источники и стоки в качестве про межуточных пунктов. Если считать допустимой перевозку грузов из источника в сток через другие источники и стоки, то новая за дача может быть сведена к обычной транспортной задаче. Объем вычислений, естественно, возрастает, так как в сеть будут вклю чены дополнительные маршруты, соединяющие каждый источник со всеми другими источниками и каждый сток со всеми други ми стоками. Считаем, что транспортные затраты Cÿ, соответствую щие дополнительным маршрутам, известны. Новая задача сводится к модифицированной транспортной задаче, в которой предложе ния и спрос, соответствующие дополнительным маршрутам, заданы таким образом, что они не влияют на выбор маршрутов, осуществ ляемый в основном алгоритме. Выполнение последнего требования необходимо, поскольку ограничения на поток по дополнительным маршрутам, задаваемые предложением и спросом, являются фик тивными и вводятся только для вычислительных целей.
Пусть d — минимальная из величин |
аг и ^jb j —суммарных |
г |
3 |
единиц предложения и спроса, т. е. d —это реальный поток коли чества груза, перемещающегося по модифицированной сети. Тогда очевидно, что величину спроса bj г-го исходного источника и ве личину предложения âj j - го исходного стока можно принять рав ными d, т. е. весь поток может протекать через один источник или через один сток. Поскольку b{ = âj = d, то исходные величины пред ложения и спроса должны быть увеличены на d. Если увеличить
исходные данные на d < d, то некоторые планы перевозок, допусти мые в исходной задаче, в модифицированной задаче станут недо пустимыми. Выбор d > d не повлияет на решение задачи. Поэтому выбирают d.
Рассмотрим традиционную транспортную задачу (табл. 2.15).
Таблица 2.15
Исходная транспортная задача
Пункт |
|
в. |
Вг |
Вг |
Запасы |
Ах |
3 |
|
4 |
7 |
20 |
6 |
|
|
2 |
||
а 2 |
|
3 |
10 |
||
|
|
|
|
||
Потребности |
|
10 |
12 |
8 |
30 |
Пусть в ней каждый источник и каждый сток являются одновре менно и промежуточными пунктами (узлами). Здесь
2 |
3 |
|
2 > |
= |
£ ь , = зо, |
г = 1 |
j |
- 1 |
следовательно, в модифицированной задаче надо выбрать d —30. Новая задача о перевозках может быть сведена к транспортной задаче со следующими величинами предложения и спроса для сто
ков и источников:
1) = ai + 30, г = 1,2, для исходных источников; 2) bi = 30, г = 1,2, для исходных источников;
|
|
|
|
|
|
Таблица 2.16 |
|
|
Модифицированная транспортная задача |
|
|||||
|
Исходные стоки |
|
Исходные |
|
|||
Пункт |
|
источники |
Запасы |
||||
|
|
|
|||||
В х |
Вг |
Вг |
Ах |
À 2 |
|||
|
|
||||||
а , |
3 |
4 |
7 |
0 |
5 |
20 + 30 = 50 |
|
6 |
3 |
2 |
3 |
|
|||
Аг |
0 |
10 + 30 = 40 |
|||||
|
|
|
2 |
|
|||
В\ |
0 |
5 |
4 |
5 |
30 |
||
|
|
1 |
3 |
2 |
|||
Вг |
9 |
0 |
30 |
||||
2 |
4 |
0 |
2 |
6 |
|||
Вг |
30 |
||||||
|
|
|
|
|
|||
Потреб |
10 + 30 = 40 |
12 + 30 = 42 |
8 + 30 = 38 |
30 |
30 |
180 |
|
ности |
3) âj = 3 0 , j = 1,2,3, для исходных стоков;
4) bj = bj + 30, j = 1,2,3, для исходных стоков.
Матрица условий модифицированной транспортной задачи для решения задачи перевозок с перегрузкой приведена в табл. 2.16. Транспортные затраты Cÿ для дополнительных маршрутов (строки В \, Вг и Вз и два последних столбца À\, À j в табл. 2.16) предпола гаются известными.
Эту задачу можно решить методом потенциалов, рассмотрен ным в § 2.6. Решив модифицированную транспортную задачу, тем самым решим поставленную задачу о перевозках.
§ 2.8. Целочисленное линейное программирование
Рассмотрим следующую задачу линейного программирования:
максимизировать функцию |
|
|
||
|
f i x ')= ÛOO aoiZi |
Û.Q2X2 ... |
(2.9) |
|
при условиях |
|
|
|
|
Х п + 1 |
= û n + 1 ,0 |
Û n + l,!* * '! |
Я п + 1,2® 2 |
^ггЧ-1 .тг-^тг, |
Х п + т |
— Оп+ш.О |
& п + т ,1 ^ 1 |
О'п+тп,2X 2 |
(Ьп+т ,пХп> |
|
X j^O , |
j = 1,2, |
. . . , n + 1, . . . , n |
+ m. |
Заметим, что x n+1, ... , x n+m —слабые переменные, a x \, ... , x n — исходные переменные задачи (2.9). Если наряду с ограничениями задачи (2.9) потребовать, чтобы все X j , j = 1,2,..., п, были целыми, то задача будет называться задачей целочисленного программиро вания. Существует много задач, особенно комбинаторных, которые можно сформулировать как задачи целочисленного программиро вания.
Ограничения задачи |
(2.9) определяют выпуклую |
область |
|
O A B C D в |
n -мерном пространстве, сечение которого |
в плоско |
|
сти хи Xj |
показано на |
рис. 2.6. Узлы целочисленной |
решетки |
на рис. 2.6 изображены точками. Такие точки, расположенные внут ри области O ABC D , являются допустимыми решениями задачи целочисленного программирования. Оптимальные решения зада чи линейного программирования всегда располагаются на границе
области решений. В данном случае гра ничные точки не являются даже допу стимыми решениями, поскольку ни одна из них не целочислена. Предположим, что область допустимых решений суже на до выпуклой оболочки допустимых целых точек внутри допустимой обла сти. На рис. 2.6 эта выпуклая оболоч ка показана заштрихованной областью O EFG H , которую можно рассматривать как область допустимых решений неко торой другой задачи линейного програм мирования. Действительно, если к зада че ЛП, определяющей допустимую об
ласть O A B C D , добавить линейное ограничение типа R R ', как показано на рис. 2.6, то для вновь полученной задачи многоуголь ник O E F G H будет областью допустимых решений. Такая область обладает двумя важными свойствами:
1)содержит все допустимые целочисленные точки исходной за дачи линейного программирования (поскольку является выпуклой оболочкой этих точек);
2)все крайние точки новой области целочисленны.
Поэтому любое базисное оптимальное решение модифициро ванной задачи линейного программирования имеет своими компо нентами целые числа и является оптимальным решением исходной задачи целочисленного программирования.
Как только будут введены дополнительные ограничения, можно решать модифицированную задачу ЛП любым обычным методом, и полученное базисное оптимальное решение автоматически будет целочисленным.
Представленный ниже целочисленный алгоритм обладает сле дующими свойствами:
1)все дополнительные ограничения сохраняют допустимые точ ки исходной целочисленной задачи;
2)за конечное число шагов создается достаточное число до полнительных ограничений для того, чтобы оптимальное решение модифицированной задачи было целочисленным;