- •Симплекс-метод.
- •2.1. Основные операции и теоремы линейного программирования
- •Понятие о симплекс-методе
- •Алгоритм симплекс-метода
- •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.3:
f(x) = 12x1 + 15x2max

Приводим к канонической форме:

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* =
2x2*= 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следует, что данный план является
оптимальным т.к. все
.
Ответ:![]()












