- •Содержание
- •Глава 1. Постановка транспортных задач 6
- •Глава 2. Определение оптимального плана транспортных задач 28
- •Введение
- •Глава 1.Постановка транспортных задач
- •1.1.Однопродуктовая транспортная модель
- •1.2.Многопродуктовая транспортная модель
- •1.3.Модель производства с запасами
- •1.4. Методы построения опорного плана
- •1.4.1. Метод северо-западного угла
- •1.4.2.Метод минимальной стоимости
- •1.4.3.Метод двойного предпочтения
- •1.4.4.Приближенный метод Фогеля
- •Глава 2.Определение оптимального плана транспортных задач
- •2.1.Решение транспортной задачи методом моди
- •2.2.Дельта-метод решения транспортной задачи
- •2.3.Решение задач закрепления потребителей за поставщиками и клиентуры за автотранспортными предприятиями с учетом дополнительных требований
- •2.3.1.Ограничения в поставках
- •2.3.2.Несбалансированное наличие и потребности
- •2.3.3.Задача закрепления при учете взаимозаменяемости автомобилей
- •2.3.4.Задача на минимизацию времени доставки груза
- •Глава 3.Задача о назначениях
- •3.1.Постановка задачи о назначениях
- •3.2.Венгерский метод решения задачи о назначениях
- •3.3.Применение задачи о назначениях к решению экономических проблем
- •Глава 4.Оптимальное планирование грузооборота
- •4.1.Транспортная сеть и характеристика перевозимых грузов
- •Объёмы потребления грузов
- •Объёмы производства песка
- •4.2.Оптимальное планирование грузоперевозок
- •4.3.Маршрутизация перевозок грузов при помашинных отправках
- •4.4.Составление кольцевых и маятниковых маршрутов
- •Глава 5.Оптимальное планирование работы автобусного парка
- •5.1.Постановка задачи
- •5.2.Двойственная задача линейного программирования
- •5.3. Примеры формулировок двойственных задач
- •5.4. Симметричная и несимметричная двойственные пары. Основы теории двойственности
- •Основная теорема теории двойственности
- •5.5. Условия равновесия в симметричной паре. Экономическая интерпретация
- •5.6.Решение задачи оптимального планирования работы автопарка
- •Глава 6.Область применения сетевых транспортных задач
- •6.1.Примеры применения модели о кратчайшем пути
- •6.2.Алгоритмы нахождения кратчайшего пути
- •6.2.1.Алгоритм для сетей без циклов
- •6.2.2.Алгоритм для сетей с циклами
- •6.2.3.Алгоритм Флойда
- •6.3.Алгоритм нахождения максимального потока в сети
- •6.4.Представление сетевых задач как задач линейного программирования
- •Глава 7.Применение сетевых моделей в транспортировке грузов
- •7.1. Определение кратчайших расстояний между пунктами транспортной сети
- •7.2. Решение задачи коммивояжера методом "ветвей и границ"
- •7.3. Определение развозочных маршрутов для перевозки мелких партий грузов
- •7.3.1. Нахождение кратчайшей связывающей все пункты сети и набор пунктов в маршруты
- •7.3.2. Определение очередности объезда пунктов маршрута
- •Матрица кратчайших расстояний 2-го маршрута
- •7.4. Определение развозочных маршрутов для мелких партий грузов методом Кларка Райта
- •Список литературы
2.2.Дельта-метод решения транспортной задачи
При составлении плана перевозок с помощью транспортной задачи линейного программирования большое значение имеет время, затраченное на ее решение. Применение метода двойного предпочтения и метода МОДИ для решения транспортной задачи с 10 - 15 поставщиками и 15 - 20 потребителями требует 4 - 5 часов непрерывных вычислений. Это происходит потому, что существующие методы составления первоначального опорного плана позволяют получить план, далекий от оптимального. Как показала практика, использование дельта-метода совместно с методом МОДИ дает возможность найти оптимальный план в 3 - 4 раза быстрее, причем, чем больше размер таблицы, тем ощутимее разница во времени. Это объясняется тем, что в результате применения дельта-метода всегда находится оптимальный план. Если построенный план оказался неоптимальным, то это произошло только в результате допущенных в процессе построения плана ошибок.
Алгоритм метода:
Если
все
В общем случае получаем: а) для одних строк , они называются нулевыми.
б)
для других строк
в) для третьих , такие строки называются недостаточными и отмечаются знаком ˝+˝.
а) для каждой нулевой строки
б) для некоторых нулевых строк
где
а)
если
б)
если
где
|
Алгоритм дельта - метода рассмотрим на примере транспортной задачи, записанной в таблице 25.
Таблица 25
Поставщики |
Ui
Vj |
Потребители |
ai |
ai |
отмеченных столбцов |
||||||||||||
В1 |
В2 |
В3 |
В4 |
В5 |
В6 |
||||||||||||
|
V |
V |
|
|
|
||||||||||||
А1 |
|
|
10 0 |
|
19 8 |
|
17 10 |
|
18 1 |
|
16 1 |
|
21 5 |
450 |
+ 250 |
8 |
|
200 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А2 |
|
|
13 3 |
|
14 3 |
|
11 4 |
|
17 0 |
|
18 3 |
|
19 3 |
400 |
+ 300 |
3 |
|
|
|
|
100 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А3 |
|
Ө |
15 5 |
|
11 0 |
|
7 0 |
|
19 2 |
|
19 4 |
|
22 6 |
150 |
550 |
|
|
|
300 |
400 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А4 |
|
|
14 4 3 |
|
13 2 1 |
|
12 5 4 |
|
18 1 0 |
|
21 6 5 |
|
23 7 6 |
150 |
0 |
1 |
|
|
|
|
150 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А5 |
|
|
21 11 |
|
23 12 |
|
10 3 |
|
20 3 |
|
15 0 |
|
16 0 |
250 |
0 |
3 |
|
|
|
|
|
150 |
100 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
bj |
200 |
300 |
400 |
250 |
150 |
100 |
1400 |
|
|
||||||||
В
таблице 25 при переходе к матрице
(п. 2
алгоритма)
преобразованию
подлежит строка А4,
где
.
Появившиеся в таблице нули указывают
на наименьшие приращения стоимостей
по отношению к наименьшим стоимостям,
выбранным в столбцах.
Согласно п. 3 алгоритма, в таблице 25 в столбцах В1, В2, В3, В5 и В6 по одной клетке с нулевыми приращениями, записываем в эти клетки потребности соответствующих потребителей. В столбце В4 два нулевых приращения, стоящие в клетках А2В4 и А4В4. За поставщиком А4 следует закрепить 150 ед. потребностей, а за поставщиком А2 – 400 ед. Имеется же всего 250 ед., поэтому планируем полное удовлетворение поставщика А4 и 100 ед. закрепляем за поставщиком А2. В результате получено первоначальное закрепление потребителей за поставщиками по нулевым приращениям стоимостей.
В рассматриваемом примере находим (п. 4 алгоритма) a1 = 450 200, a2 = 400 100 = 300, a3 = 150 700 = 550, a4 = 150 150 = 0, a5 = 250 250 = 0, т.е. А4 и А5 нулевые строки.
Вообще, для закрытой (сбалансированной) модели сумма ai избыточных строк всегда должна быть равна сумме ai недостаточных строк.
Так как a1, a2, а3 не равны нулю, то первоначальное закрепление не является планом. Чтобы получить план, необходимы избыточные 550 ед. потребностей, закрепленных за поставщиком А3, закрепить за поставщиками А1 и А2 соответственно в количестве 250 и 300 ед.
В первоначальном закреплении потребности распределены по нулевым приращениям, поэтому дальнейшее их перезакрепление связано с увеличением суммарной стоимости планируемых перевозок. Необходимо 550 ед. потребностей перезакрепить за поставщиками А1 и А2 таким образом, чтобы получить при этом минимальное приращение стоимости на единицу перезакрепленных потребностей. Для этого выполняем следующие операции. В табл. 25 отмечаем ˝V˝ столбцы В2 и В3 (п. 5 алгоритма).
Находим отмеченных столбцов (п. 6 алгоритма):
для недостаточной строки А1 |
|
для недостаточной строки А2 |
|
для нулевой строки А4 |
|
для нулевой строки А5 |
|
Эти значения показывают какое приращение стоимости на данном шаге будет получено, если единицу потребности непосредственно перезакрепить от поставщика А3 соответственно к поставщикам А1, А2, А4, А5.
Записываем
полученные значения в табл. 25 в последней
графе. Находим для недостаточных строк
.
Сравниваем это значение с Сij
нулевых строк. Для нулевой строки А4
выполняется
условие (2.10) п. 7 алгоритма, поэтому
перераспределение проводим по цепочке.
Для построения цепочки находим в строке
А4
приращение
С42=1,
стоящее в отмеченном столбце, и эту
клетку отмечаем знаком ˝+˝,
в столбце В2
находим занятую клетку А3В2,
которая находится в избыточной строке,
и отмечаем ее знаком ˝˝.
Начинаем движение по звену цепочки
А3В2-В2А4
и приходим в нулевую строку А4,
находим в ней занятую клетку А4В4
и отмечаем
ее знаком ˝˝,
затем по столбцу В4
переходим в клетку недостаточной строки.
В данном случае цепочку можно окончить
в двух клетках (А4В4
и А2В4),
которые и отмечаем знаками ˝+˝.
Получены две цепочки: А3В2
– В2А4
– А4В4
– В4А1
и А3В2
– В2А4
–А4В4
– В4А2.
Подсчитаем по цепочкам сумму приращений:
(для
первой цепочки).
(для второй цепочки).
Для обеих цепочек сумма меньше трех, следовательно обе они годятся. Для перераспределения выбираем вторую цепочку, так как для нее сумма приращения меньше (1<2). Определяем величину перераспределения: min(300;150;550;300)=150.
Двигаясь
по цепочке, перераспределяем 150 ед.,
затем а2
и а3
изменяем
на то же число. В результате получим
новое закрепление, приведенное в табл.
26. После первой итерации количество
отмеченных столбцов и недостаточных
строк осталось без изменения, поэтому
как и прежде, min Сij=3
и для строки А4
имеем 1<3.Проверяем перераспределение
по цепочке, которая начинается в клетке
А2В2
и проходит через клетку А4В2
нулевой строки А4.
Но из клетки А4В2
движение по нулевой строке А4
продолжить невозможно, так как в ней
нет других занятых клеток. Для нулевой
строки А5
имеем min
Cij=Ci0j=3,
поэтому производим непосредственное
перезакрепление из строки А3
в клетку
А2В2,
в которой теперь находится min
.
Определяем теперь величину перераспределения min (150;400;150)=150 и производим его, внося изменения в табл. 26.
Таблица 26
Поставщики |
Ui
Vj |
Потребители |
ai |
ai |
отмеченных столбцов |
||||||||||||
В1 |
В2 |
В3 |
В4 |
В5 |
В6 |
||||||||||||
|
V |
V |
|
|
|
||||||||||||
А1 |
|
|
10 0 |
|
19 8 |
|
17 10 |
|
18 1 |
|
16 1 |
|
21 5 |
450 |
+ 250 |
8 |
|
200 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А2 |
|
|
13 3 |
|
14 3 |
|
11 4 |
|
17 0 |
|
18 3 |
|
19 3 |
400 |
+ 150 |
3 |
|
|
|
|
250 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А3 |
|
|
15 5 |
|
11 0 |
|
7 0 |
|
19 2 |
|
19 4 |
|
22 6 |
150 |
400 |
|
|
|
150 |
400 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А4 |
|
|
14 4 3 |
|
13 2 1 |
|
12 5 4 |
|
18 1 0 |
|
21 6 5 |
|
23 7 6 |
150 |
0 |
1 |
|
|
|
150 |
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А5 |
|
|
21 11 |
|
23 12 |
|
10 3 |
|
20 3 |
|
15 0 |
|
16 0 |
250 |
0 |
3 |
|
|
|
|
|
150 |
100 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
bj |
200 |
300 |
400 |
250 |
150 |
100 |
1400 |
|
|
||||||||
В результате получаем новое закрепление, приведенное в табл. 27.
В
результате перераспределения клетка
А3В2
стала свободной, столбец В2
выбыл из
отмеченных, строка стала нулевой.
Подсчитываем min
в отмеченных столбцах для избыточных
и нулевых строк и помещаем эти значения
в последнюю графу табл. 27. Находим для
недостаточных строк min
=10.
Любое из значений
,
стоящих в нулевых строках, меньше десяти,
поэтому возможность перераспределения
по цепочкам надо проверить для всех
нулевых строк. Проверку начинаем с
нулевой строки А5,
так как ей соответствует min
=3.
Клетку А5В3,
отмечаем знаком ˝+˝
и строим цепочку из клетки А3В3,
отмечая ее знаком ˝˝.
В строке А5
две занятые клетки, поэтому строим через
каждую из них цепочки и составляем сумму
приращений:
Для
цепочки
А3В3В3А5А5В5В5А1
сумма
приращений
-0+3-0+1=4
Для цепочки А3В3-В3А5А5В6В6А1 сумма приращений -0+3-0+5=8
Таблица 27
Поставщики |
Ui
Vj |
Потребители |
ai |
ai |
отмеченных столбцов |
||||||||||||
В1 |
В2 |
В3 |
В4 |
В5 |
В6 |
||||||||||||
|
|
V |
|
|
|
||||||||||||
А1 |
|
|
10 0 |
|
19 8 |
|
17 10 |
|
18 1 |
|
16 1 |
|
21 5 |
450 |
+ 250 |
10 |
|
200 |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А2 |
|
|
13 3 |
|
14 3 |
|
11 4 |
|
17 0 |
|
18 3 |
|
19 3 |
400 |
0 |
4 |
|
|
150 |
|
250 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А3 |
|
|
15 5 |
Ө |
11 0 |
|
7 0 |
|
19 2 |
|
19 4 |
|
22 6 |
150 |
250 |
|
|
|
|
400 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А4 |
|
|
14 4 3 |
|
13 2 1 |
|
12 5 4 |
|
18 1 0 |
|
21 6 5 |
|
23 7 6 |
150 |
0 |
4 |
|
|
150 |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А5 |
|
|
21 11 |
|
23 12 |
|
10 3 |
Ө |
20 3 |
|
15 0 |
|
16 0 |
250 |
0 |
3 |
|
|
|
|
|
150 |
100 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
bj |
200 |
300 |
400 |
250 |
150 |
100 |
1400 |
|
|
||||||||
Так как для первой цепочки сумма приращений равна четырем и в остальных нулевых строках Сi0j =4, то проверять возможность перераспределения через них нецелесообразно. Перераспределение min (400,150,250) = 150 производим по первой цепочке и в результате получаем табл. 28.
Таблица 28
Поставщики |
Ui
Vj |
Потребители |
ai |
ai |
отмеченных столбцов |
||||||||||||
В1 |
В2 |
В3 |
В4 |
В5 |
В6 |
||||||||||||
|
|
V |
|
|
|
||||||||||||
А1 |
|
|
10 0 |
|
19 8 |
|
17 10 |
|
18 1 |
|
16 1 |
|
21 5 |
450 |
+ 100 |
10 |
|
200 |
|
|
|
150 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А2 |
|
|
13 3 |
|
14 3 |
Ө |
11 4 |
|
17 0 |
|
18 3 |
|
19 3 |
400 |
0 |
4 |
|
|
150 |
|
250 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А3 |
|
|
15 5 |
Ө |
11 0 |
|
7 0 |
|
19 2 |
|
19 4 |
|
22 6 |
150 |
100 |
|
|
|
|
250 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А4 |
|
|
14 4 3 |
|
13 2 1 |
|
12 5 4 |
|
18 1 0 |
|
21 6 5 |
|
23 7 6 |
150 |
0 |
4 |
|
|
150 |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А5 |
|
|
21 11 |
|
23 12 |
|
10 3 |
|
20 3 |
|
15 0 |
|
16 0 |
250 |
0 |
3 |
|
|
|
150 |
|
|
100 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
bj |
200 |
300 |
400 |
250 |
150 |
100 |
1400 |
|
|
||||||||
В табл. 28 построение цепочек начинаем с клетки А5В5 нулевой строки А5. Для цепочек:
А3В3В3А5А5В6В6А1 сумма приращений -0+3-0+5=8;
А3В3В3А5А5В6В6А2А2В4В4А1 сумма приращений =-0+3-0+3-0+1=8.
Так как сумма приращений значительно больше четырех, поэтому проверяем возможность перераспределения через остальные нулевые строки.
Для строки А2
А3В3В3А2А2В4В4А1, -0+4-0+1=5;
А3В3В3А2А2В2В2А1, -0+4-3+8 = 9.
Для строки А4
А3В3В3А4А4В2В2А1, -0+4-1+8=11;
А3В3В3А4А4В2В2А2А2В4В4А1, -0+4-1+3-0+1 = 7.
Перераспределение min(250;250;100;100)=100 производим по третьей цепочке. В результате получаем табл. 29, в которой все строки преобразованы в нулевые. Следовательно, в результате последней итерации получен оптимальный план. Построенная система потенциалов показывает, что этот план является оптимальным.
При решении задач дельта-методом количество итераций зависит в основном от числа строк, поэтому при m<n потребителей закрепляют за поставщиками, при m>n –поставщиков за потребителями. дельта-метод позволяет решать открытую модель транспортной задачи, не приводя ее к закрытой модели, однако, это возможно только в том случае, если вычисления абсолютно правильны и все перераспределения произведены по лучшим цепочкам. Так как такой уверенности быть не может (цепочки могут проходить через несколько нулевых строк), то план проверяют и доводят до оптимального с помощью метода потенциалов, поэтому при решении задач дельта-методом без применения ЭВМ открытую модель преобразуют в закрытую.
Таблица 29
Поставщики |
Ui
Vj |
Потребители |
ai |
ai |
отмеченных столбцов |
||||||||||||
В1 |
В2 |
В3 |
В4 |
В5 |
В6 |
||||||||||||
|
|
V |
|
|
|
||||||||||||
А1 |
|
|
10 0 |
|
19 8 |
|
17 10 |
|
18 1 |
|
16 1 |
|
21 5 |
450 |
+ 100 |
10 |
|
200 |
|
150 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А2 |
|
|
13 3 |
|
14 3 |
Ө |
11 4 |
|
17 0 |
|
18 3 |
|
19 3 |
400 |
0 |
4 |
|
|
150 |
|
250 |
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А3 |
|
|
15 5 |
Ө |
11 0 |
|
7 0 |
|
19 2 |
|
19 4 |
|
22 6 |
150 |
100 |
|
|
|
|
250 |
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А4 |
|
|
14 4 3 |
|
13 2 1 |
|
12 5 4 |
|
18 1 0 |
|
21 6 5 |
|
23 7 6 |
150 |
0 |
4 |
|
|
150 |
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
А5 |
|
|
21 11 |
|
23 12 |
|
10 3 |
|
20 3 |
|
15 0 |
|
16 0 |
250 |
0 |
3 |
|
|
|
150 |
|
|
100 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||
bj |
200 |
300 |
400 |
250 |
150 |
100 |
1400 |
|
|
||||||||
Для
того, чтобы нулевые стоимости фиктивных
перевозок не привели к увеличению
вычислений при преобразовании таблицы
Сij
в таблицу Сij,
минимальные стоимости в столбцах
отыскивают среди стоимостей реальных
поставщиков и потребителей. При этом
отрицательные приращения, имеющие место
для фиктивного поставщика, преобразуют
в положительные при переходе к таблице
.
Для фиктивного потребителя отрицательные
приращения получаем при переходе к
таблице
,
а затем преобразуем их в положительные,
вычитая из этих приращений наименьшее
отрицательное приращение по столбцу
фиктивного потребителя. Решение
транспортной задачи с фиктивным
потребителем рассмотрено в таблице 30.
Таблица 30
Поставщики |
Ui
Vj |
Потребители |
ai |
||||||||||||||||
В1 |
В2 |
В3 |
В4 |
В5 |
В6 |
В6 |
Вn+1 |
||||||||||||
19 |
24 |
20 |
19 |
20 |
20 |
18 |
‑1 |
||||||||||||
А1 |
0 |
|
19 6 2 |
|
24 9 5 |
|
26 9 5 |
|
28 10 6 |
|
30 16 12 |
|
22 4 0 |
|
185 1 |
|
0 -4 0 |
450 |
|
250 |
|
|
|
|
|
200 |
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
А2 |
1 |
|
31 18 15 |
|
29 14 11 |
|
27 10 7 |
|
25 7 4 |
|
23 9 6 |
|
213 0 |
|
196 3 |
|
0 -3 1 |
450 |
|
|
|
|
|
|
300 |
150 |
0 |
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
А3 |
-9 |
|
25 12 |
|
15 0 |
|
17 0 |
|
22 4 |
|
24 10 |
|
18 0 |
|
13 0 |
|
0 4 |
300 |
|
|
300 |
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
А4 |
1 |
|
28 15 13 |
|
25 10 8 |
|
21 4 2 |
|
20 2 0 |
|
23 9 7 |
|
27 9 7 |
|
29 16 14 |
|
0 -2 2 |
400 |
|
|
50 |
50 |
150 |
|
|
|
|
150 |
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
А5 |
-6 |
|
13 0 |
|
20 5 |
|
27 10 |
|
18 0 |
|
14 0 |
|
30 12 |
|
24 11 |
|
0 4 |
350 |
|
150 |
|
|
|
200 |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
bj |
400 |
350 |
50 |
150 |
200 |
300 |
350 |
150 |
1950 |
||||||||||
