- •З дисципліни
- •1 Змістовий модуль 1. Лінійне та нелінійне програмування
- •Тема 1 «Введення в дисципліну. Побудова математичних моделей проблемних ситуацій»
- •1. Загальна методологія дослідження операцій
- •2. Модель операції, основні принципи її побудови
- •3. Методика проведення дослідження операцій
- •4. Типові класи задач дослідження операцій
- •Тема 2 «Задачі математичного програмування (мп)»
- •1. Загальна постановка задачі математичного програмування (мп)
- •2. Класифікація задач мп
- •3. Типи максимумів. Теорема Вейєрштрасса та теореми про достатні умови глобального максимуму
- •4. Специфіка задач математичного програмування
- •Тема 3 «Лінійне програмування»
- •1. Загальна постановка задачі лінійного програмування (злп)
- •2. Форми запису злп (загальна, стандартна, канонічна форми)
- •Приклади практичних задач лінійного програмування
- •Тема 4 «Геометрична інтерпретація злп»
- •1. Графічний метод розв'язання злп. Умови графічного розв'язання злп.
- •2. З’ясування основних особливостей та властивостей розв’язків злп за допомогою геометричної інтерпретації.
- •3. Основні етапи графічного розв'язання злп (Алгоритм геометричної інтерпретації злп)
- •Тема 5 «Симплексний метод розв'язування злп»
- •1. Аналітичні методи розв'язування злп
- •2. Ідея симплексного методу розв'язування злп
- •3. Основні теореми, на яких базується симплексний метод
- •4. Симплекс-алгоритм розв'язування невироджених злп
- •Тема 6 «злп з штучним базисом»
- •1. Ідея симплексного методу розв'язування злп із штучною базою
- •3. Алгоритм розв'язання злп із штучною базою
- •Тема 7 «Двоїстість. Двоїстість (спряженість) у лінійному програмуванні»
- •1. Поняття двоїстості в лінійному програмуванні
- •2. Основні теореми двоїстості та їх економічний зміст
- •Тема 8 «Спеціальні задачі мп. Спеціальні методи розв’язання злп»
- •Транспортна задача ( т-Задача) та її математична модель.
- •2. Методи визначення опорного плану т-Задачі
- •3. Методи розв’язання т-задач
- •Розв'язання т-задач методом потенціалів
- •Тема 9 «Параметричне програмування»
- •2. Моделі задач параметричного програмування
- •Тема 10 «Нелінійне програмування»
- •1. Загальна постановка задачі нелінійного програмування
- •2. Класичні умови екстремуму. Метод множників Лагранжа
- •4. Задача нелінійного програмування й сідлова точка
- •5. Умови Куна-Таккера для знп. Теорема Куна-Таккера
- •2 Змістовий модуль 2. Дискретне та стохастичне програмування
- •Тема 1 «Дискретне програмування»
- •1. Загальні характеристика дискретних задач
- •2. Класифікація задач дискретного програмування. Математичні моделі задач дискретного програмування
- •1. Як у загальному виді надається задача дискретного програмування?
- •Тема 2 «Клас цілочислових лінійних задач»
- •Особливості задач цілочисельне програмування. Моделі цзлп
- •Моделі цзлп
- •2. Метод відсікань (метод Гоморі) розв'язання зцлп
- •3.Комбінаторні методи розв’язування цзлп
- •4. Метод гілок та меж в задачах цілочислового програмування. Ідея методу гілок і меж, ознака оптимальності плану
- •Тема 3 «Динамічне програмування»
- •1. Загальна структура задач динамічного програмування
- •2. Принципи динамічного програмування. Принцип оптимальності Беллмана
- •3. Приклади задач динамічного програмування
- •Тема 4 «Стохастичне програмування»
- •1. Загальна характеристика задач стохастичного програмування. Методи розв’язання задач стохастичного програмування.
- •2. Приклади задач стохастичного програмування
- •3 Змістовий модуль 3. Методи оптимізації
- •Тема 1 «Методи оптимізації функцій, що диференціюються та що не диференціюються»
- •Тема 2 «Методи оптимізації в задачах великої розмірності та методи багатокритеріальної оптимізації»
- •1. Методи оптимізації багатовимірних задач
- •Градієнтні методи
- •Найшвидший підйом з використанням одномірного пошуку
- •Метод найшвидшого спуску
- •Метод Флетчера – Рівса
- •Метод Девідона – Флетчера – Пауела
- •Метод конфігурацій Хука – Дживса
- •Метод конфігурацій Розенброка
- •4 Навчально–методичні матеріали з дисципліни
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 , і табулювати значення функцій Λk (ξ1, ξ2, ..., ξm) необхідно для багаторазово більшої кількості точок. Остання обставина робить застосування методу динамічного програмування явно нераціональним або навіть просто неможливим. Дану проблему його основоположник Р. Беллман ефектно назвав «прокльоном багатомірності». У цей час розроблені певні шляхи подолання зазначених труднощів.
