Рефетека.ру / Эк.-мат. моделирование

Реферат: Метод динамічного програмування

1 Принцип оптимальності


Оптимальне керування в будь-який момент часу не залежить від передісторії процесу і визначається тільки станом системи в поточний момент і метою керування. Якщо в якийсь період часу керування було неоптимальним, то наслідки цього в майбутньому виправити вже не можна. Під метою керування розуміються вимоги, яким повинна задовольняти керована система, наприклад, це може бути приведення системи в заданий стан або забезпечення певних умов руху протягом заданого періоду часу.

Отже, принцип оптимальності характеризує наступний за заданим станом рух системи, але він може не мати місця для траєкторії, що передує цьому стану.


2 Метод динамічного програмування


Розглянемо застосування методу динамічного програмування до розв’язання неперервних задач оптимального керування. У цьому випадку треба виконати дискретизацію початкової задачі, тобто початкову задачу потрібно замінити близькою їй дискретною задачею. Розглянемо динамічну систему, закон руху якої описується автономним диференціальним рівнянням


Метод динамічного програмування,(1)


де Метод динамічного програмування, Метод динамічного програмування – кусково-неперервні функції.

Припустимо, що початковий стан системи Метод динамічного програмування заданий, а на керування накладено обмеження Метод динамічного програмування. Вважатимемо, що час руху Метод динамічного програмування фіксований. Цільовий функціонал задачі в цьому випадку матиме вигляд:


Метод динамічного програмування.(2)


Для дискретизації неперервної задачі (1) – (2) розіб'ємо відрізок Метод динамічного програмування на Метод динамічного програмування інтервалів довжиною


Метод динамічного програмування


кожний, де Метод динамічного програмування – натуральне число . Значення функцій Метод динамічного програмування і Метод динамічного програмування будемо далі визначати лише в дискретні моменти часу Метод динамічного програмування, де Метод динамічного програмування. Для цього введемо позначення Метод динамічного програмування, Метод динамічного програмування, і замінимо диференціальне рівняння (1) різницевим, апроксимуючи першу похідну значеннями в дискретні моменти часу:


Метод динамічного програмування.


З останнього співвідношення випливає, що


Метод динамічного програмування, Метод динамічного програмування.(3)


Інтегральному цільовому функціоналу (2) відповідає інтегральна сума


Метод динамічного програмування.(4)


Отже, ми перейшли до дискретної задачі, у якій потрібно знайти такі керування Метод динамічного програмування, що задовольняють обмеженню Метод динамічного програмування, Метод динамічного програмування, і мінімізують функціонал (4) за початкових умов Метод динамічного програмування. Очевидно, що результати розв’язання цієї задачі будуть тим точніше апроксимувати початкову неперервну задачу, чим більше Метод динамічного програмування.

Розглянемо співвідношення


Метод динамічного програмування, Метод динамічного програмування,


де Метод динамічного програмування, …, Метод динамічного програмування визначаються за рекурентними формулами (3), і позначимо


Метод динамічного програмування.


Величина Метод динамічного програмування – це частина інтегральної суми (4), що відноситься до моментів часу


Метод динамічного програмування,


Метод динамічного програмування


і залежить від стану Метод динамічного програмування системи в момент часу


Метод динамічного програмування.


Відповідно до принципу оптимальності, керування Метод динамічного програмування на останньому етапі треба обирати так, щоб


Метод динамічного програмування.


Далі будемо розглядати лише задачі, у яких зазначений мінімум досягається в єдиній точці.

На наступному етапі визначимо керування Метод динамічного програмування, для якого


Метод динамічного програмування,


де


Метод динамічного програмування,


а


Метод динамічного програмування


– керування, що залежить від стану, у якому перебуває система. Отже, на передостанньому відрізку часу знайдене оптимальне керування як функція від стану Метод динамічного програмування, в якому перебуватиме система на момент часу


Метод динамічного програмування.


Повторюючи цю процедуру, на Метод динамічного програмування-му етапі потрібно визначити оптимальне керування Метод динамічного програмування, що задовольняє співвідношенню


Метод динамічного програмування(5)


де


Метод динамічного програмування


відповідно до (3). Співвідношення (5) називаються рекурентними співвідношеннями Беллмана.

Після того, як на останньому етапі буде знайдено значення Метод динамічного програмування і оптимальне керування Метод динамічного програмування, то за відомим значенням Метод динамічного програмування можна визначити послідовно Метод динамічного програмування, Метод динамічного програмування, …, Метод динамічного програмування, Метод динамічного програмування, Метод динамічного програмування. При цьому значення Метод динамічного програмування відповідає мінімальному значенню функціонала (4).

Наведений алгоритм розв’язання задачі оптимального керування методом динамічного програмування можна перенести на загальний випадок задачі керування з векторним законом руху (1), тобто якщо Метод динамічного програмування, Метод динамічного програмування.


3 Принцип оптимальності для задачі оптимального керування з фіксованим часом і вільним правим кінцем


Розглянемо автономну систему


Метод динамічного програмування,(6)


з цільовим функціоналом


Метод динамічного програмування,(7)


у якому початковий і кінцевий моменти часу Метод динамічного програмування і Метод динамічного програмування задані, і заданий початковий стан Метод динамічного програмування.

Починаючи з будь-якого моменту часу Метод динамічного програмування, відрізок оптимальної траєкторії Метод динамічного програмування, Метод динамічного програмування від точки Метод динамічного програмування до точки Метод динамічного програмування також є оптимальною траєкторією.

Відносно початкового відрізка оптимальної траєкторії до точки Метод динамічного програмування можна стверджувати, що цей відрізок є оптимальною траєкторією, лише у тому випадку, коли точка Метод динамічного програмування фіксована (наприклад, у багатоточкових задачах керування), тобто коли за умовами припустима траєкторія обов'язково повинна проходити через точку Метод динамічного програмування. Якщо ж задана тільки початкова точка Метод динамічного програмування, то відрізок оптимальної траєкторії може і не бути оптимальною траєкторією, тобто може не доставляти оптимальне значення функціоналу (7).


4 Рівняння Беллмана в задачі з фіксованим часом і вільним правим кінцем


Розглянемо систему з законом руху (6) і критерієм оптимальності (2). Початковий стан системи заданий:


Метод динамічного програмування,(8)


час руху Метод динамічного програмування відомий, а кінцевий стан Метод динамічного програмування – невідомий. Побудована таким чином задача – це задача з фіксованим часом і вільним правим кінцем.

Позначимо через Метод динамічного програмування, Метод динамічного програмування оптимальну траєкторію, яка відповідає оптимальному керуванню Метод динамічного програмування. Зафіксуємо деякий момент часу Метод динамічного програмування і відповідну йому точку Метод динамічного програмування на оптимальній траєкторії. Відповідно до принципу оптимальності, відрізок траєкторії Метод динамічного програмування від точки Метод динамічного програмування до точки Метод динамічного програмування є оптимальною траєкторією і надає найменшого значення функціоналу


Метод динамічного програмування


серед всіх припустимих процесів Метод динамічного програмування на відрізку часу Метод динамічного програмування з початковим станом Метод динамічного програмування, тобто


Метод динамічного програмування.


Припустимо, що для будь-якої точки Метод динамічного програмування фазового простору Метод динамічного програмування і будь-якого моменту часу Метод динамічного програмування існує оптимальна траєкторія з початковою умовою Метод динамічного програмування, яка надає найменшого значення функціоналу Метод динамічного програмування. Позначимо це мінімальне значення через


Метод динамічного програмування.


Функція Метод динамічного програмування, що задана у всіх точках Метод динамічного програмування, простору Метод динамічного програмування, Метод динамічного програмування, називається функцією Беллмана.

Припустимо, що Метод динамічного програмування, Метод динамічного програмування, – оптимальний процес і оптимальна траєкторія Метод динамічного програмування задовольняє початковій умові Метод динамічного програмування. Тоді


Метод динамічного програмування


визначає цільовий функціонал (2) початкової задачі.

Розглянемо приріст Метод динамічного програмування і відповідний йому момент часу Метод динамічного програмування. Очевидно, що останнє співвідношення можна переписати так:


Метод динамічного програмування.(9)


Відповідно до принципу оптимальності, відрізок оптимальної траєкторії від точки Метод динамічного програмування до точки Метод динамічного програмування також є оптимальною траєкторією, тобто


Метод динамічного програмування,


тому співвідношення (9) можна переписати у вигляді


Метод динамічного програмування.(10)


Очевидно, що другий доданок в (10) залежить від стану системи Метод динамічного програмування (оскільки оптимальне значення функціонала Метод динамічного програмування залежить від початкового стану системи Метод динамічного програмування і для кожного початкового стану Метод динамічного програмування оптимальне значення функціонала Метод динамічного програмування різне). У цей стан Метод динамічного програмування, у свою чергу, система попадає під дією керування Метод динамічного програмування, яке діє на інтервалі часу Метод динамічного програмування. Отже, значення Метод динамічного програмування залежатиме від вибору керування на відрізку Метод динамічного програмування.

Дійсно, розглянемо різні припустимі керування Метод динамічного програмування на відрізку Метод динамічного програмування. Їм відповідатиме набір траєкторій Метод динамічного програмування , що виходять із точки Метод динамічного програмування, яка лежить на оптимальній траєкторії Метод динамічного програмування. На кожній траєкторії із цього набору фазова точка в момент часу Метод динамічного програмування попаде в деякий стан Метод динамічного програмування.

Виберемо керування Метод динамічного програмування на відрізку Метод динамічного програмування так, щоб траєкторія Метод динамічного програмування на цьому відрізку була оптимальною. Це оптимальне керування в загальному випадку різне для кожної траєкторії пучка. Очевидно, що вибираючи одне – оптимальне – серед всіх можливих керувань Метод динамічного програмування, Метод динамічного програмування для кожної із траєкторій Метод динамічного програмування, ми фіксуємо подальший стан кожної із них і при цьому одержуємо мінімальне значення функціонала


Метод динамічного програмування,


яке дорівнює


Метод динамічного програмування.


Очевидно, що це значення залежить від стану Метод динамічного програмування. А оскільки, як було встановлено раніше, стан Метод динамічного програмування залежав від вибору керування Метод динамічного програмування на відрізку Метод динамічного програмування, то й значення Метод динамічного програмування також залежатиме від того, яким було обрано керування Метод динамічного програмування, Метод динамічного програмування.

Розглянемо значення функціонала Метод динамічного програмування на траєкторіях з набору, побудованого вище при Метод динамічного програмування. Оскільки відрізок кожної траєкторії Метод динамічного програмування від точки Метод динамічного програмування до точки Метод динамічного програмування є оптимальним відповідно до принципу максимуму, то значення функціонала дорівнює


Метод динамічного програмування.(11)


Ясно, що останнє співвідношення різне для кожної з траєкторій Метод динамічного програмування і відповідного цій траєкторії керування Метод динамічного програмування на відрізку Метод динамічного програмування. Виберемо серед всіх значень Метод динамічного програмування мінімальне. Оскільки обидва доданки в (11) залежать тільки від вибору керування Метод динамічного програмування на інтервалі Метод динамічного програмування, то і мінімальне значення (11) залежатиме тільки від вибору керування на цьому інтервалі, тобто


Метод динамічного програмування.


Побудований набір траєкторій є підмножиною більш широкої множини всіх припустимих функцій, на яких шукається найменше значення функціонала Метод динамічного програмування. Тому в загальному випадку має місце нерівність


Метод динамічного програмування.(12)

Але оскільки оптимальна траєкторія Метод динамічного програмування належить до побудованого набору траєкторій, то в співвідношенні (12) насправді має місце рівність, тобто


Метод динамічного програмування.


Звідси з урахуванням (11) одержимо


Метод динамічного програмування, (13)


тобто оптимізація процесу проводиться тільки для Метод динамічного програмування, тому що для Метод динамічного програмування траєкторія вже оптимальна.

Розглянемо поведінку останнього співвідношення при Метод динамічного програмування, тобто коли інтервал Метод динамічного програмування, на якому шукається оптимальне керування, звужується до точки. Відповідно до закону руху


Метод динамічного програмування.


Вважатимемо, що функція Беллмана Метод динамічного програмування неперервно диференційована по всіх своїх аргументах. Тоді


Метод динамічного програмування (14)


Позначатимемо далі


Метод динамічного програмування.


Співвідношення (14) з урахуванням цього позначення набуде вигляду


Метод динамічного програмування.


Використовуючи останнє співвідношення, рівність (13) можна подати у вигляді


Метод динамічного програмування (15)


Оскільки функції Метод динамічного програмування і Метод динамічного програмування у правій частині (15) не залежать від Метод динамічного програмування, їх можна винести за знак мінімуму. Після скорочень одержимо


Метод динамічного програмування.


Припустимо, що функція Метод динамічного програмування є неперервною на відрізку Метод динамічного програмування. Розділивши останнє співвідношення на Метод динамічного програмування, при Метод динамічного програмування одержимо

Метод динамічного програмування.(16)


Останнє співвідношення називається рівнянням Беллмана. Воно є аналогом рекурентних рівнянь Беллмана дискретної задачі оптимального керування для випадку неперервної системи.

Замінивши Метод динамічного програмування на Метод динамічного програмування, де Метод динамічного програмування – оптимальна траєкторія, одержимо з (16)


Метод динамічного програмування.(17)


До рівняння Беллмана додаються крайові умови, що випливають безпосередньо з визначення функції Беллмана:

Метод динамічного програмування.(18)

Рівняння Беллмана – це диференціальне рівняння в частинних похідних відносно функції Метод динамічного програмування. Але це рівняння не є лінійним через наявність у (17) операції мінімізації. Фактично це означає підстановку в рівняння такого Метод динамічного програмування, на якому досягається мінімум і яке змінюється в залежності від значень Метод динамічного програмування і Метод динамічного програмування.


5 Рівняння Беллмана в задачі з фіксованими кінцями та вільним часом


Додамо до задачі (2), (6), (9) умову закріплення правого кінця траєкторії Метод динамічного програмування, де Метод динамічного програмування – задано, а Метод динамічного програмування – невідомо. У цьому випадку функція Беллмана залежатиме тільки від поточного стану системи. Дійсно, згідно з визначенням функції Беллмана


Метод динамічного програмування.


Якщо підінтегральна функція не залежить від Метод динамічного програмування, то значення інтеграла Метод динамічного програмування при фіксованих Метод динамічного програмування і Метод динамічного програмування залежить тільки від довжини інтервалу інтегрування Метод динамічного програмування, який можна визначити з автономної системи (6), якщо відомі точки Метод динамічного програмування і Метод динамічного програмування фазової траєкторії. Тому різниця Метод динамічного програмування – це функція від аргументів Метод динамічного програмування і Метод динамічного програмування, а Метод динамічного програмування не залежить явно від Метод динамічного програмування. У цьому випадку Метод динамічного програмування і рівняння Беллмана для задачі із закріпленими кінцями набуває вигляду


Метод динамічного програмування.


6 Рівняння Беллмана в задачі швидкодії


Розглянемо задачу оптимальної швидкодії з фіксованими кінцями і вільним часом, закон руху якої має вигляд (6) і задані початковий стан Метод динамічного програмування та кінцевий стан Метод динамічного програмування. Час Метод динамічного програмування невідомий і його потрібно знайти з умови мінімізації цільового функціонала


Метод динамічного програмування.


У задачі з фіксованими кінцями і вільним часом функція Беллмана залежить тільки від поточного стану системи і не залежить від моменту, починаючи з якого розглядається її еволюція (доведення аналогічно п. 5), тобто Метод динамічного програмування.

Вважатимемо, що функція Метод динамічного програмування неперервна на будь-якому відрізку Метод динамічного програмування і для будь-якої точки фазового простору Метод динамічного програмування і будь-якого моменту часу Метод динамічного програмування існує оптимальна траєкторія, а функція Метод динамічного програмування неперервно диференційована за своїми аргументами. Тоді необхідна умова оптимальності у вигляді рівняння Беллмана (17), (18) для даної задачі матиме вигляд:


Метод динамічного програмування,


або


Метод динамічного програмування


за заданих крайових умов Метод динамічного програмування.

Очевидно, що якщо процес Метод динамічного програмування – оптимальний, то, будучи підставленим у рівняння Беллмана, він дасть тотожність


Метод динамічного програмування.


Зауваження. Оскільки функція Беллмана Метод динамічного програмування дорівнює мінімальному значенню цільового функціонала, що характеризує перехід системи в кінцевий стан зі стану Метод динамічного програмування, то в задачі оптимальної швидкодії ця функція показує оптимальний час переходу Метод динамічного програмування зі стану Метод динамічного програмування у фіксований стан Метод динамічного програмування.


7 Зв'язок методу динамічного програмування із принципом максимуму


Розглянемо задачу оптимального керування з фіксованими кінцями та вільним часом (6) з цільовим функціоналом Метод динамічного програмування, і крайовими умовами Метод динамічного програмування, Метод динамічного програмування. Вважатимемо, що час Метод динамічного програмування невідомий.

Оптимальне керування будемо вибирати серед кусково-неперервних вектор-функцій Метод динамічного програмування. За принципом динамічного програмування для оптимального процесу Метод динамічного програмування існує такий розв’язок Метод динамічного програмування рівняння Беллмана


Метод динамічного програмування,(19)


що Метод динамічного програмування – значення, на якому досягається мінімум у лівій частині рівняння (19).

Доведемо, що з рівняння (19) випливає існування деякого вектора Метод динамічного програмування, який задовольняє співвідношенням принципу максимуму. Нехай Метод динамічного програмування – функція Беллмана, що відповідає оптимальному процесу Метод динамічного програмування. Розглянемо нову змінну


Метод динамічного програмування


і нову функцію


Метод динамічного програмування,

де Метод динамічного програмування.

Використовуючи ці позначення, перетворимо рівняння Беллмана. Очевидно, що


Метод динамічного програмування, Метод динамічного програмування, Метод динамічного програмування,


тому


Метод динамічного програмування


Оскільки Метод динамічного програмування, то останнє співвідношення можна привести до вигляду:


Метод динамічного програмування.(20)


Позначимо


Метод динамічного програмування, Метод динамічного програмування.


Тоді формула (20) стає аналогом функції Понтрягіна


Метод динамічного програмування,

де Метод динамічного програмування.

Це означає, що на оптимальному процесі Метод динамічного програмування функція Понтрягіна набуває максимального значення, рівного 0. Очевидно, що функція Понтрягіна не залежить від Метод динамічного програмування, тому що Метод динамічного програмування і Метод динамічного програмування, Метод динамічного програмування не залежать від Метод динамічного програмування.

Доведемо, що спряжені змінні Метод динамічного програмування задовольняють спряженій системі


Метод динамічного програмування, Метод динамічного програмування.(21)


Для цього припустимо, що функція Беллмана Метод динамічного програмування має неперервні частинні похідні другого порядку. Позначимо


Метод динамічного програмування.(22)


Оскільки оптимальне керування Метод динамічного програмування однозначно визначає оптимальну траєкторію Метод динамічного програмування, то функція Метод динамічного програмування досягає на кожному фіксованому Метод динамічного програмування по змінній Метод динамічного програмування максимального значення, рівного 0, у точці Метод динамічного програмування, що відповідає оптимальному керуванню Метод динамічного програмування в цій точці. У цьому випадку для функції Метод динамічного програмування в будь-який момент часу для процесу Метод динамічного програмування буде виконана умова


Метод динамічного програмування, Метод динамічного програмування, Метод динамічного програмування.(23)


Продиференціюємо співвідношення (22):


Метод динамічного програмування, Метод динамічного програмування.


Тоді відповідно до (23) для оптимального процесу дістанемо


Метод динамічного програмування, Метод динамічного програмування.(24)


Оскільки


Метод динамічного програмування,


то співвідношення (24) можна переписати у вигляді:


Метод динамічного програмування,


або, з урахуванням позначень (21),


Метод динамічного програмування, Метод динамічного програмування.


Оскільки Метод динамічного програмування, то


Метод динамічного програмування,


а це, у свою чергу означає, що


Метод динамічного програмування, Метод динамічного програмування.


Отже, встановлено теоретичний зв'язок принципу максимуму з методом динамічного програмування. Але на практиці виконати подібну операцію не завжди можливо. Так наприклад, рівняння (21) було отримано в припущенні, що функція Беллмана Метод динамічного програмування має неперервні похідні другого порядку, що не завжди виконується.

Обидва методи придатні для задач, у яких відсутні обмеження на керування, і всі функції гладкі. Кожний з цих методів може бути застосований там, де не працює інший. Рівняння Беллмана вимагає більше припущень для застосування (неперервність і диференційованість функцій), а принцип максимуму складніше використовувати для розв’язання дискретних задач.

Похожие работы:

  1. •  ... інвестицій за допомогою динамічного програмування
  2. •  ... обладнання за допомогою динамічного програмування
  3. • Чисельне розв"язання задач оптимального керування
  4. • Постановка задачі оптимального стохастичного керування
  5. • Планування у транспортному комплексі України
  6. • Математические модели и методы обоснования управленческих ...
  7. • Вибір оптимальних варіантів систем методами векторної ...
  8. • Підручник
  9. • Математичне програмування в економіці
  10. • Аналіз чутливості використання методу Якобі для ...
  11. • Розв"язання задач лінійного програмування
  12. • Стандартна задача лінійного програмування
  13. • Економічні задачі лінійного програмування і методи їх ...
  14. • Низькорівневе програмування контроллера клавіатури
  15. • Програмування алгоритмічною мовою VBA
  16. • Програмування мовою С++ з ...
  17. • Технологія складу програм. Базові засоби мови C++
  18. • Розв"язання лінійних задач методами лінійного ...
  19. • Вплив і нейролінгвістичне програмування у ...
Рефетека ру refoteka@gmail.com