Олійник В.П.

Вінницький національний аграрний університет

Рівняння Беллмана. Принцип оптимальності

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

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

Так , якщо система на початку k - кроку знаходиться в стані http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image002.gif і ми вибираємо довільне керування http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image004.gif, то вона прийде в новий стан в http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image006.gif, і наступні управління http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image008.gifповинні вибиратися оптимальними щодо стану http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image010.gif . Останнє, означає, що в цих управленнях максимізується величина http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image012.gif, тобто показник ефективності на наступних до кінця процесу крокахhttp://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image014.gif. Позначимо через http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image016.gif.

Вибравши оптимальне управління http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image018.gifна залишилися кроках http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image020.gif, отримаємо величину http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image022.gif, яка залежить тільки від http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image002.gif, тобто http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image025.gif.

Назвемо величину http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image027.gif умовним максимумом . Якщо виберемо на k -му кроці деякий довільне керування http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image004.gif, то система прийде в стан http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image010.gif. Згідно з принципом оптимальності , необхідно вибирати управління так http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image004.gif, щоб воно в сукупності з оптимальним керуванням на наступних кроках (починаючи з            ( k +1 ) -го ) призводило б до загального показника ефективності на http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image020.gif кроках, починаючи з k - uго і до кінця. Це положення в аналітичній формі можна записати у вигляді наступного співвідношення :

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image030.gif

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image032.gif, (1)

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

З рівняння (1) може бути отримана функціяhttp://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image034.gif, якщо відомо функціяhttp://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image036.gif. Аналогічно можна отриматиhttp://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image038.gif, якщо відомоhttp://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image034.gif і т. д., поки не буде визначена величина http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image041.gif, що представляє з визначення максимальне значення показника ефективності процесу в цілому:

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image043.gif

Вирішуючи рівняння (1) для визначення умовного максимуму показника ефективності за http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image020.gif кроків , починаючи з k-го , ми визначаємо відповідне оптимальне управління http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image004.gif, при якому цей максимум досягається . Це управління також залежить від http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image002.gif; будемо позначати його через http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image046.gif і називати умовним оптимальним керуванням на k -му кроці . Основне значення рівняння (1) , в якому реалізована ідея динамічного програмування , полягає в тому , що рішення вихідної задачі визначення максимуму функції http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image048.gif n змінних http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image050.gif зводиться до вирішення послідовності n завдань , що задаються співвідношеннями (1), кожне з яких є завданням максимізації функції однієї змінної http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image004.gif.

У результаті послідовного вирішення п приватних завдань на умовний максимум визначають дві послідовності функцій : http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image053.gif- умовні максимуми і відповідні їм http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image055.gif- умовні оптимальні управління . Зазначені послідовності функцій в дискретних завданнях отримують в табличній формі , а в безперервних моделях - аналітично. Після виконання першого етапу ( умовної оптимізації ) приступають до другого етапу - безумовної оптимізації .

Якщо початковий стан http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image057.gifзадано http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image059.gif, то безпосередньо визначають максимум цільової функціїhttp://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image061.gif, а потім - шукане безумовне оптимальне управління по ланцюжку:

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image063.gif. (2)

Якщо задано безліч початкових станів http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image067.gif, то додатково вирішують ще одну задачу на максимум http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image069.gif ,звідки знаходять http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image057.gif, а потім по ланцюжку (2) - безумовне оптимальне керування.

У розглянутих рекурентних співвідношеннях наказують починати обчислення з останнього етапу і потім пересуватися назад до етапу 1. Такий метод обчислень відомий як алгоритм зворотного прогонки. Якщо розрахунки здійснюються в природному порядку проходження етапів, то та ¬ кою метод обчислень відомий як алгоритм прямої прогонки.

Наведемо рекурентні співвідношення для цього випадку. Рівняння з-стояння для прямого ходу зручно записувати у вигляді :

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image072.gif

Введемо в розгляд умовні максимуми показника ефективності за k кроків, від 1-го до k-го включно, - величину http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image074.gif. Повторивши наведені міркування, прийдемо до наступної системи рівнянь Беллмана:

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image076.gif

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image078.gif

У результаті вирішення цих рівнянь отримаємо послідовності:

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image080.gif; http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image082.gif.

Далі визначимо безумовне оптимальне управління по ланцюжку:

http://www.math.mrsu.ru/text/courses/e-learn/7.2.files/image084.gif.

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

Література

1.       Ашманов С.А., Тимохов С.А. Теория оптимизации в задачах. – М.: Наука, 1991.

2.       Перестюк М.О., Станжицький О.М. Екстремельні задачі. Навчальний посібник – К.: ВПЦ Київський університет, 2004. – 50 с.