Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
R_5.doc
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
297.47 Кб
Скачать

Розділ 5. Динамічні економіко-математичні моделі з єдиним критерієм оптимальності.

5.1. Загальна задача динамічного програмування, принцип декомпозиції.

Реальні економічні процеси та явища є динамічними за своєю природою, оскільки функціонують і розвиваються не лише у просторі, а й у часі. Народне господарство, його галузі, регіони чи окремі підприємства мають розробляти стратегічні та тактичні плани. Перші визначаються за допомогою так званих динамічних моделей, розв’язки яких знаходяться методами динамічного програмування.

Загальна задача динамічного програмування може бути зформульована наступним чином: треба визначити таке управління X*, яке переводить систему із початкового стану S0 у кінечний стан Sn , при якому цільова функція приймає найбільше (найменше) значення F(S0., X*)→extr.

Динамічне програмування визначає оптимальне рішення п-вимірної задачі шляхом її розбиття – декомпозиції на п етапів, кожен з яких представляє собою підзадачу відносно однієї змінної. Обчислювальні переваги такого підходу полягають в тому, що досліджується рішення одномірних оптимізаційних підзадач замість великої п-вимірної задачі. Фундаментальним принципом побудови моделей динамічного програмування та декомпозиції задачі на етапи є оптимальність. Метод рішення задачі на кожному з п етапів залежить від типу оптимізаційної моделі на окремому етапі, тому методи динамічного програмування не пропонують обчислювальних алгоритмів безпосередньо для кожного етапу. Обчислювальні процедури розв’язку оптимізаційних задач на кожному етапі формуються та реалізуються окремо, що, в принципі не виключає застосування єдиного алгоритма для всіх етапів.

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

Приклад 5.1. Задача про найкоротший шлях. Припустимо, що необхідно обрати найкоротший шлях між двома населеними пунктами. Мережа доріг, показана на рис.5.1., представляє можливі маршрути між початковим населеним пунктом 1 та кінечним пунктом 7. Маршрути пролягають через проміжні пункти, позначені номерами 2 – 6.

рис. 5.1. Мережа доріг до задачі 5.1.

Відстані між пунктами подані цифрами над стрілками, що вказують напрямок руху від пункту 1 до пункту 7.

У основі обчислювальних процедур динамічного програмування покладено принцип оптимальності, вперше сформульований у 1953 році американським математиком Р.Е. Беллманом: яким би не був стан системи у результаті будь-якої кількості кроків, на найближчому кроці треба вибирати управління так, щоб воно у сукупності з оптимальним управлінням на усіх попередніх кроках приводило до оптимального виграшу на усіх наступних кроках, включаючи виграш на даному кроці. Якщо вважати усі кроки незалежними, тоді оптимальним управлінням буде те управління, яке забеспечує максимальний виграш саме на цьому кроці. Але при виборі крокового управління необхідно враховувати наступні вимоги:

1) можливі результати попереднього кроку;

2) вплив управління на кожному кроці на усі наступні кроки які залишилися до кінці процесу.

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

Умовна оптимізація. На першому етапі розв’язку задачі, який називається умовною оптимізацією, визначаються функції Беллмана і оптимальне управління для усіх можливих станів на кожному кроці, починаючи з останнього у відповідності до алгоритму «зворотньої прогонки». На останньому, n-му кроці оптимальне управління – xn* визначається функцією Беллмана: F(S) =max{Wn(S,xn)}, у відповідності до якої максимум вибирається з усіх можливих значень xn , причому xn є Х, де Х - область усіх можливих покрокових управлінь системи.

Подальше обчислення виконується у відповідності до рекурентного співвідношення, яке пов’язує функцію Беллмана на кожному кроці з функцією Беллмана обчисленою на попередньому кроці. Загальний вигляд рекурентного співідношення такий:

Fn(S) = max {Wn(S,xn) + Fk+1(S1(S,xk))}, xk є X.

Цей максимум (або мінімум) визначається для усіх можливих для k і S значенням змінної управління Х.

Безумовна оптимізація. Після того, як функція Беллмана і відповідні оптимальні управління знайдені для усіх кроків з n по перший , здійснюється другий етап розв’язку задачі, названий безумовною оптимізацією. Користуючись тим, що на першому кроці (k=1) стан системи відомий – це її початковий стан S0, можна знайти оптимальний результат для усіх n кроків і оптимальне управління на першому кроці х1, яке здійснює цей результат. Після застосування цього управління система перейде у інший стан S1(S,x1*), знаючи який, можна, користуючись результатами умовної оптимізації, знайти оптимальне управління на другому кроці x2*, і так далі до останнього n –кроку.

Обчислювальну схему динамічного програмування можна будувати на мережах, а також за алгоритмом «прямої прогонки» та «зворотньої прогонки»

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]