2.Проверка опорного плана на оптимальность.
Запишем исходную модель КТЗ в векторной форме:
(5)
(6)
(7)
Здесь
- вектор условия,
G=
- вектор ресурсов.
Известно, что каждой ЗЛП соответствует двойственная задача. В двойственной задаче столько же переменных, сколько ограничений в исходной, и столько же ограничений, сколько в исходной задаче переменных.
Пусть
-
двойственная переменная, соответствующая
i-тым ограничениям (2)
(потенциал пункта Аi),
-
двойственная переменная, соответствующая
j-тому ограничению (3)
(потенциал пункта Вj).
Тогда вектор двойственных переменных
будет иметь вид:
,
а сама двойственная задача запишется
в виде:
(8)
(9)
В скалярной форме эта задача запишется:
(10)
(11)
Существует теорема (без доказательства):
Для оптимальности опорного плана
КТЗ (1)-(4) необходимо и достаточно
существование вектора двойственных
переменных, компоненты которого
удовлетворяют условию:
(12)
Причем
,
если
-
базисная переменная, и
,
если
-
небазисная переменная.
Т.о. из теоремы следует, что если хотя
бы для одной небазисной переменной
,
то опорный план неоптимален и его
требуется улучшить.
Т.о., для проверки опорного плана
на оптимальность необходимо определить
потенциалы
,
всех пунктов Аi и
Вj. Для этого
используют условие (12) для базисных
переменных:
(13)
Для отыскания потенциалов
,
необходимо решить данную систему
линейных уравнений. Уравнений в системе
(13) будет (m+n-1),
а кол-во неизвестных (m+n).
Поэтому любой одной переменной можно
придать любое значение, в том числе и
нулевое. На распределительной таблице
построение потенциалов производится
следующим образом: полагаем для какой-либо
строки i1, содержащей
базисные переменные, потенциал
=0.
Просматривается эта строка, и находятся
базисные клетки
.
Для всех таких клеток из (13) можно
определить потенциалы столбцов Вj
:
.
Далее по известным потенциалам столбцов
можно определить потенциалы некоторых
строк. Пусть потенциал
известен. Тогда просматривается столбец
с номером
и находятся клетки (
),
содержащие базисные переменные. Для
всех этих клеток из (13) можно найти
потенциалы строк Аi:
.
Продолжая этот процесс, найдутся
потенциалы строк
всех пунктов производства и потенциалы
столбцов
всех пунктов потребления.
Далее для всех клеток (i,j)
содержащих небазисные переменные,
вычисляются оценки
.
Если все
,
то рассматриваемый план КТЗ является
оптимальным. Если хотя бы для одной
клетки (k,l)
справедливо
,
то опорный план неоптимален и необходимо
перейти к лучшему опорному плану.
3.Переход к лучшему опорному плану.
Пусть рассматриваемый опорный план не
оптимален. Для перехода к плану с меньшим
значением целевой функции необходимо
увеличить на максимально возможную
величину объем перевозки в любой
небазисной клетке (i,j)
с
.
Обычно решение отыскивается быстрее,
если выбрана клетка с наибольшим
значением
.
Пусть выбрана клетка
с
.
Соответствующая небазисная переменная
=0.
Объем перевозки
увеличиваем пока на неизвестную величину
Q.Тогда для того, чтобы не
нарушить баланс строки a,
необходимо в строке a
уменьшить объем перевозки некоторой
базисной переменной
на эту же величину Q. Но,
уменьшив ее, мы нарушаем баланс столбца
,
который может быть восстановлен
добавлением Q к некоторой
базисной переменной
столбца
.
Нарушенный баланс строки
восстанавливается уменьшением на Q
некоторой другой базисной переменной
строки
,
и т.д….
Если таким образом удается прийти к
уменьшению некоторой базисной переменной
столбца , то
действительно можно увеличить объем
перевозки
в клетке
.
Тем самым будут найдены объемы перевозок,
увеличиваемые или уменьшаемые на
величину Q. Если полученные
клетки соединить прямыми линиями, то
получается замкнутая линия, называемая
циклом. Цикл обладает следующим свойством:
линия начинается и кончается в небазисной
клетке
,
остальные вершины ломаной принадлежат
строкам и столбцам таблицы, на пересечении
которых находятся базисные клетки, угол
между двумя соседними сторонами равен
900. Такой цикл всегда существует
для любой небазисной клетки и он
единственный.
Пусть цикл, соответствующий клетке
,
построен. В клетке
ставится знак «+», а далее поочередно в
вершинах цикла ставятся «-», «+»… Объемы
перевозок, отмеченные «+», увеличиваются,
а «-» – уменьшаются на величину Q=min{
}.
Таким образом, величина Q
прибавляется ко всем объемам перевозок,
отмеченных знаком «+», и вычитается от
всех объемов перевозок, отмеченных
знаком «-».
В результате получаем новый опорный
план , в котором переменная
становится новой базисной переменной,
а одна из базисных переменных
,
значение которой стало =0, становится
небазисной переменой (выводится из
базиса). При этом значение целевой
функции уменьшается на
.
Полученный новый опорный план записывается
в новой распределительной таблице, и
вновь проверяется на оптимальность и
т.д. пока не получат оптимальный опорный
план.
Примечание. Если в процессе построения начального опорного плана или в ходе решения получается вырожденный опорный план, то чтобы избежать зацикливаний, необходимо нулевым базисным переменным придать сколь угодно малое значение >0 и решить задачу как невырожденную. В оптимальном плане такой задачи необходимо считать =0.
