Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММДО_конспект.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
2.91 Mб
Скачать

2. Принципи динамічного програмування. Принцип оптимальності Беллмана

Ще раз підкреслимо, що зміст підходу, реалізованого в динамічному програмуванні, є у заміні рішення вихідної багатомірної задачі послідовністю задач меншої розмірності.

Перелічимо основні вимоги до задач, виконання яких дозволяє застосувати даний підхід:

  • об'єктом дослідження повинна бути керована система (об'єкт) із заданими припустимими станами й припустимими керуваннями;

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

  • задача не повинна залежати від кількості кроків і бути певної на кожному з них;

  • стан системи на кожному кроці повинне описуватися однаковим (по складу) набором параметрів;

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

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

Нехай поставлена задача керування деяким абстрактним об'єктом, що може перебувати в різних станах. Поточний стан об'єкта ототожнюється з деяким набором параметрів, позначуваним надалі ξ і іменований вектором стану. Передбачається, що задано множину Ξ всіх можливих станів. Для об'єкта визначена також множина припустимих керувань (керуючих впливів) X, що, не применшуючи спільності, можна вважати числовою множиною. Керуючі впливи можуть здійснюватися в дискретні моменти часу k (k∊1:n), причому управлінське рішення полягає у виборі одного з керувань xkХ.

Планом задачі або стратегією керування називається вектор х = (х1, х2, .., xn-1), компонентами якого служать керування, обрані на кожному кроці процесу. Через передбачувану відсутність післядії між кожними двома послідовними станами об'єкта ξk і ξk+1 існує відома функціональна залежність, що включає також обране керування: ξk+1 = φk(xk, ξk), k∊1:п-1. Тим самим завдання початкового стану об'єкта ξ1∊Ξ і вибір плану х однозначно визначають траєкторію поводження об'єкта, як це показано на рис. 5.1.

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

Оптимальне керування, при заданому початковому стані ξ1, зводиться до вибору такого оптимального плану х*, при якому досягається максимум суми значень fk на відповідній траєкторії.

Основний принцип динамічного програмування полягає в тім, що на кожному кроці варто прагнути не до ізольованої оптимізації функції fk(хk, ξk), а вибирати оптимальне керування хk* у припущенні про оптимальність всіх наступних кроків.

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

Позначимо Λk(ξ) максимальне значення суми функцій fk протягом кроків від k до п (одержуване при оптимальному керуванні на даному відрізку процесу), за умови, що об'єкт на початку кроку k перебуває в стані ξ . Тоді функції Λk(ξ) повинні задовольняти рекурентному співвідношенню:

де ξk+1 = φk(xk, ξ)

Співвідношення (5.14) називають основним рекурентним співвідношенням динамічного програмування. Воно реалізує базовий принцип динамічного програмування, відомий також як принцип оптимальності Беллмана:

Оптимальна стратегія керування повинна задовольняти наступній умові: яке б не було початковий стан ξk на k-му кроці й обране на цьому кроці керування хk,, наступні керування (управлінські рішення) повинні бути оптимальними стосовно стану ξk+1 = φk(xk, ξk), що виходить у результаті рішення, прийнятого на кроці k.

Основне співвідношення (5.14) дозволяє знайти функції Λk(ξ) тільки в сполученні з початковою умовою, якимось у нашім випадку є рівність

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

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

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

Так, у запропонованій схемі вирішення задачі (5.3)-(5.4) істотно використовується той факт, що система обмежень містить тільки одну нерівність, і, як наслідок, її стан задається одним числом - нерозподіленим ресурсом ξ . При наявності декількох обмежень стан керованого об'єкта на кожному кроці характеризується вже набором параметрів ξ1, ξ2, ..., ξm , і табулювати значення функцій Λk1, ξ2, ..., ξm) необхідно для багаторазово більшої кількості точок. Остання обставина робить застосування методу динамічного програмування явно нераціональним або навіть просто неможливим. Дану проблему його основоположник Р. Беллман ефектно назвав «прокльоном багатомірності». У цей час розроблені певні шляхи подолання зазначених труднощів.