Математические основы теории систем. Методы оптимизации
.pdf4. Преобразуем ограничения-неравенства в ограниченияравенства путем введения искусственных переменных:
2x1 − 2x2 + λ1 − λ2 − v1 = 2, |
|
|
|
|
|
||||||
4x2 − 2x1 + λ1 + 2λ2 − v2 = 6, |
|
|
|
|
|
||||||
x1 + x2 + w1 = 2, |
|
|
|
|
|
|
|||||
|
|
|
+ 2x2 |
+ w2 |
= 2, |
|
|
|
|
|
|
− x1 |
|
|
|
|
|
|
|||||
|
|
|
= 0, |
|
|
|
|
|
|
|
|
x1v1 |
|
|
|
|
|
|
|
|
|||
x2v2 |
= 0, |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
λ1w1 = 0, |
|
|
|
|
|
|
|
|
|||
λ2 w2 = 0. |
|
|
|
|
|
|
|
|
|||
5. Воспользуемся методом искусственного базиса для приведе- |
|||||||||||
ния задачи к каноническому виду: |
|
|
|
|
|
||||||
2x1 − 2x2 + λ1 − λ2 − v1 + w3 = 2, |
|
|
|
|
|||||||
4x2 − 2x1 + λ1 + 2λ2 − v2 + w4 = 6, |
|
|
|
|
|||||||
|
+ x2 + w1 = 2, |
|
|
|
|
|
|
||||
x1 |
|
|
|
|
|
|
|||||
− x + 2x |
+ w |
= 2, |
|
|
|
|
|
|
|||
|
1 |
2 |
2 |
|
|
|
|
|
|
|
|
Q = w3 + w4 = 8 − 2x2 − λ2 + v1 + v2 − 2λ1 → min. |
|
|
|||||||||
Составим симплекс-таблицу: |
|
|
|
|
|
||||||
|
|
|
|
х1 |
х2 |
λ1 |
λ2 |
v1 |
v2 |
|
|
|
|
|
|
|
|
||||||
|
|
|
w3 |
2 |
–2 |
1 |
–1 |
–1 |
0 |
2 |
|
|
|
|
w4 |
–2 |
4 |
1 |
2 |
0 |
–1 |
6 |
|
|
|
|
w1 |
1 |
1 |
0 |
0 |
0 |
0 |
2 |
|
|
|
|
w2 |
–1 |
2 |
0 |
0 |
0 |
0 |
2 |
|
|
|
|
|
0 |
–2 |
–2 |
–1 |
1 |
1 |
–8 |
|
|
|
|
|
|
|
|
|
|
|
|
|
При переходе от одной симплекс-таблицы к другой необходимо проверять выполнение ограничений-равенств. В данном случае λ1 и λ2 нельзя переводить из свободных в базисные.
Решение заканчивается, когда w3 = w4 = 0 и в правом нижнем углу таблицы – 0.
Ответ: х1 = 0,8, х2 = 1,2.
101
Задания для самостоятельной работы
Решить задачи квадратичного программирования.
1. f(x) = x12 + x22 – 10x1 – 15x2 →min, 2. f(x) = x12+x22– 20x1 – 30x2 →min,
2x1 + 3x 2 ≤ 13,
2x1 + x2 ≤ 10, x1, x2≥ 0
3. f(x) = x12 – 2x1 – x2 →min, 2x1 + 3x 2 ≤ 6,
2x1 + x2 ≤ 4, x1, x2 ≥ 0
5. f(x) = x12 + x22 – 10x1 – 8x2 →min, 2x1 + 3x 2 + x 3 ≤ 13,
x1, x2, x3 ≥ 0
7. f(x) = x12 + x22 + x32 + x2 – 2x3 →min, x1 + x 2 + 2x 3 ≤ 6,
3x1 + 2x 2 + x 3 ≤ 12, x1, x2, x3 ≥ 0
9. f(x) = x12 + x22 – x1 – 2x3 → min, x1 – x 2 + 2x 3 = 6,
x1, x2, x3 ≥ 0
5x1 + 13x 2 ≤ 51,
15x1 + 7x2 ≤ 107, x1, x 2 ≥ 0
4.f(x) = x12 + x22–10x1–20x2 →min, 9x1 + 8x 2 ≤ 72,
x1 + 2x2 ≤ 10, x1, x2 ≥ 0
6. f(x) = 3x12+x22+3x1 – 2x2 →min, x1 + 3x 2 + x 3 + x 4 = 16,
3x1 – x 2 – x 3 + x 4 = 4, x1, x2, x3 , x 4 ≥ 0
8. f(x) = x22 + 2x1x3 – x3 → min, x1 + x 2 = 4,
x 2 + x 3 = 8,
x1, x2, x3 , x 4 ≥ 0
3.7. Метод условного градиента
Этот метод применяется, когда ограничения линейные и могут иметь вид как равенств, так и неравенств, а целевая функция нелинейная. Метод относится к классу итерационных.
Рассмотрим сущность метода на примере функции двух переменных:
102
Рис. 3.7. Метод условного градиента
Пусть X i – приближение к экстремуму на i-м шаге. В точке X i находим градиент. Затем целевая функция заменяется новой функцией, коэффициентами которой являются координаты вектора градиента в точке X i . Эта функция является линейной. Решив новую задачу линейного программирования, получаем точку Z i . Затем делается шаг в направлении отрезка Z i − X i . В результате находится новая точка X i+1 .
Постановка задачи
1.f(x1, x2,…xn) → min(max).
2.gi(x1, x2,…xn) ≤ 0, i = 1, m.
3.X 0 = (x10, x20,…xn0) – начальнаяточкаприближениякэкстремуму.
4.ε – точность нахождения экстремума.
5. x1, x2,…xn ≥ 0. |
(3.25) |
Алгоритм метода
Алгоритм рассматривается для i-го шага приближения к экстремуму.
1. |
Находим grad f = ( |
∂f |
, |
∂f |
,..., |
∂f |
) . |
|
|
|
|
∂x1 |
∂x2 |
|
|
|
|
||||||
|
|
|
|
|
∂xn |
|
|
|
|||
2. |
Составляем вспомогательную функцию Z: |
|
|||||||||
|
Z = x1 |
∂f |
|
|
X i + ... + xn |
∂f |
X i . |
(3.26) |
|||
|
∂x1 |
|
|
|
|||||||
|
|
|
|
|
|
|
|
∂xn |
|
||
|
|
|
|
|
|
|
|
|
|
|
103 |
3. Решаем задачу линейного программирования: |
|
Z → min (max), |
|
gi (x1, x2,…xn ) ≤ 0, i = 1, m |
(3.27) |
x1, x2,…xn ≥ 0.
Положим, решением задачи линейного программирования является вектор:
Z i = (z1i , z2i ,..., zni ) , где zij – значения переменных xj на i-м шаге приближения к экстремуму (решение задачи (3.27)).
4. Находим новую точку приближения к экстремуму:
X i+1 = X i
x1i+1 |
= x1i |
|
|
... |
|
i+1 |
i |
xn |
= xn |
5. Выбор шага α. |
|
Возможны два варианта: |
|
+α(Z i − X i ).
+α(z1i − x1i ),
(3.28)
+ α(zni − xni ).
–фиксированный шаг (неизменяемый на протяжении всего решения);
–вычитаемый на каждой итерации (аналогичен методу наискорейшего спуска).
6. Проверка критерия окончания счета.
Используются те же критерии, что и в задачах на поиск безусловного экстремума.
Пример
f (x1, x2 ) = 2x1 + 4x2 − x12 − x22 → max,
x1 |
+ 2x2 |
≤ 8, |
||
2x1 − x2 |
≤ 12, |
|||
|
, x2 ≥ 0. |
|||
x1 |
||||
|
|
0 |
= (0,0), ε = 0,01. |
|
X |
104
Решение:
grad f (x1, x2 ) = ( |
∂f |
, |
∂f |
) = (2 − 2x1,4 − 4x2 ), |
||||||||
∂x1 |
|
|||||||||||
|
|
|
|
|
∂x2 |
|
|
|
|
|||
Z = x |
∂f |
|
=0, x2 =0 |
+ x |
∂f |
|
=0, x2 =0 |
, |
||||
∂x1 |
∂x2 |
|||||||||||
1 |
2 |
|
|
|||||||||
|
x1 |
|
|
x1 |
|
|||||||
Z = 2x1 + 4x2 → max, |
|
|
|
|
||||||||
x1 + 2x2 ≤ 8, |
|
|
|
|
|
|
|
|
|
|||
2x1 − x2 ≤ 8, |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
x1, x2 ≥ 0. |
|
|
|
|
|
|
|
|
|
|||
Решив |
задачу |
линейного |
программирования, получаем |
Z 0 = (0;4) .
Далее находим выражение для подсчета координат новой точки приближения к экстремуму:
x11 = x10 + α1(z10 – x10) = 0 + α1 0 =0, x21 = x20 + α1(z20 – x20) = 0 + α1 4 = 4α1.
Для нахождения величины шага подставим x11 и x21 в функцию f: f(α1) = 16α1 – 32α12 ,
|
∂f |
= 16 − 64α1 = 0, |
α1 = 0,25, |
||||||
|
|
||||||||
|
∂α1 |
|
|
|
|
|
|
|
|
x11 = 0, x21 = 4 0,25 = 1. |
|||||||||
Проверка критерия |
окончания счета: |
|
|
|
|
|
= 2 > ε , |
||
f (X |
1 ) − f (X 0 ) |
следовательно, требуется выполнить еще хотя бы один шаг.
Задания для самостоятельной работы
Решить задачи нелинейного программирования методом условного градиента.
Дано: ε = 0,05, xo = (0; 0).
1. f(x) = x12 + 2x22 – 16x1 – 20 x2 → min, 2. f(x) = x12+x22–18x1–20x2→min,
2x1 |
+ 5x2 ≤ 40, |
x1 + x2 ≤ 15, |
|
2x1 |
+ x2 ≤ 16, |
2x1 |
+ 5x2 ≤ 60, |
x1, x2 ≥ 0 |
3x1 |
+ x2 ≤ 30, |
|
|
|
x1, x2 ≥ 0 |
105
3. f(x) = (x1 – 16)2 + (x2 – 9)2 →min, 5x1 + 2x2 ≤ 60,
x1 + x2 ≤ 15, x1 + 4x2 ≤ 40, x1, x2 ≥ 0
4. f(x) = x12 + x22 – x1x2 – 3x2→min, x1 + x2 ≤ 4,
x1, x2 ≥ 0
5. f(x) = x12 + x22 – 4x1 – 8x2 → min, |
6. f(x) = x12+ 2x1 – x2→min, |
||
6x1 + 11x2 + x3 + 2x4 = 96, |
x1 |
+ x2 ≤ 15, |
|
–2x1 + 3x2 – 2x3 + x4 = 8, |
x1 |
+ 3x2 |
+ x3 = 30, |
x1, x2, x3, x4 ≥ 0 |
5x1 + 3x2 + x4 = 60, |
||
|
x1, x2, x3, x4 ≥ 0 |
||
7. f(x) = x12 + 2x22 – 6x1 – 32x2 → min, |
8. f(x) = 2x12 + 3x1 + 2x2 + x3 |
||
→min, |
|
|
+ 2x3 ≤ 15, |
3x1 + x2 + x3 = 30, |
x1 |
+ 3x2 |
|
x1 + x2 + x4 = 15, |
3x1 + x2 |
+ x3 ≤ 20, |
|
2x1 + 5x2 + x5 = 60, |
x1, x2, x3 ≥ 0 |
||
x1, x2, x3, x4, x5 ≥ 0 |
|
|
|
9. f(x) = x12 + x22 + x32 + x1 – 2x2 → min 10. f(x) = x12–2x1 +2x2 +x3 →min,
x1 + 2x2 |
+ 3x3 ≤ 18, |
x1 + 3x2 + 2x3 ≤ 7, |
2x1 + x2 |
+ x3 ≤ 20, |
3x1 + x2 + x3 ≤ 3, |
x1, x2, x3 ≥ 0 |
x1, x2, x3 ≥ 0 |
3.8. Метод штрафных функций |
|
Постановка задачи. |
|
1. f(x1, x2,…xn) → min(max). |
|
2. gi(x1, x2,…xn) ≥ 0, i = 1, m. |
(3.29) |
3.X 0 = (x10, x20,…xn 0) – начальная точка приближения к экстре-
муму,
4.ε – точность нахождения экстремума.
5.x1, x2,…xn ≥ 0, и целевая функция, и ограничения – многочлены любой степени, т.е. данный метод является универсальным, для решения задач нелинейного программирования.
106
Суть метода.
Вводится искусственная целевая функция F = f(x1, x2,…xn) +
+H(x1, x2,…xn).
Н– штрафная функция, определенная следующим образом (для
определенности ищется минимум целевой функции):
Н= 0 внутри области допустимых решений,
Н> 0 вне области допустимых решений.
Вследствие такого задания Н безусловный экстремум функции F совпадет с условным экстремумом функции f.
X 2
X 3
X 0 X 1
Рис. 3.8. Графическая иллюстрация метода штрафных функций
В точках X 0 и X 1 Н = 0. В точке X 2 Н > 0, следовательно, значение F резко увеличится. Но поскольку функцию F требуется минимизировать, то следующая итерация возвращает текущую точку в область допустимых решений.
Выбор штрафной функции.
m |
|
0, |
|
gi |
≥ 0, |
H = ∑αi gi , |
αi |
= |
, |
gi |
(3.30) |
i=1 |
|
αi |
< 0. |
Безусловный экстремум функции F находится любым известным методом.
Пример |
|
|
|
|
|
|||
f (x1, x2 ) = − x12 − x22 |
→ max, |
|||||||
|
|
2 |
− (x2 |
− 7) |
2 |
≥ 0, |
||
18 − (x1 − 7) |
|
|
||||||
|
2 |
|
|
|
|
|
||
1 |
|
|
|
|
|
|||
x |
, x , |
|
|
|
|
|
||
|
|
0 |
= (6,7), ε = 0,1. |
|
|
|||
X |
|
|
107
Решение:
F= f (x1, x2 ) + α g(x1, x2 ) =
=− x12 − x22 + α(18 − (x1 − 7)2 − (x2 − 7)2 ) → max.
|
|
2 |
|
|
2 |
|
|
0, |
18 − (x1 − 7) |
− (x2 − 7) |
≥ 0, |
||||
|
|
||||||
α = |
18 − (x − 7)2 |
− (x |
− 7)2 |
< 0. |
|||
1,9, |
|||||||
|
1 |
|
|
2 |
|
|
(Шаг выбран произвольным, но в данной задаче он больше нуля, так как интегральная функция H = α·g должна уменьшать ЦФ за областью допустимых решений).
Для простоты шаг в направлении градиента возьмем постоянным
λ = 0,1.
X 0 = (6, 7), проверим выполнение ограничения для этой точки: g(6, 7) > 0, следовательно, α = 0,
1 |
0 |
|
∂f |
|
0 |
|
|
|
x1 |
= x1 |
+ λ |
|
|
X |
|
|
= 4,8, |
∂x1 |
|
|||||||
|
|
|
|
|
|
|
||
1 |
0 |
|
∂f |
|
0 |
|
|
|
x2 |
= x2 |
+ λ |
|
|
X |
|
|
= 5, |
∂x2 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
1 = (4,8; 5,6), |
|
|
|
|
g(4,8; 5,6) > 0, α = 0, |
..., |
||||||||||
X |
|
|
|
|
||||||||||||||||
|
|
2 |
= (3,84; 4,48), |
|
|
|
g = (3,84; 4,48) > 0, α = 0, ..., |
|||||||||||||
X |
|
|
||||||||||||||||||
|
|
3 = (3,072; 3,584), |
|
|
g = (3,072; 3,584) < 0, |
α = 1,9, |
||||||||||||||
X |
|
|||||||||||||||||||
4 |
3 |
|
∂f |
|
3 |
+ α |
|
∂g |
|
3 |
|
|
||||||||
x1 |
= x1 |
+ λ |
|
|
X |
|
|
|
|
X |
|
|
= 3,950, |
|
||||||
∂x1 |
|
∂x1 |
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
4 |
3 |
|
∂f |
|
3 |
+ α |
|
∂g |
|
|
3 |
|
|
|
||||||
x2 |
= x2 |
+ λ |
|
|
X |
|
|
|
|
X |
|
|
= 4,165, |
|
||||||
∂x2 |
|
|
∂x2 |
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
4 |
= (3,950; 4,165), |
|
|
g = (3,072; 3,584) > 0, ... |
||||||||||||||
X |
|
|
и так далее, пока не будет достигнута заданная точность (точность определяется как в задачах на безусловный экстремум).
108
4. ВАРИАЦИОННОЕ ИСЧИСЛЕНИЕ
Вариационное исчисление – это математическая дисциплина, занимающаяся поиском экстремума функционалов [5].
Функционал – выражение, зависящее от функции (например, определенный интеграл).
Пример
Даны две точки на плоскости. Требуется соединить их такой кривой, чтобы круглое материальное тело (шар), двигаясь по этой кривой под действием силы тяжести без трения, доходило от одной точки до другой за минимальное время.
Составим математическое описание задачи.
Изменение кинетической энергии теларавноработесилытяжести:
mg y = ∆( |
mV 2 |
), V0 |
= 0, mg y = |
mV 2 |
, V = 2gy. |
|
|||||||||||||||
|
|
|
|||||||||||||||||||
|
|
|
|
2 |
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
+ (dy) |
2 |
|
1+ ( |
dy |
)2 dx |
|
|
|
|
ds |
|
|
|
ds |
|
|
ds |
|
(dx) |
|
|
|
|||||||
V = |
|
dt = |
|
= |
|
= |
|
|
= |
|
dx |
|
|||||||||
|
, |
|
|
|
|
|
|
|
|
|
|
|
|
|
. |
||||||
|
|
|
V |
|
2gy |
|
2gy |
|
|
2gy |
|||||||||||
|
|
dt |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
1 |
|
x1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t = |
|
∫ 1+ y′2 dx. |
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
2g y |
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ищем некоторую функцию у(х). Этой функции будет поставлено в соответствие некоторое число – значение t для этой функции.
Задача – найти такую функцию у(х), при которой функционал (значение t) достигает минимума.
4.1. Формула Эйлера–Лагранжа
Дана следующая задача:
x |
|
|
I ( y) = ∫1 |
f (x, y, y′)dx – функционал, |
(4.1) |
x0
начальные условия: y(x0) = y0, y(x1) = y1.
109
Требуется найти такую функцию у(х), проходящую через точки (x0, y0) и (x1, y1), при которой данный функционал достигает максимума.
Решим задачу в общем виде.
Предположим, что функция у(х) доставляет экстремум функционалу. Зададим функции у(х) приращение δу такое, при котором δу = 0
в точках х0 и х1 и δу ≠ 0 в других точках. Найдем приращение функционала:
x |
x |
|
dI ( y) = ∫1 |
f (x, y + δy, y′ + δy′)dx − ∫1 |
f (x, y, y′)dx. |
x0 |
x0 |
|
Разложим подынтегральную функцию в ряд Тейлора:
f (x, y |
y, y′ |
y′) |
= |
f (x, y, y′) |
+ |
∂f |
y |
∂f |
y′ |
+ |
R , |
|
∂y′ |
||||||||||
|
+ δ |
+ δ |
|
∂y δ + |
δ |
1 |
где R1 – остаток. Тогда, используя (4.3),
x |
∂f |
x |
∂f |
x |
x |
|
|
dI ( y) = ∫1 |
δydx + ∫1 |
δy′dx + ∫1 |
Rndx = δI + ∫1 |
Rndx. |
|||
∂y |
∂y′ |
||||||
x |
x |
x |
x |
|
|||
0 |
|
0 |
|
0 |
0 |
|
(4.2)
(4.3)
Приращение функции в точке экстремума равно нулю. По аналогии, если функция у(х) доставляет экстремум функционалу, то δI = 0. δI – главная часть приращения (первая вариация функционала).
δI = 0, следовательно,
x |
∂f |
x |
∂f |
|
|
|
δI = ∫1 |
δy dx + ∫1 |
δy′dx = 0. |
(4.4) |
|||
∂y |
∂y′ |
|||||
x |
x |
|
|
|||
0 |
|
0 |
|
|
|
Второй интеграл уравнения (4.4) проинтегрируем по частям:
x1 |
|
∂f |
y′dx |
|
|
{u |
|
|
∂f |
, du |
|
( |
∂f |
)′ |
dx, dv |
|
y′dx |
|||
x∫ |
|
∂y′ |
|
|
|
|
∂y′ |
|
∂y′ |
|
||||||||||
|
δ |
= |
|
= |
|
|
= |
|
x |
|
|
= δ |
|
|||||||
|
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
= |
[ |
d( y2 − y1 ) |
]dx |
= |
( y)′ dx |
= |
d( y), v |
y} |
= |
∂f |
y |
|||||||||
|
∂y′ |
|||||||||||||||||||
|
|
|
dx |
|
|
|
|
δ |
x |
|
δ |
|
|
= δ |
δ |
= [( |
∂y )2 − (∂y )1 ]dx = |
||||||||
|
∂x |
|
∂x |
|
|
|
|||
x1 |
x1 |
|
∂f |
|
|
|
|
||
− ∫ |
( |
)′ |
|
ydx. |
|||||
|
|
|
|||||||
x0 |
|
|
∂y′ |
x |
|
δ |
|||
|
x0 |
|
|
|
|
||||
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
110