- •Оглавление
- •Краткая классификация моделей и методов математического программирования
- •Линейное программирование
- •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 к решению задач линейного программирования
Опорный план. Теорема о соответствии опорного плана вершине многогранника допустимых планов
Рассмотрим ЗЛП в канонической форме:
Предположим, что число линейно независимых уравнений системы ограничений равно m (m<n). Методом Жордана–Гаусса приведем систему к базисному виду:
(Не ограничивая общности, можно считать, что базисными переменными являются .)
Очевидно, базисное решение системы имеет вид:
Определение 5.1. Неотрицательное базисное решение системы ограничений ЗЛП называется опорным решением (опорным планом) ЗЛП.
Из определения следует, что:
если то соответствующее базисное решение является опорным решением ЗЛП;
число положительных координат опорного плана не может превышать m.
Определение 5.2. Опорный план называется невырожденным, если число его положительных компонентов равно m, и вырожденным в противном случае.
Теорема 5.4. Вектор Х является опорным планом ЗЛП тогда и только тогда, когда Х – вершина многогранника допустимых планов.
Итак, для нахождения оптимального решения ЗЛП достаточно исследовать вершины выпуклого многогранника допустимых решений. В этом и состоит основная идея симплекс-метода решения ЗЛП.
6. Симплекс-метод
На основании свойств ЗЛП, рассмотренных в предыдущей главе, можно сделать следующие выводы.
Если решение ЗЛП существует, то оно достигается хотя бы в одной вершине (опорном решении) многогранника допустимых решений, следовательно, поиск оптимального решения необходимо осуществлять среди вершин многогранника (опорных решений).
Однако при больших и перебор всех вариантов практически нереален. Для решения ЗЛП был предложен симплекс-метод, разработанный в 1947–49 гг. американским математиком Дж. Данцигом. Идея симплекс-метода состоит в целенаправленном переборе вершин многогранника допустимых решений (опорных планов) в направлении «улучшения» значений целевой функции.
Замечание. «Симплекс» в переводе с латинского значит «простейший». В многомерной геометрии симплексом называется геометрическое место точек, удовлетворяющих условиям:
, .
При малой размерности симплексом является точка, отрезок, треугольник, тетраэдр. Первая задача, решенная симплекс-методом, имела в качестве многогранника допустимых решений именно симплекс.
6.1. Идея симплекс-метода
Рассмотрим идею симплекс-метода на конкретном примере.
Пример 6.1.
Решение. Найдем первоначальное опорное (допустимое базисное) решение.
Чтобы получить базисное решение, необходимо систему линейных уравнений привести к базисному виду, приравняв свободные неизвестные нулю.
Замечаем, что система уравнений уже приведена к базисному виду ( базисные неизвестные, свободные неизвестные).
Положив получаем первоначальное базисное решение
, причем .
Очевидно, это базисное решение является опорным, так как все
Итак, первый этап симплекс-метода закончен.
Выясним теперь, является ли опорное решение оптимальным. Для этого рассмотрим функцию цели . Обратим внимание на тот факт, что она выражена только через свободные неизвестные и .
Возникает вопрос, можно ли уменьшить значение целевой функции за счет перехода к новому опорному решению, в котором в базис будет введена одна из свободных переменных: либо , либо , либо . Очевидно, введение в базис переменной нецелесообразно, так как коэффициент при ней в функции цели равен +7 и увеличение этой переменной на единицу приведет к увеличению значения функции на 7 единиц. А вводя в базис или , мы можем уменьшить значение Z (поскольку коэффициенты при них отрицательны). Для определенности введем в базис , т.е. ту из свободных переменных, которая имеет наибольший по модулю отрицательный коэффициент .
Если бы все коэффициенты в функции Z были положительны, то уменьшить значение Z было бы невозможно введением в базис любой из свободных переменных и, следовательно, найденное опорное решение являлось бы оптимальным.
Итак, вводим в базис.
Далее необходимо выяснить, какую из базисных переменных ( или ) можно вывести из базиса, т.е. сделать равной нулю.
Так как и остаются свободными переменными, т.е. , то система ограничений примет вид:
(*)
Если вывести из базиса , т.е. положить , то получим , , что недопустимо ( , ).
Если вывести из базиса , то получим , , , что соответствует опорному плану:
, .
В этом случае базисные переменные, а свободные переменные. Видим, что при переходе к новому опорному плану значение целевой функции уменьшилось:
.
Для ответа на вопрос, является ли опорное решение оптимальным, выразим функцию цели через свободные неизвестные .
С помощью второго уравнения системы ограничений мы установили, что переменная вводится в базис вместо переменной , поэтому, выразив из второго уравнения
и подставив его в целевую функцию , получим
.
Исключив из первого уравнения, перейдем к задаче:
Здесь базисные, а свободные переменные.
Замечаем, что в целевую функцию свободная переменная входит с отрицательным коэффициентом –1, поэтому согласно предыдущим рассуждениям опорный план не является оптимальным. Достаточно ввести в базис свободную переменную , как значение функции уменьшится. Очевидно, при этом вывести из базиса можно только переменную с помощью первого уравнения системы ограничений.
Разделив первое уравнение на 6, выразив из него и подставив его в функцию цели Z, получим задачу:
,
где базисные переменные, а свободные переменные. Положив , получим опорный план
, причем .
Очевидно, что полученный опорный план является оптимальным, т.е.
,
Действительно, так как все коэффициенты при свободных переменных неотрицательны в функции цели , то введение в базис любой из них не приведет к уменьшению значения целевой функции.
Замечание. Если найденный опорный план не является оптимальным (в целевую функцию входит какая-либо свободная переменная с отрицательным коэффициентом) и все коэффициенты -го столбца в системе ограничений, соответствующего этой переменной, неположительны, то целевая функция не ограничена снизу. В этом случае ЗЛП не имеет решения.
Поясним это на рассмотренном примере 6.1. Пусть, например, в системе (*) коэффициенты при переменной , которую хотим ввести в базис, в обоих уравнениях отрицательны:
Откуда
Очевидно, увеличение значения переменной приведет к увеличению значений переменных и и мы никогда не получим нулевых значений и , т.е. и нельзя вывести из базиса. Но при неограниченном увеличении значение целевой функции будет неограниченно уменьшаться ( ), т.е. оптимальное решение не существует в этом случае по причине неограниченности снизу функции .