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

книги / Математические методы принятия решений

..pdf
Скачиваний:
2
Добавлен:
13.11.2023
Размер:
22.94 Mб
Скачать

равно количеству груза, необходимому потребителю. Несбаланси­ рованная транспортная задача сводится к сбалансированной путем введения фиктивного поставщика, если потребности превышают предложения, или фиктивного потребителя в противном случае. Расстояния в фиктивной строке (столбце) указываются равными нулю. Сбалансированная и несбалансированная задачи решаются по одному алгоритму.

Р е ш е н и е . Пусть 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. Области до­ пустимых решений для задач линейного и цело­ численного программи­ рования

области решений. В данном случае гра­ ничные точки не являются даже допу­ стимыми решениями, поскольку ни одна из них не целочислена. Предположим, что область допустимых решений суже­ на до выпуклой оболочки допустимых целых точек внутри допустимой обла­ сти. На рис. 2.6 эта выпуклая оболоч­ ка показана заштрихованной областью O EFG H , которую можно рассматривать как область допустимых решений неко­ торой другой задачи линейного програм­ мирования. Действительно, если к зада­ че ЛП, определяющей допустимую об­

ласть O A B C D , добавить линейное ограничение типа R R ', как показано на рис. 2.6, то для вновь полученной задачи многоуголь­ ник O E F G H будет областью допустимых решений. Такая область обладает двумя важными свойствами:

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

2)все крайние точки новой области целочисленны.

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

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

Представленный ниже целочисленный алгоритм обладает сле­ дующими свойствами:

1)все дополнительные ограничения сохраняют допустимые точ­ ки исходной целочисленной задачи;

2)за конечное число шагов создается достаточное число до­ полнительных ограничений для того, чтобы оптимальное решение модифицированной задачи было целочисленным;

Соседние файлы в папке книги