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

М.А. Тынкевич Решение транспортной задачи методом Данцига

.pdf
Скачиваний:
37
Добавлен:
19.08.2013
Размер:
190.71 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

КУЗБАССКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра вычислительной техники и информационных технологий

РЕШЕНИЕ ТРАНСПОРТНОЙ ЗАДАЧИ МЕТОДОМ ДАНЦИГА

Методические указания и задания к практическим занятиям по курсу “Экономико-математические

методы” для студентов экономических специальностей

Составитель М.А.Тынкевич

Утверждены на заседании кафедры Протокол № 5 от 30.11.99

Рекомендованы к печати учебно-методической комиссией по специальности 071900 Протокол № 2 от 30. 11.99

Электронная копия хранится в библиотеке главного корпуса КузГТУ

Кемерово 2000

1. ПОСТАНОВКА ЗАДАЧИ

1

усть имеется m пунктов производства, располагающих некоторым однородным продуктом в количествах a1, a2, ... , am. Его необходимо доставить в n пунктов потребления в количествах b1, b2, …,bn . Стоимость прямой поставки единицы продукта из i-го пункта производства в j-й пункт потребления равна Cij . Найти план прямых поставок, при котором суммарные транспортные затраты будут минимальны.

Обозначим через Хij объем поставки от i-го производителя к j-му потребителю. Очевидно, что задача будет сведена к поиску значений Хij, обеспечивающих минимум суммарных затрат:

L( X ) = m n

Cij Xij

i= 1 j=

1

(1)

Предположим, что имеет место баланс производства-потребления:

m ai =

n

b j =A.

(2)

i= 1

j =

1

 

Тогда ограничения задачи можно представить в виде:

n

X ij

=

ai ,

i=1,…,m

;

(3)

j =

1

 

 

 

 

 

m X ij

=

b j ,

j=1,…,n

;

(4)

i= 1

 

 

 

 

 

Xij0,

 

i=1,…,m;

j=1,…,n

(5)

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

Выше мы предполагали наличие баланса производства-потребления

(закрытая модель). Однако встречаются задачи с нарушенным балансом

(открытая модель), которые можно всегда свести к рассмотренной. Так если предложение превышает спрос

m ai >

n

b j ,

i= 1

j =

1

то вводим “фиктивного” n+1-го потребителя объема

2

bn+ 1 = m ai

n

b j

i = 1

j =

1

и полагаем Ci,n+1=0 при всех i (естественно, мы не будем ничего ему возить). При превышении спроса над предложением аналогично вводим

“фиктивного” m+1-го поставщика объема

am+ 1 = n

b j

m ai ; Cm+1,j=0 при всех j.

j =

1

i= 1

2. Метод Д. Данцига

Рассматриваемый метод представляет компактную форму симплексной процедуры, избавляющей от необходимости оперировать с матрицами

размерности m+n на mn. Здесь предварительно обеспечивается закрытость модели (при необходимости вводится фиктивный поставщик или потребитель), выбирается начальный опорный план, проверяется на оптимальность и при отсутствии таковой осуществляется переход к другому опорному плану, более близкому к оптимальному.

2.1. Выбор начального опорного плана

Заметим, что всякий опорный план транспортной задачи может содержать не более m+n-1 положительных компонент [1]. Опорные планы, в которых положительных составляющих меньше m+n-1, называются вы-

рожденными.

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

Возьмем для примера задачу с тремя пунктами производства соответственно 5 , 8 и 7 единиц продукта и четырьмя потребителями c одинаковым спросом, равным 5 (нетрудно убедиться в закрытости модели и отсутствии необходимости ввода фиктивных поставщиков и потребителей).

Пусть затраты определяются матрицей:

 

4

5

7

8

С=

9

3

6

2

 

7

8

4

5

3

2.1.1. Метод “северо-западного угла”

Начинаем с “северо-западного угла”, т.е. с клетки (1,1), и берем X11=min(a1,b1)=min(5,5)=5 (максимально возможная перевозка при соответствующем предложении и спросе).

Очевидно,

что тогда X12=X13=X14=0

и

X0=

5

 

 

 

5

 

5

3

 

8

X21=X31=0.

Берем северо-западный угол

 

 

2

5

7

матрицы

с

исключенными

строкой

и

 

 

5

5

5

5

b\a

столбцом,

т.е. клетку (2,2),

и находим

 

 

 

 

 

 

 

X22=min(a2,b2)=min(8,5)=5. Очевидно,

что тогда X32=0. Затем отыскиваем X23=min(a2-X22,b3)=min(8-5,5)=3 и X24=0. Так как осталась нерассмотренной лишь одна строка компонент плана, то порядок выбора не имеет значения и получаем значения X33 и

X34.

Затраты на реализацию этого плана поставок равны

4 5+3 5+6 3+4 2+5 5=86.

2.1.2. Метод минимального элемента матрицы стоимостей

Здесь порядок выбора определяется правилом: ставить максимально возможную перевозку на самый “дешевый” маршрут.

Здесь минимальный элемент матрицы С равен С24=2. Соответст-

венно берем X24=min(a2,b4)=min(8,5)=5 и X14=X34 =0.

Минимальный элемент матрицы стоимостей (без четвертого столб-

ца)

равен C22=3: берем X22=min(a2-X24,

b2)=min(8-5,5)=3 и

X21=X23=0.

 

 

 

 

 

 

 

Очередной минимальный элемент в

 

 

 

 

 

 

 

X0=

5

 

 

 

5

матрице (без второй строки и четвертого

 

3

 

5

8

столбца) равен C11=C33=4. Берем,

 

 

2

5

 

7

например, X11= min(a1,b1)=min(5,5)=5

 

 

 

 

 

 

 

5

5

5

5

b\a

и

X12=X13=0 , X31=0. После этого

 

 

 

 

 

 

 

 

 

 

 

 

находим значения X32=2 и X33=5, обнаруживая затраты для этого плана,

равные 4 5+3 3+2 5+8 2+4 5=75.

Однако нельзя утверждать, что этот метод всегда лучше метода се- веро-западного угла.

2.1.3. Проблема вырожденности и ее решение

Обратите внимание на то, что число положительных компонент в обоих планах равно 5 <m+n-1=3+4-1=6, т.е. оба плана вырожденные. Последующая проверка плана на оптимальность требует построения и

4

решения m+n-1 уравнений, соответствующих базисным компонентам плана. В случае же вырожденных планов трудно отличить нулевую базисную перевозку от нулевой небазисной.

Для задач большой размерности (m,n>20 30) и при компьютерной

реализации можно воспользоваться ε -приемом (ε > 0 сравнительно малое число) : перед поиском начального опорного плана увеличить все значе-

ния ai на ε и какое-нибудь из значений bj на mε .

Например, при поиске по минимальному элементу матрицы полу-

чаем:

 

 

 

 

 

 

X24=min(8+ε ,5)=5,

X0=

5+ε

 

 

 

5+ε

X14=X34=0;

 

3+ε

 

5

8+ε

 

2ε

2-ε

5

 

7+ε

X22=min(3+ε ,5)=3+ε ,

 

 

5+3ε

5

5

5

b\a

X21=X23=0;

X11=min(5+ε ,5+3ε )=5+ε , X12=X13=0 и затем X31=(5+3ε )-(5+ε )=2ε ,

X31 = 2-ε , X33=5.

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

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

возки, но так, чтобы не возникало “замкнутой цепочки по базису”.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

Так допустимы

выборы:

0

 

 

 

5

 

0

 

 

 

 

 

 

5

 

 

но не выборы:

5

;

 

3

 

5

;

 

3

 

5

 

 

3

 

 

0

2

5

 

 

 

2

5

 

 

 

2

5

 

2.2. Проверка плана на оптимальность

Для рассматриваемой классической транспортной задачи можно запи-

 

 

 

 

 

 

 

 

 

 

 

 

сать сопряженную задачу:

 

 

 

 

 

 

5

 

 

 

5

 

 

 

 

 

 

 

 

3

 

0

 

5

 

;

 

 

3

 

5

 

 

2

 

5

 

 

 

 

 

 

2

5

0

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

 

 

 

m

 

 

n

 

 

 

 

 

 

~

 

=

aiui +

 

 

 

 

 

 

L(U ,V )

 

b jv j

 

 

 

при условиях

 

 

 

 

i= 1

j= 1

 

 

 

 

ui+vj

 

Cij

для всех i, j.

 

 

 

 

 

 

 

 

 

 

5

Из второй теоремы двойственности известно, что в случае оптималь-

ных планов в каждой паре двойственных условий {Xij0, ui+vjCij} условию, выполняемому строгим неравенством, соответствует условие, выполняемое как строгое равенство.

Соответственно возникает идея для проверки найденного плана X0 на оптимальность: m+n-1 его базисным перевозкам сопоставить требования ui+vj=Cij, получая тем самым систему m+n-1 уравнений с m+n неизвестными, которую можно решить с точностью до константы. Если при найденных значениях двойственных переменных условия ui+vjCij вы-

полняются и для небазисных Xij=0 (все значения ij= ui+vj-Cij 0), то найденный план оптимален. В противном случае отыскивается другой опорный план, более близкий к оптимальному.

Обратимся к рассмотренному выше примеру.

 

 

 

 

 

 

 

 

 

 

 

 

 

4

5

7

8

X0=

5

0

 

 

С=

9

3

6

2

 

3

 

5

 

7

8

4

5

 

 

2

5

 

Базисным перевозкам сопоставляем систему уравнений:

u1+v1=4 , u1+v2=5 , u2+v2=3, u2+v4=2 , u3+v2=8 , u3+v3=4,

которую решаем, приняв u1=0, с последующим вычислением остальных сумм двойственных переменных.

Построение этой системы и ее решение реализуем в достаточно удобной табличной форме:

 

v \ u

4

5

1

4

 

 

 

 

 

 

0

4

5

1

4

 

-6

-4

ui+vj= -2

2

3

-1

2

ij= ui+vj-Cij

-7

-7

 

3

7

8

4

7

 

0

2

2.3. Переход к другому опорному плану

Как известно из теоретического обоснования симплексной процедуры [1], переход к новому опорному плану X(Θ ) сопровождается изменением значения целевой функции

L(X(Θ ))=L(X0) - Θ ij .

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

6

ревозка Xij= Θ >0. Выбор максимально возможного значения Θ определяется естественным требованием неотрицательности компонент нового плана.

В приведенном примере обнаружилось 34=2>0. В новом плане бе-

рем X34=Θ >0 и ищем т.н. минимизирующую цепочку по базису, которая обеспечивает сохранение баланса по строкам и столбцам плана:

 

5

0

 

 

 

5

0

 

 

X1=

 

3+Θ

 

5-Θ

={Θ =2}

 

5

 

3

 

 

2-Θ

5

Θ

 

 

 

5

2

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

Θ=2 (при этом выборе сохраняется неотрицательность компонент плана

и одна из бывших базисных компонент X32 уходит из базиса). Очевидно, что значение целевой функции (транспортные затраты) при переходе к

плану X1 уменьшается на Θ ∆ 34=2 2=4.

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

ее при u1=0 и отыскиваем значения ij:

 

 

 

 

 

v \ u

4

5

3

4

 

 

 

 

 

 

0

4

5

3

4

 

-10 -4

ui+vj= -2

2

3

1

2

ij= ui+vj-Cij=

-7

-5

 

1

5

6

4

5

 

-2

-2

Так как все значения ij

неположительны, можно утверждать опти-

мальность найденного плана.

 

 

 

 

 

 

2.4. Замечания

1. Если для найденного оптимального плана обнаружилась неполо-

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

мальность этого плана, но и существование других оптимальных пла-

нов (переход к плану, где соответствующая компонента равна Θ , не сопровождается изменением значения целевой функции) .

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

3.При решении задач транспортного типа на максимум признак оп-

тимальности определяется условиями сопряженной задачи ui+vjCij и требованием неотрицательности всех ij.

7

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

2.5. Пример решения задачи методом Данцига

Рассмотрим еще один пример.

Пусть требуется решить задачу минимизации транспортных затрат при следующих данных:

 

8

2

 

4

4

1

20

 

С=

2

1

 

3

4

2

10

 

 

6

7

 

2

1

3

10

 

Так как здесь m ai

5

10

 

10

5

5

b\a

 

= 40 >

n

b j

=

35, вводим фиктивного (шес-

i= 1

 

 

j =

1

 

 

 

 

того) потребителя и получаем видоизмененные условия задачи:

С=

8

2

4

4

1

0

20

2

1

3

4

2

0

10

 

6

7

2

1

3

0

10

 

5

10

10

5

5

5

b\a

Ищем начальный опорный план методом минимального элемента матрицы (на шестой столбец можно и не обращать внимания):

min Cij=C152234=1 X15=min(20,5)=5, X25=X35=0; без учета пятого столбца - min Cij= С2234=1 X22=min(10,10)=10, X12=X32=0 и X21=X23=X24=X26=0; без учета к тому же второго столбца и второй стро-

ки имеем: min Cij=С34=1 X22=min(10,5)=5, X14=0 ; очередное минимальное значение стоимости совпадает с С33=2 , откуда следует X33=min(10-5,10)=5, X31=X36=0 ; теперь уже однозначно определяются оставшиеся элементы первой строки:

X0=

5

.

5

.

5

5

20

.

10 .

.

.

.

10

 

.

.

5

5

.

.

10

 

5

10

10

5

5

5

b\a

Полученный план является вырожденным (число положительных

компонент равно 7 < m+n-1=3+6-1=8). Можно прибегнуть к ε -методу, рассмотренному выше, или попытаться для включения в базис подобрать нулевую перевозку так, чтобы не возникало замкнутой цепочки по базису и по возможности ее стоимость была как можно меньшей. Для данного случая таковыми являются X21 или X12 (принципиально недопустимы X36, X35, X31, X14); включаем в число базисных X12=0:

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X0=

5

0

5

.

5

5

 

 

 

 

 

 

 

 

 

 

 

 

 

.

10 .

.

.

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

.

5

5

.

.

 

 

 

 

 

 

 

Проверка на оптимальность дает:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

v\u

 

8

2

4

3

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

8

2

4

3

1

0

 

 

-1

ui+vj=

-1

 

7

1

3

2

0

-1

ij=

5

 

0

-2

-2 -1

 

 

 

-2

 

6

0

2

1

-1 -2

 

 

0

 

-7

-4 -2

Отсюда из-за 21=5>0 следует перестройка плана:

 

 

 

 

 

 

 

5-Θ

0+Θ

5

.

5

 

5

 

 

 

 

.

5 5 .

5 5

 

 

X1=

 

Θ

10-Θ

.

.

.

 

.

 

={Θ =5}

5 5 . .

.

 

 

 

 

.

.

5

5

.

 

.

 

 

 

 

 

 

5 5 . .

 

 

Очередная проверка на оптимальность дает:

 

 

 

 

 

 

 

 

 

 

 

 

v\u

 

3

2

4

3

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

3

2

4

3

1

0

 

 

-5

 

-1

ui+vj=

-1

 

2

1

3

2

0

-1

ij=

0

-2

-2 -1

 

 

 

-2

 

1

0

2

1

-1 -2

 

 

-5

 

-7

-4 -2

Отсюда видно, что найденный план X1 оптимален, но не единствен-

ный, так как для небазисной компоненты обнаруживается 23=0. Второй оптимальный план получается в виде:

 

.

5+Θ

5-Θ

.

5

5

 

.

10 . .

5 5

X1=

5

5-Θ

Θ

.

 

.

={Θ =5}

5

0 5 .

.

 

 

 

5

5

.

.

 

 

5 5 . .

(можно предложить здесь и другой оптимальный план, отличающийся нулевой базисной перевозкой X13=0).

3. Задачи

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

1. B=

15 15 20 10

A=

2. B=

7 7 7 7 7

A=

 

3

7

9

4

11

 

8

3

2

5

6

15

C=

1

2

10

5

29

C=

4

3

5

8

2

5

 

4

1

2

8

10

 

5

6

3

8

2

7

 

7

3

6

5

10

 

4

4

7

5

4

8

 

 

 

 

 

 

 

 

 

9

 

 

 

 

 

 

 

3.

B=

 

 

 

 

A=

4.

B=

 

 

 

 

A=

 

30

45

70

90

12

8

5

6

 

 

 

1

2

 

3

7

60

 

 

 

 

5

8

3

4

11

 

 

C=

9 10 4 5

80

 

 

 

C=

6 2

1

8

7

 

 

 

6

3

 

11

7

40

 

 

 

 

0

9

10

3

4

 

 

 

2

1

 

5

4

90

 

 

 

 

5

6

4

2

3

 

5.

B=

 

 

 

 

A=

6.

B=

 

 

 

 

A=

 

12

18

14

20

20

20

15

15

 

 

 

5

7

 

6

4

10

 

 

 

 

1

3

6

4

15

 

 

C=

2 1

 

3

8

14

 

 

 

C=

3 4

4

3

20

 

 

 

6

8

 

6

4

16

 

 

 

 

6

5

2

2

15

 

 

 

11

2

 

3

8

18

 

 

 

 

9

8

6

7

20

 

 

 

 

 

 

 

 

 

 

 

 

 

11

12

3

8

15

 

7. B=

 

 

 

 

A= 8. B=

 

A=

9 10

7

13

8

18 17 16 15 10

 

 

5

6

 

4

3

2

17

 

 

 

5

8

4

3

2

15

 

C=

1

8

3 5 6

8

 

 

C=

1

3

7

8

2

10

 

 

4

3

 

7

8

6

5

 

 

 

6

4

5

1

7

5

 

 

3

2

 

1

8

5

14

 

 

 

8

3

4

9

5

20

9.

B=

 

 

 

 

 

 

A=

10.

B=

 

 

 

 

 

A=

5

7

 

8

9

4

9

10

11

12

7

 

 

3

4

 

5

6

7

15

 

 

 

8

1

9

3

6

5

 

C=

8 9 10

1

2

6

 

 

C=

4 5

1

7

7

6

 

 

3

2

 

7

4

5

7

 

 

 

3

6

2

4

3

7

 

 

3

4

 

2

1

6

8

 

 

 

2

7

8

5

1

8

11. B=

 

 

 

 

A=

12.

B=

 

 

 

 

A=

 

15

28

35

10

7

14

12

10

 

 

 

9

3

 

10

12

21

 

 

 

 

1

4

5

8

8

 

 

C=

1

7

13 15

28

 

 

 

C=

7 8

3

5

16

 

 

 

7

5

 

3

4

35

 

 

 

 

3

0

4

6

14

 

 

 

8

2

 

9

1

10

 

 

 

 

2

4

9

1

12

 

13. B=

 

 

A= 14. B=

 

 

 

A=

10 30 50

10

10 10 15

5

10 10

 

 

5

4

 

9

11

11

 

 

 

5

8

6

3

4

1

12

 

C=

7 1

 

8

3

40

 

 

C=

8 7 6

3

4

2

18

 

 

2

10

3

4

20

 

 

 

1

8

3

7

2

9

10

 

 

5

6

 

5

7

9

 

 

 

2

7

4

6

3

8

10

15.

B=

 

 

 

 

 

 

A=

16.

B=

 

 

 

 

 

A=

5

8

 

11

12

18

14

16

20

30

20

 

 

8

9

 

0

7

1

3

 

 

 

3

4

5

6

7

13

 

C=

5 4 3

1

5

4

 

 

C=

2 8

9

6

11

23

 

 

6

7

 

10

2

8

17

 

 

 

3

4

4

5

1

33

 

 

3

6

 

6

8

4

20

 

 

 

1

2

3

4

7

43

Соседние файлы в предмете Информатика