
- •Введение
- •1. Основные понятия и определения
- •1.1. Оптимизационная задача
- •1.2. Допустимое решение
- •1.6.1. Частные критерии
- •1.6.2. Обобщенные критерии
- •Минимаксные критерии
- •1.7. Общая характеристика методов поиска экстремума
- •2. Линейное программирование
- •2.1. Стандартный вид задачи линейного программирования (злп)
- •2.2. Способы приведения задачи линейного программирования к стандартному виду
- •2.3. Графический метод решения задач линейного программирования
- •2.4. Симплекс-метод решения задач линейного программирования
- •2.4.1. Канонический вид задачи
- •2.4.2. Симплекс-таблица, соответствующая каноническому виду
- •2.4.3. Нахождение координат вершины допустимого многогранника по каноническому виду (по симплекс-таблице)
- •2.4.4. Алгоритм решения злп при помощи симплекс-метода
- •2.5. Приведение злп к каноническому виду
- •2.5.1. Метод искусственного базиса
- •2.6. Алгоритм двойственного симплекс метода
- •2.7. Целочисленное линейное программирование
- •Алгоритм метода сечения Гомори:
- •3. Нелинейное программирование
- •3.1. Методы поиска безусловного экстремума функции одной переменной
- •3.1.1. Аналитический метод
- •3.1.2. Численные методы
- •3.1.2.1. Основные понятия и определения
- •3.1.2.2. Метод ненаправленного поиска
- •3.1.2.3. Методы направленного поиска
- •3.2.Графический метод решения задач нелинейного программирования
- •3.3. Задачи дробно-линейного программирования
- •3.4. Методы поиска безусловного экстремума функции многих переменных
- •3.4.1. Аналитический метод
- •3.4.2. Численные методы
- •3.4.2.1. Метод покоординатного спуска
- •3.4.2.2. Метод наискорейшего спуска
- •3.5. Решение задач нелинейного программирования с ограничениями – равенствами. Метод неопределенных множителей Лагранжа
- •3.6. Задачи квадратичного программирования
3.2.Графический метод решения задач нелинейного программирования
Этот метод применяется, когда количество переменных равно двум и либо целевая функция, либо ограничения линейные. Рассмотрим два случая.
Случай 1. Целевая функция линейная, ограничения нелинейные.
Алгоритм при этом следующий:
1. Ограничения-неравенства заменяем ограничениями-равенствами. Строим графики полученных функций.
2. Выделяем область допустимых решений.
3. Строим график целевой функции при каком-либо значении правой части (графиком является прямая).
4. График целевой функции переносим параллельно самому себе до касания с границей области допустимых решений.
5. Находим координаты точки касания.
Пример 3.4.
Z = 2 x + y max ,
x2
+ y2
36,
x, y 0.
А – точка касания (рис. 3.3).
y x 6 6
Z
=
max
Z
=
0
A
Рис. 3.3. Графический метод решения линейного ЦФ
и ЗНЛП для нелинейных ограничений
Решение
tg = 2, tg = tg (/2 - ) = ctg = 1/2.
Точка А лежит на луче, проходящем под углом к оси абсцисс. Кроме того, точка А принадлежит A(x, y) окружности. Следовательно, координаты точки А можно найти, решив следующую систему:
x2
+ y2
= 36,
y / x = 1/2
x=12
/ 5, y
= 6 / 5,
Zmax
= 30
/ 5 .
Случай 2. Ограничения линейные, целевая функция нелинейная (рис. 3.4).
Алгоритм аналогичен предыдущему с некоторыми отличиями:
1. Область допустимых решений – выпуклый многоугольник,
2.
Для нахождения решения требуется строить
семейство целевых функций.
Пример 3.5.
Z = (x2 + y2) max
Решение
3x
+ 4
y - 24
0
x, y 0.
Рис. 3.4. Графический
метод решения ЗНЛП для линейных
ограничений и нелинейной ЦФ
Ответ: x= 8, y = 0, Zmax = 8.
Существует некоторый класс задач нелинейного программирования, который можно свести к задачам линейного программирования. Это задачи дробно-линейного программирования.
3.3. Задачи дробно-линейного программирования
Постановка задачи:
c
Q
=
min,
d0
+ d1 x1
+ d2
x2
+
+ dn xn
n
(3.6)
aij
xj
= bi,
i = 1,
m,
j=1
xj
0, j = 1,
n.
Предположим, что знаменатель целевой функции не равен нулю и положителен (если он отрицателен, то умножим числитель и знаменатель на -1).
Введем новую переменную Y0:
1 (3.7)
n
d0 + di xi
i=1
тогда ЦФ
Q = c0Y0 + c1Y0 x1 + c2Y0 x2 + + cnY0 xn min. (3.8)
Введем
переменныеYi
= xiY0,
i = 1,
n , тогда
Q = c0Y0 + c1Y1 + c2Y2 + + cnYn min. (3.9)
Домножим левую и правую части ограничений на Y0 :
n n
aijxjY0= bi Y0 , aijYi= bi Y0 . (3.10)
j=1 j=1
Добавим еще ограничение:
.
(3.11)
Получили задачу линейного программирования ((3.9) – (3.11)). Решив ее одним из методов линейного программирования, получим оптимальное решение Yj. Далее осуществляется переход к исходным переменным Хj = Yj/ Y0 .
П
Q
=
min.
2 x1 + x2
x1
+ 2
x2
+ 1
x1
+ 2 x2
2,
2 x1 + x2 + x3 = 6,
x1, x2, x3 0.
Решение
Вводим новые переменные Y0, Y1,Y2:
1 Y0
=
x1 + 2 x2 + 1,
Q = -2 x1Y0 + х2Y0 = -2Y1 + Y2 min.
2. Преобразуем ограничения:
x1Y0
– 2 х2Y0
- 2Y0
≤ 0,
2 x1Y0 + х2Y0 + х3Y0 = 6Y0,
x1Y0 + 2 х2Y0 + Y0 = 1.
Y1
- 2Y2
2Y0,
2 Y1 + Y2 + Y3 - 6Y0 = 0,
Y1 + 2Y2 + Y0 = 1,
Y1, Y2 , Y3 0.
3. Преобразуем ограничение-неравенство в ограничение-равенство введением искуственной переменной Y4:
Y1 - 2Y2 - 2Y0 + Y4 = 0.
4. Приведем задачу к каноническому виду методом искусственного базиса:
Y1
- 2Y2
- 2Y0
+ Y4
= 0,
2 Y1 + Y2 + Y3 - 6Y0 + Y5 = 0,
Y1 + 2Y2 + Y0 + Y6 = 1.
Искусственная целевая функция G =Y5 + Y6 min.
5. В результате решения задачи методами линейного программирования получим ответ:
Y0 = 1/3, Y1 = 2/3, Y2 = 0, Y3 = 2/3.
6. Переходим к исходным переменным:
Х1 = Y1 /Y0 = 2,
Х2 = Y2 /Y0 = 0,
Х3 = Y3 /Y0 = 2.