
- •Оглавление
- •Краткая классификация моделей и методов математического программирования
- •Линейное программирование
- •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 нуждается в дополнительном пояснении.