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

2_0

.pdf
Скачиваний:
44
Добавлен:
23.02.2016
Размер:
1.63 Mб
Скачать

2.4. Транспортная задача, ее решение методом потенциалов и в Excel

Задача 2.4.1. Три фермерских хозяйства А1, А2, А3 ежедневно могут доставлять в магазины соответственно 70, 50 и 60 ц картофеля для обеспе- чения четырёх торговых точек: В1, В2, В3, В4 . Стоимость перевозки 1 ц кар- тофеля и потребность торговых точек в картофеле указаны в табл. 2.4.1.

Таблица 2.4.1. Исходные данные транспортной задачи

Фермерские

Затраты на перевозку 1 ц карто-

Запасы кар-

феля по торговым точкам

хозяйства

тофеля, ц

В1

В2,

В3

В4

 

 

А1

6

5

7

9

70

А2

9

9

6

5

50

А3

5

9

3

8

60

Потребности в

 

 

 

 

 

картофеле, ц

20

80

20

40

 

 

 

 

 

 

 

Определить план поставки картофеля в каждую точку для удовлетво- рения потребностей, чтобы суммарные транспортные издержки были мини- мальными.

Решение.

1. Проверяем наличие закрытости транспортной модели. Задача называется закрытой, если a1 +a2 +…+am = b1+ b2 +…+bn.

Если a1 +a2 +…+am b1+ b2 +…+bn, то задача называется открытой. a1, a2, …, am запасы картофеля у m поставщиков, b1, b2 ,…, bn потребности потребителей.

В нашем случае 70 + 50 + 60 = 180,

 

 

20 + 80 + 20 + 40 = 160 ,

n

m

 

j

(180

≠ 160).

i

b

a

 

 

i=1

 

j=1

 

 

 

 

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

Введём переменные xij 0 (i = 1,3; j = 1,4) количество картофеля, ко-

торое планируется перевозить от i-го фермерского хозяйства к j-й торговой точке (например, х11 количество картофеля, которое планируется перево- зить от первого фермерского хозяйства к первой торговой точке), Z – сум- марные транспортные издержки, которые надо минимизировать:

Z = 6x11 + 5x12 + 7x13 + 9x14 + 9x21 + 9x22 + 6x23 + 5x24 +

+5x31 + 9x32 + 3x33 + 8x34 min.

50

С первого фермерского хозяйства вывозится x11 + x12 + x13 + x14 ц кар- тофеля и так как задача открытого типа, запасы картофеля больше потребно- стей, то эта величина не превосходит 70 ц, что записывается в виде неравен- ства x11 + x12 + x13 + x14 ≤ 70 . Количество привезённого картофеля на первую

торговую точку равно x11 + x21 + x31 и оно равно 20 ц, т.е х11+х21+х31 = 1700. Поступая аналогично по остальным фермерским хозяйствам и торговым точ- кам, получаем математическую модель задачи:

Z = 6x11 + 5x12 + 7x13 + 9x14 + 9x21 + 9x22 + 6x23 + 5x24 +

+5x31 + 9x32 + 3x33 + 8x34 min,

x + x + x + x ≤ 70,

 

11

12

13

14

 

x21 + x22 + x23 + x24 ≤ 50,

x

+ x

+ x + x

≤ 60,

 

31

32

33

34

x

+ x

+ x

= 20,

 

11

21

31

 

 

x

+ x

+ x

= 80,

 

12

22

32

= 20,

x

+ x

+ x

 

13

23

33

= 40,

x

+ x

+ x

 

14

24

34

 

 

xij ≥ 0 (i =1,3; j =1,4).

Так как спрос больше потребления, то вводим фиктивного потребителя с потребностью равнёй 180 – 160 =2 0 ц и тарифами перевозок равными ну- лю. Для этого в матрицу транспортной задачи вводим дополнительный стол- бец, соответствующую фиктивному потребителю с потребностями

bn+1 = b5 = 20 и тарифами перевозок c15 = c25 = c35 = 0. Для удобства данные запишем в виде табл. 2.4.2.

Таблица 2.4.2. Закрытая транспортная задача примера 2.4.2

bj

20

80

20

40

20

ai

 

 

 

 

 

70

6

5

7

9

0

 

 

 

 

 

 

50

9

9

6

5

0

 

 

 

 

 

 

60

5

9

3

8

0

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

У первого поставщика берём 20 ц картофеля и отдаём их первому по- требителю. 20 записываем в клетку (1;1). Оставшиеся 50 ц картофеля даём

51

второму потребителю. Второму потребителю надо ещё 30 ц картофеля. Его берём у второго поставщика. Оставшиеся 20 ц картофеля у второго постав- щика распределяем третьему потребителю. От третьего поставщика 40 ц от- даём третьему потребителю и 20 ц четвёртому.

Таблица 2.4.3. Первоначальное распределение

bj

20

80

20

40

20

ai

 

 

 

 

 

 

6

5

7

9

0

70

20

50

 

 

 

 

 

 

 

 

 

 

9

4

6

5

0

50

 

30

20

 

 

 

 

 

 

 

 

 

5

9

3

8

0

60

 

 

 

40

20

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

3. Проверяем распределение на вырожденность. Заполненных клеток должно быть m+n–1=3+5–1=7. Мы получили шесть заполненных клеток. Та- кое распределение называется вырожденным. Для того, чтобы сделать рас- пределение невырожденным, ставят поставку объемом равным нулю в клет- ку, которая образует с другими заполненными так называемую цепочку (цикл) перераспределения. Это означает, что от каждой заполненной клетки можно перейти в любую другую заполненную клетку перемещаясь только горизонтально и вертикально. делая повороты только в заполненных клетках. В одну незаполненную клетку (3;4) ставим 0 и считаем ее заполненной. Ноль можно ставить не в любую незаполненную клетку. В нашем случае ноль нельзя ставить в клетки (1;3) и (2;1).

Получили начальное распределение

 

 

20 50

0

0

0

 

 

X1

=

 

0

30

20 0

0

 

,

 

 

 

 

 

0

0

0

40 20

 

 

 

 

 

 

 

Z(X1) = 20·6+50·5+30·4+20·6+40·8= 930 (грн.).

4. Проверяем полученный план на оптимальность. Проверка текущего опорного плана на оптимальность осуществляется методом потенциалов. На- ходим потенциалы. Каждому поставщику и потребителю ставим в соответст- вие числа ui ,vj , называемые потенциалами таким образом, чтобы их сумма

равнялась тарифам соответствующих заполненных клеток.

ui + v j = cij если (i;j) − заполненная клетка.

52

 

 

Таблица 2.4.4. Потенциалы и оценки оптимальности

ai

bj

20

80

20

40

 

20

 

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

5

7

9

 

0

u1 = 0

70

 

20

50

[0]

[ 3]

[

2]

 

 

 

 

 

9

4

6

5

 

0

u2 = 1

50

 

[ 4]

30

20

0

[

3]

 

 

 

 

 

5

9

3

8

 

0

u3

= 2

60

 

[3]

[ 2]

[6]

40

 

20

 

 

 

 

vj

 

v1 = 6 v2 = 5 v3 = 7 v3 = 6 v4 = 2

 

 

Для нахождения потенциалов получаем систему уравнений

u

 

+ v

1

1

u

 

+ v

1

2

u

 

+ v

 

2

2

u2 + v3

u

 

+ v

2

4

u

 

+ v

 

3

4

u3 + v5

=6

=5

=4

=6

=5

=8

=0

u

= 0

v

= 6

1

 

1

 

v

= 5

 

 

2

 

 

u2 = −1

v3 = 7

v4 = 6

u3 = 2

v5 = −2.

Система состоит из семи уравнений с восьмью неизвестными. Она не- определённая, то есть имеет бесконечное множество решений. Один из по- тенциалов приравниваем к нулю, а остальные находятся однозначно из этой системы. Пусть u1 = 0 . Тогда из первого уравнения находим v1 = 6 , из второ- го − v2 = 5 и т.д. Систему можно не выписывать, а значения потенциалов на- ходить непосредственно в таблице.

5.Находим оценки незаполненных клеток по формуле

δi j = ui + v j cij :

δ13 = 0+7 7 = 0, δ14 = 0+6 9 = 3<0, δ15 = 0 2 0 = 2<0, δ 21 = 1+6 9= 4<0, δ 25 = 12 0 = 3<0,

δ31 = 2+6 5 = 3>0, δ32 = 2+5 9 = 2<0, δ33 = 2+7 3 = 6>0.

Их значения записываем в клетках таблицы в нижнем левом углу. Ве- личины груза выделены жирным шрифтом, а значения оценок выделены квадратными скобками. Оценка 3 в клетке (3;1) показывает, что если в эту клетку поместить единицу груза, то стоимость перевозок уменьшится на три

53

гривны. Действительно, для сохранения баланса с клетки (3;4) необходимо отнять единицу груза, в клетку (2;4) необходимо прибавить единицу груза, с клетки (2;2) необходимо отнять единицу груза, в клетку (1;2) необходимо до- бавить единицу груза, с клетки (1;1) отнять единицу груза. Стоимость пере- возки будет соответственно меняться:5 8 + 5 4 + 5 6 = −3, т.е. уменьшить- ся на 3 грн.

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

δi j = ui + v j cij 0

6.Начальный план не является оптимальным, поскольку имеются по- ложительные оценки для пустых клеток. Переходим к новому опорному пла- ну. Переход осуществляется заполнением клетки, которой соответствует наибольшая положительная оценка оптимальности. В нашем случае это клетка (3;3). Для клетки (3;3) строим цикл пересчёта (цепочку перераспреде- ления). Циклом для незаполненной клетки называется последовательность заполненных клеток, в которые поочерёдно добавляется и вычитается груз для сохранения баланса, если в незаполненную клетку поместить некоторый груз. Для каждой свободной ячейки всегда существует только одна цепочка перераспределения. Она составляется таким образом, что на каждом углу це- почки стоят заполненные клетки, а один угол цепочки находится в клетке, куда осуществляется перераспределение.

20 – ρ 0 + ρ

+ ρ

 

40 – ρ

 

 

 

Рис. 2.4.1. Цикл перераспределения для клетки (3;3)

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

ρ= min (40,20) = 20.

8.Составляем новую таблицу. Клетка (3;3) заполняется, а клетка (2;3) освобождается. Так как в клетку (3;3) будем ставить груз равный 20 ц, то значение целевой функции при втором распределении уменьшится следую- щим образом:

Z (Х2 ) = Z (Х1) δ33 ρ = 9306 20 = 810 .

54

Таблица 2.4.5. Потенциалы и оценки оптимальности второго плана

ai

bj

20

80

20

40

 

20

 

ui

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

5

7

9

 

0

u1 = 0

70

 

20

50

[ 6]

[ 3]

[

2]

 

 

 

 

 

9

4

6

5

 

0

u2 = -1

50

 

[ 4]

30

[ 6]

20

[

3]

 

 

 

 

 

5

9

3

8

 

0

u3

= 2

60

 

[3]

[ 2]

20

20

 

20

 

 

 

 

vj

 

v1 = 6 v2 = 5 v3 = 1 v3 = 6 v4 = 2

 

 

 

 

20

50

0

0

0

 

X2

=

 

0

30

0

20

0

 

 

 

 

 

 

0

0

20

20

20

 

 

 

 

 

Z(X2) = 20·6+50·5+30·4+20·5+20·3+20·8= 810 (грн.)

9. Возвращаемся к пункту 4 и продолжаем итерации, пока получим все оценки незаполненных клеток неположительные.

Находим потенциалы и оценки оптимальности для незаполненных кле- ток второго опорного плана. Вычисления выполняем непосредственно в табл. 2.4.5.

Второй план также не оптимален, так как имеется положительная оцен- ка для свободной клетки (3;1). Будем делать перераспределение в клетку (3;1). Для этой клетки составляем цепочку перераспределения и определяем груз, который будем перемещать по этой цепочке.

20 – ρ

 

50 + ρ

 

 

 

 

 

 

 

30 – ρ

 

20 + ρ

 

 

 

 

 

 

 

 

 

+ ρ

20 – ρ

Рис. 2.4.2. Цепочка перераспределения для клетки (3;1)

ρ = min (20,30,20) = 20

Составляем третью таблицу. Освобождается две клетки (1;1) и (3;4), но незаполненной считаем только (1;1), так как в ней находится больший тариф. В клетку (3;4) ставим нуль и считаем её заполненной.

55

Таблица 2. 4. 6. Потенциалы и оценки оптимальности третьего плана

ai

bj

20

80

20

40

 

20

ui

 

 

 

 

 

 

 

 

 

 

 

 

6

5

7

9

 

0

u1 = 0

70

 

[ 3]

70

[ 7]

[ 3]

[

2]

 

 

 

 

9

4

6

5

 

0

u2 = 1

50

 

[ 7]

10

[ 6]

40

[

3]

 

 

 

 

5

9

3

8

 

0

u3 =2

60

 

20

[ 2]

20

0

 

20

 

 

 

vj

 

v1 =3

v2 = 5 v3 = 1 v3 = 6 v4 = 2

 

Получили третий опорный план (распределение).

 

 

 

0

70

0

0

0

 

X3

=

 

0

10

0

40

0

 

 

 

 

 

 

20

0

20

0

20

 

 

 

 

 

Z(X3) = 70·5+10·4+40·5+20·5+20·3= 750 (грн.)

Он оптимальный, так как все оценки отрицательные.

Ответ. Распределение картофеля по торговым точкам имеет вид:

 

 

 

0

70

0

0

 

XOpt

= Xmin

=

 

0

10

0

40

 

 

.

 

 

 

 

20

0

20

0

 

 

 

 

 

 

Общие затраты на перевозку картофеля составят 750 грн. Спрос торго- вых точек удовлетворён полностью − они получат 160 ц картофеля. У третьего фермерского хозяйства останется нереализованным 20 ц картофеля.

Рассмотрим методику решения транспортной задачи в Excel

Решение аналогичное решению задач симплекс-методом.

Решение состоит из двух этапов:

ввести, согласно стандартного приёма, формулы математической моде- ли задачи в Excel;

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

грамме «Поиск решения».

56

Первый этап решения транспортной задачи с помощью Excel

Открыть Excel. Набрать исходные данные транспортной задачи в про- извольном месте таблицы Excel, как показано в табл. 2.4.7. Клетки E1:E3 и A4:D4, где должны находиться знаки ограничений, оставляем свободными (они обведены двумя линиями). В клетке E6 (обведённой жирной линией) будет находиться значение целевой функции. В клетках A6: D8 (обведённых

жирной штриховой

линией)

будут

находиться

значения

переменных

х11, х12 , х13 , х14 , х21

, х22 , х23 , х24 , х31, х32 , х33 ,

х34 и в конце ответ.

 

 

 

Таблица 2.4.7. Исходные данные примера 1, набранные в Excel.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

B

C

 

D

E

F

 

 

1

 

6

5

7

9

 

 

70

 

 

2

 

9

4

6

5

 

 

50

 

 

3

 

5

9

3

8

 

 

60

 

 

4

 

 

 

 

 

 

 

 

 

 

 

5

 

20

80

20

40

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

По общим правилам вводим формулы математической модели задачи. 1. Вводим формулу целевой функции. Для этого курсор ставится в

клетку E6 и выполняются действия: «Вставка»; «Функция»; «Математиче-

ские»; «СУММПРОИЗ»; «ОК».

В строку «Массив вводится (выделяется) A1:D3; В строку «Массив

вводится A6:D8; «OK». (Рис. 2.4.3).

Рис. 2.4.3. Введение целевой функции

57

2.Вводим ограничения по поставщикам. Суммируем значения клеток массива A6: D8 по строкам и столбцам и располагаем их соответственно в клетках E1:E3 и A4:D4 (они обведены двумя линиями). Для этого ставим курсор в клетку E1 и выполняем действия: «Вставка»; «Функция»; «Мате- матические»; «СУММ»; «ОК». В строку «Массив вводится (выделяется) A6:D6; «OK». Маленький плюс протягиваем по клеткам E1:E3.

3.Вводим ограничения по потребителям. Ставим курсор в клетку A4 и

выполняем действия: «Вставка»; «Функция»; «Математические»; «СУММ»; «ОК». В строку «Массив вводится (выделяется) A6:A8; «OK». Маленький плюс протягиваем по клеткам A4:D4.

Математическая модель, за исключением знаков ограничений и вида оптимума, внесена (табл. 2.4.8).

Таблица 2.4.8. Вид листа Excel после набора мат.

модели примера 2.4.1

 

 

 

 

 

 

 

 

 

 

 

A

B

C

D

 

E

F

 

1

6

5

7

9

 

0

70

 

2

9

4

6

5

 

0

50

 

3

5

9

3

8

 

0

60

 

4

0

0

0

0

 

 

 

 

5

20

80

29

40

 

 

 

 

6

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

Второй этап решения транспортной задачи с помощью Excel

Запустись команду «Поиск Решения»: «Сервис»; «Поиск решения»

(если «Поиск Решения» нет, то в надстройке поставить галочку возле поиск решения); «OK».

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

Установить целевую ячейку E6; указать минимальное значение; изме- няя ячейки A6: D8; «Добавить»; в ссылке на ячейку вводится массив E1:E3, знак неравенства оставляем ; в ограничения выделяем клетки F1:F3 с чис- лами 70, 50,60; «Добавить»; в ссылке на ячейку вводится массив A4:D4, вы- бираем знак равенства, согласно модели; в ограничения выделяем клетки

A5:D5 с числами 20,80,20,40; «ОК».

После этих действий экран будет иметь вид

58

Рис. 2.4.4

Рис. 2. 4.5

«Параметры»; «Линейная модель»; «Неотрицательные значения»; «ОК» (Рис. 2.4.5); «Выполнить»; «Сохранить найденное решение»; Выде- лить «Результаты»; «Устойчивость»; «Пределы»; «ОК». (Рис. 2.4.6).

Рис. 2.4.6

В результате получим решение и его анализ, табл. 2.4.9.

 

 

Таблица 2.4.9. Решение транспортной задачи

6

5

7

9

 

70

70

9

4

6

5

 

50

50

5

9

3

8

 

40

60

20

80

20

40

 

 

 

20

80

20

40

 

 

 

 

0

70

0

0

 

750

 

 

0

10

0

40

 

 

 

20

0

20

0

 

 

 

2. 5. Задача динамического программирования

Задача 2.5.1. Задача о распределении капитальных вложений 1. Постановка задачи. Концерн, состоящий из 4 крупных предприятий

машиностроения решил выделить на их реконструкцию 500 тыс. $. Эффек- тивность функционирования j − го предприятия после его реконструкции

59

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]