Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Методи розв’язування задач динамічного програмування
Нехай процес оптимізації розбитий на п кроків. На кожному кроці потрібно визначити два типи змінних - змінну стану S та змінну керування х. Змінна стану S визначає, в яких станах може бути система на k- мукроці. Залежно від S на цьому кроці можна використати деякі керування, які характеризуються змінною х. Використання керування х на k- мукроці дає деякий результат fk(S, xk) iпереводить систему в деякий новий стан S'(S, xk). Для кожного можливого стану на k- мукроці (з усіх можливих керувань) вибирається таке керування хк, щоб результат, якии отримаємо з k- го по п- йкрок був оптимальним. Числова характеристика цього результату називається функцією Белмана Fk(S) та залежить від номера кроку k і стану системи S. Отже, сутність принципу оптимальності Белмана полягає в тому, що яким би не був стан системи в результаті певної кількості кроків, на найближчому кроці керування потрібно вибирати так, щоб воно разом з оптимальним керуванням на всіх наступних кроках приводило до найкращого виграшу. Весь розв’язок задачі розбивається на два етапи. На першому етапі знаходять функцію Белмана й оптимальне керування для всіх можливих станів на кожному кроці, починаючи з першого. На останньому п- мукроці знайти оптимальне керування і значення функції Белмана Fn(S) нескладно, оскільки Fn(S) = max{fk(S, xn)}, де максимум знаходять за всіма можливими значеннями . Подальші розрахунки проводять згідно з рекурентним співвідношенням, яке пов’язує функцію Белмана на кожному кроці з тією ж функцією, обчисленою на попередньому кроці: Fk(S) = max{fk(S, , xk) + Fk-1(S, xk)} (8.4) Цей максимум (чи мінімум) знаходиться за всіма можливими для k i S значеннями керованої змінної хk. Після того, як функція Белмана і відповідне оптимальне керування знайдені для всіх кроків з першого до п- го(на першому кроці k=1 стан системи рівний її початковому стану ), виконуємо другий етап розв’язання задачі згідно з алгоритмом зворотної прогонки. Знаючи оптимальне керування на n -му кроці хп, ми можемо шукати оптимальне керування на (п-1) кроці доти, доки не дійдемо до першого. Таким чином, в процесі оптимізації керування методом динамічного програмування багатокроковий процес виконується двічі: перший раз - з початку до кінця, в результаті чого знаходимо умовні оптимальні керування і умовні оптимальні виграші; другий раз - від кінця до початку, коли нам залишається тільки «прочитати» вже готове керування, що складається з оптимальних покрокових управлінь. 8.3. Прикладні моделі динамічного програмування (модель оптимального розподілу фінансових ресурсів між інвестиційними проектами) Розглянемо виробничу ситуацію, пов’язану з аналізом пропозицій відносно збільшення виробничих потужностей підприємств фірми. Для можливого розширення потужностей фірма виділяє фінансові ресурси розміром х, які необхідно розділити між проектами в такий спосіб, щоб одержати максимально можливий сумарний приріст випуску продукції. Позначимо через x і - розмір інвестицій, виділених під і -ий проект (), де і - індекс проекту. Отже, має місце рівність: (8.5) На основі попереднього аналізу встановлено, що приріст продукції внаслідок реалізації і- гопроекту задається функцією . Тоді сумарний приріст продукції фірми становитиме: (8.6) Отже, наша задача полягає у заходженні таких значень які задовольняють (8.5) і забезпечують максимум функції (8.6). Позначимо максимальний сумарний приріст продукції, одержаний при розподілі інвестицій розміром х для перших k проектів, через Fk(x), причому , . Для визначення функцій Fk(x) побудуємо рекурентне рівняння за допомогою кількох етапів. Почнемо з розподілу наявних засобів для першого проекту. Знайдемо максимальне значення цього приросту за формулою:
Переходимо до другого етапу розрахунків. Нам необхідно знайти оптимальний варіант розподілу інвестицій розміром х за умови, що вони виділені першому та другому проекту. Тут слід враховувати отриману найкращу ефективність для першого проекту. Припустимо, що на другий проект виділені інвестиції розміром х2, які дають приросту продукції, а залишок (х-х2) виділяється першому проекту, який дає приросту. Тоді максимальний приріст продукції, отриманий від оптимального розподілу всіх інвестицій між першим і другим проектами буде:
Переходимо до третього етапу, на якому необхідно знайти оптимальний варіант розподілу інвестицій за умови, що вони виділяються першим трьом проектам разом. Нехай на третій проект виділено х 3 одиниць коштів, які в свою чергу даватимуть для нього приріст продукції розміром . Наявний залишок (х-х3) надамо першому та другому проектам, які при оптимальному розподілі дають приріст F2(x-x3) грошових одиниць. Отже, максимальний ефект, який отримаємо від розподілу інвестицій між першими трьома проектами буде: . Розглянемо загальний випадок розподілу інвестицій для перших k проектів. Нехай k- мупроекту виділено хк одиниць інвестицій, які забезпечать йому приріст продукції розміром fk(хk). Залишок інвестицій (х-хk) віддамо першим (k-1) проектам і вони при оптимальному розподілі принесуть фірмі приросту продукції. При цьому фірма отримає сумарний приріст продукції рівний: Отже, ми отримали рекурентне співвідношення (8.7), яке представляє собою рівняння Белмана для задачі (8.5) – (8.6).
ЗМІСТ
РЕКОМЕНДОВАНА ЛІТЕРАТУРА
|