Методы оптимизации - 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, u1,)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 , то Fyy ( y( x), y( x), x) 0. Если y ( x) J min , то Fyy ( 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 Условия Лежандра: Fyy 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) 1k 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, подчиняются условиям: di / 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 ). Формулировка принципа максимума Пусть найдены оптимальные уравнения, минимизирующие функционал. В этом случае система сопряженных уравнений di / 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. Общий алгоритм решения задачи оптимального уравнения с использованием принципа максимума Окончание алгоритма: Заметим, что выражение для производных di/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 kt ( yi ((k 1)t ) yi (kt )) / t di (t ) / dt t kt (i ((k 1)t ) i (kt )) / t. Тогда для системы уравнений: dyi (t ) / dt откуда t kt H ( y (t ), u(t ), ψ (t )) / i t kt yi (( k 1)t ) yi (kt ) t H ( y(t ), u(t ), ψ (t )) / i , k 0,1,..., n, t kt , k 0,1,..., n . Численное решение задачи оптимального уравнения с использованием принципа максимума Для системы уравнений: d i (t ) / dt имеем t kt H ( y (t ), u(t ), t ) / yi ((( k 1)t ) i (kt )) / t H ( y (t ), u(t ), t ) / yi t kt , k 0,1,..., n, откуда i (( k 1)t ) i (kt ) t H ( y(t ), u(t ), ψ (t )) / yi t kt , 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(kt) и i(kt), i = 1,…,n, подставляются в функцию H, т.е. в H(y(t),( t),u), и она максимизируется H ( y (kt ), (kt ), u) max . u При этом получается u(kt) = (u1(kt),…,ur(kt) при k =1. Пункты 4 и 5 выполняются до k = N, где N соответствует условию Nt = tk. Численное решение задачи оптимального уравнения с использованием принципа максимума Окончание алгоритма: 6. Проверяется выполнение условий: p yi (t k ) yi ( Nt ) i , i 1,..., n, или N p ( yi (t k ) yi ( Nt )) 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)). Особенности решения задач на максимальное быстродействие Продолжение примера: Сопряженные уравнения ~ d1 (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 ut 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 Алгоритм решения задачи оптимального уравнения методом динамического программирования в непрерывной форме Полученные уравнения являются уравнениями Эйлера в задаче оптимального управления. Таким образом, показано, что классическое вариационное исчисление, принцип максимума и уравнение Беллмана при некоторых допущениях позволяют выразить условия экстремума функционала в задаче оптимального управления идентичными уравнениями.