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

Решение_задач_исследования_операций

.pdf
Скачиваний:
34
Добавлен:
18.04.2015
Размер:
707.24 Кб
Скачать

61

Шаг 2: составляем и решаем систему уравнений для потенциалов:

u + v

= 1,

 

1

1

 

u1 + v2

= 2,

 

 

2

3

= 5,

u

 

+ v

 

 

 

+ v4

= 2,

u2

u

 

+ v

= 3,

 

 

3

2

= 4.

u

3

+ v

 

 

4

 

Положим, u1 = 0 и найдем значения остальных потенциалов:

v1 = 1, v2 = 2, v3 = 3, v4 = 6, u2 = −1, u3 = 1.

Значения потенциалов запишем в последней строке и последнем столбце табл. 2.10. Вычислим коэффициенты Sij для всех свободных

(незанятых клеток):

S13 = 5 − 6 − 0 = −1; S14 = 3 − 3 − 0 = 0; S21 = 1 − 1 + 1 = 1;

S22 = 6 − 2 + 1 = 5;

S31 = 6 −1 − 1 = 4; S23 = 7 − 6 − 1 = 0.

Среди коэффициентов Sij

есть отрицательное число (S13 < 0) , поэтому

решение не является оптимальным и его решение можно улучшить.

 

 

 

 

 

 

 

 

Таблица 2.10

 

 

 

 

 

 

 

 

Поставщики

 

 

Потребители

 

Потенциалы

 

В1

 

В2

 

В3

 

В4

 

А1

1

2

40

5

 

3

 

u1 = 0

 

20

 

 

 

 

 

 

А2

1

6

 

5

40

2

60

u2 = −1

 

 

 

 

 

 

 

А3

6

3

40

7

 

4

50

u3 = 1

 

 

 

 

 

 

 

Потенциалы

v1 = 1

v2

= 2

 

v3 = 6

 

v4 = 3

 

 

 

 

 

 

 

 

Построим для клетки x13

цикл пересчета (рис. 2.3)

 

 

62

Рис. 2.3

Наименьший груз в отрицательных вершинах этого цикла находится в клетках (1;2) и (2;3) и равен x12 = 40. Осуществляем сдвиг по циклу на

величину λ = 40 . От значений количества груза в «отрицательных» клеток число 40 вычтем, а к количеству груза, записанного в «положительных» клетках число 40 добавим. При этом получим две нулевых перевозки x12 = 0 и x23 = 0 ; одну из двух переменных выберем

базисной, а вторую – свободной. Пусть, например, переменная x23

будет свободной, тогда в клетку (1;2) нужно записать нулевую перевозку x12 = 0 . Получили новое опорное решение (табл. 2.11)

 

 

 

 

 

 

Таблица 2.11

 

 

 

 

 

 

 

Поставщики

 

 

Потребители

 

 

 

В1

В2

 

В3

 

В4

А1

1

2

 

5

 

3

 

20

 

0

 

40

 

А2

1

6

 

5

 

2

 

 

 

 

 

 

100

А3

6

3

 

7

 

4

 

 

 

80

 

 

10

Вычислим стоимость перевозок:

F1 = 20 1 + 40 5 +100 2 + 80 3 +10 4 = 700 (ден. ед.)

Шаг 3: составляем и решаем систему уравнений для потенциалов:

63

u1 + v1 = 1,

u1 + v2 = 2,u1 + v3 = 6,

u2 + v3 = 5,

u2 + v4 = 2,u3 + v2 = 3,

u3 + v4 = 4.

Положим, u1 = 0 и найдем значения остальных потенциалов:

v1 = 1, v2 = 2, v3 = 5, v4 = 3, u2 = −1, u3 = 1.

Значения потенциалов запишем в последней строке и последнем столбце табл. 2.12. Вычислим коэффициенты Sij для всех свободных

(незанятых клеток):

S13 = 5 − 5 − 0 = 0; S14 = 3 − 3 − 0 = 0; S21 = 1 − 1 + 1 = 1;

S22 = 6 − 2 + 1 = 5; S31 = 6 − 1 − 1 = 4; S33 = 7 − 5 − 1 = 1.

 

 

 

 

 

 

 

 

Таблица 2.12

 

 

 

 

 

 

 

 

Поставщики

 

 

Потребители

 

Потенциалы

 

В1

 

В2

 

В3

 

В4

 

А1

1

2

40

5

 

3

 

u1 = 0

 

20

 

 

 

 

 

 

А2

1

6

 

5

40

2

60

u2 = −1

 

 

 

 

 

 

 

А3

6

3

40

7

 

4

50

u3 = 1

 

 

 

 

 

 

 

Потенциалы

v1 = 1

v2

= 2

 

v3 = 5

 

v4 = 3

 

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

Ответ: оптимальный план перевозок описывается матрицей

20

40

0

0

 

 

 

 

 

 

X =

0

0

40

60

 

 

0

40

0

50

 

 

 

минимальная стоимость всех перевозок составляет 700 (ден. ед.).

Пример 2.2. Методом потенциалов решить транспортную задачу, исходные данные которой представлены в табл. 2.13.

 

 

 

 

 

64

 

 

 

 

 

Таблица 2.13

 

j

1

2

3

4

i

 

bj

 

 

 

 

20

40

50

80

 

ai

 

 

 

 

1

20

1

6

9

3

2

50

3

2

2

4

3

60

4

5

4

7

4

20

1

4

3

9

Решение. Запасы грузов у поставщиков составляют

 

4

 

 

 

 

 

 

 

ai

= 20 + 50 + 60 + 20 = 150,

 

 

 

 

 

i=1

 

 

 

 

 

запасы потребителей равны

 

 

 

 

 

 

4

 

 

 

 

 

 

 

bj

= 20 + 40 + 50 + 80 = 190.

 

 

 

 

 

j=1

 

 

 

 

 

4

4

 

 

 

 

 

Так как ai < bj , то имеем несбалансированную (открытую)

задачу.

i=1

 

j=1

 

 

 

 

 

Вводим пятого фиктивного поставщика с

грузом a5 = 40 .

После

введения

фиктивного поставщика решаем сбалансированную

(закрытую) задачу, заданную в табл. 2.14.

 

 

 

 

 

 

 

 

 

Таблица 2.14

 

 

 

 

 

 

 

 

bj

 

20

40

 

50

 

80

ai

 

 

 

 

 

 

 

20

 

1

6

 

9

 

3

50

 

3

2

 

2

 

4

60

 

4

5

 

4

 

7

20

 

1

4

 

3

 

9

40

 

0

0

 

0

 

0

Находим начальное опорное решение методом северо-западного угла (в верхних частях клеток берем стоимости перевозок, а в нижних – объем перевозок):

а) удовлетворим запасы первого потребителя за счет первого поставщика, т.е. x11 = 20 . При этом у первого поставщика не осталось

грузов a1 = 0 и первый потребитель удовлетворил свои запросы. На

каждом шаге вычеркиваем из таблицы одну строку или один столбец; вычеркиваем первый столбец, но при этом будем считать, что a1 = 0 ;

65

б) чтобы вычеркнуть первую строку, положим x12 = 0 (ко второму

потребителю перевозим 0 единиц груза); в) удовлетворим потребности второго потребителя за счет второго

поставщика, т.е. положим x22 = 40 и вычеркнем второй столбец таблицы, но считаем, что у второго поставщика есть 10 единиц груза; г) чтобы вычеркнуть вторую строку положим значение x23 = 10 (от

второго поставщика к третьему потребителю перевозим 10 единиц груза);

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

третьего поставщика

положим

x33 = 40 .

При

этом у

третьего

поставщика осталось

a3 = 20

единиц

груза.

Третий

столбец

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

поставщика однако, грузов не хватает, поэтому положим x34 = 20 .

Вычеркиваем третью строку, но потребности четвертого потребителя составляют b4 = 60 единиц груза;

ж) запланируем перевозки недостающего груза к четвертому потребителю за счет четвертого и пятого (фиктивного) поставщика полагаем x44 = 20, x54 = 40 ;

з) проверим правильность построения опорного плана. Число занятых (базисных) клеток должно быть равно m + n −1 = 5 + 4 −1 = 8 .

В таблице, действительно, в нижних частях клеток записано 8 чисел, хотя некоторые из них равны нулю. Значит, получено опорное решение (матрица перевозок), представленное в табл. 2.15.

При этом стоимость всех перевозок:

 

 

Z = 20 1 + 0 6 + 40 2 + 10 2 + 40 4 + 20 7 + 20 9 + 40 0 = 600.

 

 

 

 

 

 

 

Таблица 2.15

 

 

j

1

2

3

 

4

 

i

bj

 

 

 

 

 

 

 

20

40

50

 

80

 

 

ai

 

 

 

 

 

1

 

20

1

6

9

 

3

 

 

 

 

20

0

 

 

2

 

50

3

2

2

 

4

 

 

 

 

 

40

10

 

3

 

60

4

5

4

 

7

 

 

 

 

 

 

40

20

4

 

20

1

4

3

 

9

 

 

 

 

 

 

 

20

5

 

40

0

0

0

 

0

 

 

 

 

 

 

 

40

66

Шаг 1: проверим опорный план на оптимальность. Введем потенциалы поставщиков u1 , u2 , u3 , u4 , u5 и потенциалы потребителей

v1 , v2 , v3 , v4 . Составим систему уравнений для потенциалов, при этом должны выполнятся равенства: cij = ui + v j , (i = 1, 2, 3, 4, 5; j = 1, 2, 3, 4) для каждой базисной (занятой) клетки. Получим систему:

u1 + v1 = 1,

u1 + v2 = 6,u2 + v2 = 2,u2 + v3 = 2,

u3 + v3 = 4,

u3 + v4 = 7,

u4 + v4 = 9,

u5 + v4 = 0.

Система состоит из 8 уравнений и имеет 9 переменных.

Полагаем u1 = 0 ; все остальные потенциалы находим из системы: v1 = 1;

v2 = 6; u2 = −4; v3 = 6; u3 = −2; v4 = 9; u4 = 0; u5 = −9.

Добавим в таблицу строку и столбец для потенциалов и запишем результаты решения системы (табл. 2.16).

 

 

 

 

 

 

 

 

 

Таблица 2.16

 

 

 

 

 

 

 

 

 

 

 

 

 

j

 

1

2

3

 

4

 

 

i

 

bj

 

 

 

 

 

 

 

ui

 

 

 

20

40

50

 

80

 

 

 

 

 

 

 

 

 

ai

 

 

 

 

 

 

 

 

 

1

 

20

 

1

6

9

 

3

 

0

 

 

 

 

20

0

 

 

 

 

 

2

 

50

 

3

2

2

 

4

 

-4

 

 

 

 

 

40

10

 

 

 

 

3

 

60

 

4

5

4

 

7

 

-2

 

 

 

 

 

 

40

 

 

20

 

4

 

20

 

1

4

3

 

9

 

0

 

 

 

 

 

 

 

 

 

20

 

5

 

40

 

0

0

0

 

0

 

-9

 

 

 

 

 

 

 

 

 

40

 

 

 

v j

 

1

6

6

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычислим

оценки

Sij свободных (незанятых)

клеток

по формуле

Sij = cij ui v j (от стоимости перевозки вычитаем значения потенциалов):

 

 

67

S13 = 9 − 0 − 6 = 3;

S14 = 3 − 9 − 0 = −6;

S21 = 3 −1 − (−4) = 6;

S24 = 4 − 9 − (−4) = −1;

S31 = 4 − 1 − (−2) = 5;

S32 = 5 − 6 − (−2) = 1;

S41 = 1 − 1 − 0 = 0;

S42 = 4 − 6 − 0 = −2;

S43 = 3 − 6 − 0 = −3;

S51 = 0 −1 − (−9) = 8;

S52 = 0 − 6 − (−9) = 3;

S53 = 0 − 0 − 6 = −6.

Среди оценок Sij есть

отрицательные

числа, поэтому исходное

решение не является оптимальным и его можно улучшить. Выбираем клетку с наименьшим значением Sij (S14 = min Sij ) . Строим для этой

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

занятых (базисных) клетках (рис. 2.4)

Рис. 2.4

Клетка x14 незанятая (свободная), остальные клетки занятые

(базисные); приписываем клетке x14 знак «+», обходим по циклу и в

вершинах многоугольника изменяем знаки. В результате получим «означенный» цикл (рис. 2.5)

Рис. 2.5

Определяем минимальное значение груза в отрицательных вершинах λ = x12 = 0 . Осуществляем сдвиг по циклу на величину λ = 0 ; к

значениям груза из «отрицательных» клетках добавим значение λ = 0 .

68

Хотя при этом значение перевозок не изменится (λ = 0) , но клетка x12

станет свободной, а клетка x14 станет базисной. Новое опорное

решение запишем в таблицу и перейдем к следующему шагу потенциалов.

Шаг 2: запишем систему уравнений для потенциалов:

u1 + v1 = 1,

u1 + v1 = 3,u1 + v4 = 2,u2 + v2 = 2,

u2 + v3 = 4,

u3 + v4 = 7,

u4 + v4 = 9,

u5 + v4 = 0.

Найдем значение потенциалов: u1 = 0, v1 = 1, v4 = 3, u3 = 4, v3 = 0, u4 = 6, v2 = 0,

u2 = 2, u5 = −3.

Результаты решения этой системы, запишем в последнюю строку и последний столбец табл. 2.17

 

 

 

 

 

 

 

 

Таблица 2.17

 

 

 

 

 

 

 

 

 

 

 

j

 

1

2

 

3

 

4

 

i

 

bj

20

40

 

50

 

80

ui

 

 

 

 

 

 

 

ai

 

 

 

 

 

 

 

 

1

20

 

1

6

9

 

3

 

0

 

 

 

20

0

 

 

 

0

 

2

50

 

3

2

2

 

4

 

2

 

 

 

 

40

 

10

 

 

 

3

60

 

4

5

4

 

7

 

4

 

 

 

 

 

 

40

 

20

 

4

20

 

1

4

3

 

9

 

6

 

 

 

 

 

 

 

 

20

 

5

40

 

0

0

0

 

0

 

-3

 

 

 

 

 

 

 

 

40

 

 

v j

 

1

0

 

0

 

3

 

 

 

 

 

 

 

 

 

 

 

Вычислим оценки Sij для свободных клеток:

69

S13 = 6 − 0 − 0 = 6;

S14 = 9 − 0 − 0 = 9;

S21 = 3 − 2 − 1 = 0;

S24

= 4 − 2 − 3 = −1;

S31 = 4 − 4 −1 = −1;

S32 = 5 − 4 − 0 = 1;

S41 = 1 − 6 −1 = −6;

S42 = 4 − 6 − 0 = −2;

S43 = 3 − 6 − 0 = −3;

S51 = 0 − (−3) −1 = 2;

S52 = 0 − (−3) − 0 = 3;

S53 = 0 − (−3) − 0 = 3.

Среди оценок Sij есть отрицательные числа, поэтому опорный план не является оптимальным. Выбираем клетку x41 (т.к. min Sij = S41 ),

строим для этой клетки цикл пересчета, расставляем знаки в вершинах цикла, начиная со знака «+» в вершине x41 (рис. 2.6).

 

 

 

Рис. 2.6

 

 

 

 

Находим

наименьшее

значение

груза,

записанного

в

«отрицательной» клетке (λ = x11 = x44 = 20) . Осуществляем сдвиг по циклу

на число λ = 20 (к значениям груза в «положительных» клетках число

λ = 20 прибавляем, а от груза в «отрицательных» клетках число λ = 20

вычитаем). На каждом шаге одна базисная клетка становится

свободной, а одна свободная клетка становится базисной. В результате

получим значения перевозок:

x11 = 0, x14 = 20, x41 = 20, x44

= 0.

 

 

Из двух нулевых перевозок x11 и x41 выберем, например x11

и будем

считать эту переменную базисной (поместим в эту клетку x11

значение

0), а клетка

x44 будет свободной. Получим матрицу перевозок (табл.

2.18).

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.18

 

j

1

 

2

3

4

 

i

bj

20

 

40

50

80

 

 

 

 

 

 

ai

 

 

 

 

 

 

1

20

1

6

9

3

 

 

 

 

0

 

 

 

20

2

50

3

2

2

4

 

 

 

 

 

40

10

 

 

3

60

4

5

4

7

 

 

 

 

 

 

40

 

20

 

 

 

 

 

 

70

 

 

 

 

 

Окончание табл. 2.18

 

j

 

1

2

3

4

i

bj

 

 

 

 

 

 

 

20

40

50

80

 

 

 

 

ai

 

 

 

 

 

4

20

1

4

 

3

9

 

 

 

20

 

 

 

5

40

0

0

 

0

0

 

 

 

 

 

 

40

Стоимость перевозок равна:

 

 

 

 

Z = 0 1 + 20 3 + 40 2 + 10 2 + 40 4 + 20 7 + 20 1 + 40 0 = 480 .

 

По сравнению с исходным опорным

планом

(Zисх. = 600)

стоимость

перевозок уменьшилась.

 

 

 

 

 

Составим и решим систему уравнений для потенциалов (для занятых

клеток):

 

 

 

 

 

 

u1 + v1 = 1,

u1 + v4 = 3,u2 + v2 = 2,u2 + v3 = 2,

u3 + v3 = 4,

u3 + v4 = 7,

u4 + v1 = 9,

u5 + v4 = 0.

Отсюда, u1 = 0, v1 = 1, v4 = 3, u3 = 4, v3 = 0, u2 = 2, v2 = 0, u4 = 0, u5 = −3.

Запишем потенциалы в табл. 2.19

 

 

 

 

 

 

 

 

 

Таблица 2.19

 

 

 

 

 

 

 

 

 

 

 

 

j

 

1

 

2

 

3

 

4

 

i

 

bj

 

 

 

 

 

 

 

ui

 

 

20

 

40

 

50

 

80

 

 

 

 

 

 

 

 

ai

 

 

 

 

 

 

 

 

 

1

20

 

1

 

6

9

 

3

 

0

 

 

 

 

0

 

 

 

 

20

 

2

50

 

3

 

2

2

 

4

 

2

 

 

 

 

 

40

 

10

 

 

 

3

60

 

4

 

5

4

 

7

 

4

 

 

 

 

 

 

 

40

 

20

 

4

20

 

1

 

4

3

 

9

 

0

 

 

 

 

20

 

 

 

 

 

 

5

40

 

0

 

0

0

 

0

 

-3

 

 

 

 

 

 

 

 

 

40

 

 

v j

 

0

 

0

 

0

 

3