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


Нехай процес оптимізації розбитий на п кроків. На кожному кроці потрібно визначити два типи змінних - змінну стану S та змінну керування х. Змінна стану S визначає, в яких станах може бути система на к-му кроці. Залежно від S на цьому кроці можна використати деякі керування, які характеризуються змінною х. Використання керування х на к-му кроці дає деякий результат fk(S,xk) iпереводить систему в деякий новий стан S'(S,xk). Для

кожного можливого стану на к-му кроці (з усіх можливих керувань) вибирається таке керування хк, щоб результат, якии отримаємо з к-то

по п-ии крок був оптимальним. Числова характеристика цього результату називається функцією Белмана Fk(S) та залежить від

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

Весь розв’язок задачі розбивається на два етапи. На першому етапі знаходять функцію Белмана й оптимальне керування для всіх можливих станів на кожному кроці, починаючи з першого. На останньому п-му кроці знайти оптимальне керування і значения функції Белмана Fn(S) нескладно, оскільки Fn(S) = max{fk(S,xn)}, де

максимум знаходять за всіма можливими значениями х„.

Подальші розрахунки проводять згідно з рекурентним співвідношенням, яке пов’язує функцію Белмана на кожному кроці з тією ж функцією, обчисленою на попередньому кроці:

Fk(S) = max{fk(S,,xk) + Fk_l(S,xk)}. (7.4)

Цей максимум (чи мінімум) знаходиться за всіма можливими для к iS значениями керованої змінної хk.

Після того, як функція Белмана і відповідне оптимальне керування знайдені для всіх кроків з першого до п-то (на першому кроці k=l стан системи рівний її початковому стану So), виконуємо другий етап розв’язання задачі згідно з алгоритмом зворотної прогонки. Знаючи оптимальне керування на и-му кроці хп, ми можемо шукати оптимальне керування на (п-\) кроці доти, доки не дійдемо до першого.

Таким чином, в процесі оптимізації керування методом динамічного програмування багатокроковий процес «проходиться» двічі: перший раз - з початку до кінця, в результаті чого знаходимо умовні оптимальні керування і умовні оптимальні виграші; другий раз - від кінця до початку, коли нам залишається тільки «прочитати» вже готове керування, що складається з оптимальних покрокових управлінь.



Дата добавления: 2016-07-22; просмотров: 1536;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.