1. Общая характеристика симплексного метода
Поскольку система линейных уравнений изучается в курсе элементарной алгебры, остановимся лишь на основных определениях, необходимых для понимания дальнейшего материала.
Если система имеет хотя бы одно решение, она называется совместной. Несовместные системы не имеют ни одного решения.
Допустимым решением называется совокупность значений n-переменных, удовлетворяющая системе ограничений и условиям не отрицательности.
Широко используемым на практике методом решения задач линейного программирования является симплексный. Этот метод решения задачи линейного программирования основан на переходе от одного опорного решения к другому, при котором значение целевой функции улучшается (на максимум — увеличивается, на минимум — уменьшается или остается на прежнем уровне), при условии, что данная задача имеет оптимальный план.
При решение задачи симплексным методом можно выделить следующие стадии:
2. Решение задачи линейного программирования в симплексных таблицах. Правила построения симплексных таблиц
Рассмотрим схему построения на примере.
Пример 1:
3Х1 + Х2 ? 4
Х1 + 3Х2 ? 4
Хj ? 0, j = 1,…,4
Zmax = 2+ Х1+2Х2.
Чтобы решить данную задачу линейного программирования симплексным методом, она должна быть представлена в канонической форме, система ограничений приведена к единичному базису, свободные члены уравнений должны быть неотрицательны.
Как видим, задача не приведена к канонической форме и к единичному базису. Поэтому вводим дополнительные переменные Х3 и Х4.
3Х1 + Х2 + Х3 = 4
Х1 + 3Х2 + Х4 = 4
Хj ? 0, j = 1,…,4
Zmax = 2+ Х1+2Х2 + 0 * Х3 +0 * Х4
Составим первую симплексную таблицу. Она представляет собой форму выражения первого опорного плана. Коэффициенты, стоящие в Z-строке, показывают, как изменяется значение целевой функции при единичном изменении соответствующей свободной переменной. И называются эти коэффициенты оценкой или индексом этой свободной переменной. А сама строка Z называется индексной или оценочной.
Заполнение таблицы
Оценки Z-строки рассчитывают по формуле
(1)m
m
a0j = ?Ciaij – Cj
i=1
где j = 1, 2, …, n;
аij — коэффициенты j-ого столбца;
Сi— коэффициенты при базисных переменных в уравнении Z;
Сj— коэффициенты при свободных переменных в уравнении Z.
Определение оптимальности плана. Построение новой симплексной таблицы.
В симплексных таблицах формальным признаком оптимальности является содержание оценочной строки.
Ключевая теорема симплексного метода (Z на максимум):
Если после выполнения очередной итерации:
Согласно данной теореме:
Если в разрешающем столбце нет ни одного положительного коэффициента, то задача не имеет решения по причине неограниченности целевой функции (Zmax > +?, Zmin > -?).
Если в бывшем разрешающем столбце в какой-то строке стоял «0», то эта строка переносится в следующую таблицу без изменений.
7. Все остальные элементы бывшей разрешающей строки делятся на разрешающий элемент.
Если в бывшей разрешающей строке в каком-то столбце стоял «0», то этот столбец переносится в следующую таблицу без изменений.
8. Остальные элементы таблицы пересчитываются по правилу прямоугольника:
коэф. разрешающей строки * коэф. разрешающего столбца
aij? = исходный коэффициент — разрешающий элемент
9. Осуществляется контроль за правильностью расчетов для элементов 2-строки по формуле (1).
10. Если ошибок нет, то алгоритм повторяется с пункта 1 .
В первой симплексной таблице нашего примера все коэффициенты оценочной строки отрицательны. Следовательно, согласно теореме, план (на максимум целевой функции) не является оптимальным и требует улучшения. В последнем столбце рассчитывают симплексные отношения (табл. 2.1).
Таблица 2. 1
Симплексная таблица (исходное опорное решение)
Св.П Б.П. |
Сj |
-2 |
1 |
2 |
|
ai0 |
X1 |
X2 |
ai0/aip |
||
X3 |
0 |
4 |
3 |
1 |
4 |
X4 |
0 |
4 |
1 |
(3) |
4/3< |
Z |
2 |
-1 |
-2 ^ |
Исходное опорное решение: X1 (0,0,4,4); Zmax = 2.
Во второй симплексной таблице (табл. 2.2.) меняем местами базисную переменную Х4 и свободную Х2.
На месте бывшего разрешающего элемента запишем обратную величину, то есть 1/3.
Все остальные элементы разрешающей строки в новой таблице вычислим путем деления на разрешающий элемент: 4/3; 1/3.
Все остальные элементы бывшего разрешающего столбца определим путем деления на разрешающий элемент. Результат запишем в новую таблицу с противоположным знаком: -1/3; 2/3.
Все остальные элементы таблицы вычислим по правилу прямоугольника.
Первая строка: Оценочная строка:
4-4*1/3=8/3 2-4*(-2)/3=14/3
3-1*1/3=8/3 -1-1*(-2)/3=-1/3
Таблица 2. 2
Вторая симплексная таблица
Св.П Б.П. |
Сj |
-2 |
1 |
0 |
|
ai0 |
X1 |
X4 |
ai0/aip |
||
X3 |
0 |
8/3 |
(8/3) |
-1/3 |
1 < |
X2 |
2 |
4/3 |
1/3 |
1/3 |
4 |
Z |
14/3 |
-1/3 ^ |
2/3 |
Проверим правильность заполнения Z-строки по формуле (1).
а00 = 0*8/3+2*4/3-(-2)=14/3
а01 = 0*8/3+2*1/3-1=-1/3
а02 = 0*(-1/3)+2*1/3-0=2/3.
Так как в оценочной строке есть еще отрицательные оценки, оптимальное решение не получено, можем записать только опорное решение:
Х2 (0,4/3,8/3,0) Zmax =14/3.
По тому же алгоритму пересчитываем коэффициенты третьей таблицы.
Таблица 2. 3
Третья симплексная таблица
Св.П Б.П. |
Сj |
-2 |
0 |
0 |
ai0 |
X3 |
X4 |
||
X1 |
1 |
1 |
3/8 |
-1/8 |
X2 |
2 |
1 |
-1/8 |
3/8 |
Z |
5 |
1/8 |
5/8 |
Все оценки неотрицательны, следовательно, получено оптимальное решение: Хопт (1,1,0,0) Zmax = 5.
Пример 2:
Задача решалась на максимум функции (Z —> мах). На последнем шаге была получена следующая таблица.
Таблица 2.4
Последняя симплексная таблица
Св.П Б.П. |
Сj |
0 |
1 |
0 |
ai0 |
X3 |
X2 |
||
X1 |
2 |
2 |
1 |
-1 |
X4 |
0 |
1 |
1 |
-1/2 |
Z |
4 |
1 |
-2 ^ |
В разрешающем столбце нет ни одного положительного элемента, следовательно, Zmax >+?, то есть задача линейного программирования не имеет решения по причине неограниченности целевой функции Z сверху.
3. Альтернативный оптимум
Если среди оценок свободных переменных в последней симплексной таблице есть хотя бы одна оценка, равная нулю, то задача имеет альтернативное решение, то есть хотя бы два оптимальных решения. Для этих решений экстремальное значение функции будет одинаковое. Чем больше будет нулевых оценок, тем больше оптимальных решений.
Пример 3:
Представим последнюю симплексную таблицу:
Таблица 2.5
Последняя симплексная таблица
Св.П Б.П. |
Сj |
0 |
1 |
5 |
ai0 |
X1 |
X2 |
||
X3 |
1 |
6 |
3 |
(5) |
X4 |
0 |
8 |
2 |
4 |
Z |
6 |
2 |
0 ^ |
Х?опт (0,0,6,8) Zmax = 6
Разрешающий столбец выбираем по нулевой оценке.
Таблица 2.6
Альтернативная симплексная таблица
Св.П Б.П. |
Сj |
0 |
1 |
1 |
ai0 |
X1 |
X3 |
||
X2 |
5 |
6/5 |
3/5 |
1/5 |
X4 |
0 |
26/5 |
-2/5 |
-4/5 |
Z |
6 |
2 |
0 ^ |
Х??опт (0,6/5,0,26/5) Zmax = 6
4. Вырождение основной задачи линейного программирования
Если в опорном решении задачи хотя бы одна базисная переменная принимает нулевое значение, то это решение называется вырожденным, а задача линейного программирования, имеющая хотя бы одно вырожденное решение, — вырожденной задачей.
Вырождение наступает в тех случаях, когда при выборе разрешающего элемента получается несколько одинаковых минимальных симплексных отношений. В этом случае в следующей симплексной таблице в столбце свободных членов появится хотя бы один нуль. Вырождение в больших задачах может привести к зацикливанию, то есть через некоторое число шагов мы можем прийти к опорному решению, которое было уже получено раньше. Чтобы избежать зацикливания, разрешающий элемент нужно выбирать по определенному правилу, а именно: для тех строк разрешающего столбца, где получились одинаковые минимальные симплексные отношения нужно составить отношения элементов, стоящих в столбце за разрешающим столбцом, к элементам разрешающего столбца. Наименьшее отношение с учетом знака даст разрешающую строку.
Пример 4:
Х1 + 2Х2 ? 4
2Х1 + Х2 ? 4
Х1 ? 2
Х2 ? 2
Хj ? 0, j = 1,2
Zmax = Х1+Х2.
Приводим к канонической форме
Х1 + 2Х2 + Х3 = 4
2Х1 + Х2 + Х4 = 4
Х1 + Х5 = 2
Х2 + Х6 = 2
Хj ? 0, j = 1,…,6
Zmax = Х1 + Х2 + 0*Х3 + 0*Х4 + 0*Х5 + 0*Х6.
Заполняем первую симплексную таблицу по алгоритму симплексного метода (табл. 2.7).
В оценочной строке две одинаковые отрицательные оценки, поэтому разрешающий столбец выбираем тот, который ближе к столбцу свободных членов. Минимальных симплексных отношений два, поэтому находим отношение элементов столбца Х2 к элементам столбца X1. После пересчета минимальное отношение находится в третьей строке и равно 0, следовательно, разрешающий элемент равен 1. Далее идет обычный пересчет.
Таблица 2.7
Первая симплексная таблица
Св.П Б.П. |
Сj |
0 |
1 |
1 |
ai0/aip |
ai0 |
X1 |
X2 |
|||
X3 |
0 |
4 |
1 |
2 |
4 (2) |
X4 |
0 |
4 |
2 |
1 |
2 (1/2) |
X5 |
0 |
2 |
(1) |
0 |
2 (0) < |
X6 |
0 |
2 |
0 |
1 |
— |
Z |
0 |
-1 ^ |
-1 |