В целом, метод отражает традиционные черты общего подхода к решению задач линейного программирования, включающего в себя канонизацию условий задачи, расчёт симплекс – разностей, проверку условий оптимальности, принятие решений о коррекции базиса и исключение Жордана-Гаусса.
Особенности заключаются в наличии двух таблиц - основной и вспомогательной, порядке их заполнения и некоторой специфичности расчётных формул.
Двойственный симплекс-метод, как и симплекс-метод, используется при нахождении решения задачи линейного программирования, записанной в форме основной задачи, для которой среди векторов, составленных из коэффициентов при неизвестных в системе уравнений, имеется m единичных. Вместе с тем двойственный симплекс-метод можно применять при решении задачи линейного программирования, свободные члены системы уравнений которой могут быть любыми числами (при решении задачи симплексным методом эти числа предполагались неотрицательными).
Общий вид задачи линейного программирования
,
Ограничения:
1. Правые части всех ограничений должны быть неотрицательными bi≥0, i=1,..m. Если какой-нибудь из коэффициентов bi< 0, то необходимо коэффициенты ограничения слева и справа домножить на "-1" и изменить знак данного ограничения на противоположный;
2. Все ограничения должны быть представлены в виде равенств, поэтому при переходе от неравенства к равенству используют аппарат дополнительных переменных. Если исходные ограничения определяют расход некоторого ресурса (знак "
"), то переменные x
j≥0, j=n+1,…kследует интерпретировать как остаток, или неиспользованную часть ресурса. В этом случае x
j– остаточная переменная и вводится в уравнение со знаком "+". Если исходные ограничения определяют избыток некоторого ресурса (знак "
"), то вводится избыточная переменная x
j≥0, j=k+1,…Nзнаком "-".
Переменные:
· Все переменные должны быть неотрицательными, т.е. xj≥0, j=1,…n.
· Если переменная не имеет ограничения в знаке, то её нужно представить как разность двух неотрицательных переменных: x=x’-x’’, где x’≥0, x’’≥0. Такую подстановку следует использовать во всех ограничениях, содержащих эту переменную, а также в выражении для целевой функции. Если такая переменная попадает в оптимальное решение, то
.
Целевая функция:
· Подлежит максимизации или минимизации. maxz= - min(-z)
· Система ограничений в виде равенств и неравенств образует выпуклое множество - выпуклый многогранник. Это множество может быть ограниченным и неограниченным. Целевая функция задачи линейного программирования также является выпуклой функцией. Таким образом, задача линейного программирования является частным случаем задачи выпуклого программирования.
Рассмотрим систему ограничений задачи линейного программирования в виде равенств
· Система (1) линейных уравнений совместна, если она имеет, по крайней мере, одно решение.
· Система (1) называется избыточной, если одно из уравнений можно выразить в виде линейной комбинации остальных.
· В системе (1) число переменных (неизвестных xj) n больше, чем число ограничений m. Будем считать, что ранг этой системы равен m (система не избыточна) и что система (1) совместна. Тогда m переменных из общего их числа образуют базисные переменные, а остальные (n-m) переменных называют небазисными.
· Если система уравнений имеет решение, то она имеет и базисное решение.
· Решение системы уравнений (1) называют допустимым, если все его компоненты неотрицательны.
· Если система линейных уравнений обладает допустимым решением, то она имеет и базисное допустимое решение. Совокупность всех допустимых решений системы (1) есть выпуклое множество, т.е. множество решений задачи линейного программирования выпукло. Так как это множество образовано плоскостями (гиперплоскостями), то оно имеет вид выпуклого многогранника. Базисное допустимое решение соответствует крайней точке выпуклого многогранника (его грани или вершине). Если существует оптимальное решение задачи линейного программирования, то существует базисное оптимальное решение.
Целевая функция задачи линейного программирования есть уравнение плоскости (или гиперплоскости для числа переменных больше трех). Максимальное или минимальное значение целевая функция задачи линейного программирования достигает либо в вершине выпуклого многогранника, либо на одной из его граней. Таким образом, решение (решения) задачи линейного программирования лежит в вершинах выпуклого многогранника и для его нахождения надо вычислить значения целевой функции в вершинах выпуклого многогранника, определяемого условиями – ограничениями задачи.
Прямая задача.
Рассмотрим задачу линейного программирования в канонической форме:
Найти максимум (минимум) функции
при условиях
Предполагается, что решение этой задачи существует. Чтобы найти оптимальное решение, надо найти допустимые базисные решения, а из них выбрать оптимальное базисное решение.
Симплекс – метод – это алгебраический метод решения задач линейного программирования. В процессе вычислений производиться последовательный обход вершин многогранника решений (ОДР) с проверкой в каждой вершине условий оптимальности. При этом каждый переход в смежную вершину сопровождается улучшением целевой функции.
Вычислительные процедуры симплекс – метода
При графическом методе решения задачи линейного программирования (ЗЛП) оптимальному решению соответствует всегда одна из угловых (экстремальных) точек пространства решений. Это результат положен в основу построения симплекс-метода. Симплекс-метод не обладает наглядностью геометрического представления пространства решений.
Симплекс-метод реализует упорядоченный процесс, при котором, начиная с некоторой исходной допустимой угловой точки, осуществляются последовательные переходы от одной допустимой экстремальной точки к другой, пока не будет найдена точка оптимального решения.
Обозначим: N– общее количество переменных в ЗЛП, представленной в канонической форме; n- количество исходных переменных; m - количество ограничений, nq- количество дополнительных переменных, тогда N=n+nq. Каждая вершина многогранника решений имеет m - ненулевых переменных и
(N-m) - нулевых переменных. Ненулевые переменные называются базисными, нулевые переменные – небазисными. Дополним систему равенств равенством целевой функции, при этом будем считать, что z является m+1 базисной переменной, которая всегда присутствует в базисе для любой вершины.
Для получения решения составляется начальный допустимый базис, в котором базисные переменные должны быть представлены в виде единичных орт. Это означает, что уравнения, представляющие данную вершину должны включать каждую базисную переменную только в одной строке с коэффициентом, равным 1.
При выборе начального допустимого базиса для составления симплекс-таблицы на первом шаге исходные x1,x2 переменные приравниваются к нулю и являются небазисными, среди введённых дополнительных переменных выбираются переменные с коэффициентами равными единице. Переменные x3,x4,x5 в равенствах (2) - (4) являются базисными и в z - строку входят с коэффициентами, равными 0. Для заполнения симплекс-таблицы необходимо целевую функцию преобразовать к виду
.
Таким образом, окончательно получаем:
(1) (2) (3) (4)При составлении симплекс-таблицы придерживаются следующих правил:
1. в крайнем левом столбце располагаются базисные переменные и z;
2. в крайнем правом столбце располагаются правые части ограничений;
3. в первой строке располагаются переменные в определённом порядке: сначала z, потом небазисные переменные, базисные переменные располагаются в последних m столбцах перед правой частью.
Идею рассмотрим на примере: