Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Как решать транспортную задачу.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
83.7 Кб
Скачать

Метод потенциалов

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

2) Для каждой строки и каждого столбца вводятся и рассчитываются потенциалы и соответственно.

Вот как это выглядит в таблице (в качестве начального опорного плана взята итоговая таблица, полученная в ходе выполнения алгоритма «план минимального элемента»):

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

2

120

1

0

6

0

5

10

2

110

3

100

6

0

3

70

7

30

4

0

Для расчета коэффициента используется формула

где - стоимость перевозки, записанная в i-строке, j-ом столбце.

Расчет потенциалов начинается с того что элемент предполагают равным нулю:

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

0

2

120

1

0

6

0

5

10

2

110

3

100

6

0

3

70

7

30

4

0

Дальше решаются уравнения для тех которые соответствуют ненулевым ячейкам:

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

0

2

120

1

0

6

0

5

10

2

110

3

100

6

0

3

70

7

30

4

0

1

2

Далее мы видим, что по формуле больше ничего подсчитать нельзя, так как остальные элементы первой строки = 0

Начинаем искать ненулевой элемент в таблице который можно зафигачить в одну из формул

Для другого примера эти формулы могут отличатся, так как могут быть по другому распределены перевозки. Думайте логически.

Такой элемент всего один:

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

0

2

120

1

0

6

0

5

10

2

110

3

100

6

0

3

70

7

30

4

0

1

1

2

Далее ищем подходящий элемент для формулы

Вот подходящий элемент:

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

0

2

120

1

0

6

0

5

10

2

110

3

100

6

0

3

70

7

30

4

0

1

1

2

6

Теперь можем найти

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

70

7

30

4

0

1

1

2

6

И, наконец, находим последний потенциал

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

70

7

30

4

0

1

1

2

6

3

Далее среди всех ячеек = 0 мы ищем плохие ячейки.

Ячейка плоха, если

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

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

0

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

70

7

30

4

0

1

1

2

6

3

Итак, проверяем на условие

1>1+(-1) – хорошо

6>1+1– хорошо

6>2+(-1) – хорошо

5<6+0 – плохо

3=3+0 – хорошо

4=3+1 – хорошо

Нашли одну плохую клетку. Значит план неоптимальным

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

Как сделать неоптимальный план оптимальным?

Берем эту плохую клетку и как-нибудь помечаем ее

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

40

5

*

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

70

7

30

4

0

1

1

2

6

3

Затем надо построить замкнутый маршрут обхода элементов таблицы.

Строится он по таким правилам:

1)Цикл начинается и заканчивается в плохой клетке

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

3)Каждое звено начинается и заканчивается в клетке со значением > 0 (кроме начальной плохой клетки)

4)Нельзя проходить по одной и той же клетке больше одного раза.

Эти маршруты могут быть довольно сложными.

Например:

0

0

0

0

0

*

89

4

0

0

0

0

96

0

0

3 3

0

0

56

1 0

0

0

76

0

0

0

0

0

0

89

0

0

4 9

0

56

0

0

0

0

0

Построив маршрут, помечаем знаками «+» и «-» те клетки, которые входят в маршрут по правилу:

Поставить «+» в плохую клетку с которой начинается цикл, и далее заносить знаки по мере движения по маршруту, чередуя их.

Например

0

0

0

0

0

+ *

89

4 -

0

0

0

0

96

0

0

- 33

0

0

56

1 0 +

0

0

76

0

0

0

0

0

0

89

0

0

4 9 +

0

56 -

0

0

0

0

0

Вернемся к нашему примеру, там маршрут гораздо легче

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

4 0 -

5

+ *

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

7 0 +

7

30 -

4

0

1

1

2

6

3

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

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

4 0 -

5

+ *

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

7 0 +

7

30 -

4

0

1

1

2

6

3

Вычитаем это значение из всех клеток, помеченных минусом, прибавляем это значение во все клетки с плюсом.

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

1 0

5

3 0

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

1 00

7

0

4

0

1

1

2

6

3

Получаем таблицу

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

10

5

30

3

0

0

2

120

1

0

6

0

5

10

2

110

-1

3

100

6

0

3

100

7

0

4

0

1

1

2

6

3

Обязательно проверяем, что ограничения (1*) и (2*) не нарушены

Теперь стираем все потенциалы кроме

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

10

5

30

3

0

0

2

120

1

0

6

0

5

10

2

110

3

100

6

0

3

100

7

0

4

0

Рассчитывай новые потенциалы (одна клетка обнулилась, одна получила значение > 0).

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

Номер склада

Количество товара на складе

Потребность потребителя 1

Потребность потребителя 2

Потребность потребителя 3

Потребность потребителя 4

20

110

40

110

1

60

1

20

2

10

5

30

3

0

0

2

120

1

0

6

0

5

10

2

110

0

3

100

6

0

3

100

7

0

4

0

1

1

2

5

2

Таки оптимально.