
- •Транспортная задача
- •Построение сбалансированной транспортной модели
- •Сведение многопродуктовой модели транспортной задачи к однопродуктовой
- •Свойства закрытой транспортной задачи
- •1. Задача в любом случае допустима и имеет решение.
- •Построение исходного опорного решения транспортной задачи
- •Метод северо-западного угла
- •Метод наименьшей стоимости
- •Алгоритм
- •Приближенный метод Фогеля
- •Алгоритм
- •Метод плавающих зон
- •Метод потенциалов
- •Использование второй теоремы двойственности для обоснования метода потенциалов
- •Метод потенциалов. Переход к новому опорному решению
- •Выводы по методу потенциалов
- •Теорема о цикле пересчета
- •Распределительный метод решения транспортной задачи
- •Алгоритм распределительного метода
- •Дополнительные ограничения в постановке транспортной задачи
- •Контроль
- •Транспортная модель с промежуточными пунктами
Метод потенциалов. Переход к новому опорному решению
Пусть при проверке
очередного опорного решения обнаружилось,
что ,
то есть рассматриваемое решение не
оптимально.
Здесь следует сделать небольшое отступление. По своему смыслу (это доказывать не будем):
Косвенная
стоимость - это
коэффициент, с которым свободная
переменная xij
входит в ЦФ, если все базисные
переменные выразить через свободные1.
В этой связи становится ясно, какую переменную нужно вводитьв состав базисных, чтобы получить новое, лучшее опорное решение:переменную с отрицательной косвенной стоимостью(желательно, с максимальной по абсолютной величине отрицательной косвенной стоимостью).
Ответим теперь на вопрос, а какую переменную следует выводить из состава базисных.
В методе потенциалов этот вопрос решается довольно своеобразно.
Пусть E<0. Вводим переменную x в состав базисных переменных. Придадим этой переменной некоторое положительное приращение >0. То есть, потребуем, чтобы из пункта в пунктбыло отправлено продукции в количествеединиц. Назовем клетку с координатами (, ) "положительной вершиной". Теперь рассмотрим следующий рисунок.
|
|
|
j2 |
|
|
|
|
|
j1 |
| |||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| ||
|
|
|
|
|
|
|
|
| |||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ |
|
|
|
| ||
|
|
|
|
|
|
|
|
| |||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
Отправить в -й пунктединиц продукции можно только уменьшив поставку из пункта в в другие пункты наединиц.
Найдем заполненную
клетку (базисную переменную) в той же
строке. Пусть это будет
.
Уменьшим поставку в пунктj1
на единиц.
Теперь поставка в этот пункт составляет
(
)
единиц. Соответствующую вершину назовем
«отрицательной».
Недопоставку в
пункт j1 наединиц компенсируем за счет другого
пункта – это занятая клетка того же
столбца. Пусть это будетТеперь поставка в этот пункт составляет
(
)
единиц. Соответствующую вершину назовем
"положительной".
Но это можно сделать
только за счет недопоставки единиц в другой пункт – в нашем случае
в пунктj2. Уменьшим поставку
в пунктj2 наединиц. Теперь поставка в этот пункт
составляет ()
единиц. Соответствующую вершину назовем
"отрицательной".
Рассуждая аналогично, строим цепочку:
,
,
,…,
- до тех пор, пока эта цепочка не замкнется,
пока очередной положительной вершиной
не станет исходная не занятая клетка,
соответствующая переменной
.
Образовался т.н. «цикл пересчета», все вершины которого, кроме одной, соответствуют базисным переменным.
Доказано, что для транспортной задачи такой цикл – единственный.
Переход к новому опорному решению в методе потенциалов производится следующим образом.
Начнем увеличивать
. Исходное
значение переменной- это ноль (свободная переменная).
Соответственно, с увеличением значение
этой переменной будет увеличиваться.
Будут увеличиваться также значения
базисных переменных, соответствующих
положительным вершинам построенного
цикла пересчета. Значения базисных
переменных, не входящих в цикл пересчета,
будут оставаться неизменными.
Что же касается переменных, связанных с отрицательнымивершинами, их значения начнутуменьшаться. Ввиду того, что новое решение должно быть опорным и, естественно,допустимым, можно увеличивать только до тех пор, пока значение одной или нескольких переменных, связанных с отрицательными вершинами цикла пересчета не обратится вноль. Соответствующую переменную, очевидно,нужно выводить из состава базисныхпеременных. При этом если в ноль обращаются несколько переменных, из базиса нужно выводить только одну из них. Остальные жетакиепеременные должны остаться в составе базисных снулевымизначениями: новое опорное решение в этом случае являетсявырожденнымопорным решением.
Итак, "предельное" значение - это минимальный объем перевозок, найденный в "отрицательных" вершинах цикла.
Пусть
-
минимальный объем перевозок, найденный
в одной из отрицательных вершин цикла
пересчета. Эта величина и будет
представлять собой искомое предельное
значение -
значение переменной
,
которая в новом опорном решении вводится
в состав базисных переменных. Значения
базисных переменных, соответствующих
вершинам цикла, корректируются –
увеличиваются или уменьшаются на
величину
.
При этом переменная
,
принявшая нулевое значение, выводится
из состава базисных переменных нового
опорного решения – соответствующая
клетка таблицы объявляетсянезанятой.
Если кроме
после пересчета некоторые другие
базисные переменные обращаются в ноль,
в соответствующие клетки записывается
ноль, и они объявляются «условно-занятыми».
Таким образом в методе потенциалов осуществляется переход к новому опорному решению.
Определение.Увеличение на величину =
переменных, соответствующих положительным
вершинам цикла пересчета, и уменьшение
на эту же величину переменных,
соответствующих отрицательным вершинам,
называется "сдвигом по циклу
пересчета".
Пример. Дана транспортная таблица, в которой записано некоторое опорное решение.
Табл. 1
|
|
3 |
2 |
2 |
1 |
|
|
v1 |
v2 |
v3 |
v4 |
0 |
u1 |
3 5 |
2 25 |
4
|
1 20 |
-1 |
u2 |
2 25 |
3
|
1 15 |
5
|
2 |
u3 |
3
|
2
|
4 20 |
4
|
Здесь 6=m+n-1=3+4-1заполненных клеток, соответствующих базисным переменным.
По заполненным клеткам составим систему уравнений для нахождения потенциалов (ui + vj = сij)
u1+ v1=3 u1=0 v1=3
u1+ v2=2 u1=0 v2=2
u1+ v4=1 u1=0 v4=1
u2+ v1=2 v1=3 u2=-1
u2+ v3=1 u2=-1 v3=2
u3+ v3=4 v3=2 u3=2
Для удобства последующих вычислений занесем полученные результаты в новую таблицу.
Табл. 2
|
3 |
2 |
2 |
1 |
|
3 5+
|
2 25- |
4
|
1 20 |
-1 |
2 25-
|
3
|
1 15+ |
5
|
2 |
3
|
2 + |
4 20-
|
4
|
Теперь по каждой
незаполненной клетке посчитаем
соответствующую косвенную стоимость
:
E13=4-(2+0)=2, E22=3-(-1+2)=2, E24=5-(-1+1)=5
E31=3-(2+3)= -2, E32=2-(2+2)=-2, E34=4-(2+1)=1.
Наличие отрицательных косвенных стоимостей говорит о неоптимальности записанного в таблицу решения. Это решение можно улучшить, введя в состав базисных переменных переменную x31илиx32. Введемx32 (интересней цикл пересчета).
Для этого построим цикл пересчета.
Для определения величины находим среди отрицательных вершин такую, которой соответствует минимальное значение переменной в опорном решении. Этоx33=20. Следовательно, принимаем=20ивыполняем сдвиг по циклу пересчета. После этого сдвига переменнаяx33принимает нулевое значение. Эту переменную выведем из состава базисных переменных (введем же переменнуюx32).
В табл. 3 записано новое опорное решение.
Табл. 3
|
3 |
2 |
2 |
1 |
0 |
3 25
|
2 5 |
4
|
1 20 |
-1 |
2 5
|
3
|
1 35 |
5
|
0 |
3
|
2 20 |
4
|
4
|
По заполненным клеткам составим систему уравнений для нахождения потенциалов (ui + vj = сij)
u1+ v1=3 u1=0 v1=3
u1+ v2=2 u1=0 v2=2
u1+ v4=1 u1=0 v4=1
u2+ v1=2 v1=3 u2=-1
u2+ v3=1 u2=-1 v3=2
u3+ v2=2 v2=2 u3=0
По каждой незаполненной клетке посчитаем стоимость:
E13=4-(2+0)=2, E22=3-(-1+2)=2, E24=5-(-1+1)=5
E31=3-(0+3)= 0, E33=4-(0+2)= 2, E34=4-(0+1)=3.
Все косвенные стоимости неотрицательные, следовательно, решение, записанное в этой таблице – оптимальное.
Zопт=190. На исходном решении ЦФ имеет значение 230 (существенная разница!).
Пример. Мы решали методом Фогеля следующую задачу:
|
1 |
2 |
3 |
4 |
|
1 |
10
|
0
|
20
|
11
|
15 |
2 |
12
|
7
|
9
|
20
|
25 |
3 |
0
|
14
|
16
|
18
|
5 |
|
5 |
15 |
15 |
10 |
|
Получили ее решение:
|
|
Потенциалы столбцов vj | |||
|
|
-7 |
0 |
0 |
11 |
Потенциалы строк ui |
0 |
10
|
0 15 |
20
|
11 0 |
9 |
12
|
7
|
9 15 |
20 10 | |
7 |
0 5 |
14
|
16
|
18 0 |
И показали, что оно не оптимальное, так как E22= -2 < 0.
Продолжим решение. Построим цикл пересчета.
|
|
|
|
|
|
10
|
0 15-
|
20
|
11 0+ |
|
12
|
7 + |
9 15
|
20 10- |
|
0 5
|
14
|
16
|
18 0 |
Определяем = 10 и производим сдвиг по циклу пересчета. Переменнаяx24 выводится из состава базисных переменных, а переменнаяx22 вводится в состав базисных переменных.
|
-7 |
0 |
2 |
11 |
0 |
10
|
0 5
|
20
|
11 10 |
7 |
12
|
7 10 |
9 15
|
20
|
7 |
0 5
|
14
|
16
|
18 0 |
По заполненным клеткам составим и решим систему уравнений:
u1+ v2=0 u1=0 v2=0
u1+ v4=11 u1=0 v4=11
u2+ v2=7 v2=0 u2=7
u2+ v3=9 u2=7 v3=2
u3+ v1=0 u3=7 v1=-7
u3+ v4=18 v4=11 u3=7
Теперь по свободным клеткам рассчитаем косвенные стоимости:
E11=10-(0-7)=17, E13=20-(0+2)=18, E21=12-(7-7)=12
E24=20-(7+11)= 2, E32=14-(7+0)=7, E33=16-(7+2)=7
Нет ни одной отрицательной косвенной стоимости, значит записанное в таблице решение – оптимальное.
На этом решении ЦФ принимает значение: Zопт=315 – меньшее (т.е. лучшее), чем решение, полученное ранее приближенными методами (там Zопт=335).