Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники ТПР / Учебник ТПР_4.3.doc
Скачиваний:
273
Добавлен:
17.06.2016
Размер:
604.67 Кб
Скачать

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

  • в транспортной таблице отыскиваются циклы с отрицательной ценой;

  • по ним перемещаются перевозки с целью улучшения плана;

  • план улучшается до тех пор, пока циклов с отрицательной ценой не останется.

Циклом в транспортной задаче называется несколько клеток, соединенных ломаной линией, которая в каждой клетке совершает поворот на 90. Цикл начинается и заканчивается в клетке с базисной переменной (в заполненной клетке). Он обязательно содержит одну свободную клетку. Цена цикла определяется как сумма стоимостей каждой клетки со своим знаком «+» или «–». Знаком «+» помечаются те клетки, стоимость которых меньше стоимости предыдущей клетки цикла, а знаком «–», те клетки, стоимость которых больше стоимости предыдущей клетки цикла.

Перенести какое-то количество единиц товара по циклу – значит увеличить перевозки, стоящие в положительных вершинах цикла, на это количество единиц, а перевозки, стоящие в отрицательных вершинах цикла уменьшить на то же количество. Таким образом, при любом циклическом переносе план остается допустимым.

При улучшении плана циклическими переносами, как правило, пользуются приемом, заимствованным из симплекс-метода: при каждом шаге (цикле) заменяют одну свободную переменную на базисную, т. е. заполняют одну свободную клетку и взамен освобождают одну из базисных клеток. При этом общее число базисных клеток остается неизменным и равно m + n – 1.

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

Правило: По циклу следует переносить число, меньшее из чисел в клетках со знаком минус.

Пример 6. Решим транспортную задачу из примера 1 распределительным методом.

Начальная стоимость перевозок С=180+216+15+240+72+72+30+160=985.

ПН

ПО

B1

B2

B3

B4

B5

Запасы

ai

A1

– 10

18

8

27

+ 5

3

6

9

48

A2

+ 6

7

– 8

30

6

5

30

A3

8

7

8

9

6

12

5

6

27

A4

7

5

4

6

8

20

20

Заявки bj

18

27

42

12

26

125

Переносим по циклу 18 единиц, улучшая при этом план на 18(10+8–5–6)=126.

ПН

ПО

B1

B2

B3

B4

B5

Запасы

ai

A1

10

– 8

27

+ 5

21

6

9

48

A2

6

18

+ 7

– 8

12

6

5

30

A3

8

7

8

9

6

12

5

6

27

A4

7

5

4

6

8

20

20

Заявки bj

18

27

42

12

26

125

Переносим по циклу 12 единиц, улучшая при этом план на 12(8+8–7–5)=48.

ПН

ПО

B1

B2

B3

B4

B5

Запасы

ai

A1

10

– 8

15

+ 5

33

6

9

48

A2

6

18

7

12

8

6

5

30

A3

8

+ 7

– 8

9

6

12

5

6

27

A4

7

5

4

6

8

20

20

Заявки bj

18

27

42

12

26

125

Переносим по циклу 9 единиц, улучшая при этом план на 9(8+8–7–5)=36.

ПН

ПО

B1

B2

B3

B4

B5

Запасы

ai

A1

10

8

6

5

42

6

9

48

A2

6

18

7

12

8

6

5

30

A3

8

– 7

9

8

6

12

+ 5

6

27

A4

7

+ 5

4

6

– 8

20

20

Заявки bj

18

27

42

12

26

125

Переносим по циклу 9 единиц, улучшая при этом план на 9(8+7–5–5)=45.

ПН

ПО

B1

B2

B3

B4

B5

Запасы

ai

A1

10

8

6

5

42

6

9

48

A2

6

18

7

12

8

6

5

30

A3

8

7

8

– 6

12

+ 5

15

27

A4

7

5

9

4

+ 6

– 8

11

20

Заявки bj

18

27

42

12

26

125

Переносим по циклу 11 единиц, улучшая при этом план на 11(8+6–6–5)=33.

ПН

ПО

B1

B2

B3

B4

B5

Запасы

ai

A1

10

8

6

5

42

6

9

48

A2

6

18

– 7

12

8

+ 6

5

30

A3

8

7

8

6

1

5

26

27

A4

7

+ 5

9

4

– 6

11

8

20

Заявки bj

18

27

42

12

26

125

Переносим по циклу 11 единиц, улучшая при этом план на 11(7+6–6–5)=22.

ПН

ПО

B1

B2

B3

B4

B5

Запасы

ai

A1

10

8

6

5

42

6

9

48

A2

6

18

7

1

8

6

11

5

30

A3

8

7

8

6

1

5

26

27

A4

7

5

20

4

6

8

20

Заявки bj

18

27

42

12

26

125

За шесть итераций план был улучшен на 126 + 48 + 36 + 45 + 33 + 22 = 310.

После решения стоимость перевозок:

С = 108 + 48 + 7 + 100 + 210 + 66 + 6 + 130 = 675.

Пример 7. Решим распределительным методом еще одну задачу.

ПН

ПО

B1

B2

B3

B4

Запасы

ai

A1

– 10

22

+ 7

9

6

8

31

A2

+ 5

– 6

25

5

23

4

48

A3

8

7

6

18

7

20

38

Заявки bj

22

34

41

20

117

Цена цикла: –10 + 7 – 6 + 5 = – 4. Переместим 22 единицы. Улучшение плана на 88.

ПН

ПО

B1

B2

B3

B4

Запасы

ai

A1

10

7

31

6

8

31

A2

5

22

6

3

– 5

23

+ 4

48

A3

8

7

+ 6

18

– 7

20

38

Заявки bj

22

34

41

20

117

Цена цикла: –5 + 4 – 7 + 6 = – 2. Переместим 20 единицы. Улучшение плана на 40.

ПН

ПО

B1

B2

B3

B4

Запасы

ai

A1

10

7

31

6

8

31

A2

5

22

6

3

5

3

4

20

48

A3

8

7

6

38

7

38

Заявки bj

22

34

41

20

117

За две итерации найден оптимальный план, который дает меньшую суммарную стоимость перевозок по сравнению с начальным планом на 128.

Недостатком распределительного метода является необходимость отыскания циклов для всех свободных клеток и определения их цен, что весьма затруднительно даже при таблице размерностью 45.

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

линейного программирования

Метод потенциалов лишен этого недостатка. Он позволяет автоматически выделять циклы с отрицательной ценой и находить их цены.

Основная идея метода потенциалов заключается во введении понятии псевдо стоимости.

Псевдо стоимость есть сумма потенциальных платежей i-м пунктом отправки (ПО) и j-м пунктом назначения (ПН) за перевозку единицы товара: .не обязательно положительны.

Для каждой базисной клетки псевдо стоимость равна стоимости перевозки единицы товара.

Алгоритм решения транспортной задачи

линейного программирования методом потенциалов [8, 19]

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

  2. Определить для этого плана платежи i и j исходя из условия, чтобы в любой базисной клетке псевдо стоимости были равны стоимостям i + j = cij. Один платежей (слагаемое i или j) можно произвольно положить равным нулю.

  3. Подсчитать псевдо стоимости для всех свободных клеток. Если окажется, что ни одна из них не превышает стоимости, то план оптимален. В этом случае закончить процедуру оптимизации плана.

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

Пример 8. Решим методом потенциалов задачу из примера 7.

ПН

ПО

B1

B2

B3

B4

Запасы ai

Платежи i

A1

10 10

22

7 7

9

6 6

7 8

31

0

A2

9 5

6 6

25

5 5

23

6 4

48

–1

A3

10 8

7 7

6 6

18

7 7

20

38

0

Заявки bj

22

34

41

20

117

Платежи j

10

7

6

7

1. Воспользуемся опорным планом, построенным по методу северо-западного угла в примере 7.

2. В верхнем левом углу каждой базисной клетки проставим ее псевдо стоимость, равную стоимости. Вычислим платежи i и j для каждого ПО и ПН. Положим, что платеж первого пункта отправки 1 = 0. Тогда платеж 1 = 10, т. к. c11=10= 1 +1, а платеж 2 = 7 по аналогичной причине. Но тогда платеж 2 = –1, т. к. c22 = 6 = 2 + 2. Аналогично вычисляем остальные платежи и записываем их в таблицу.

3. Затем вычисляем псевдо стоимости для свободных клеток и записываем их в левом верхнем углу клетки. Так, например, =2 + 1 = –1 + 10 = 9.

4. Просмотрев все свободные клетки таблицы можно увидеть, что псевдо стоимость превышает стоимость в трех клетках (2,1), (3,1), (2,4). Следовательно, следует приступить к улучшению плана путем переброски перевозок по циклу, соответствующему любой свободной клетке с отрицательной ценой. Пусть это будет клетка (2,1). Тогда цикл: (1,1)(1,2)  (2,2)  (2,1). По нему следует перебросить 22 единицы товара, чтобы сделать клетку (2,1) базисной, а клетку (1,1) – свободной. Затем снова перейдем к пункту 2, но уже с новым планом.

ПН

ПО

B1

B2

B3

B4

Запасы

ai

Платежи

i

A1

6 10

7 7

31

6 6

7 8

31

0

A2

5 5

22

6 6

3

5 5

23

6 4

48

–1

A3

6 8

7 7

6 6

18

7 7

20

38

0

Заявки bj

22

34

41

20

117

Платежи j

6

7

6

7

5. Пересчитаем платежи. Оставим в силе предположение, что 1 = 0. Клетка (1,2) по-прежнему базисная, поэтому 2 = c12 – 7 = 7 по-прежнему. Но клетка (2,2) тоже базисная. Поэтому по-прежнему 2 = 6 – 7 = –1 . Теперь клетка (2,1) базисная, поэтому ее псевдо стоимость теперь не 9, а 5, так как ее стоимость равна 5 (=c21 = 5). Но тогда новый платеж 1 = c212 = 5 – (–1) = 6. Остальные платежи не изменятся.

6. Вычислим новые псевдо стоимости для свободных клеток. Теперь =1 + 1 = 0 + 6 =6, =3 + 1 = 0 + 6 = 6. Остальные псевдо стоимости не изменятся.

7. Просмотрев все свободные клетки таблицы можно увидеть, что псевдо стоимость превышает стоимость в одной клетке (2,4). Следовательно, следует приступить к улучшению плана путем переброски перевозок по циклу, соответствующему этой клетке с отрицательной ценой. Тогда цикл: (3,4)(3,3)  (2,3)  (2,4). По нему следует перебросить 20 единиц товара, чтобы сделать клетку (2,4) базисной, а клетку (3,4) – свободной. Получим новый план.

ПН

ПО

B1

B2

B3

B4

Запасы

ai

Платежи

i

A1

6 10

7 7

31

6 6

5 8

31

0

A2

5 5

22

6 6

3

5 5

3

4 4

20

48

–1

A3

6 8

7 7

6 6

38

5 7

38

0

Заявки bj

22

34

41

20

117

Платежи j

6

7

6

5

8. Пересчитаем платежи. Новый платеж 4 = c242 = 4 – (–1) = 5. Остальные платежи не изменятся.

9. Вычислим новые псевдо стоимости для свободных клеток. Теперь =1 + 4 = 0 + 5 =5, =3 + 4 = 0 + 5 = 5, =c24 = 4. Остальные псевдо стоимости не изменятся.

10. Поскольку псевдо стоимости всех клеток не превышают их стоимостей, то оптимальный план перевозок найден. Задача решена.

Соседние файлы в папке Учебники ТПР