- •Симплекс-метод.
- •2.1. Основные операции и теоремы линейного программирования
- •2.2. Понятие о симплекс-методе
- •2.3. Алгоритм симплекс-метода
- •2.4. Вырожденность в задачах линейного программирования. Проблема зацикливания
- •2.4.1.Симплекс метод (метод последовательного улучшения плана)
- •Замечание
- •2.4.2.Алгоритм симплекс метода
- •2.4.3.Построение оптимального плана.
- •2.4.4.Построение опорного плана.
- •2.4.5Правила выбора разрешающего элемента при поиске опорного плана.
- •2.4.6.Вырожденность в задачах линейного программирования
- •2.5. Анализ линейных моделей на чувствительность. Двойственный симплекс-метод.
- •2.6. Использование искусственной переменной в программировании симплекс-методом.
- •2.7. Модифицированный симплекс - метод
- •2.7.1. Теоретические сведения
- •2.7.2. Мультипликативное представление обратной матрицы
- •2.7.3.Алгоритм модифицированного симплекс-метода.
- •2.7.4.Выводы
- •2.8. Целочисленное линейное программирование (зцлп)
- •Методы решения зцлп
- •Метод ветвей и границ
2.2. Понятие о симплекс-методе
Оптимальное решение задачи линейного программирования (ЗЛП) связаны с угловыми точками многогранника решений.
Угловых точек может быть много, если много ограничений. Количество угловых точек соответствует количеству базисных решений. Для каждого базисного решения однозначно определяется значение целевой функции.
Найти оптимальное решение (оптимальный план), беспорядочно перебирая все базисные решения, затруднительно.
В связи с этим необходим такой переход от одного базисного решения к другому (от одной угловой точки к другим точкам, начиная с угловой точки, отвечающей исходному базисному решению), в результате которого новое решение приносило бы большее значение целевой функции, причем максимально возможное увеличение.
Данный процесс решения задачи реализуется симплекс-методом (методом последовательного улучшения плана). Процесс решения задачи продолжается до получения оптимального плана, либо до установления факта, что решения нет. Переход от одного базисного решения к другому называется итерацией симплекс-метода.
Для того чтобы ЗЛП была решаема (имела оптимальное решение), необходимо и достаточно, чтобы ограничения задачи были совместимыми, чтобы множество допустимых значений существовало, и целевая функция должна быть ограничена при поиске максимума - сверху и минимума - снизу.
Симплекс - метод может быть интерпретирован геометрически как движение по соседним угловым точкам многогранника решений (если они расположены на одном ребре - то соседние). Следовательно, количество итераций симплекс-метода зависит от выбора исходного базисного плана и количества угловых точек, встречающихся при движении от исходного к оптимальному плану.
Пример 2.3:
f(x) = 12x1 + 15x2 max
Приводим к канонической форме:
f(x) = 12x1+15x2 +0x3+0x4+0x5
Среди переменных задачи можно выделить базисные переменные x3, x4, x5 и не базисные x1, x2.
Не базисные те, которые можно приравнять к 0, а остальные базисные.
Приравняв не базисные переменные к 0, получим исходный базисный план:
Значение целевой функции для этого плана f(x) = 0 (прибыль равна нулю)
Данная ситуация не может удовлетворить предприятие, и, тем более, не является оптимальной.
f(x)= 0-(-12x1-15x2) max
Анализируя функцию f можно сделать вывод, что увеличение значения функции (дохода) может произойти только при возрастании значений х1 и x2, отсюда увеличение х1 или x2 равносильно переходу переменных в число базисных.
В первую очередь увеличиваем значение x2 , так как единица продукции Р2 приносит больший доход. Значение х1, по-прежнему, равно 0 , значение x2 нельзя увеличивать бесконечно, то есть увеличиваем до тех пор, пока х3, x4 и x5 ≥ 0. Значит, необходимо определить значение x2, до которого можно его увеличивать:
Для выполнения данных условий необходимо чтобы x2=5, так как данное значение получилось из 3-го ограничения, то, выразив x2 через x1 и x5, мы заменим (введем) переменную x2 в число базисных вместо x5.
Подставим выражение x2 в целевую функцию и оставшиеся ограничения по x3 и x4:
В этом случае новый базисный план после первой итерации будет:
f(x) = 75
На основании результатов можно сделать вывод, что полученный план не является оптимальным, так как значение целевой функции может быть увеличено за счет увеличения значения x1 (x5 мы не можем увеличивать, так как это приведет к снижению f).
Значение x1 также нельзя увеличивать бесконечно, а только до такой величины, чтобы x3,x4,x2 ≥ 0:
-
из первого ограничения.
x1 выразим из 1-го ограничения:
,
В этом случае новый базисный план после второй итерации будет:
f(x)=84
После анализа значения f
следует, что данный план является
оптимальным так как х3 и
х5
,
то на основании оптимального плана (f*
= 84, x1* =
2 x2* = 4)
делаем вывод, что предприятие для
получения максимального дохода, равного
84 единицы должно выпускать из имеющегося
количеств сырья 2 ед. продукции Р1
и 4 ед. продукции Р2.
Пример 2.4:
Найдем наибольшее значение функции в заданной области, т.е. решим задачу линейного программирования (максимизируем линейную функцию при линейных ограничениях).
Приводим к канонической форме:
|
|
|
|
|
|
|
|
|
|
|
х2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(1)
(4) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
х1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
рис . 2.2
.
1) Среди переменных задачи можно выделить базисные переменные x3, x4, x5, x6 и не базисные x1, x2.
Приравняв не базисные переменные к 0, получим исходный базисный план:
В первую очередь увеличиваем значение x1 , т.к. единица продукции P1 приносит больший доход. Значение х2, по-прежнему, равно 0, однако значение x1 нельзя увеличивать бесконечно, т.е. увеличиваем до тех пор, пока х3, x4, x5 и x6 ≥ 0. Значит, необходимо определить значение x1, до которого можно его увеличивать.
Для выполнения данных условий необходимо чтобы x1=11, т.к. данное значение получилось из четвертого ограничения, то, выразив x1 через x2 и x6, мы введем переменную x1 в число базисных вместо x6.
Подставим выражение x1 в целевую функцию и оставшиеся ограничения по x3 , x4 и x5.
2) В этом случае новый базисный план после первой итерации будет:
.
На основании результатов можно сделать вывод, что полученный план не является оптимальным, т.к. значение целевой функции может быть увеличено за счет увеличения значения x2 (x6 мы не можем увеличивать т.к. это приведет к снижению значения целевой функции).
Значение x2 нельзя увеличивать бесконечно, т.е. увеличиваем до тех пор, пока х3, x4, x5 и x1 ≥ 0.
Выразив x2 через x5 и x6, мы введем переменную x2 в число базисных вместо x5.
Подставим выражение x2 в целевую функцию и оставшиеся ограничения по x3 , x4 и x1.
3) В этом случае новый базисный план после второй итерации будет:
.
Полученный план не является оптимальным, т.к. значение целевой функции может быть увеличено за счет увеличения значения x6 (x5 мы не можем увеличивать т.к. это приведет к снижению значения целевой функции).
Значение x6 увеличиваем до тех пор, пока х3, x4, x2 и x1 ≥ 0.
Выразив x6 через x4 и x5, мы введем переменную x6 в число базисных вместо x4.
Подставим выражение x6 в целевую функцию и оставшиеся ограничения по x3 , x2 и x1.
4) В этом случае новый базисный план после третьей итерации будет:
После анализа значения f
следует, что данный план является
оптимальным т.к. все
.
Ответ:
