Методы оптимизации

реклама
Методы оптимизации - II
Проф. В.П. Кривошеев
Динамическое программирование в
дискретной форме
В дискретной форме динамическое программирование
является декомпозиционным методом решения задач
статической оптимизации. Особенность динамического
программирования в дискретной форме позволяет
свести задачу большой размерности к ряду подзадач
меньшой размерности.
В динамическом программировании критерий
оптимальности Q = Q(u1,…,ur) должен быть функцией
Марковского типа, т.е. он может быть представлен в
виде функции от состояния S = S (u1,…,ur-1), в которое
приходит последний объект в результате воздействия
(r-1) управлений, и от оставшегося управления ur, т.е.
Q = Q(S, ur).
Предполагается, что процесс протекающий в
исследуемом объекте, можно рассматривать как
многостадийный (N-стадийный, см. рисунок ниже).
Динамическое программирование в
дискретной форме
( S0,,U
)
qq11(S
0 u11)
S0
1
U
u11
,U N )1)q q(SN (S N, u1,)U N )
qqN-1
N (S
1( SN-2
N ,1u
N-1
N N-1 N
(S11,,U
qq22(S
u22))
S1
2
U
u22
S2

SN 2
N-1
S N 1
U N 1
uN-1
N
SN
UuN
N
Многостадийный процесс
Здесь: Si-1 - состояние перед i-ой стадией;
ui - управление на i-ой стадии;
qi(Si-1, ui) - составляющая критерия
оптимальности, полученная на i-ой стадии.
Состояния соседних стадий связаны
выражением Si = Si (Si-1, ui), i=1,…,N.
Динамическое программирование в
дискретной форме
Рассматривается критерий оптимальности в
N
виде Q   qi ( Si 1, ui ).
i 1
В основе динамического программирования
лежит принцип оптимальности: оптимальная
стратегия обладает таким свойством, что для
любых значений управлений u1,…,uk, при
которых система пришла в состояние
Sk = Sk (S0, u1,…,uk), оставшиеся управления
uk+1,…,ur должны принимать такие значения,
при которых критерий оптимальности
принимает наилучшее значения относительно
состояния Sk.
Динамическое программирование в
дискретной форме
Алгоритм решения задачи оптимизации
методом динамического программирования.
Принцип оптимальности реализуется по шагам
следующим образом:
1. Задаются условно значения вектора состояний
Si = (S1i,…, Sin), i=1,…,N-1. Составляющие Sik, i=1,…,N-1;
k=1,…,n, есть значения переменных состояния,
выбранные в допустимом диапазоне изменения
Sikmin Sik  Sikmax.
2. На первом шаге оптимизируется N-ая составляющая
критерия оптимальности. При решении задачи
Q(u)max получаем FN-1,N(Sn-1)=max[qN(SN-1, uN)]. При
этом получается u*N = N(SN-1). При этом получается
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.
Постановка задачи динамической
оптимизации
t
 F ( y1 (t ),..., yn (t ), u1 (t ),..., ur (t )) dt  min(max)
u(t )
t1
yi (t1 )  yi0 , yi (tk )  yik , i  1,..., n,
dyi / dt  f i ( y1 (t ),..., yn (t ), u1 (t ),..., ur (t )),
u min
 u j (t )  u max
j
j ,
j  1,..., r ,
где yi(t), i = 1,…,n, - функции состояния системы
управления, uj(t) - функции управления;  - область
допустимых управлений.
Требуется найти такие функции управления uj(t),
j = 1,…,r, при которых система переходит из одного
состояния y0 в другое состояние yk, и при этом
выполняются указанные выше условия, а критерий
оптимальности принимает минимальное (максимальное)
значение.
Методы решения задач динамической
оптимизации
– Классическое вариационное исчисление.
– Принцип максимума.
– Динамическое программирование в
непрерывной форме (уравнение Беллмана).
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
Рассматривается класс непрерывных функций
y(х), имеющих непрерывные первые
производные (класс функций C1).
Здесь х может быть пространственной
координатой (длина e, радиус R) или временем t.
Ставится задача
b
J   F ( y ( x), y( x), x)dx  max (min),
a
где y(х) = d y(х)/dx, y(a) = A, y(b) = B.
y (x )
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
Пусть в рассматриваемом классе функций,
приведенных на рисунке ниже, экстремум функционалу
доставляет функция y(х). Необходимые условия
экстремума функционала можно получить при вариации
функции ỹ(х) относительно функции y(х) в обе стороны.
Заметим, что сравниваемые функции в точках a и b
имеют одно и тоже значение.
y(х)
ỹ(х)
y(х)
ỹ2(х)
ỹ1(х)
а
в
Вариация функции
x
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
Представим процедуру вариации функции y(х)
однопараметрическим семейством функций
y(,х) = ỹ(х)+(1-)y(х). Здесь полагаем, что
экстремум достигается на функции y(х).
Используя однопараметрическое семейство
b
функций y(,х), можно записать J  a F ( y(, x), y(, x), x)dx.
Введем обозначение y(х) = ỹ(х) - y(х), тогда
d(y(х))/ dx = y(х) = ỹ  - y (х) = y(х). Заметим,
что из однопараметрического семейства
функций, функции, доставляющей экстремуму
функционалу, соответствует  = 0.
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
Необходимое условие экстремума функционала
при однопараметрическом представлении
варьируемой функции можно записать как
b d
dJ/d = 0, или 
a d
F ( y (, x), y (, x), x ) dx   0  0.
d ( F ( y (, x), y' (, x), x) / d 
  ( F ( y (, x), y' (, x), x) / y  d ( y (, x)) / d 
  ( F ( y (, x), y' (, x), x) / y' d ( y' (, x)) / d.
Введем обозначения: Fy= F/y, Fy  = F/y .
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
Теперь получим, с учетом выражения
однопараметрического семейства функций,
 ( F ( y (, x), y' (, x), x) /   Fy ( y (, x), y' (, x), x)( ~
y ( x)  y ( x)) 
 F ( y (, x), y' (, x), x)( ~
y ( x)  y( x))  F ( y (, x), y' (, x), x)y ( x) 
y
y
 Fy  ( y (, x), y' (, x), x)y ( x)).
Подставим его в функционал
b
 ( Fy ( y (, x), y(, x), x)y ( x)  Fy  ( y (, x), y(, x), x)y ( x)) dx  0.
a
Из полученного выражения выделим вторую
составляющую
b
b
a
a
 Fy ( y ( x), y( x), x)y ( x)dx   Fy ( y ( x), y( x), x)d (y ( x))
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
и возьмем интеграл по частям
b
b



F
(
y
(
x
),
y
(
x
),
x
)
d
(

y
(
x
))

F
(
y
(
x
),
y
(
x
),
x
)

y
(
x
)
 y
y
a
a
b
  y ( x)dFy( y ( x), y( x) x)  Fy  ( y ( x), y( x), x)y ( x) ba 
a
b dFy ( y ( x ), y( x ) x )

a
dx
y ( x)dx.
Учитывая тот факт, что сравниваемые функции
имеют одинаковые значения в граничных точках,
т.е. (y(a)) = y(b)) = 0, имеем
Fy  ( y ( x), y( x), x)y ( x) ba  0.
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
b dFy( y ( x), y( x) x)
Оставшуюся часть  
a
dx
y ( x)dx
подставим в функционал и получим
b
 ( Fy ( y ( x), y( x), x)y ( x) 
a
d
Fy  ( y ( x), y( x), x)y ( x)) dx  0.
dx
Приведем подобные члены
b
d
 ( Fy ( y ( x), y( x), x)  dx Fy  ( y ( x), y( x), x)y ( x)) dx  0.
a
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
В соответствии с леммой вариационного
исчисления:
b
Если имеет место  H ( y ( x), y ' ( x), x)  h( x)dx  0,
a
где H(y(x),y(x),x) – непрерывная функция, а h(x)
- непрерывная функция, на концах интервала
обращающаяся в нуль, то H(y(x),y(x),x)  0.
d
Имеем аналогию Fy ( y ( x), y( x), x)  Fy ( y ( x), y( x), x)
dx
с H(y(x),y(x),x) и y(x) c h(x).
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
Следовательно, можно записать
d
Fy ( y ( x), y( x), x) 
Fy  ( y ( x), y( x), x)  0.
dx
Полученное уравнение называется уравнением
Эйлера для простейшего функционала.
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
Условия Лежандра:
Если J  max , то Fyy ( y( x), y( x), x)  0.
Если
y ( x)
J  min , то Fyy ( y( x), y( x), x)  0.
y ( x)
Пример.
Найти экстремаль функционала:
1
J [ y ( x), y ' ( x), x)]   [( y ' ( x)) 2  12 xy] dx,
0
y(0) = 0, y(1) = 1.
d

Уравнение Эйлера: Fy ( y( x), y ( x), x)  Fy ( y( x), y( x), x)  0,
dx
Fy = 12x, Fy = 12y(x),
d(Fy)/dx = 2y.
Классическое вариационное исчисление
Уравнение Эйлера для простейшего
функционала
12x - 2y(x) = 0,
y(x) = 6x, y(x) = ∫6xdx+C1 = 3x2+C1,
y(x) = ∫(3x2+C1) dx+C2 = x2+C1x+C2.
Найдем постоянные интегрирования; используя
граничные условия:
y(0) = 0+ C1·0+ C2 = 0; C2 = 0;
y(1) = 12+ C1·1+ 0·= 1; C1 = 0.
Экстремаль: y = x2.
d
d
Условия Лежандра: Fyy 
Fy  
(2 y ' )  2  0.
dy
dy '
Следовательно, на функции y = x2 функционал
имеет минимум.
Классическое вариационное исчисление
Необходимое условие экстремума
функционала, зависящего от n-функций и
от их первых производных
b
 F ( y1 ( x),..., yn ( x), y1 ( x),..., yn ( x), x) dx  max (min),
a
yi (a)  Ai
yi (b)  Вi , i  1,..., n.
y ( x)
Система уравнений Эйлера:
d
Fyi ( y ( x), y ' ( x), x) 
Fyi ( y ( x), y' ( x), x)  0,
dx
i  1,..., n,
где
y ( x)  ( y1 ( x),..., yn ( x)),
 ( x),..., yn
 ( x)).
y( x)  ( y1
Классическое вариационное исчисление
Необходимое условие экстремума
функционала, зависящего от n-функций и
от их первых производных
Условия Лежандра:
Если J  max , то Fy y ( y ( x), y( x), x)  0,
1 1
y ( x)
Fy y , Fy y
1 1
1 2
Fy y , Fy y
2 1
2 2
J  min ,
Если
y ( x) то
1 1
1
n
n 1
n n
 0,...,   0.
F y  y  F y  y 
Fy y ( y ( x), y( x), x)  0,
1 1
Fy y , Fy y
1 1
Fy y  Fy y
1 2
Fy y , Fy y
2 1
2 2
Fy y  Fy y
1 1
1
n
n 1
n n
 0,...,   0.
F y  y  F y  y 
Классическое вариационное исчисление
Необходимое условие экстремума
функционала, зависящего от функции и от
ее n производных
b
J   F ( y ( x), y( x),..., y ( n ) ( x), x)dx  max (min) ,
a
y (a )  A1,
y (b)  B1;
y(a )  A2 ,
y(b)  B2 ;

y ( n 1) (a )  An ,
y ( x)
y ( n 1) (b)  Bn .
Уравнение Эйлера-Пуассона:
Fy ( y ( x), y( x),..., y ( n) ( x), x) 
k
d
  (1) k
Fy k ( y ( x), y( x),..., y ( n) ( x), x)  0.
k
dx
k 1
n
Классическое вариационное исчисление
Необходимое условие экстремума
функционала, зависящего от функции и от
ее n производных
Условия Лежандра:
Если J  max , то
y ( x)
F y ( n ) y ( n )  0,
Если J  min , то
y ( x)
F y ( n ) y ( n )  0.
Классическое вариационное исчисление
Необходимое условие экстремума функционала,
зависящего от n функций и от ее m производных
для каждой из n функций
b
J   F ( y1 ( x),..., yn ( x), y1 ( x),..., yn ( x),..., y1( k ) ( x),...
a
..., yn( k ) ( x),..., y1( m) ( x),..., yn( m) ( x), x)dx
y1(a)  A1,0 , y1(b)  B1,0 ;; yn (a)  An,0 , yn (b)  Bn,0 ;
y1 (a)  A1,1, y1 (b)  B1,1;; yn (a)  An,1, yn (b)  Bn,1;

y1(k ) (a)  A1, k , y1( k ) (b)  B1, k ;; yn(k ) (a)  An, k , yn( k ) (b)  Bn, k ;

y1(m 1) (a)  A1, m 1, y1( m 1) (b)  B1, m 1;

yn(m 1) (a)  An, m 1, yn( m 1) (b)  Bn, m 1.
Классическое вариационное исчисление
Необходимое условие экстремума
функционала, зависящего от n функций и
от ее m производных для каждой из n
функций
В этом случае необходимое условие
экстремума функционала представляет собой
систему уравнений Эйлера-Пуассона:
k
d
Fy ( y( x), y( x),..., y (m) ( x), x)    1k
F k ( y( x), y( x),..., y (m) ( x), x)  0,
k yi
i
dx
k 1
i  1,..., n,
y( x)  ( y1( x),..., yn ( x)).
m
Классическое вариационное исчисление
Решение вариационных задач при наличии
интегральных (изопериметрических),
голономных и неголономных связей
b
J   F ( y ( x), y( x), x)dx  max (min),
a
yi a   Ai
yi b   Вi , i  1,..., n.
y ( x)
b
Интегральная связь:  G j ( y( x), y( x), x))dx  l j , j  1,..., m.
a
Голономная связь:  j ( y( x), x)  0,
j  1,..., m.
Неголономная связь:  j ( y( x), y( x), x)  0, j  1,..., m .
Классическое вариационное исчисление
Решение вариационных задач при наличии
интегральных связей
Составляется новое подынтегральное
выражение
F ( y ( x), y( x), λ, x) 
m
 F ( y ( x), y( x), x)    j G j ( y ( x), y( x), x).
j 1
Необходимое условие экстремума функционала:
d
Fy ( y ( x), y( x), λ, x)  Fy ( y ( x), y( x), x)  0, i  1,..., n.
i уравнения решаются
Эти
dx i совместно с
уравнениями интегральных связей при
использовании граничных условий.
Здесь j, j=1,…,m, - числа.
Классическое вариационное исчисление
Решение вариационных задач при наличии
голономных и неголономных связей
Составляется новое подынтегральное
выражение
F ( y ( x), y( x), λ( x), x) 
m
 F ( y ( x), y( x), x)    j ( x) j ( y ( x), x)
j 1
или
F ( y ( x), y( x), λ( x), x) 
m
 F ( y ( x), y( x), x)    j ( x) j ( y ( x), y( x), x).
j 1
Необходимое
F ( y( x), y( x), λусловие
, x)  dF экстремума
( y( x), y( x), x) функционала:
/ dx  0, i  1,..., n.
yi
yi
Эти уравнения решаются совместно с
уравнениями голономных и неголономных связей
при использовании граничных условий.
Здесь j(x), j=1,…,m, - функции.
Классическое вариационное исчисление
Решение вариационных задач при наличии
интегральных (изопериметрических),
голономных и неголономных связей
Пример
Найти экстремали для функционала:
1
J ( y ( x ), z ( x )   (1  ( y ( x )) 2  ( z ( x )) 2 ) dx,
0
y (0)  0, z (0)  0;
y  z ( x)  2 x 3.
y (1)  3,
z (1)  1;
Запишем уравнение связи в виде
( y ( x), z ( x))  y ( x)  z ( x)  2 x3  0.
Сформируем новое подынтегральное уравнение
F ( y ( x), y( x), z ( x), z ( x), x) 
 1  ( y( x)) 2  ( z ( x)) 2   ( x)( y ( x)  z ( x)  2 x 3 ).
Классическое вариационное исчисление
Решение вариационных задач при наличии
интегральных (изопериметрических),
голономных и неголономных связей
Пример (продолжение):
Уравнения Эйлера:
F y  d ( Fy ) / dx  0,
В развернутом виде имеем:
F z  d ( Fz ) / dx  0.
 ( x)  d (2 y( x)) / dx  0,
  ( x)  d (2 z ( x)) / dx  0.
Решим эти уравнения совместно с условием
связи
y ( x)  z ( x)  2 x3  0.
2 y ( x )   ( x ),
2 z ( x )    ( x ),
или
y ( x )   ( x ) / 2 ,
y ( x )    ( x ) / 2 .
Классическое вариационное исчисление
Решение вариационных задач при наличии
интегральных (изопериметрических),
голономных и неголономных связей
Пример (окончание):
Возьмем вторую производную от условия связи
y( x)  z ( x)  12 x  0
и подставим в полученное выражение y″(x) и
z″ (x): ( x) / 2  ( x) / 2  12 x  0,
( x)  12 x.
Теперь: y( x)  6 x; y( x)   6 xdx  C1  3x 2  C3 ;
y ( x)   (3x 2  C1)dx  C2  x3  C1x  C2 .
z( x)  6 x; z ' ( x)    6 xdx  C3  3x 2  C3 ;
z ( x)   (3x 2  C3 )dx  C2   x3  C3 x  C4 .
Найдем C1 - C4, используя граничные условия:
y(0)  0  0  C1  0  C2 ; C2  0; y(1)  3  13  C1 1  C2 ; C1  2;
z (0)  0  0  C3  0  C4 ; C4  0; z (1)  1  13  C3 1  C4 ; C3  2.
Окончательно имеем y( x)  x3  2 x; z ( x)   x3  2 x.
Решение задачи оптимального уравнения
классическим вариационным исчислением
t
Решается задача: J   F ( y ( x), u(t ), t )dt  max(min) ,
0
u(t )
y (0)  y 0 ,
y (tk )  y k ,
dyi / dt  fi ( y ( x), u(t ), t ), i  1,..., n,
где y(t) = (y1(t),…, yn(t)), u(t) = (u1(t),…, ur(t)).
Эта задача является вариационной задачей с
неголономными связями.
Для функционала:
n
F ( y (t ), u(t ), λ(t ))  F ( y (t ), u(t ), t )    i (t )( dyi / dt  fi ( y (t ), u(t ), t ))
i 1
необходимые условия экстремума:
Fy ( y (t ), u(t ), λ(t ))  dFy ( y (t ), u(t ), λ(t )) / dt  0, k  1,..., n;
k
k
j
j
Fu ( y (t ), u(t ), λ(t ))  dFu ( y (t ), u(t ), λ(t )) / dt  0,
j  1,..., r.
Решение задачи оптимального уравнения
классическим вариационным исчислением
В развернутом виде:
n
F ( y (t ), u(t ), t ) / yk   i (t )fi ( y(t ), u(t ), t ) / yk  d ( k (t )) / dt  0,
i 1
n
F ( y (t ), u(t ), t ) / u j   i (t )fi ( y (t ), u(t ), t ) / u j  0.
i 1
Обозначим –1 = 0, i(t) = i(t).
Теперь необходимые условия в развернутом
виде:
n
d ( k (t )) / dt   0 ( F ( y(t ), u(t ), t )) / yk   i (t )(fi ( y(t ), u(t ), t )) / yk ,
n
i 1
 0 ( F ( y(t ), u(t ), t )) /  u j   i (t )(fi ( y(t ), u(t ), t )) /  u j  0.
i 1
Принцип максимума
t
Решается задача: J   F ( y ( x), u(t ), t )dt  min .
0
u(t )
Математическое описание процесса:
y (0)  y 0 ,
y (tk )  y k ,
dyi / dt  f i ( y ( x), u(t ), t ), i  1,..., n.
Особенность принципа максимума: решение
может достигаться как в классе непрерывных
функций, так и в классе разрывных функций с
конечными разрывами.
При доказательстве необходимых условий
минимума функционала в принципе максимума
используется игольчатая вариация функции
управления.
Принцип максимума
Uu(t)
(t )
t
t00
t1 t1
Игольчатая функция
tt
Принцип максимума
Содержание принципа максимума:
Формируется функция Гамильтона
n
H ( y (t ), u(t ), ψ (t ))   0 F0 ( y (t ), u(t ), t )   i (t ) fi ( y (t ), u(t ), t ),
i 1
где i, i= 0,…,n, подчиняются условиям:
di / dt  H ( y(t ), u(t ), ψ (t )) / yi ,
i  0,..., n.
Математическое описание процесса, выраженное
через функцию H ( y (t ), u(t ), ψ (t )), :
dyi / dt  H ( y(t ), u(t ), ψ (t )) / i , i  0,..., n.
Обозначим критерий оптимальности
t
y0 (t )   F ( y (t ), u(t ), t ) dt .
0
Заметим, что y0(0) = 0, тогда dy0 t  / dt  F ( y(t ), u(t ), t ).
Формулировка принципа максимума
Пусть найдены оптимальные уравнения,
минимизирующие функционал.
В этом случае система сопряженных уравнений
di / dt  H ( y(t ), u(t ), ψ (t )) / yi ,
dyi / dt  H ( y(t ), u(t ), ψ (t )) / i , i  0,..., n.
имеет не нулевое решение, и следующие условия
при этом выполняются:
1. Функция H ( y (t ), u(t ), ψ (t )) принимает свое
максимальное значение, т.е. H *  max H ( y (t ), u(t ), ψ (t )).
u (t )
2. 0 = const  0.
3. H* = const.
Общий алгоритм решения задачи
оптимального уравнения с использованием
принципа максимума
1. Максимизируется функция H(y(t),u(t),(t)) по
управлениям u(t). При этом получаются
u*j  u*j ( y(t ), ψ (t )),
j  1,..., r.
2. Эти u*j =u*j(y(t),(t)) подставляются в систему
сопряженных уравнений.
Заметим, что для получения их решения нужно
иметь 2n+2 постоянных интегрирования,
определяемых 2n+2 граничными условиями. Из
постановки задачи оптимального управления
следуют 2n граничных условий и одно граничное
условие для функции y0. Нужно еще одно
граничное условие.
Общий алгоритм решения задачи
оптимального уравнения с использованием
принципа максимума
Продолжение алгоритма:
Однако, в силу линейности функции H
относительно i, i = 0,…,n, при максимизации
функции H(y(t),u(t),(t)) по u(t) одна из функций
i(t) может быть представлена с точностью до
постоянной интегрирования. Учитывая второе
условие принципа максимума, можно принять
само значение функции 0 неположительным
числом (принимается 0 = -1).
3. Теперь решение системы сопряженных
уравнений может быть найдено:
yi = yi(t),
i = i(t), i = 0,…,n,
Общий алгоритм решения задачи
оптимального уравнения с использованием
принципа максимума
Продолжение алгоритма:
4. Подставляются функции yi = yi(t), i = 0,…,n, и
i = i(t), i = 0,…,n, в функции u*j =u*j(y(t),(t)),
j = 1,…,r, и получаются оптимальные функции
управления u*j =u*j(t).
Эти функции управления можно получать в виде
функций от переменного состояния yi(t),
i = 0,…,n, т.е. как u*j =uj(y1(t),…, yn(t)).
В этом случае задача оптимального управления
называется задачей синтеза оптимального
управления.
Общий алгоритм решения задачи
оптимального уравнения с использованием
принципа максимума
Продолжение алгоритма:
Запишем в развернутом виде систему уравнений:
( y(t ), u(t ), ψ (t ))функции
/ yi , i  0,..., n,
i / dt  Hмаксимума
и необходимоеdусловие
H(y(t),u(t),(t)) как
H ( y(t ), u(t ), ψ(t )) / u j  0, j  1,..., r.
d i / dt   0 ( F ( y (t ), u(t ), t )) / yi 
n
   k (t ) ( f k ( y (t ), u(t ), t )) / yi , i  1,..., n,
k 1
 ( H ( y (t ), u(t ), t )) / u j   0 ( F ( y (t ), u(t ), t )) / u j 
n
   k (t ) ( f k ( y (t ), u(t ), t )) / u j 0,
k 1
j  1,..., r.
Общий алгоритм решения задачи
оптимального уравнения с использованием
принципа максимума
Окончание алгоритма:
Заметим, что выражение для производных di/dt
соответствует уравнениям Эйлера, записанным
для функций yk(t), k = 1,…,n, а условия
( H ( y(t ), u(t ), t )) / u j  0
соответствует уравнениям Эйлера, записанным
для функций uj(t), j = 1,…,r, в классическом
вариационном исчислении при решении задачи
оптимального управления.
Пример решения задачи оптимального
уравнения с использованием принципа
максимума
Пример. Найти управление u(t), при котором
функционал принимает минимальное значение.
1t
J ( y (t ), u (t )   ( y (t )) 2  (u (t )) 2 ) dt ,
20
y(0) = 1;
y(tk) = 2.
Уравнение динамики объекта dy(t)/dt = ay(t)+u(t).
Путь на управление не наложено ограничений.
Введем dy0/dt = (y2(t)+u2(t))/2, y0(0) = 0.
Составим функцию Гамильтона
H(y(t),u(t),(t)) = 0f0(y(t),u(t))+(t)f(y(t),u(t)).
В развернутом виде
H(y(t),u(t),(t))=0(y2(t)+u2(t))/2+(t)(-ay1(t)+u(t)).
Пример решения задачи оптимального
уравнения с использованием принципа
максимума
Продолжение примера:
Примем: 0 = -1. Сопряженное уравнение
d/dt = -H(y(t),u(t),(t))/y(t) = - y(t)+a(t).
Максимизируем функцию H(y(t),u(t),(t)).
Необходимое условие экстремума функции
H(y(t),u(t),(t))/u(t) =0,
u(t)-(t) = 0, т. е. u(t) = (t).
Подставим u(t) в систему сопряженных
уравнений: dy(t)/dt = ay(t)+(t),
d/dt = -y(t)+a(t).
Решение этих двух уравнений с использованием
граничных условий дает y = y(t),  = (t).
Численное решение задачи оптимального
уравнения с использованием принципа
максимума
В тех случаях, когда система сопряженных
уравнений не может быть решена аналитически
или аналитическое решение получить трудно,
она решается численно. Принимается, что
dyi (t ) / dt t  kt  ( yi ((k  1)t )  yi (kt )) / t

di (t ) / dt t  kt  (i ((k  1)t )  i (kt )) / t.
Тогда для системы уравнений:
dyi (t ) / dt
откуда
t  kt
 H ( y (t ), u(t ), ψ (t )) /  i
t  kt
yi (( k  1)t )  yi (kt )  t  H ( y(t ), u(t ), ψ (t )) / i
, k  0,1,..., n,
t  kt
, k  0,1,..., n .
Численное решение задачи оптимального
уравнения с использованием принципа
максимума
Для системы уравнений:
d  i (t ) / dt
имеем
t  kt
  H ( y (t ), u(t ), t ) /  yi
((( k  1)t )   i (kt )) / t 
  H ( y (t ), u(t ), t ) / yi t  kt , k  0,1,..., n,
откуда
i (( k  1)t )  i (kt )  t  H ( y(t ), u(t ), ψ (t )) / yi t  kt ,
k  0,1,..., n .
Численное решение задачи оптимального
уравнения с использованием принципа
максимума
Алгоритм решения задачи оптимального
уравнения численным методом с использованием
принципа максимума:
1. Произвольно задаются i(0), i = 0,…,n, и
полагается 0 = -1.
2. Из граничных условий выбираются yi(0),
i = 0,…,n.
3. Подставляются выбранные 0, i(0), yi(0),
i = 0,…,n, в функцию H, т.е. в H(y(0), (0), u(t)),
Численное решение задачи оптимального
уравнения с использованием принципа
максимума
Продолжение алгоритма:
и она максимизируется
H ( y (0), (0), u)  max .
При этом получается u(0) = (u1(0),…,ur(0). u
4. По выше приведенным уравнениям
вычисляются yi(t), i(t), i = 1,…,n, т.е. yi(t), и
i(t) при k = 1.
5. Найденные yi(kt) и i(kt), i = 1,…,n,
подставляются в функцию H, т.е. в H(y(t),( t),u),
и она максимизируется H ( y (kt ), (kt ), u)  max .
u
При этом получается u(kt) = (u1(kt),…,ur(kt)
при k =1. Пункты 4 и 5 выполняются до k = N, где
N соответствует условию Nt = tk.
Численное решение задачи оптимального
уравнения с использованием принципа
максимума
Окончание алгоритма:
6. Проверяется выполнение условий:
p
yi (t k )  yi ( Nt )  i , i  1,..., n,
или
N
p
 ( yi (t k )  yi ( Nt )) 2  ,
i 1
где yip - рассчитанное значение yi, а i и  требуемая точность вычислений. Если условия
пункта 6 не выполняются, то задаются новые
значения (0) = (1(0),…,n(0)) и происходит
переход к пункту 2 для последовательного
выполнения всех пунктов алгоритма.
Особенности решения задач на
максимальное быстродействие
В задаче на максимальное быстродействие
функционал имеет вид: J  0t dt ,
т.е. подынтегральное выражение F(y(t),u(t),t) = 1.
При этом функция Гамильтона
n
или
H ( y (t ), u(t ), (t ))   0    k (t ) f k ( y (t ), u(t ), t ),
k 1
n
~
H ( y(t ), u(t ), (t ))  H ( y(t ), u(t ), (t ))   0    k (t ) f k ( y(t ), u(t ), t ).
~
H ( y (t ), u(t ),  (t ))
k 1
Функция
называется
укороченной функцией Гамильтона.
Решение задачи выполняется по выше
приведенному алгоритму для укороченной
функции Гамильтона H~ ( y (t ), u(t ), (t )).
Особенности решения задач на
максимальное быстродействие
Пример решения задачи на максимальное
быстродействие.
Решается задача перевода системы из состояния
y1(0) = y10 и y2(0) = y20 в состояние y1(tk) = y1k и
y2(tk) = y2k за минимальное время.
Математическое описание процесса:
dy1(t ) / dt  y2 (t ); f1( y1(t ), y2 (t ), u (t ))  y1 (t )  y2 (t );
dy2 (t ) / dt  u (t ); f 2 ( y1(t ), y2 (t ), u (t ))  y2 (t )  u (t );
 1  u (t )  1.
Составим
укороченную функцию Гамильтона:
~
H  1(t ) f1( y1(t ), y2 (t ), u(t ))   2 (t ) f 2 ( y1(t ), y2 (t ), u(t )) 
 1(t ) y2 (t )   2 (t )u(t ).
Максимизируем функцию Гамильтона. Учитывая
линейность функции H от от u(t), с учетом
ограничения -1 u(t)  1, имеем u*(t) = Sign(2(t)).
Особенности решения задач на
максимальное быстродействие
Продолжение примера:
Сопряженные уравнения
~
d1 (t ) / dt   H ( y (t ), u(t ), ψ (t )) / y1 (t )  0
~
d 2 (t ) / dt   H ( y (t ), u(t ), ψ (t )) / y2 (t )  1 (t ).
Решение этих уравнений дает 1 = Const = C1;
2(t) = 1(t)dt+ C2 = C1t+ C2.
Учитывая линейность функции 2(t), при
оптимальном управлении возможно лишь одно
переключение u(t) либо с -1 на 1, либо с 1 на -1.
Решение системы уравнений математического
описания рассмотрим при u = 1 и при u = -1.
Пусть u = 1, тогда dy1(t)/dt = y2(t), dy2(t)/dt = 1.
Поделим первое уравнение на второе
dy1(t)/dy2(t) = y2(t),
Особенности решения задач на
максимальное быстродействие
Продолжение примера:
dy1(t) = y2(t) dy2(t),
y1(t) =  y2(t) dy2+ C3 = y22(t)/2+C3.
Пусть u =-1.
Тогда y1(t) = y22(t)/2+C4.
Пусть конечное состояние системы определено
условиями y1(tk) = 0, y2(tk) = 0.
Тогда для t = tk и u = 1 имеем y1(tk) = y22(t)/2+C3;
C3 = 0; для u =-1 имеем y1(tk) = y22(t)/2+C4; C4 = 0.
Следовательно, через конечную точку проходят
траектории движения: при u = 1 y1(tk) = y22(t)/2, а
при u =-1 имеем y1(tk) = -y22(t)/2.
Особенности решения задач на
максимальное быстродействие
Окончание примера:
Чтобы из произвольной точки y(t) = (y1(t), y2(t))
попасть в конечную по оптимальной траектории,
нужно из этой точки пойти по траектории,
выводящей систему на линию переключения
y1(t) = Sign(y2(t))·y2(t)/2.
При достижении этой линии знак управляющего
воздействия нужно сменить на
противоположный.
Оптимальное управление соответствует условию
u*( t) = Sign((Signy2(t)) y22(t)/2 - y1(t)).
Динамическое программирование в
непрерывной форме. Уравнение Беллмана
Решается задача оптимального управления
t
J   F ( y (t ), u(t ), t )dt  min (max),
0
ut 
y(0) = y0, dyi(t)/dt = fi(y(t),u(t),t), i = 1,…,n,
y(tk) = yk.
В основе динамического программирования
лежит принцип оптимальности в соответствии с
которым нужно оптимальным образом перевести
систему из состояния y()в конечное состояние
y(tk) не зависимо от того, каким образом система
пришла из исходного состояния y(0) в состояние
y().
Динамическое программирование в
непрерывной форме. Уравнение Беллмана
y (t )
y* (t )
y* (t )
y (0)
y (t )
0

t
tk
Вариация функции
Динамическое программирование в
непрерывной форме. Уравнение Беллмана
Математически принцип оптимальности
реализуется через
выражение: t

min J  min [  F ( y (t ), u(t ), t )dt  min  F ( y (t ), u(t ), t )dt ].
u(t )
u(t ) 0
u(t ) 
Пусть  - малая величина. Обозначим
t
(, y ())  min  F ( y (t ), u(t ), t )dt ,
u(t ) 
t
(0, y (0))  min  F ( y (t ), u(t ), t )dt.
u(t ) 0
Тогда
t
(0, y (0))  min [  F ( y (t ), u(t ), t )dt  (, y ())].
u(t ) 0
Динамическое программирование в
непрерывной форме. Уравнение Беллмана
Разложим функцию (, y()) в ряд Тейлора
относительно состояния t = 0, y(0) = y0 по
степеням y(t) и t.
n
 (, y ())   (0, y (0))    yi 
i 1
 (t , y (t ))
 (t , y (t ))


t

.
t

0
t

0
 yi
t
y  y (0)
y  y (0)
Примем, что t = . Заметим, что yi (t )  dyi (t ) / dt  t ,
или yi (t )  fi ( y(t ), u(t ), t )  t.
С учетом малости  можно записать

 F ( y (t ), u(t ), t )dt  F ( y (0), u(t ), t )  t  F ( y (0), u(t ), t )  .
0
Динамическое программирование в
непрерывной форме. Уравнение Беллмана
Теперь min(J(y(0),u(t))), с учетом выше
приведенных выражений, можно записать в виде
 (0, y (0))  min [ F ( y (0), u(t ), t )  (0, y (0)) 
u (t )
n
    (( (t , y (t )) /  yi )  fi ( y (t ), u(t ), t )) t  0 
i 1
y  y (0)
   ( (t , y (t )) /  t t  0 ].
y  y (0)
Динамическое программирование в
непрерывной форме. Уравнение Беллмана
Так как (0, y(0)) не зависит от u(t), а 
содержится во всех составляющих правой части
записанного выше уравнения, то это уравнение
приводится к виду
 ((t , y (t )) / t t  0
 min [ F ( y (0), u(t ), t ) t  0

u (t )
y  y ( 0)
y  y ( 0)
n
  (( (t , y (t )) / yi )  f i ( y (t ), u(t ), t )) t  0
].
i 1
y  y (0)
Учтем тот факт, что разложение условно
оптимальной величины функционала,
записанной для условного состояния в какой-то
момент времени t (в приведенном случае y()),
Динамическое программирование в
непрерывной форме. Уравнение Беллмана
можно разложить в ряд Тейлора относительно
оптимального состояния системы в момент
времени t =  при y (t), т.е.
 ( (t , y (t )) /  t  min [ F ( y (t ), u(t ), t ) 
u (t )
n
  ((  (t , y (t )) /  yi )  f i ( y (t ), u(t ), t ))].
i 1
Полученное уравнение называется уравнением
Беллмана. Оно является уравнением в частных
производных.
Решение этого уравнения есть функции u*(t),
доставляющие экстремум функционалу. Функции
состояния системы y*(t) при этом описывают
оптимальную траекторию движения из исходного
y0 в конечное состояние yk.
Алгоритм решения задачи оптимального
уравнения методом динамического
программирования в непрерывной форме
Для решения уравнения Беллмана, кроме
условий 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 по определению. В
силу этого имеет место тождество
(t , y (t )) / yi t  t k
y  y (t k )
 0,
i  1,..., n.
Алгоритм решения задачи оптимального
уравнения методом динамического
программирования в непрерывной форме
Теперь из самого уравнения Беллмана следует
  (t , y (t )) /  t t t
 max ( F ( y (t ), u(t ), t ) t t
.
k
k
u
y  y (t k )
y  y (t k )
Получены все условия для решения уравнения
Беллмана.
Решение уравнение Беллмана выполняется
известными методами решения систем
дифференциальных уравнений в частных
производных.
Алгоритм решения задачи оптимального
уравнения методом динамического
программирования в непрерывной форме
Покажем что уравнение Беллмана при
некоторых допущениях может быть приведено к
уравнениям Эйлера.
Запишем уравнение Беллмана в виде двух видов
уравнений:
Первый вид:   (t , y (t )) /  t  F ( y (t ), u* (t ), t ) 
n
Второй вид:
  ( (t , y (t )) /  yi )  f i ( y (t ), u* (t ), t ).
i 1
F ( y (t ), u(t ), t ) /  u j 
n
   (t , y (t )) /  yi   f i ( y (t ), u(t ), t ) /  u j  0, j  1,..., r.
i 1
Алгоритм решения задачи оптимального
уравнения методом динамического
программирования в непрерывной форме
Управления, удовлетворяющие уравнениям
второго вида, обозначим u*(t). В первом
уравнении управления u*(t) удовлетворяют
условиям правой части уравнения Беллмана,
выраженным уравнениями второго вида.
Теперь продифференцируем уравнение первого
вида по переменным состояния и введем
обозначения: k(t) = -(t, y(t))/yk, k = 1,…,n,
0 = -1.
Алгоритм решения задачи оптимального
уравнения методом динамического
программирования в непрерывной форме
 (
 (t , y (t ))
) /  yk   F ( y (t ), u* (t ), t ) /  yk 
t
n
   ( (t , y (t )) /  yi ) /  yk  f i ( y (t ), u* (t ), t ) 
i 1
n
  ( (t , y (t )) /  yi )  ( f i ( y (t ), u* (t ), t ) /  yk ), k  1,..., n.
i 1
Принимая допущения, что  ( (t , y(t )) / t ) /  yk  0,
с учетом принятых выше обозначений, получим
d k (t ) / dt   0 (F ( y (t ), u* (t ), t ) / yk 
n
   i (t )(fi ( y (t ), u* (t ), t ) / yk , k  1,..., n,
i 1
n
 0 (F ( y (t ), u(t ), t ) / u j    i (fi ( y (t ), u* (t ), t ) / u j )  0, j  1,..., r.
i 1
Алгоритм решения задачи оптимального
уравнения методом динамического
программирования в непрерывной форме
Полученные уравнения являются уравнениями
Эйлера в задаче оптимального управления.
Таким образом, показано, что классическое
вариационное исчисление, принцип максимума и
уравнение Беллмана при некоторых допущениях
позволяют выразить условия экстремума
функционала в задаче оптимального управления
идентичными уравнениями.
Скачать