Математические основы теории систем. Методы оптимизации
.pdf2.Накаждом шаге, кроменулевого, функциявычисляется одинраз.
3.Высокая производительность. (Для нахождения экстремума с
точностью ε = 1 % требуется вычислить функцию 11 раз.)
Пример 1
Найти минимум унимодальной функции f(x) = х2 – 5х, [а0, b0] = = [2;4], ε = 0,1.
Решение:
1. y0 = a0 + 3 − 5 (b0 − a0 ) = 2 + 0,382 2 = 2,764, 2
Z0 = a0 + b0 − y0 = 3,236.
2.f ( y0 ) = −6,180, f (z0 ) = −5,708 – отбрасываем правую часть интервала неопределенности.
3.a1 = a0 = 2,
b1 = z0 = 3,236,
Z1 = y0 = 2,764, |
|
|
|||||
y1 = a1 + b1 − z1 = 2,472. |
|
|
|||||
4. |
l1 = b1 − a1 = 1,236 > 2ε, |
следовательно, |
требуется выполнить |
||||
еще шаг. |
|
|
|
|
|
|
|
5. |
f (z1 ) = f ( y0 ) = −6,236, |
f ( y1 ) = −6,249... |
|
||||
Пример 2 |
|
|
|
+ e−2x , [a0 ,b0 ] = [0,1], |
|||
Найти |
минимум функции, f = 1+ x2 |
||||||
ε = 0,1. |
|
|
|
|
|
|
|
Решение: |
|
|
|
|
|||
y0 |
= a0 |
+ |
3 − |
5 |
(b0 − a0 ) = 0,382, |
|
|
|
|
|
|||||
|
|
2 |
|
|
|
|
|
z0 |
= a0 + b0 − Y0 = 0,618. |
|
|
||||
f ( y0 ) = 1,54, |
f (z0 ) = 1,47 |
– отбрасываем левую часть интервала |
|||||
неопределенности. |
|
|
|||||
|
|
|
|
|
|
|
71 |
Рис. 3.3. Метод «золотого сечения». Пример
a1 = y0 = 2, b1 = b0 = 1,
z1 = y0 = 0,764, y1 = z0 = 0,618,
f (z1 ) = 1,476, f ( y1 ) = 1,47 – отбрасываем правую часть интервала неопределенности и т.д.
3.1.2.5. Метод Фибоначчи
Постановка задачи.
Дано:
5. Начальный интервал неопределенности [а0, b0]. Функция f(x), унимодальная на отрезке [а0, b0]. Точность нахождения экстремума.
Требуется заn измерений функциинайтиэкстремум сточностьюε. Метод Фибоначчи считается самым эффективным.
Этот метод имеет тот же алгоритм, что и метод «золотого сечения», отличия заключены в координатах начальных точек:
y0 |
= a0 + (b0 |
− a0 ) |
Fn |
, |
(3.4) |
|
|||||
|
|
|
Fn+2 |
|
где Fn и Fn+2 – n-е и (n+2)-е числа Фибоначчи.
72
z0 = a0 + b0 − y0 . |
n = 3, 4,… |
F1 = 1, F2 = 1, Fn = Fn–1 + Fn–2, |
F3 = 2, F4 = 3, F5 = 5, F6 = 8, F7 = 13, F8 = 21, F9 = 34, F10 = 55,
F11 = 89, F12 = 144, …
Значение n определяется при помощи неравенства
F |
< |
b0 − a0 |
< F |
. |
(3.5) |
|
|||||
n+1 |
|
ε |
n+2 |
|
|
|
|
|
|
|
Пусть требуется найти экстремум с точностью 0,01. Тогда
b0 − a0 = 100,
ε
F11 = 89 < 100 < 144 = F12 , n = 10,
y0 = a0 + (b0 − a0 )55. 144
Далее так же, как и в методе «золотого сечения».
Задание для самостоятельного решения
Решить задачи, указанные в табл. 3.1. Последовательность действий:
1.Определить тип экстремума функции f(x). Для этого подсчи-
тываются значения f(x) в нескольких внутренних точках [a0, b0]. На основании найденных значений определяется тип экстремума функции f(x).
2.Если функция f(x) является монотонной на отрезке [a0, b0], то в качестве экстремума взять «минимум».
3.Для каждого метода достаточно сделать 4–5 шагов.
4.Результаты решения по окончании счета занести в таблицу.
|
|
|
|
|
Таблица 3 . 1 |
|
|
Данные для самостоятельного решения |
|||||
№ варианта |
[a0, b0] |
|
f(x) |
|
ε |
|
1 |
[3,5; 4,5] |
|
x |
− x3 |
|
0,02 |
|
|
|
|
|
|
|
|
|
|
ln 2 |
|
|
|
|
|
|
|
|
73 |
Окончание табл. 3 . 1
№ варианта |
[a0, b0] |
|
|
|
|
|
|
|
f(x) |
|
|
|
|
ε |
||||||
2 |
[1,5; 2] |
|
|
2 |
+ 2 |
|
|
|
x |
− 2 |
|
0,01 |
||||||||
|
|
x |
|
x lg |
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
e |
|
|
|
|
|
||||
3 |
[1; 1,5] |
|
|
|
x2 − 2x + e− x |
|
0,05 |
|||||||||||||
4 |
[–5; –4] |
|
|
xsin x + 2cos x |
|
0,02 |
||||||||||||||
5 |
[0,5; 1] |
|
|
|
10x ln x − |
x |
2 |
|
|
0,05 |
||||||||||
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
6 |
[0; 1] |
|
|
|
1+ x2 |
+ e−2x |
|
0,1 |
||||||||||||
7 |
[–3; –2] |
x5 − 5x3 + 10x2 − 5x |
0,1 |
|||||||||||||||||
8 |
[0,1; 2] |
|
|
|
|
|
ex + |
1 |
|
|
|
|
|
0,01 |
||||||
|
|
|
|
|
|
|
x |
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
9 |
[–1,5; –1] |
|
|
|
ex − |
1 |
x3 + 2x |
|
0,01 |
|||||||||||
|
|
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
||
10 |
[1,5; 2] |
|
3(5 − x)4/3 + 2x2 |
|
0,02 |
|||||||||||||||
11 |
[0; 0,5] |
3x4 − 10x3 + 21x2 + 12x |
0,01 |
|||||||||||||||||
12 |
[–1; 0] |
x4 + 2x2 + 4x + 1 |
0,1 |
|||||||||||||||||
13 |
[–1; 2] |
|
|
x4 + x2 + x + 1 |
|
0,01 |
||||||||||||||
14 |
[0; 3] |
|
|
|
|
x |
2 |
− cos x |
|
|
|
0,01 |
||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
2 |
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
15 |
[1,5; 2] |
|
1 |
x3 − 5x + x ln x |
0,02 |
|||||||||||||||
|
|
|
|
|
||||||||||||||||
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
16 |
[1,5; 2] |
x4 + 4x2 − 32x + 1 |
0,05 |
|||||||||||||||||
17 |
[0,5; 1] |
|
|
|
x3 − 3sin x |
|
0,05 |
|||||||||||||
18 |
[0,5; 1] |
|
|
x2 + 3x(ln x − 1) |
|
0,05 |
||||||||||||||
19 |
[–3; –2] |
|
|
|
(x + 1)2 − 2x2 |
|
0,05 |
|||||||||||||
20 |
[3; 5] |
|
|
|
(x − 4)2 + ln x |
|
0,01 |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
74
3.2. Графический метод решения задач нелинейного программирования
Этот метод применяется, когда количество переменных равно двум и либо целевая функция, либо ограничения линейные. Рассмотрим два случая.
Целевая функция линейная, ограничения нелинейны
Алгоритм решения задачи:
1.Ограничения-неравенства заменяем ограничениями-равенствами. Строим графики полученных функций.
2.Выделяем область допустимых решений.
3.Строим график целевой функции при каком-либо значении правой части (графиком является прямая).
4.График целевой функции переносим параллельно самому себе до касания с границей области допустимых решений.
5.Находим координаты точки касания.
Пример
Z = 2x + y → max,
|
2 |
+ y |
2 |
≤ 36, |
|
|
|
|
||||
x |
|
|
|
|
|
|
||||||
x, y ≥ 0. |
|
|
|
|
||||||||
А – точка касания. |
|
|
|
|
||||||||
Решение: |
|
|
|
|
||||||||
|
tgα |
|
= 2, tgβ = tg |
p |
− α |
= ctgα = |
1 |
. |
||||
|
|
|||||||||||
|
|
|
|
|||||||||
|
|
|
|
|
|
|
2 |
|
2 |
|
Точка А лежит на луче, проходящем под углом β к оси абсцисс. Кроме того, точка А принадлежит окружности. Следовательно, координаты точки А можно найти, решив следующую систему
(рис. 3.4):
75
Рис. 3.4. Графический метод решения ЗНЛП для линейной ЦФ и нелинейных ограничений
|
2 |
|
+ y |
2 |
= 36, |
|
|||||||
x |
|
|
|
|
|
||||||||
x |
= |
1 |
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
2 |
|
|
|
|
|
|||||
y |
|
|
|
|
|
|
|
||||||
x = |
12 |
, y = |
6 |
, |
|||||||||
|
5 |
||||||||||||
|
|
|
|
|
|
5 |
|
|
|
|
Zmax = 30 .
5
Ограничения линейные, целевая функция нелинейна
Алгоритм аналогичен предыдущему случаю с некоторыми отличиями:
1)область допустимых решений – выпуклый многоугольник;
2)для нахождения решения требуется строить семейство целевых функций.
Пример
Z = (x2 + y2 ) → max.
3x + 4y − 24 |
≤ 0, |
|
|
x, y ≥ 0. |
|
76
Рис. 3.5. Графический метод решения ЗНЛП для нелинейной ЦФ и линейных ограничений
Ответ: x = 8, y = 0, Zmax = 8.
3.3. Задачи дробно-линейного программирования
Существует некоторый класс задач нелинейного программирования, который можно свести к задачам линейного программирования. Это задачи дробно-линейного программирования.
Постановка задачи:
Q = |
c0 + c1x1 |
+ c2 x2 + ... + cn xn |
→ min, |
(3.6) |
|||||
d0 + d1x1 |
+ d2 x2 + ... + dn xn |
||||||||
|
|
|
|
|
|
|
|||
n |
|
|
|
|
|
|
|
|
|
∑aij xi = bi , |
|
i = 1,m, |
|
||||||
j=1 |
|
|
|
|
|
|
|
|
|
|
= 0. |
|
j = 1,n. |
|
|||||
xj |
|
|
|
|
|
|
Предположим, что знаменатель целевой функции не равен нулю и положителен (если он отрицателен, то умножим числитель и знаменатель на –1).
Введем новую переменную y0:
y0 = |
1 |
, |
(3.7) |
n |
d0 + ∑di xi
i=1
77
тогда ЦФ
|
Q = c0 y0 + c1 y0 x1 + c2 y0 x2 + ... |
+ cn y0 xn → min. |
(3.8) |
||||||||||
Введем переменные yi |
= xi y0 , |
i = |
|
, тогда |
|
||||||||
1,n |
|
||||||||||||
|
|
Q = c0 y0 + c1 y1 + c2 y2 + + cn yn... |
→ min. |
(3.9) |
|||||||||
Домножим левую и правую части ограничений на Y0: |
|
||||||||||||
|
|
n |
|
|
|
|
n |
|
|
|
|
|
|
|
|
∑aij xi |
y0 |
= bi y0 , |
∑aij yi |
= bi y0 , |
(3.10) |
||||||
|
|
j=1 |
|
|
|
|
j=1 |
|
|
|
|
|
|
Добавим еще ограничение: |
|
|
|
|
|
|
|
|
|||||
|
1 |
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
∑d j y j |
|
|
|
|
|
|
|
|
||
y0 = |
|
, |
+ d0 y0 |
= 1, |
y j ≥ 0, j = 0,n. |
(3.11) |
|||||||
|
|
|
|||||||||||
|
n |
|
d0 + ∑d j xj j=1
j=1
Получили задачу линейного программирования ((3.9) – (3.11)). Решив ее одним из методов линейного программирования, получим оптимальное решение yj .
Далее осуществляется переход к исходным переменным xj |
= |
y j |
. |
||
|
|||||
|
|
|
|
Y0 |
|
Пример 1 |
|
|
|
|
|
Q = |
2x1 + x2 |
→ min. |
|
|
|
|
|
|
|
||
|
x1 + 2x2 + 1 |
|
|
|
x1 |
+ 2x2 ≤ 2, |
2x1 + x2 + x3 = 6, |
|
|
, x2 , x3 ≥ 0. |
x1 |
Решение:
1. Вводим новые переменные y0, y1, y2:
y0 = 1 , x1 + 2x2 + 1
Q = −2x1 y0 + x2 y0 = −2y1 + y2 → min.
78
2. Преобразуем ограничения:
x1 y0 − 2x2 y0 − 2y0 ≤ 0,+ + =
2x1 y0 x2 y0 x3 y0 6y0 ,+ + =
x1 y0 2x2 y0 y0 1.
y1 − 2y2 ≤ 2y0 , |
|||
2y1 + y2 + y3 − 6y0 = 0, |
|||
|
+ 2y2 |
+ y0 = 1, |
|
y1 |
|||
y , y |
, y |
≥ 0. |
|
1 |
2 |
3 |
|
3. Преобразуем ограничение-неравенство в ограничениеравенство введением искусственной переменной y4:
y1 − 2y2 − 2y0 + y4 = 0.
4. Приведем задачу к каноническому виду методом искусственного базиса:
y1 − 2y2 − 2y0 + y4 = 0,+ + − + =
2y1 y2 y3 6y0 y5 0,+ + + =
y1 2y2 y0 y6 1.
Искусственная целевая функция: G = y5 + y6 → min.
5. В результате решения задачи методами линейного программирования получен ответ:
y0 |
= |
1 |
, y1 |
= |
2 |
, y2 |
= 0, y3 |
= |
2 |
. |
|
|
|
||||||||
|
3 |
|
3 |
|
|
3 |
|
6. Переход к исходным переменным:
x1 = |
y1 |
= 2, x2 |
= |
y2 |
= 0, x3 |
= |
y3 |
= 2. |
||
|
y0 |
y0 |
||||||||
|
|
y0 |
|
|
|
|
|
|||
Пример 2 |
|
|
|
|
|
|
|
|||
Q = |
3x2 − 2x3 |
→ min. |
|
|
|
|||||
|
|
|
|
|||||||
|
|
x2 + 3x3 |
|
|
|
|
|
|
|
x1 − x2 + 2x3 = 4,− + + + =
x1 2x2 x3 x4 6,≥
x1, x2 , x3 , x4 0.
79
Решение:
1. Вводим новые переменные y0, y1, y2, y4:
y0 |
= |
|
1 |
, |
2x2 |
|
|||
|
|
+ 3x3 |
Q = 3x2 y0 − 2x3 y0 = 3y2 − 2y3 → min.
x1 y0 − x2 y0 + 2x3 y0 = 4y0 ,+ + + =
x1 y0 2x2 y0 x3 y0 x4 y4 6y0 ,+ =
x2 y0 3x3 y0 1.
y1 − y2 + 2y3 − 4y0 = 0, |
||||
− y1 + 2y2 + y3 + y4 − 6y0 = 0, |
||||
|
+ 3y3 = 1, |
|
||
y2 |
|
|||
y , y |
, y , y |
4 |
≥ 0; |
|
1 |
2 |
3 |
|
а) искусственные переменные выражаем из ограничений и подставляем в искусственную целевую функцию:
y5 = − y1 + y2 − 2y3 + 4y0 , y4 = y1 − 2y2 − y3 + 6y0 , y6 = 1− y2 − 3y3 = 1,
G = 6y0 − y1 + y2 − 2y3 + 6y0 + y1 − 2y2 − y3 + 1− y2 − 3y3 = = 10y0 − 2y2 − 6y3 + 1.
Теперь задача приведена к каноническому виду; б) решаем задачу линейного программирования, для которой ис-
кусственные переменные – базисные, а искомые – свободные. Задачу решаем для искусственной целевой функции.
80