Симплексный метод решения задачи линейного программирования

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

Для вывода основных соотношений симплексного метода запишем систему уравнений (1.3) в векторной форме

Симплексный метод решения задачи линейного программирования - student2.ru , где Симплексный метод решения задачи линейного программирования - student2.ru и В – векторы.

Симплексный метод решения задачи линейного программирования - student2.ru , Симплексный метод решения задачи линейного программирования - student2.ru , Симплексный метод решения задачи линейного программирования - student2.ru .

Предположим, что известно какое-нибудь базисное решение системы, в котором m значений Симплексный метод решения задачи линейного программирования - student2.ru отличны от нуля

Симплексный метод решения задачи линейного программирования - student2.ru , Симплексный метод решения задачи линейного программирования - student2.ru .

Симплексный метод решения задачи линейного программирования - student2.ru , Симплексный метод решения задачи линейного программирования - student2.ru .

Ненулевые значения Симплексный метод решения задачи линейного программирования - student2.ru удовлетворяют векторному уравнению

Симплексный метод решения задачи линейного программирования - student2.ru . (1.4)

Векторы Симплексный метод решения задачи линейного программирования - student2.ru Симплексный метод решения задачи линейного программирования - student2.ru могут быть приняты в качестве базиса m-мерного пространства, поэтому любой небазисный вектор Симплексный метод решения задачи линейного программирования - student2.ru Симплексный метод решения задачи линейного программирования - student2.ru можно разложить по векторам базиса

Симплексный метод решения задачи линейного программирования - student2.ru . (1.5)

Умножим уравнение (1.5) на произвольную положительную константу Симплексный метод решения задачи линейного программирования - student2.ru и вычтем это уравнение из (1.4).

Симплексный метод решения задачи линейного программирования - student2.ru .

Симплексный метод решения задачи линейного программирования - student2.ru

или

Симплексный метод решения задачи линейного программирования - student2.ru . (1.6)

Величина Симплексный метод решения задачи линейного программирования - student2.ru – произвольная, поэтому ее выберем настолько малой, что независимо от знака Симплексный метод решения задачи линейного программирования - student2.ru выражение в скобках будет всегда положительно

Симплексный метод решения задачи линейного программирования - student2.ru , т.к. Симплексный метод решения задачи линейного программирования - student2.ru , Симплексный метод решения задачи линейного программирования - student2.ru ; Симплексный метод решения задачи линейного программирования - student2.ru .

Обозначим Симплексный метод решения задачи линейного программирования - student2.ru , Симплексный метод решения задачи линейного программирования - student2.ru .

При Симплексный метод решения задачи линейного программирования - student2.ru имеем исходное базисное решение. Поэтому для получения другого базисного решения, отличного от исходного, необходимо взять Симплексный метод решения задачи линейного программирования - student2.ru .

Если коэффициенты Симплексный метод решения задачи линейного программирования - student2.ru вектора Симплексный метод решения задачи линейного программирования - student2.ru отрицательны, то получить новое базисное решение невозможно. В этом случае вместо вектора Симплексный метод решения задачи линейного программирования - student2.ru следует взять любой другой вектор и разложить его по векторам базиса и т.д. до тех пор пока не будет найдено разложение какого-либо вектора, содержащего хотя бы один положительный коэффициент Симплексный метод решения задачи линейного программирования - student2.ru .

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

Симплексный метод решения задачи линейного программирования - student2.ru .

Допустим, что минимальное значение Симплексный метод решения задачи линейного программирования - student2.ru получается при Симплексный метод решения задачи линейного программирования - student2.ru , т.е.

Симплексный метод решения задачи линейного программирования - student2.ru .

Тогда при данном Симплексный метод решения задачи линейного программирования - student2.ru значение переменной Симплексный метод решения задачи линейного программирования - student2.ru , другие Симплексный метод решения задачи линейного программирования - student2.ru Симплексный метод решения задачи линейного программирования - student2.ru .

Поэтому вместо исходного базисного решения получим новое

Симплексный метод решения задачи линейного программирования - student2.ru (1.7)

На основе нового базисного решения (1.7) уравнение (1.6) будет записано в виде

Симплексный метод решения задачи линейного программирования - student2.ru . (1.8)

Сравнивая полученное уравнение (1.8) с (1.6), получим, что вектор Симплексный метод решения задачи линейного программирования - student2.ru заменен на вектор Симплексный метод решения задачи линейного программирования - student2.ru и новое базисное решение (1.7) удовлетворяет уравнению (1.8).

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

Как же меняется значение критерия оптимальности при переходе от одного базисного решения к другому? Подставим исходное базисное решение в выражение критерия

Симплексный метод решения задачи линейного программирования - student2.ru .

Число членов под знаком суммы сократилось за счет того, что в исходном базисном решении n членов равно нулю.

Для первого базисного решения значение критерия равно

Симплексный метод решения задачи линейного программирования - student2.ru .

Найдем приращение критерия Симплексный метод решения задачи линейного программирования - student2.ru

Симплексный метод решения задачи линейного программирования - student2.ru .

Величина Симплексный метод решения задачи линейного программирования - student2.ru , если выполняется условие

Симплексный метод решения задачи линейного программирования - student2.ru . (1.9)

Если же Симплексный метод решения задачи линейного программирования - student2.ru , то значение критерия уменьшается при переходе к новому базисному решению.

Вопрос о целесообразности перехода к новому базисному решению следует решать проверкой условия (1.9) еще до выбора Симплексный метод решения задачи линейного программирования - student2.ru , для чего необходимо знать лишь коэффициенты Симплексный метод решения задачи линейного программирования - student2.ru Симплексный метод решения задачи линейного программирования - student2.ru в разложении вектора Симплексный метод решения задачи линейного программирования - student2.ru Симплексный метод решения задачи линейного программирования - student2.ru по векторам базиса Симплексный метод решения задачи линейного программирования - student2.ru Симплексный метод решения задачи линейного программирования - student2.ru .

Наши рекомендации