- •Оглавление
- •Краткая классификация моделей и методов математического программирования
- •Линейное программирование
- •1. Примеры экономических задач линейного программирования
- •1.1. Задача оптимального производственного планирования
- •1.2. Задача о смесях
- •1.3. Задача о раскрое
- •1.4. Транспортная задача
- •1.5. Вопросы для самопроверки
- •2. Некоторые сведения из линейной алгебры
- •2.1. Основные понятия и теоремы
- •Решение систем линейных алгебраических уравнений методом Жордана–Гаусса
- •3.3. Переход от задачи минимизации целевой функции к задаче максимизации
- •3.4. Переход от одной формы модели задачи линейного программирования к другой
- •3.4.1. Переход к канонической форме модели
- •3.4.2. Переход от канонической формы модели задачи линейного программирования к стандартной
- •3. 5. Выпуклые множества
- •4. Графический метод решения задачи линейного программирования
- •4.1. Геометрическая интерпретация множества решений линейного неравенства
- •4.2. Геометрическая интерпретация множества решений системы линейных неравенств
- •Возможные случаи области допустимых решений
- •4.3. Вопросы для самопроверки
- •5. Свойства допустимых планов задачи линейного программирования. Опорный план
- •Опорный план. Теорема о соответствии опорного плана вершине многогранника допустимых планов
- •6. Симплекс-метод
- •6.1. Идея симплекс-метода
- •6.2. Алгебра симплекс-метода
- •6.2.1. Алгоритм симплекс-метода
- •6.2.2. Выбор разрешающей строки в симплексных преобразованиях
- •6.2.3. Альтернативный оптимум
- •6.2.4. Признак неограниченности целевой функции
- •6.3. Понятие о вырождении
- •Примеры решения задач симплекс-методом
- •Пример 6.4. Решить симплекс-методом злп:
- •6.4. Вопросы для самопроверки
- •6.5. Индивидуальное задание
- •6.6. Задачи для самостоятельной работы
- •7. Двойственность в линейном
- •7.1. Пример двойственных задач линейного программирования
- •7.2. Правила построения двойственных задач
- •7.3. Симметричные двойственные задачи
- •Пример 7.3. Для задачи:
- •7.4. Основные теоремы двойственности
- •7.5. Анализ устойчивости двойственных оценок
- •7.6. Вопросы для самопроверки
- •7.7. Индивидуальное задание
- •Заключение
- •Библиографический список
- •Приложение. Применение программы Excel к решению задач линейного программирования
6.2. Алгебра симплекс-метода
Дадим изложение симплекс-метода для ЗЛП вида:
,
при ограничениях
Пусть ранг матрицы системы ограничений равен m, и все , . В матричной форме ЗЛП имеет вид:
,
.
Запишем условие задачи в виде таблицы:
|
|
|
|
Предположим, что являются базисными переменными (при необходимости можно произвести перенумерацию). Тогда первые m столбцов матрицы:
образуют квадратную невырожденную матрицу B (базисную матрицу) m-го порядка, а оставшиеся (n – m) столбцов дают матрицу F размеров . Аналогичным образом вектор с разбивается на два вектора , где вектор коэффициентов при базисных неизвестных ; вектор при остальных свободных неизвестных. – функции цели Z. Вектор .
Тогда исходная таблица примет вид:
|
|
|
|
|
0 |
Первая строка таблицы соответствует уравнению:
.
Напомним, что на первом шаге симплекс-метода необходимо найти первоначальный опорный план (неотрицательное базисное решение системы), для этого умножим обе части уравнения на матрицу слева (она существует, так как по предположению невырожденная матрица). Получим
.
Полагая , найдем значения базисных переменных:
( единичная матрица m-го порядка).
Если при этом , то
является первоначальным опорным планом.
Эти преобразования системы ограничений соответствуют таблице:
|
|
|
|
|
0 |
Вычислим значение целевой функции, соответствующее опорному плану, подставив в выражение (вторая строка таблицы). Получим
.
Рассматривая идею симплекс-метода, мы пришли к выводу, что опорный план является оптимальным, если в целевой функции, выраженной только через свободные переменные, все коэффициенты неотрицательны.
Чтобы проверить полученный опорный план на оптимальность, выразим целевую функцию через свободные переменные . Для этого умножим первую строку последней таблицы на и вычтем из второй строки, чтобы коэффициенты в строке при базисных неизвестных были равны 0. Получим таблицу:
-
0
Обозначим через вектор, состоящий из коэффициентов при свободных неизвестных целевой функции. Согласно рассуждениям, проведенным в п. 6.1, опорное решение будет оптимальным, если Последняя строка таблицы соответствует значению функции:
В найденном опорном плане (при ) значение
.
Видим, что соответствующее значение находится в правом нижнем углу таблицы с противоположным знаком.
6.2.1. Алгоритм симплекс-метода
Запишем условия задачи:
в виде таблицы:
БП |
х1 |
... |
хn |
Свободный член |
|
|
a11 |
... |
a1n |
b1 |
|
|
... |
... |
... |
... |
|
|
am1 |
... |
amn |
bm |
|
Z |
c1 |
... |
cn |
0 |
, |
которую будем называть симплекс-таблицей. В левом столбце записываются базисные переменные (БП).
С помощью шагов Жордана–Гаусса найдем первоначальный опорный план, т.е. преобразуем таблицу так, чтобы система уравнений была приведена к базисному виду с неотрицательными свободными членами. При этом функция цели должна быть выражена через свободные неизвестные. Не нарушая общности, можно считать, что базисными переменными являются , тогда симплекс-таблица примет вид:
БП |
x1 |
x2 |
… |
xm |
xm+1 |
… |
xs |
… |
xn |
Свободный член |
x1 |
1 |
0 |
… |
0 |
a′1,m+1 |
… |
a′1,s |
… |
a′1,n |
b′1 |
x2 |
0 |
1 |
… |
0 |
a′2,m+1 |
… |
a′2,s |
… |
a′2,n |
b′2 |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
… |
xm |
0 |
0 |
… |
1 |
a′m,m+1 |
… |
a′m,s |
… |
a′m,n |
b′m |
Z |
0 |
0 |
… |
0 |
r1 |
… |
rs |
… |
rn–m |
q |
|
Коэффициенты при базисных неизвестных |
Вектор r коэффициентов при свободных неизвестных |
|
В данной таблице , .
Полагая свободные неизвестные , получаем из таблицы неотрицательное базисное решение (опорный план)
.
Анализируем строку коэффициентов при свободных неизвестных, т.е. вектор в Z-строке.
Если , то соответствующее опорное решение является оптимальным, .
Если среди компонент вектора имеется хотя бы одна отрицательная, то полученный опорный план не является оптимальным. Необходимо перейти к новому опорному плану.
Для перехода к новому опорному плану выбираем максимальную по модулю отрицательную компоненту вектора , пусть это будет . Анализируем коэффициенты s-го столбца матрицы системы ограничений.
Если все коэффициенты , то, как было сказано выше, задача не имеет решения из-за неограниченности целевой функции .
Если среди коэффициентов есть хотя бы один положительный, то s-столбец выбираем разрешающим и переходим к п. 5.
5. Для выбора разрешающей строки составляем неотрицательные отношения
и выбираем среди них наименьшее:
.
Таким образом, определилась разрешающая k-я строка и разрешающий элемент .
6. Выполняем шаг преобразований Жордана–Гаусса с разрешающим элементом и переходим к п. 3.
Замечание. Если достигается для нескольких строк, то за разрешающую строку можно принять любую из них, при этом в новом опорном плане значения некоторых базисных переменных станут равны нулю, т.е. получаем вырожденный опорный план.
Пункт 5 нуждается в дополнительном пояснении.