|
Тепер статті може редагувати кожен. Приєднуйтесь до нашої вікі-спільноти! |
Алгоритм динамічного програмування
Алгоритм динамічного програмування у дискретному часі:
1. Обрати пораметри, що характеризують стан системи S
2. Розбити операцію на кроки
3. Визначити набір можливих крокових рішень хі та обмеження накладені на них
4. Визначити функцію виграшу на і-ому кроці:
wi=fi(S, xi)
5. Визначити функцію переходу стану на і-ому кроці в залежності від дії:
S′=φi(S, xi)
6. Записати головне рекурентне рівняння динамічного програмування, що визначає умовний оптимальний виграш:
7. Виконати умовну оптимізацію останнього кроку, таким чином, щоб:
Знаходимо умовне оптимальне рівняння xM(S)
8. Проводимо умовну оптимізацію для m-1 кроку і відповідно усіх попередніх, визначаючи xi(S) і якщо початковий стан відомий, то
9. Провести безумовну оптимізацію згідно рекомендаціям на кожному кроці: xi*=xi(S0) відповідно змінюючи стан
