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

Предполагаем, что все добавочные переменные имеют тот же знак, что и свободные члены; в противном случае используем так называемый М – метод, который будет рассмотрен ниже.
2. Определить базисные и свободные переменные.
3. Исходную расширенную систему заносим в первую симплекс – таблицу. Последняя строка таблицы, в которой приведено уравнение для линейной функции цели, называется оценочной. В ней указываются коэффициенты функции цели
. В левом столбце таблицы записываем основные переменные (базис), в последующих – коэффициенты
при свободных переменных. В предпоследнем столбце – свободные члены расширенной системы
. Последний столбец подготовлен для оценочных отношений, необходимых для определения базисной переменной
на основании соотношения (6.29).
|
|
|
4. Определить возможность решения задачи по значениям
согласно теоремам 6.7,…, 6.9.
5. Выбрать разрешающий (опорный) элемент
. Если критерий оптимальности не выполнен (не выполнены условия теоремы 6.7 или 6.8), то наибольший по модулю отрицательный коэффициент
в последней строке определяет разрешающий (опорный) столбец
.
Составляем оценочные отношения каждой строки по следующим правилам:
10)
, если все
и
имеют разные знаки;
20)
, если все
и
;
30)
, если
;
40) 0, если
и
;
50)
, если
и
имеют одинаковые знаки.
Определим
. Если конечного минимума нет, то задача не имеет конечного оптимума (
). Если минимум конечен, то выбираем строку q, на которой он достигается (любую, если их несколько), и называем ее разрешающей (опорной) строкой. На пересечении разрешающих строки и столбца находится разрешающий (опорный) элемент
.
60) Переход к следующей таблице по правилам:
а) в левом столбце записываем новый базис: вместо основной переменной
– переменную
, т.е. поменяем местами переменные
и
;
б) на место опорного элемента
поставить 1;
в) на остальных местах опорной строки в новой таблице оставить элементы исходной таблицы;
г) на остальные места в опорном столбце поставить соответствующие элементы исходной таблицы, умноженные на –1;
д) на оставшиеся свободные места элементов
,
,
в новой таблице записать числа
,
,
, которые находятся следующим образом:
,
,
.
Для упрощения вычислений по этим формулам их можно сформулировать в виде «правила прямоугольника» (рис. 6.8): элементы на диагоналях прямоугольника с вершинами
(или
,
,
,
, или
,
,
,
) перемножаются (произведение, не содержащее опорного элемента
, берется со знаком минус) и полученные произведения складываются;
|
|
|
е) все полученные элементы новой таблицы разделить на опорный элемент
.
70) По значению элемента
определить, найдено ли оптимальное значение целевой функции. В случае отрицательного ответа продолжить решение (возврат к пункту 6).
![]() | ![]() | ![]() | |||
Рис. 6.8. Правило прямоугольника для определения чисел:
а −
, б −
, в −
.
Рассмотрен алгоритм преобразования симплекс – таблиц для невырожденных допустимых базисных решений, т.е. выполнялась ситуация, описанная теоремой 6.9. Если исходная задача линейного программирования является вырожденной, то в ходе ее решения симплекс – методом могут появиться и вырожденные базисные решения. При этом возможны холостые шаги симплекс – метода, т.е. итерации, на которых f (x) не изменяется. Возможно так же и зацикливание, т.е. бесконечная последовательность холостых шагов. Для его предотвращения разработаны специальные алгоритмы – антициклины. Однако в подавляющем большинстве случаев холостые шаги сменяются шагами с убыванием целевой функции и процесс решения завершается в результате конечного числа итераций.
Пример 6.8. Решить задачу, приведенную в примере 6.7, симплекс методом.


