Теория оптимального управления экономическими...
DESCRIPTION
Теория оптимального управления экономическими системами - II. Проф. В.П. Кривошеев. Динамическое программирование в непрерывной форме. Уравнение Беллмана. Решается задача оптимального управления y (0) = y 0 , dy i ( t )/ dt = f i ( y ( t ), u ( t ), t ), i = 1,…, n , - PowerPoint PPT PresentationTRANSCRIPT
Теория оптимального управления экономическими
системами - II
Проф. В.П. Кривошеев
Динамическое программирование в непрерывной форме. Уравнение Беллмана Решается задача оптимального управления
y(0) = y0, dyi(t)/dt = fi(y(t),u(t),t), i = 1,…,n,y(tk) = yk. В основе динамического программирования
лежит принцип оптимальности в соответствии с которым нужно оптимальным образом перевести систему из состояния y()в конечное состояние y(tk) не зависимо от того, каким образом система пришла из исходного состояния y(0) в состояние y().
(max),min)),(),((
0 t
tdttttFJ
uuy
Динамическое программирование в непрерывной форме. Уравнение Беллмана
Вариация функции
)(ty
)0(y
)(ty
0 kt
t
)(* ty
)(* ty
Динамическое программирование в непрерывной форме. Уравнение БеллманаМатематически принцип оптимальности
реализуется через выражение:
Пусть - малая величина. Обозначим
Тогда
].)),(),(()(
min)),(),(([)(
min)(
min0
dttttFt
dttttFt
Jt
tuyuy
uuu
.)),(),(()(
min))0(,0(
,)),(),(()(
min))(,(
0
*
*
dttttFt
dttttFt
t
t
uyy
uyy
u
u
))].(,()),(),(([)(
min))0(,0(0
* yuyyu
dttttFt
t
Динамическое программирование в непрерывной форме. Уравнение Беллмана Разложим функцию (, y()) в ряд Тейлора относительно состояния t = 0, y(0) = y0 по степеням y(t) и t.
Примем, что t = . Заметим, что или С учетом малости можно записать
.)0(
0))(,(
)0(0
))(,())0(0())(,(
1 yyyy
yyyy
tt
tttty
tty
n
i ii
,
,)()( tdttdyty ii .)),(),(()( ttttfty ii uy
.)),(),0(()),(),0(()),(),((0
ttFtttFdttttF uyuyuy
Динамическое программирование в непрерывной форме. Уравнение Беллмана
Теперь min(J(y(0),u(t))), с учетом выше приведенных выражений, можно записать в виде
.])0(
0/))(,((
)0(0))),(),(()/))(,(((
))0(0()),(),0(([min))0(0(
1
*
)(
*
yy
yy
u
y
uyy
yuyy
tttt
ttttfytt
ttF
i
n
ii
t
,,
Динамическое программирование в непрерывной форме. Уравнение БеллманаТак как (0, y(0)) не зависит от u(t), а
содержится во всех составляющих правой части записанного выше уравнения, то это уравнение приводится к виду
Учтем тот факт, что разложение условно оптимальной величины функционала, записанной для условного состояния в какой-то момент времени t (в приведенном случае y()),
].)0(
0))),(),(()/))(,(((
)0(0)),(),0(([min
)0(0/))(,((
1
)(
yy
yyuyy
uyy
uyy
ttttfytt
tttFtttt
i
n
ii
t
Динамическое программирование в непрерывной форме. Уравнение Беллманаможно разложить в ряд Тейлора относительно оптимального состояния системы в момент времени t- при y*(t), т.е.
Полученное уравнение называется уравнением Беллмана. Оно является уравнением в частных производных. Решением этого уравнения есть функции u*(t), доставляющие экстремум функции и функции состояния системы y*(t), описывающие оптимальную траекторию движения системы из исходного y0 в конечное состояние yk.
))].),(),(()/))(,(((
)),(),(([min/))(,((
1
)(
tttfytt
tttFttt
i
n
ii
t
uyy
uyyu
Алгоритм решения задачи оптимального управления методом динамического
программирования в непрерывной форме
Для решения уравнения Беллмана, кроме условий y(0) = y0 и y*(tk) = yk, нужно иметь значение функции (t, y(t)) и значения ее производных (t, y(t))/yi, i = 1,…,n, и (t,y(t))/t в один из граничных моментов времени tн = 0 или tk.
Заметим, что (tk, y(tk)) = 0 по определению. В силу этого имеет место тождество
.,...,1,0/))(,()(
niyttk
kt
tti
yy
y
Алгоритм решения задачи оптимального управления методом динамического
программирования в непрерывной форме
Теперь из самого уравнения Беллмана следует
Получены все условия для решения уравнения Беллмана.
Решение уравнение Беллмана выполняется известными методами решения систем дифференциальных уравнений в частных производных.
.)(
)),(),(((max)(
/))(,(
kk
kk
ttttttF
tttttt
yyuyy
uyy
Алгоритм решения задачи оптимального управления методом динамического
программирования в непрерывной форме
Покажем что уравнение Беллмана при некоторых допущениях может быть приведено к уравнениям Эйлера. Запишем уравнение Беллмана в виде двух видов уравнений: Первый вид:
Второй вид: ).),(),(()/))(,((
)),(),((/))(,(*
1
*
tttfytt
tttFttt
i
n
ii uyy
uyy
.,...,1,0/)),(),((/))(,(
/)),(),((
1rjutttfytt
utttFn
ijii
j
uyy
uy
Алгоритм решения задачи оптимального управления методом динамического
программирования в непрерывной форме
Управления, удовлетворяющие уравнениям второго вида, обозначим u*(t). В первом уравнении управления u*(t) удовлетворяют условиям правой части уравнения Беллмана, выраженным уравнениями второго вида. Теперь продифференцируем уравнение первого вида по переменным состояния и введем обозначения: k(t) = -(t, y(t))/yk, k = 1,…,n,
0 = -1.
Алгоритм решения задачи оптимального управления методом динамического
программирования в непрерывной форме
Принимая допущения, что с учетом принятых выше обозначений, получим
.,...,1,)/)),(),((()/))(,((
)),(),((/)/))(,((
/)),(),((/)))(,(
(
1
*
*
1
*
nkytttfytt
tttfyytt
ytttFyt
tt
n
ikii
i
n
iki
kk
uyy
uyy
uyy
,0/)/))(,(( ki yytt y
.,...,1,0)/)),(),(((/)),(),(((
,,...,1,/)),(),(()((
/)),(),(((/)(
1
*0
1
*
*0
rjutttfutttF
nkytttft
ytttFtdtd
n
ijiij
n
ikii
kk
uyuy
uy
uy
Алгоритм решения задачи оптимального управления методом динамического
программирования в непрерывной форме
Полученные уравнения являются уравнениями Эйлера в задаче оптимального управления.
Таким образом, показано, что классическое вариационное исчисление, принцип максимума и уравнение Беллмана при некоторых допущениях позволяют выразить условия экстремума функционала в задаче оптимального управления идентичными уравнениями.
Статическая оптимизация
Виды функций по количеству экстремумов - унимодальные, имеющие один экстремум - полимодальные, более одного экстремума
Виды экстремумов и наилучших значений функции
- локальный минимум полимодальной функции в точке ui*, если , или
и ;
- локальный максимум полимодальной функции в точке ui*, если , или
и ,
где i=1,2,…,k – число локальных экстремумов.
)()()( *** uQQuQ iii uuu
0/)( * uidudQ u
u 0/)( * uii
dudQ uu
)()()( *** uQQuQ iii uuu
0/)( * uidudQ u
u 0/)( * uii
dudQ uu
Виды экстремумов и наилучших значений функции
- супремум (sup Q (u)) при umin, если ;
- супремум (sup Q (u)) при umax, если ;
- инфимум (inf Q (u)) при umin, если ; - инфимум (inf Q (u)) при umax, если
; - глобальный минимум в точке ug, если ; - глобальный максимум в точке ug, если
.
))(),(),((max)( maxminmaxmin,,
min uuuu QQQQ ii
))(),(),((max)( maxminmaxmin,,
max uuuu QQQQ ii
))(),(),((min)( maxminmaxmin,,
min uuuu QQQQ ii
))(),(),((min)( maxminmaxmin,,
max uuuu QQQQ ii
))(),(),((min)( maxmin*
maxmin,,,...,2,1,uuuu QQQQ
ikiig
))(),(),((max)( maxmin*
maxmin,,,...,2,1,uuuu QQQQ
ikiig
Постановка задачи статической оптимизации
Q(X, U) min(max) U
yi=φi(X, U) , i=1,…,n, yi yi
зад, i=1,…,k, yi yiзад, i=k+1,…,p,
Ujmin Uj Uj
max, j=1,…,r,где X=(x1,…,xn) – вектор внешних возмущающих
воздействий, U=(u1,…,ur) – вектор управляющих воздействий, Y=(y1,…,yp) – вектор выходных переменных, yi
зад - заданные значения выходных переменных, Ω - область допустимых управлений. Требуется найти такие значения управляющих
воздействий U=(u1,…,ur), при которых выполняются приведенные выше условия, а критерий оптимальности Q принимает минимальное (максимальное) значение.
Методы статической оптимизации
1. Классический метод исследования функции на экстремум
2. Методы нелинейного программирования:- численные методы решения
одномерной задачи статической оптимизации;
- численные методы решения многомерной задачи статической оптимизации
3. Линейное программирование4. Динамическое программирование в
дискретной форме
Классический метод исследования функций на экстремум
Необходимые и достаточные условия экстремума функции одной переменной Q=Q(u)
Необходимое условие: . Достаточное условие:Если при u=u* впервые в порядке возрастания k
, где k – четное, то Q=Q(u) имеет экстремум. Причем, если , то Q(u)min, а если , то Q(u)max.
Если при u=u* впервые в порядке возрастания k
, где k – нечетное, то Q=Q(u) не имеет экстремума.
0/)( * uduudQ
0/)( * ukk duuQd
0/)( * uduudQ
0/)( * uduudQ
0/)( * ukk duuQd
Примеры исследования функции одной переменной на экстремум
Пример 1. Q = (1-u)3. Необходимое условие экстремума :
3(1-u*)2(-1) = 0, u* =1.
Достаточное условие экстремума =
6(1-u*) = 6(1-1) = 0, .k = 3 – нечетное.
Ответ: при u* =1 исследуемая функция не имеет экстремума.
0/)( * uduudQ
*22 /)( uduuQd
06/)( *33 uduuQd
Примеры исследования функции одной переменной на экстремум
Пример 2. Q = (1-u)4.
Необходимое условие экстремума :
4(1-u*)3(-1) = 0, u* =1.
Достаточное условие экстремума =
12(1-u*)2 = 12(1-1)2 = 0,
= 24(1-u*) = 24(1-1) = 0,
= 24 = 0.
k = 3 – нечетное.
Ответ: при u* =1 исследуемая функция имеет минимум.
0/)( * uduudQ
*33 /)( uduuQd
*22 /)( uduuQd
*44 /)( uduuQd
Классический метод исследования функций на экстремум
Необходимые и достаточные условия экстремума функции нескольких переменных Q=Q(U) = Q(u1,…,ur). Необходимое условие: . Достаточное условие:Если при U=U* все диагональные миноры матрицы Гессе (Г):
(Г)
строго положительны, то функция Q=Q(U) имеет минимум. Если при U=U* нечетные диагональные миноры матрицы (Г) строго отрицательные, а четные строго положительные, то функция Q=Q(U) имеет максимум.
),...,(*,,...,1,0/)( **1* rj uurjuQ UU U
rrr
r
uu
Q
uu
Q
uu
Q
uu
Q
)()(
)()(
2
1
2
1
2
11
2
UU
UU
Примеры исследования функции нескольких переменных на экстремум
классическим методомПример 1. Q = u1+2u1
2+u2+4u22+3u1u2
Необходимое условие экстремума:
, 1+4u1*+3u2
* = 0;
, 1+8u2*+3u1
* = 0;
, ,
, u1
* = 1 / = -5/23,
u2* = 2 / = -1/23.
0/)( **,1 21 uuuQ U
0/)( **,2 21 uuuQ U
2393283
34 538
81
311
13413
142
Примеры исследования функции нескольких переменных на экстремум
классическим методомПример 1. Q = u1+2u1
2+u2+4u22+3u1u2.
Достаточное условие экстремума: ; ;; ;
Матрица (Г):
1-ый диагональный минор равен 4>0,
2-ой диагональный минор равен 48-33=32-9=23>0.
Ответ: при u1* = -5/23, u2
* = -1/23 исследуемая функция имеет минимум.
4/)( **,112
21 uuuuQ U
3/)( **,122
21 uuuuQ U
3/)( **,212
21 uuuuQ U
8/)( **,222
21 uuuuQ U
,83
34
)()(
)()(
22
2
12
221
2
11
2
uu
Q
uu
Q
uu
Q
uu
Q
UU
UU
Примеры исследования функции нескольких переменных на экстремум
классическим методомПример 2. Q = u1-2u1
2+u2+4u22+3u1u2
Необходимое условие экстремума:
, 1-4u1*+3u2
* = 0;
, 1+8u2*+3u1
* = 0;
, ,
, u1
* = 1 / = 5/41,
u2* = 2 / = -7/41.
0/)( **,1 21 uuuQ U
0/)( **,2 21 uuuQ U
4193283
34
538
81
311
73413
142
Примеры исследования функции нескольких переменных на экстремум
классическим методомПример 2. Q = u1-2u1
2+u2+4u22+3u1u2.
Достаточное условие экстремума: ; ; ; ;
Матрица (Г):
1-ый диагональный минор равен –4<0,
2-ой диагональный минор равен -48-33=-32-9=-41<0.
Ответ: при u1* = 5/41, u2
* = -7/41 исследуемая функция не имеет экстремума.
4/)( **,112
21 uuuuQ U
3/)( **,122
21 uuuuQ U
3/)( **,212
21 uuuuQ U
8/)( **,222
21 uuuuQ U
,83
34
)()(
)()(
22
2
12
221
2
11
2
uu
Q
uu
Q
uu
Q
uu
Q
UU
UU
Аналитическое решение задачи на условный экстремум
- Метод множителей Лагранжа.- Условие Куна-Таккера
Аналитическое решение задачи на условный экстремум при условиях типа равенства:
Q=Q(U) min, U j(U) = 0, j = 1,…,m, U = (u1,…,ur), m < r.
Задача решается методом множителей Лагранжа.
Метод множителей Лагранжа
1. Составляется функция Лагранжа
где j, j=1,…,m,- множители Лагранжа.
2. Совместно решается система уравнений:
L(U,) / ui=0, i=1,…,r,
j(U) = 0, j = 1,…,m.
m
jjjQλL
1)()(),( UUU
Пример решения задачи методом множителей Лагранжа
Q = u12+u2
2 ,
u1+u2 – 1 = 0.
Функция Лагранжа L=Q(u1,u2)+ (u1,u2)= u1
2+u22 + (u1+u2
– 1),
L/u1= 2u1*+ = 0, L/u2= 2u2
*+ = 0,
Пусть 0, тогда u1 = /2, u2 = /2,
u1 = u2, - u1 - u2
+ 1= 0, u1* = u2
* = 0,5.
Аналитическое решение задачи на условный экстремум
- Метод множителей Лагранжа.- Условие Куна-Таккера
Аналитическое решение задачи на условный экстремум при условиях типа неравенств:
Q=Q(U) min, U
j(U) 0, j = 1,…,m, U = (u1,…,ur).
Задача решается с использованием условий Куна-Таккера.
Условия Куна-Таккера
Рассматривается задача выпуклого программирования
Q=Q(U) min, U
j(U) 0, j = 1,…,m, U = (u1,…,ur),
где Q(U) и j(U) - выпуклые дифференцируемые функции. Алгоритм решения задачи.
1. Составляется функция Лагранжа:
где j, j=1,…,m,- множители Лагранжа.
m
jjjQλL
1)()(),( UUU
Условия Куна-Таккера
2. Совместно решается система уравнений и неравенств:
L(U,) / ui=0, i=1,…,r,
jj(U) = 0, j = 1,…,m, j 0, j = 1,…,m,
j(U) 0, j = 1,…,m.
К определению выпуклости функции
Пусть 0 1.
Произвольную точку на линии ab можно описать как a+(b-a)(1-)= a+(1-)b, т.е. при = 0 это точка b, а при = 1 это точка а.
В случае нелинейной функции ее значение в точке с = a+ (1-)b есть Q[ a+(1-)b].
К определению выпуклости функции
Значение линейной функции, проходящей через точки a и b, в точке с равно Q(a)+(Q(b) - Q(a))(c-a)/(b-a) = Q(a)+(Q(b) - Q(a))[a+(1-)b-a]/(b-a) = Q(a)+(Q(b) - Q(a))(1-) = Q(a)+ (1-)Q(b). Сравнивая значения исходной функции с линейной функцией в точке с можно записать условие выпуклости функции: если имеет место
Q( a+(1-)b)< Q(a)+ (1-)Q(b),
то исходная функция выпукла (лежит ниже линейной функции на отрезке [a,b]).
Примеры решения задачи с использованием условия Куна-Таккера
Пример 1. Q = u12+u2
2 min, u1, u2
u1+u2 1, или (u1,u2)= u1+u2
– 1 0,
L=Q(u1,u2)+ (u1,u2)= u12+u2
2 + (u1+u2 – 1).
Условия Куна-Таккера:* 0, L(U,) / uj = 0, *(u1
*,u2*) = 0, j=1,2.
Решение:L/u1= 2u1
*+ = 0, L/u2= 2u2*+ = 0,
(u1+ u2-1) = 0, u1+u2 – 1 0.
Пусть = 0, тогда u1*= 0, u2
*= 0.
Ограничение u1+u2 – 1 0 в точке u1= 0, u2= 0
пассивно.
Примеры решения задачи с использованием условия Куна-Таккера
Пример 1 (продолжение):Пусть 0, тогда u1+u2
– 1 = 0,
2u1= - , т.к. > 0, то u1< 0;
2u2= - , т.к. > 0, то u2< 0.В этом случае не выполняется условие u1+u2
– 1 = 0.Пример 2. Q = u1
2+u22 min,
u1, u2
u1+u2 1, или (u1,u2)= -u1-u2
+ 1 0,
L=Q(u1,u2)+ (u1,u2)= u12+u2
2 + (-u1-u2 + 1).
Условия Куна-Таккера:* 0, L(U,) / uj = 0, *(u1
*,u2*) = 0, j=1,2.
Примеры решения задачи с использованием условия Куна-Таккера
Пример 2 (продолжение):Решение:L/u1= 2u1 - = 0, L/u2= 2u2 - = 0,
(-u1 - u2 + 1) = 0, -u1-u2 +1 0.
Пусть = 0, тогда u1+ u2 -1 =0.
Ограничение -u1-u2 +1 0 в точке u1= 0, u2= 0
не выполняется.Пусть 0, тогда u1 = /2,u2 = /2,
u1= u2; -u1-u2 +1 = 0, u1
*, u2*=1/2.
Ограничение -u1-u2 +1 0 в точке u1= 1/2,
u2= 1/2 активно.
Численные методы решения одномерных задач статической оптимизации
Сканирования (с постоянным и переменным шагом).
Половинного деления исходного интервала, содержащего экстремум.
«Золотого» сечения.
С использованием чисел Фибоначчи.
Метод сканирования с постоянным шагом
Функция Q(u), a u b.Алгоритм поиска: 1. Задается точность вычисления оптимального
значения uu*. 2. Интервал (b-a) делится на N отрезков, N (b-a)/ .3. В каждой точке ui =a+i (b-a) / N , i =0,1,…, N,
вычисляется функция Q(ui) и выбирается Q(u*) из условия Q(u* ) = max Q(ui) или
ui Q(u* ) = min Q(ui).
ui
Метод сканирования с переменным шагом Функция Q(u), a u b.Алгоритм поиска: 1. Задается точность вычисления оптимального
значения uu*.2. Интервал (b-a) делится на S отрезков, S << (b-a)/ .3. В каждой точке u1
i =a+i(b-a) / S, i =0,1,…,S, вычисляется функция Q(u1
i) и выбирается Q(u1*) из условия Q(u1*) = max Q(u1
i) или ui Q(u1*) = min Q(u1
i). ui
4. Назначают границы нового интервала поиска a1 и b1 из условия:
a1 = u1k-1, b1 = u1
k+1,
где u1k-1 и u1
k+1 есть значения, соседние с u1* = u1k.
Метод сканирования с переменным шагом
При максимизации функции Q=Q(u) max, u
Q(u1k-1) < Q(u1
k) = Q(u1*) > Q(u1k+1).
При минимизации функции Q=Q(u) min, uQ(u1
k-1) > Q(u1k) = Q(u1*) < Q(u1
k+1).
5. Пункты 2-4 повторяются для интервалов (b1 - a1), (b2 – a2),…, (bj - aj).
6. Расчет заканчивается при условии bj - aj .
Метод половинного деленияQ=Q(u) max(min), a u b
Поиск методом половинного деления
ba
Q(u)
uu1
2u11
Метод половинного деления Q=Q(u) max(min), a u b
Алгоритм поиска:1. Делится интервал (b-a) пополам u1 = a+(b-a)/2.2. Внутри интервала выбираются две точки u1
1 = u1 - и u12 = u1 +, где = (0.01-0.25).
3. Рассчитываются Q(u11) и Q(u1
2).
4. Определяются границы нового интервала a1 и b1.
Если Q=Q(u) max, то при Q(u11) > Q(u1
2) выбираем a1 = a, b1 = u1
2;
при Q(u11) Q(u1
2) выбираем a1 = u11, b1 = b;
Если Q=Q(u) min, то при Q(u11) > Q(u1
2) выбираем a1 = u1
1, b1 = b; при Q(u1
1) Q(u12) выбираем a1 = u1
1, b1 = u12;
5. Проверяется условие окончания поиска b1 - a1 . 6. Для каждого нового интервала (bi - ai) повторяются пункты 1-4 до выполнения условия bi - ai .
Метод «золотого» сечения Q=Q(u) max(min), a u b
Поиск методом «золотого» сечения
ba u11 u1
2
u
0.38(b-a)0.38(b-a)
Q(u)
0.62(b-a)
Метод «золотого» сечения Q=Q(u) max(min), a u b
Алгоритм поиска:1. Внутри интервала (b-a) выбираются две точки u1
1 = a+(3-5)(b-a)/2 и u12 = b-(3-5)(b-a)/2 .
2. Вычисляются Q(u11) и Q(u1
2).
3. Определяются границы нового интервала a1 и b1.
Если Q=Q(u) max, то при Q(u11) > Q(u1
2) выбираем a1 = a, b1 = u1
2;
при Q(u11) Q(u1
2) выбираем a1 = u11, b1 = b.
Если Q=Q(u) min, то при Q(u11) > Q(u1
2) выбираем a1 = u1
1, b1 = b; при Q(u1
1) Q(u12) выбираем a1 = a, b1 = u1
2; 4. Проверяется условие окончания поиска b1 - a1 .
Метод «золотого» сечения Q=Q(u) max(min), a u b
Алгоритм поиска (продолжение):5. Если условие окончания поиска в пункте 4 не выполняется, на интервале (b1 - a1) со стороны, не смежной с меньшим отрезком, от граничной точки откладывается длина меньшего отрезка.6. Проводится перенумерация точек:
- ближайшая к левой границе обозначается u21;
- ближайшая к правой границе обозначается u22;
7. Для каждого нового интервала (bi - ai) повторяются
пункты 2-6 до выполнения условия bi - ai .
Метод с использованием чисел Фибоначчи Q=Q(u) max(min), a u
b
Поиск с использованием чисел Фибоначчи
ba )(23,0 ab
Q(u)
uu2 u1
0.23(b-a)
0.38(b-a)
Метод с использованием чисел Фибоначчи Q=Q(u) max(min), a u
bАлгоритм поиска:
1. Определяется число N, N = (b-a)/ . 2. В ряду чисел Фибоначчи находят Fs-1 < N < Fs, где F0 = F1 =1, Fi = Fi-2 + Fi-1 , i = 2,3,4,…
3. Вычисляется = (b-a) / Fs. 4. Выполняется 1-й шаг: u1 = a + *Fs-2 и вычисляется Q
= Q(u1). 5. Выполняется 2-й шаг: u2 = a + *Fs-2-1 и вычисляется Q = Q(u2).
Метод с использованием чисел Фибоначчи Q=Q(u) max(min), a u
bАлгоритм поиска (продолжение):
6. Дальнейшие шаги:
ui+1 = ul ± sign(ui – ui-1) sign(Q(ui) - Q(ui-1))* Fs-2-i ,
где ul - значение u, при котором достигнуто наилучшее значение функции. Знак (+) ставится в задаче Q(u) max, знак (-) ставится в задаче Q(u) min. На каждом шаге вычисляется функция Q(u). Поиск заканчивается после использования числа Фибоначчи F0 ,
т.е. когда будут исчерпаны все числа Фибоначчи от Fs-2 до F0 .
Численные методы решения многомерных задач статической оптимизации
Многомерная функция
Решается задача Q(u1,…,ur) max(min) u
u1
u1*
u2*
u2
Q(u1*,u2*)
Численные методы решения многомерных задач статической оптимизации
Формирование линий уровня многомерной функции
Рассматриваются методы: Гаусса-Зейделя, градиента, наискорейшего спуска (подъема), случайного поиска..
2U
1U
Q(u1*,u2*)
u1
u2
Метод Гаусса-Зейделя
Поиск методом Гаусса-Зейделя.
Решается задача Q(u1,…,ur) max(min), u
uimin ui ui
max, i = 1,…,r.
u1
u2
u1
Метод Гаусса-Зейделя Q(u1,…,ur)max(min) u
Алгоритм поиска (заданы i, ):1. Выбирается исходная точка поиска u1 = (u1
1, …,u1r) и вычисляется Q = Q(u1).
2. Из точки u1 осуществляется движение по переменной u1
u21 = u1
1 h1 (sign (Q)/( u1)|u=u1)до выполнения условия |Q / u1| 1.3. Пункт 2 повторяется из полученной точки для переменной u2. Аналогично осуществляется движение по всем оставшимся переменным u3,u4,…, ur.4. Проверяется выполнение условия окончания поиска
5. В случае невыполнения пункта 4 повторяются пункты 1-4, принимая за исходную точку поиска ту, в которую пришли в пункте 4.
.)/( 2
1
i
r
iuQ
Метод градиента
Решается задача Q(u1,…,ur) max(min), u
uimin ui ui
max, i = 1,…,r. Градиент функции Q(u):
где Ki - вектор, определяющий направление по i-ой координатной оси.Модуль градиента Направление градиента
,)(
)(1
uuu
ui
r
ii u
QKQGrad
.)(
)(1
2
r
i iu
QQGrad uu
uu
.,...,1,)(
/)(cos rj
QGrad
uQ jj
uu
u
Метод градиента
Поиск методом градиента.
Решается задача Q(u1,…,ur) max(min), u
uimin ui ui
max, i = 1,…,r.
u1
u2
u1
Метод градиента
Решается задача Q(u1,…,ur) max(min), u
uimin ui ui
max, i = 1,…,r. Алгоритм поиска (задано ): 1. Выбирается исходная точка поиска u1 = (u1
1, …,u1r)
2. Вычисляется
3. Проверяется выполнение условия окончания поиска
4. Если условие окончания поиска выполнено, то поиск окончен. 5. Если условие окончания поиска не выполнено, то выполняется шаг uk+1
i = uki hk cos j в направлении
градиента, где знак (+) для задачи Q(u) max, знак (-) для задачи Q(u) min.
.)(
)(1
2
11
r
i iu
QQGrad
uuu
u
.)( kGradQ u
Метод градиента Алгоритм поиска (продолжение):
Если то uk+1i = uk
i h0(Q(u)/ ui)|uk , где h0 – базовое значение шага. 6. Сравниваются значения функций Q(uk) и Q(uk+1). Если для Q(u) max выполняется Q(uk+1) > Q(uk), или для Q(u) min выполняется Q(uk+1) < Q(uk), то пункты 2-6 повторяются до выполнения условия окончания поиска в пункте 3. Если для Q(u) max имеет место Q(uk+1) Q(uk), или для Q(u) min имеет место Q(uk+1) Q(uk), то возвращаются в точку u = uk, уменьшают шаг h0 и переходят к пункту 5.
.,...,1,
)/)((
/)(cos
2
1
ri
uQ
uQkk
i
r
j
ii
u
u
uu
,)(0kk GradQhh u
Метод наискорейшего спуска (подъема).
Поиск методом наискорейшего спуска Отличается от метода градиента, тем, что движение из выбранной точки uk в направлении n градиента производится до выполнения условия
i = 1,…,r.
Решается задача Q(u1,…,ur) max(min), u
uimin ui ui
max, i = 1,…,r.
u1
u1
u2
,)()(
iii
kku
Q
u
Q
uu
uu
Метод движения по дну оврага
Поиск методом движения по дну оврага
Решается задача Q(u1,…,ur) max(min), u
uimin ui ui
max, i = 1,…,r.
u1
u2
u8
u3
u2
u4
u5 u6
u7
u1
Метод движения по дну оврага Решается задача Q(u1,…,ur) max(min), ui
min ui uimax, i = 1,…,r.
u Алгоритм поиска:1. Задается hmin. 2. Выбор исходной точки поиска u1 и спуск из нее в направлении GradQ(u1) на дно оврага в точку u2. 3. Смещение из точки u1 в точку u3 на небольшое расстояние ортогонально направлению GradQ(u1) и спуск из нее в направлении GradQ(u3) на дно оврага в точку u4. 4. Сравнение значений функций Q(u2) и Q(u4) в точках u2 и u4, лежащих на дне оврага. 5. Если для Q(u) max имеет место Q(u4) Q(u2), или для Q(u) min имеет место Q(u4) < Q(u2), то в направлении от u2 к u4 из u4 выполняется рабочий шаг h и переход в точку u5, лежащую на склоне оврага (хребта).
Метод движения по дну оврага Решается задача Q(u1,…,ur) max(min), ui
min ui uimax, i = 1,…,r.
u
Алгоритм поиска (продолжение):6. Спуск на дно оврага из точки u5 в точку u6. Все точки, лежащие на дне оврага, имеют четные индексы и обозначаются u2+2i (i = 0,1,2,…). Все точки, лежащие на склоне оврага (хребта), имеют нечетные индексы и обозначаются u3+2i (i = 0,1,2,…). 7. Сравнение значений функций в соседних точках u2+2i и u2+2(i+1), лежащих на дне оврага. 8. Если для Q(u) max имеет место Q(u2+2(i+1)) > Q(u2+2i ), или для Q(u) min имеет место Q(u2+2(i+1)) < Q(u2+2i), то в направлении от u2+2i к u2+2(i+1) из u2+2(i+1) выполняется рабочий шаг h и переход в точку u3+2(i+1) , лежащую на склоне оврага (хребта).
Метод движения по дну оврагаРешается задача
Q(u1,…,ur) max(min), uimin ui ui
max, i = 1,…,r. u
Алгоритм поиска (окончание):9. Если для Q(u) max (или Q(u) min) имеет место Q(u2+2(i+1)) Q(u2+2i ) (соответственно Q(u2+2(i+1)) Q(u2+2i), то выполняется возвращение в точку u3+2i и уменьшение рабочего шага h, например вдвое.10. Проверяется выполнение условия h hmin. 11. Если условие окончания поиска выполнено, то оптимальное значение u* полагается равным u2+2i. 12. Если условие окончания поиска не выполнено, то движение из точки u2+2i с полученным шагом по направлению от u2+2(i-1) к u2+2i и переход в точку u3+2i, а из нее спуск на дно оврага в точку u2+2(i+1). 13. Переход к пункту 7.
Решение задач оптимизации на условный экстремум методом штрафных функцийРешение задач оптимизации при условии типа
равенства
Решается задача Q(u) = Q(u1,…,ur) max(min), u
j(u1,…,ur) = 0, j = 1,…,m. Формируется штрафная функция ,где , > 0 - большое число,при котором, за исключением малой окрестности около
границ j(u) = 0, должно выполнятся условие , i = 1,…,r.
Знак (+) принимается для задачи Q(u) min, знак (-) принимается для задачи Q(u) max.
)()()( uuu HQ )()(
1
2
m
jjH uu
ii u
H
u
Q
)()( uu
)()()( uuu HQ )()(
1
2
m
jjH uu )()(
1
2
m
jjH uu
Решение задач оптимизации на условный экстремум методом штрафных функций
Решение задач оптимизации при условии типа равенства
Трансформирование линии уровня при условиях типа равенства
Линии уровня функции Q(u) трансформируется в линии уровня функции (u) за счет штрафной составляющей H(u), уплотняясь вдоль границы. Чем больше величина и чем больше нарушаются ограничения, тем линии уровня ближе к границе.
u1
u2
Q1(u)1(u)
(u1,u2)=0( u1,u2)<0(u1,u2)>0
Решение задач оптимизации на условный экстремум методом штрафных функцийРешение задач оптимизации при условии типа
неравенства
Решается задача Q(u) = Q(u1,…,ur) max(min), u
j(u1,…,ur) 0, j = 1,…,m. Формируется штрафная функция
, где
sign(u) = -1, если j(u) < 0, sign(u) = -1, если j(u) > 0, - большое положительное число.Знак (+) принимается для задачи Q(u) min, знак (-) принимается для задачи Q(u) max.
)())(1()()(1
uuuu j
r
jjsignQ
Решение задач оптимизации на условныйэкстремум методом штрафных функций
Решение задач оптимизации при условии типа неравенства
Трансформирование линии уровня при условиях типа неравенства
Линии уровня функции Q(u) трансформируется в линии уровня функции (u) за счет штрафной составляющей
, уплотняясь со стороны
запретной области вдоль границ j(u) = 0, j = 1,…,m. Чем больше коэффициент и чем сильнее нарушаются ограничения, тем плотнее линии уровня функции (u) приближаются к границе со стороны запретной области.
)())(1(1
uu j
m
jjsign
u1
u1u2
Q(u)
(u)(u1,u2)=0
(u1,u2)<0(u1,u2)>0
Методы случайного поиска Решается задача
Q(u1,…,ur)max(min), u
uimin ui ui
max, i = 1,…,r.
Рассмотрим:
- метод слепого поиска
- метод случайных направлений
Метод слепого поиска Q(u1,…,ur)max(min),
u ui
min ui uimax, i = 1,…,r.
Заданы: объем области v = r, определяющей точность вычисления вектора оптимальных управлений u*=(u1,…,ur), в допустимой области
изменения переменных ui, (i=1,…,r) объемом V
= 1; вероятность , с которой требуется попасть в область r расположения вектора u*.
Метод слепого поиска Q(u1,…,ur)max(min),
u ui
min ui uimax, i = 1,…,r.
Алгоритм метода: 1. Вычисляется число точек s в области допустимых значений ui, (i=1,…,r), при котором гарантируется попадание хотя бы одной из них в область v. Из выражения = 1-(1-v)s имеем s = ln(1-) / ln(1-v). 2. Выбираются s совокупностей случайных чисел ui, (i=1,…,r), определяющих uk, (k=1,…,s). 3. Вычисляются значения функции Q = Q(uk), (k=1,…,s) и выбирается наилучшее из них.
Метод случайных направлений Решается задача
Q(u1,…,ur) max(min), uimin ui ui
max, i = 1,…,r. u
Формируется вектор случайных направлений
= (1,…,r), где ,
i, j - случайные числа.
r
jjii
1
2/
Поиск методом случайных направлений u1
u2
u1
Метод случайных направлений Решается задача
Q(u1,…,ur) max(min), uimin ui ui
max, i = 1,…,r. u
Алгоритм поиска:1. Задаются hmin и число S неудачных
направлений из одной точки.2. Выбирается исходная точка поиска u1 и
вычисляется Q = Q(u1). 3. Из выбранной точки выполняется шаг hk в
случайном направлении uk+1i = uk
i + hk·, i = 1,…,r, и вычисляется Q = Q(uk+1) (для 1-го шага k=1).
4. Сравниваются значения функций Q(uk) и Q(uk+1).
Метод случайных направлений Решается задача
Q(u1,…,ur) max(min), uimin ui ui
max, i = 1,…,r. u
Алгоритм поиска (продолжение):5. Если для Q(u) max имеет место Q(uk+1) > Q(uk),
или для Q(u) min имеет место Q(uk+1) < Q(uk), то для точки uk+1 выполняются пункты 3-4.
6. Если для Q(u) max имеет место Q(uk+1) Q(uk), или для Q(u) min имеет место Q(uk+1) Q(uk), то возвращение в точку uk.
7. Проверяется выполнение условия окончания поиска s S, при h hmin , где s - число неудачных направлений из точки uk.
8. Если условие пункта 7 выполняется, то оптимальное u* = uk.
9. Если условие пункта 7 не выполняется, то длина последнего шага уменьшается, например, вдвое, и для точки u = uk выполняются пункты 3-9.
Динамическое программирование в дискретной форме
В дискретной форме динамическое программирование является декомпозиционным методом решения задач статической оптимизации. Особенность динамического программирования в дискретной форме позволяет свести задачу большой размерности к ряду подзадач меньшой размерности.
В динамическом программировании критерий оптимальности Q = Q(u1,…,ur) должен быть функцией Марковского типа, т.е. он может быть представлен в виде функции от состояния S = S (u1,…,ur-1), в которое приходит последний объект в результате воздействия (r-1) управлений, и от оставшегося управления ur, т.е. Q = Q(S, ur).
Предполагается, что процесс протекающий в исследуемом объекте, можно рассматривать как многостадийный (N-стадийный, см. рисунок ниже).
Динамическое программирование в дискретной форме
Многостадийный процесс Здесь: Si-1 - состояние перед i-ой стадией; ui - управление на i-ой стадии; qi(Si-1, ui) - составляющая критерия
оптимальности, полученная на i-ой стадии. Состояния соседних стадий связаны
выражением Si = Si (Si-1, ui), i=1,…,N.
0S 1S 2S 2NS 1NS NS
1U 2U 1NU NU
),( 101 USq ),( 212 USq ),( 111 NNN USq ),( 1 NNN USq
N-11 2 N
q1(S0, u1) q2(S1, u2) qN-1(SN-2, uN-1) qN(SN-1, uN)
u1 u2 uN-1uN
Динамическое программирование в дискретной форме
Рассматривается критерий оптимальности в виде .
В основе динамического программирования лежит принцип оптимальности: оптимальная стратегия обладает таким свойством, что для любых значений управлений u1,…,uk, при которых система пришла в состояние
Sk = Sk (S0, u1,…,uk), оставшиеся управления uk+1,…,ur должны принимать такие значения, при которых критерий оптимальности принимает наилучшее значения относительно состояния Sk.
N
iiii uSqQ
11 ),(
Динамическое программирование в дискретной форме
Алгоритм решения задачи оптимизации методом динамического программирования.
Принцип оптимальности реализуется по шагам следующим образом:
1. Задаются условно значения вектора состояний Si = (S1
i,…, Sin), i=1,…,N-1. Составляющие Si
k, i=1,…,N-1; k=1,…,n, есть значения переменных состояния, выбранные в допустимом диапазоне изменения Si
kmin Si
k Sikmax.
2. На первом шаге оптимизируется N-ая составляющая критерия оптимальности. При решении задачи Q(u)max получаем FN-1,N (Sn-1)=max [qN (SN-1, uN)]. При этом получается u*N = N (SN-1).
Динамическое программирование в дискретной форме
Алгоритм решения задачи оптимизации методом динамического программирования (продолжение):
На втором шаге оптимизируется совместное функционирование N-1-ой и N-ой стадий процесса, с учетом результата оптимизации, полученного на 1-ом шаге, в виде FN-2,N(sN-2)=max[qN-1(sN-2, uN-1)+FN-1,N(sN-1)]. При этом получается u*N-1 = N-1(sN-2).
Заметим, что в состоянии sN-1 приходят в соответствии с sN-1= sN-1(sN-2, uN-1).
3. На последующих шагах оптимизируется совместное функционирование вновь вводимой стадии процесса со стадиями процесса, рассмотренными на предыдущем шаге по функциональному уравнению динамического программирования FN-k-1,N (sN-k-1) =
= max[qN-k(sN- k-1, uN- k)+FN-k,N(sN-k)], k=2,3,4,…,N.
Динамическое программирование в дискретной форме
Алгоритм решения задачи оптимизации методом динамического программирования (продолжение):
При этом получается u*N-k = N-k(sN-k-1) , а в состояние sN-k приходят в соответствии с sN-k= sN-k(sN-k-1, uN-k).
4. На последнем (N-ом) шаге имеем F0,N (s0) = = max[q1(s0, u1)+F1,N(s1)], u*1 = 1(s0), s1 = s1(s0, u1).
5. Выделяются оптимальные значения управлений u*i, i=1,…,N, следующим образом:
Динамическое программирование в дискретной форме
Алгоритм решения задачи оптимизации методом динамического программирования (окончание):
Для заданного состояния s0 после выполнения N-го шага оптимизации при u*1 = 1(s0) переходят в оптимальное состояние s*1 = s1(s0, u*1).
Далее используется выражение u*2 = 2(s*1). Оптимальные значения остальных управлений
u*i, i=3,4,…,N выделяются поочередным использованием выражений s*k = sk(s*k-1, u*k) и u*k+1 = k+1(s*k), k=2,3,…N.