830 likes | 1.35k Views
Методы оптимизации - II. Проф. В.П. Кривошеев. Динамическое программирование в дискретной форме.
E N D
Методы оптимизации - II Проф. В.П. Кривошеев
Динамическое программирование в дискретной форме В дискретной форме динамическое программирование является декомпозиционным методом решения задач статической оптимизации. Особенность динамического программирования в дискретной формепозволяет свести задачу большой размерности к ряду подзадач меньшой размерности. В динамическом программировании критерий оптимальности Q = Q(u1,…,ur)должен быть функцией Марковского типа, т.е. он может быть представлен в виде функции от состояния S = S (u1,…,ur-1), в которое приходит последний объект в результате воздействия (r-1) управлений, и от оставшегося управления ur, т.е. Q = Q(S, ur). Предполагается, что процесс протекающий в исследуемом объекте, можно рассматривать как многостадийный (N-стадийный, см. рисунок ниже).
1 2 N N-1 q1(S0, u1) q2(S1, u2) qN-1(SN-2, uN-1) qN(SN-1, uN) uN-1 u1 u2 uN Динамическое программирование в дискретной форме Многостадийный процесс Здесь:Si-1 - состояние перед i-ой стадией; ui- управление на i-ой стадии; qi(Si-1, ui) - составляющая критерия оптимальности, полученная на i-ой стадии. Состояния соседних стадий связаны выражением Si = Si(Si-1, ui), i=1,…,N.
Динамическое программирование в дискретной форме Рассматривается критерий оптимальности в виде . В основе динамического программирования лежит принцип оптимальности:оптимальная стратегия обладает таким свойством, что для любых значений управлений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, есть значения переменных состояния, выбранные в допустимом диапазоне изменения SikminSikSikmax. 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.
Постановка задачи динамической оптимизации где yi(t), i= 1,…,n, - функции состояния системы управления, uj(t) - функции управления; - область допустимых управлений. Требуется найти такие функции управления uj(t), j= 1,…,r, при которых система переходит из одного состояния y0 в другое состояние yk, и при этом выполняются указанные выше условия, а критерий оптимальности принимает минимальное (максимальное) значение.
Методы решения задач динамической оптимизации • Классическое вариационное исчисление. • Принцип максимума. • Динамическое программирование в непрерывной форме (уравнение Беллмана).
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Рассматривается класс непрерывных функций y(х), имеющих непрерывные первые производные (класс функций C1). Здесь х может быть пространственной координатой (длина e, радиус R) или временем t. Ставится задача гдеy(х) = d y(х)/dx, y(a) = A, y(b) = B.
y(х) ỹ(х) y(х) ỹ2(х) а в ỹ1(х) x Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Пусть в рассматриваемом классе функций, приведенных на рисунке ниже, экстремум функционалу доставляет функция y(х). Необходимые условия экстремума функционала можно получить при вариации функции ỹ(х) относительно функции y(х) в обе стороны. Заметим, что сравниваемые функции в точках a и b имеют одно и тоже значение. Вариация функции
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Представим процедуру вариации функции y(х) однопараметрическим семейством функцийy(,х) = ỹ(х)+(1-)y(х).Здесь полагаем, что экстремум достигается на функции y(х). Используя однопараметрическое семейство функций y(,х), можно записать Введем обозначение y(х) = ỹ(х) - y(х),тогда d(y(х))/dx= y(х) = ỹ -y (х) = y(х). Заметим, что из однопараметрического семейства функций, функции, доставляющей экстремуму функционалу, соответствует = 0.
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Необходимое условие экстремума функционала при однопараметрическом представлении варьируемой функции можно записать как dJ/d = 0, или Введем обозначения: Fy= F/y, Fy = F/y .
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Теперь получим, с учетом выражения однопараметрического семейства функций, Подставим его в функционал Из полученного выражения выделим вторую составляющую
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала и возьмем интеграл по частям Учитывая тот факт, что сравниваемые функции имеют одинаковые значения в граничных точках, т.е. (y(a)) = y(b)) = 0, имеем
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Оставшуюся часть подставим в функционал и получим Приведем подобные члены
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала В соответствии с леммой вариационного исчисления: Если имеет место где H(y(x),y(x),x) – непрерывная функция, а h(x) - непрерывная функция, на концах интервала обращающаяся в нуль, то H(y(x),y(x),x) 0. Имеем аналогию с H(y(x),y(x),x) и y(x) c h(x).
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Следовательно, можно записать Полученное уравнение называется уравнением Эйлера для простейшего функционала.
Классическое вариационное исчислениеУравнение Эйлера для простейшегофункционала Условия Лежандра: Еслито Если то Пример. Найти экстремаль функционала: y(0) = 0, y(1) = 1. Уравнение Эйлера: 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. Условия Лежандра: Следовательно, на функции y = x2 функционал имеет минимум.
Классическое вариационное исчислениеНеобходимое условие экстремума функционала, зависящего от n-функций и от их первых производных Система уравнений Эйлера: где
Классическое вариационное исчислениеНеобходимое условие экстремума функционала, зависящего от n-функций и от их первых производных Условия Лежандра: Еслито Если то
Классическое вариационное исчислениеНеобходимое условие экстремума функционала, зависящего от функциии от ее n производных Уравнение Эйлера-Пуассона:
Классическое вариационное исчислениеНеобходимое условие экстремума функционала, зависящего от функциии от ее n производных Условия Лежандра: Еслито Если то
Классическое вариационное исчислениеНеобходимое условие экстремума функционала, зависящего от n функцийи от ее m производныхдля каждой из n функций
Классическое вариационное исчислениеНеобходимое условие экстремума функционала, зависящего от n функцийи от ее m производныхдля каждой из n функций В этом случае необходимое условие экстремума функционала представляет собой систему уравнений Эйлера-Пуассона:
Классическое вариационное исчислениеРешение вариационных задач при наличии интегральных (изопериметрических), голономных и неголономных связей Интегральная связь: Голономная связь: Неголономная связь:
Классическое вариационное исчислениеРешение вариационных задач при наличии интегральных связей Составляется новое подынтегральное выражение Необходимое условие экстремума функционала: Эти уравнения решаются совместно с уравнениями интегральных связей при использовании граничных условий.Здесьj, j=1,…,m, - числа.
Классическое вариационное исчислениеРешение вариационных задач при наличии голономных и неголономных связей Составляется новое подынтегральное выражение или Необходимое условие экстремума функционала: Эти уравнения решаются совместно с уравнениями голономных и неголономных связей при использовании граничных условий.Здесьj(x),j=1,…,m, - функции.
Классическое вариационное исчислениеРешение вариационных задач при наличии интегральных (изопериметрических), голономных и неголономных связей Пример Найти экстремали для функционала: Запишем уравнение связи в виде Сформируем новое подынтегральное уравнение
Классическое вариационное исчислениеРешение вариационных задач при наличии интегральных (изопериметрических), голономных и неголономных связей Пример(продолжение): Уравнения Эйлера: В развернутом виде имеем: Решим эти уравнения совместно с условием связи или
Классическое вариационное исчислениеРешение вариационных задач при наличии интегральных (изопериметрических), голономных и неголономных связей Пример(окончание): Возьмем вторую производную от условия связи и подставим в полученное выражение y″(x) и z″ (x): Теперь: Найдем C1 - C4, используя граничные условия: Окончательно имеем
Решение задачи оптимального уравнения классическим вариационным исчислением Решается задача: гдеy(t) = (y1(t),…,yn(t)),u(t) = (u1(t),…,ur(t)). Эта задача является вариационной задачей с неголономными связями. Для функционала: необходимые условия экстремума:
Решение задачи оптимального уравнения классическим вариационным исчислением В развернутом виде: Обозначим –1 = 0, i(t) = i(t). Теперь необходимые условия в развернутом виде:
Принцип максимума Решается задача: Математическое описание процесса: Особенность принципа максимума: решение может достигаться как в классе непрерывных функций, так и в классе разрывных функций с конечными разрывами. При доказательстве необходимых условий минимума функционала в принципе максимума используется игольчатая вариация функции управления.
u(t) t t0 t1 Принцип максимума Игольчатая функция
Принцип максимума Содержание принципа максимума: Формируется функция Гамильтона где i, i= 0,…,n, подчиняются условиям: Математическое описание процесса, выраженное через функцию Обозначим критерий оптимальности Заметим, что y0(0) = 0, тогда
Формулировка принципа максимума Пусть найдены оптимальные уравнения, минимизирующие функционал. В этом случае система сопряженных уравнений имеет не нулевое решение, и следующие условия при этом выполняются: 1. Функцияпринимает свое максимальное значение, т.е. 2. 0 = const 0. 3. H* = const.
Общий алгоритм решения задачи оптимального уравнения с использованиемпринципа максимума 1. Максимизируется функция H(y(t),u(t),(t))по управлениям u(t). При этом получаются 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)). В этом случае задача оптимального управления называется задачей синтеза оптимального управления.
Общий алгоритм решения задачи оптимального уравнения с использованиемпринципа максимума Продолжение алгоритма: Запишем в развернутом виде систему уравнений: и необходимое условие максимума функцииH(y(t),u(t),(t)) как
Общий алгоритм решения задачи оптимального уравнения с использованиемпринципа максимума Окончание алгоритма: Заметим, что выражение для производных di/dt соответствует уравнениям Эйлера, записанным для функций yk(t), k=1,…,n, а условия соответствует уравнениям Эйлера, записанным для функций uj(t), j = 1,…,r, в классическом вариационном исчислении при решении задачи оптимального управления.
Пример решения задачи оптимального уравнения с использованиемпринципа максимума Пример. Найти управление u(t), при котором функционал принимает минимальное значение. 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).
Численное решение задачи оптимального уравнения с использованиемпринципа максимума В тех случаях, когда система сопряженных уравнений не может быть решена аналитически или аналитическое решение получить трудно, она решается численно. Принимается, что Тогда для системы уравнений: откуда
Численное решение задачи оптимального уравнения с использованиемпринципа максимума Для системы уравнений: имеем откуда
Численное решение задачи оптимального уравнения с использованиемпринципа максимума Алгоритм решения задачи оптимального уравнения численным методом с использованием принципа максимума: 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)),
Численное решение задачи оптимального уравнения с использованиемпринципа максимума Продолжение алгоритма: и она максимизируется При этом получается u(0) = (u1(0),…,ur(0). 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), и она максимизируется При этом получается u(kt) = (u1(kt),…,ur(kt) при k=1.Пункты 4 и 5 выполняются до k= N, где N соответствует условию Nt = tk.