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

Симплекс-метод является аналитическим методом решения задач линейного программирования. Пусть система ограничений задается системой линейных уравнений среди неотрицательных решений этой системы надо найти такие, которые максимизировали (минимизировали) линейную функцию . Найдем ранг данной системы, пусть ранг равен . Выразим переменные через остальные переменные: где , , …, .

Переменные называются базисными, а остальные переменные называются свободными. Подставляя в целевую функцию вместо базисных переменных их выражения через свободные переменные получим . Пологая, что все свободные переменные равны нулю, найдем значения базисных переменных: , ,…., . Полученное решение является допустимым – оно называется базисным. Для полученного базисного решения значение целевой функции . От полученного базиса можно перейти к другому базису с таким расчетом, чтобы значение не увеличивалось.

Рассмотрим пример: решить задачу линейного программирования

,

.

Перепишем систему линейных ограничений в виде , введя новые балансовые переменные . Найдем ранги основной и расширенной матрицы системы . Ранги совпадают и равны двум, следовательно система совместна и две базисные переменные (например ) можно выразить через три свободные ( ): . Целевую функцию также выразим через свободные переменные , тогда при , , найдем значения базисных переменных , . Таким образом найдено допустимое решение системы . При данном допустимом решении целевая функция .

Выясним, можно ли увеличить значение ; увеличение приведет к уменьшению целевой функции т.к. перед переменной стоит знак минус, а увеличение приведет к увеличению целевой функции. Поэтому увеличим так, чтобы базисные переменные не стали отрицательными, оставив равными нулю. Из уравнения следует, что можно увеличить до двух, в результате получим новые значения переменных , , , , или .

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

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

 

Симплексные таблицы

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

Представим эти данные в виде таблицы:

 

Базисные переменные Свободные члены

 

Выберем разрешающий столбец из условия: и хотя бы один из элементов . Затем выберем разрешающую -ю строку из условия для . Произведем пересчет элементов разрешающей -й строки по формуле , где . Элементы всех остальных строк вычисляем по формуле , где .

Если после проделанных действий:

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

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

3. все значения , тогда получено оптимальное решение.