- •Національний транспортний універсітет Кафдра інформаційних систем і технологій Гавриленко в.В., Цуканов і.М.
- •Навчальний посібник
- •Анотація
- •План курсу
- •Тема 1. Лекція 1. Вступ. Цілі, критерії, обмеження.
- •Тема 2. Лекція 2. Лінійне програмування: графічний метод і розробка моделі.
- •Тема 3. Лекція 3. Транспортна задача.
- •Лекція 4. Транспортна задача: алгоритм вирішення.
- •Тема 4. Лекція 5. Симплекс-метод.
- •Тема 5. Лекція 6. Динамічне програмування.Розподілення капіталовкладень.
- •Лекція 7. Динамічне програмування. Прокладення траси.
- •Тема 6. Лекція 8. Сіткове планування та управління (спу). Сіткові графіки.
- •Лекція 9. Сіткове планування та управління (спу). Аналіз та оптимізація.
- •Тема 7. Лекція 10. Управління запасами.
- •Тема 8. Лекція 11. Складні системи. Класифікація задач прийняття рішень і прийняття рішень в умовах невизначеності.
- •Питання до курсу
- •Тема 1.
- •Тема 2.
- •Тема 3.
- •Тема 4.
- •Тема 5.
- •Тема 6.
- •Тема 7.
- •Тема 8.
- •Типи задач.
- •Література.
Тема 5. Лекція 6. Динамічне програмування.Розподілення капіталовкладень.
Динамічне програмування (ДП)– метод оптимізації, пристосований до операцій, у яких процес прийняття рішення може бути розбитий на етапи (кроки). Такі операції називаютьсябагатокроковими.
Моделі лінійного програмування, розглянуті раніше, використовуються для прийняття великомасштабних (макроекономічних) рішень.
У великих економічних системах постійно потрібно приймати локальні (мікроекономічні) рішення. Моделі ДПцінні тим, що дозволяють на основі стандартного підходу при мінімальному втручанні людини приймати такі рішення. У тому випадку, якщо кожне окреме рішення не оцінюється як істотне, то в сукупності ці рішення можуть вплинути на підсумковий прибуток.
Моделі ДПзастосовуються при рішенні таких задач:
розробка правил управління запасами, що встановлюють момент поповнення запасів і розмір поповнюючого запасу;
при розробці принципів календарного планування виробництва і вирівнювання зайнятості в умовах коливного попиту на продукцію;
при розподілі дефіцитних капітальних вкладень між можливими новими напрямками їхнього використання;
при складанні календарних планів поточного і капітального ремонту складного устаткування і його заміни;
при розробці довгострокових правил заміни основних фондів, що вибувають з експлуатації (заміна устаткування);
оптимізації маршрутів інформації й ін.
У загальному вигляді задачу ДПможна сформулювати в такому вигляді. Розглядається керований процес. У результаті керування система (об'єкт керування)Sпереводиться з початкового стануs0у станs’. Припустимо, що керування можна розбити наnкроків, тобто рішення приймається послідовно на кожному кроці, а керування, щопереводитьсистемуSз початкового стану в кінцевий являє собою сукупністьnпокрокових управлінь.
Позначимо через Хk керування наk-ому кроці(k=1, 2, ... n).ЗмінніХkзадовольняють деяким обмеженням, тобто є припустимими. НехайХ(Х1, Х2, … Хn)– керування, що переводить системуSзі стануs0устан s’. Позначимо черезskстан системи післяk-го кроку керування. Одержимо послідовність станівs0, s1, … sk-1, sk, …, sn-1, sn = s’...
Показник ефективності розглянутої керованої операції – цільова функція – залежить від початкового стану і керування: Z = F(s0, X).
Задача покрокової оптимізації (задача ДП) формулюєтьсятак: визначити таке припустиме керуванняХ, що переводить системуSзі стануs0у станs’, при якому цільова функція приймає найбільше (найменше) значення.
Модель ДП.має такі особливості:
Задача оптимізації інтерпретується як n-кроковий процес керування.
Цільова функція дорівнює сумі цільових функцій кожного кроку.
Вибір керування на k-ому кроці залежить тільки від стану системи до цього кроку, не впливає на попередні кроки (немає зворотного зв'язку).
Стан skпісляk-го кроку керування залежить тільки від попереднього стануsk-1і керуванняХk (відсутність післядії).
На кожному кроці керування Хk залежить від кінцевого числа керуючих перемінних, а станsk – від кінцевого числа параметрів.
Замість загальної постановки задачі ДП із фіксованим числом кроківnі початковим станомs0 розглянемо послідовність задач задаючи послідовноn= 1, 2, … при різнихs- однокрокову,двокроковуі т.ін. – використовуючи принцип оптимальності, сформульованийР. Беллманому 1953 р.
Принцип оптимальності:
У будь-якому стані sсистеми в результаті деякого числа кроків, на найближчому кроці потрібно вибирати керування так, щоб воно в сукупності з оптимальним керуванням на всіх наступних кроках приводило до оптимального виграшу на всіх кроках, що залишилися, включаючи поточний. Даний принцип вірний, якщо процес керування – без зворотного зв'язку, тобто керування на даному кроці не повинне впливати на попередні кроки.
Уведемо деякі додаткові позначення.
На кожному кроці будь-якого стану системи sk-1рішенняХkпотрібно вибирати з урахуванням того, як цей вибір впливає на наступний станskі подальший процес керування, що залежить відsk, тому що це випливає з принципу оптимальності.
Однак є крок, останній, котрий можна планувати оптимально для будь-якого стануsn-1, виходячи тільки з міркувань цього кроку.
Розглянемо n-й крок:sn-1- стан системи до початкуn-го кроку, sn = s’- кінцевий стан,Хn -керування наn-му кроці,fn(sn-1, Хn)- цільова функція (виграш) n - гокроку.
Відповідно до принципу оптимальності, Хn потрібновибирати так, щоб для будь-яких станівsn-1одержатимаксимум(мінімум) цільової функції на цьому кроці.
Позначимо через Z*n (sn-1)максимум цільової функції - показника ефективностіn-го кроку за умови, що до початку останнього кроку системаSбула в довільному станіsn-1, анаостанньому кроці керування було оптимальним.
Z*n (sn-1) називаєтьсяумовним максимумомцільової функції наn-му кроці. Очевидно, що
Z*n (sn-1) = max fn(sn-1, Хn) (5.1)
{Хn}
Максимізація ведеться по всіх припустимих керуваннях Хn.
Рішення Хn, при якому досягаєтьсяZ*n (sn-1), також залежить відsn-1і називається умовним оптимальним керуванням наn-му кроці. Воно позначається черезХ*n (sn-1).
Вирішивши одномірну задачу локальної оптимізації по рівнянню (5.1), знайдемо для всіх можливих станів sn-1дві функції:Z*n (sn-1) іХ*n (sn-1).
Розглянемо тепер двокроковузадачу: приєднаємо доn-го кроку(n-1)-й.
Для будь-яких станів sn-2, довільнихкерувань Хn-1і оптимальному керуванні наn-му кроці значення цільової функції на двох останніх кроках дорівнює:
fn-1(sn-2, Хn-1) + Z*n (sn-1) (5.2)
Відповідно до принципу оптимальності для будь-яких sn-2рішення потрібно вибирати так, щоб воно разом з оптимальним керуванням на останньому (n-му) кроці приводило б до максимуму цільової функції на двох останніх кроках. Отже, потрібно знайти максимум виразу (5.2) по всіх припустимих керуванняхХn-1.Максимум цієї суми залежить відsn-2, позначається черезZ*n-1 (sn-2)і називаєтьсяумовним максимумом цільової функції при оптимальному керуванні на двох останніх кроках. Відповідне керуванняХn-1на(n-1)-му кроці позначається черезХ*n-1 (sn-2)і називаєтьсяумовним оптимальним керуваннямна(n-1)-му кроці.
Z*n-1 (sn-2) = max {fn-1 (sn-2, Хn-1) + Z*n (sn-1)} (5.3)
{Хn-1}
У результаті максимізації тільки за однією змінною відповідно до рівняння (5.3) знову виходять дві функції: Z*n-1 (sn-2) іХ*n-1 (sn-2).
Далі розглядається трикроковазадача: до двох останніх кроків приєднується(n - 2)-й і т.д.
Позначимо через Z*k (sk-1)умовний максимум цільової функції, отриманої при оптимальному керуванні наn-k+1кроках, починаючи зк-го до кінця, за умови, що до початкук-го кроку система знаходився в станіsk-1. Фактично ця функція дорівнює
n
Z*k (sk-1) = max ∑ fi (si-1, Хi)
{(xk,…xn)} i=k
Тоді
n
Z*k+1 (sk) = max ∑ fi (si-1, Хi)
{(xk+1,…xn)} i=k+1
Мал. 5.1.
Цільова функція на n-k останніх кроках при довільному керуванні Хk на k-му кроці й оптимальному керуванні на наступних n-k кроках дорівнює
fk(sk-1, Хk) + Z*k+1 (sk)
Відповідно до принципу оптимальності, Хk вибирається з умови максимуму цієї суми на основі рекурентних співвідношень, що дозволяють знайти попереднє значення цільової функції, знаючи наступне тобто
Z*k (sk-1) = max {fk (sk-1, Хk) + Z*k+1 (sk)} (5.4)
{Хk}
k = n-1, n-2, … 2, 1.
Рівняння (5.4) називається рівнянням Беллмана.
Керування Хkнаk-мкроці, при якому досягається максимум у (5.4), позначається черезХ*k (sk-1)і називаєтьсяумовним оптимальним керуванням на k -му кроці.
Якщо з (5.1) знайти Zn*(sn-1), то приk = n-1з (5.4) можна визначити вираз дляZn-1*(sn-2)і відповідніХ*n-1 (sn-2)вирішивши задачу максимізації для всіх можливих значеньsn-2. Після цього зZn-1*(sn-2)з використанням (5.4) знаходяться рівняння станів.
Процес рішення рівнянь (5.1) і (5.4) називається умовною оптимізацією.
У результаті умовної оптимізації виходять дві послідовності.
Умовних максимумів цільової функції на останньому, на двох останніх, на …, на nкроках:
Zn*(sn-1), Zn-1*(sn-2), …, Z2*(s1), Z1*(s0).
Умовних оптимальних керувань на n-ому, (n-1)– ому, … 1-мукроках:
Хn*(sn-1), Хn-1*(sn-2), …, Х2*(s1), Х1*(s0).
Цей спосіб відповідає рішенню задачі ДПпо «зворотній схемі» (алгоритм «зворотного прогону»), коли рішення починається з завершального етапу. Помінявшиn-й і 1-й кроки місцями, одержимо «пряму схему» (алгоритм «прямого прогону») рішення задачіДП.
Використовуючи ці послідовності, можна знайти рішення задачі ДП при данихnіs0. За визначенням (5.1)Z1*(s0)– умовний максимум цільової функції заnкроків за умови, що до початку 1-го кроку система була в станіs0, тобто
Zmax = Z1*(s0).
Після цього, використовуючи послідовність умовно оптимальних керувань, при фіксованому s0одержуємоХ1* = Х1*(s0), потім, з огляду на відсутність післядії, знаходимоs*1 і підставляємо цей стан у послідовність умовних оптимальних керувань і т.д. Одержуємо:
Х1* = Х1*(s0) à s*1 è Х*2 = Х2*(s1)à s*2 è … à s*n-1 è Х*n= Хn*(sn-1).
Одержуємо оптимальне рішення задачі ДП:
Х*(Х*1, Х*2, … Х*n).
Загальна схема застосування методу ДП має такий вид.
Вибрати спосіб розподілу процесу керування на кроки.
Визначити параметри стану sk і змінні керування Хkна кожному кроці.
Записати рівняння станів.
Увести цільові функції k-го кроку і сумарну цільову функцію.
Ввести в розгляд умовні максимуми (мінімуми) Zk* (sk-1)і умовне оптимальне керування наk-ому кроці:Хk*(sk-1), k=n, n-1, … 2, 1...
Записати основні рівняння (Беллмана) для обчислювальноїсхеми ДП дляZn*(sn-1)іZk* (sk-1),k = n-1, … 2, 1...
Вирішити послідовно рівняння (Беллмана) (умовна оптимізація) і отримати дві послідовності функцій:{Zk* (sk-1)} і {Хk*(sk-1)}.
Після виконання умовної оптимізації одержати оптимальне рішення для конкретного початкового стану s0:
а) Zmax = Z1*(s0)і
б) по ланцюжку s0èХ*1 à s*1 èХ*2 à s*2 è …è Х*n-1 à s*n-1 è Х*n à s*n оптимальне керування: Х*(Х*1, Х*2, … Х*n).
Приклад 1.Задача розподілу капіталовкладень.
На підприємстві розглядаються чотири проекти розширення, що характеризуються величиною прибутку, пов'язаної з реалізацією кожного проекту окремо.
Планується здійснити капіталовкладення в розмірі 3 мільйонів гр.о.
Знайтитакий розподіл капіталовкладень, щоб дістати максимальний прибуток від реалізації всіх проектів.
|
1 млн. |
2 млн. |
3 млн. |
1 |
140 |
250 |
350 |
2 |
200 |
320 |
400 |
3 |
300 |
350 |
450 |
4 |
180 |
270 |
330 |
Рішення. Дану задачу можна вирішити шляхом прямого перебору всіх можливих варіантів рішення. Однак такому способупритаманнінедоліки:
для задач великої розмірності потрібний значний обсяг обчислень;
інформація, отримана при аналізі окремих проміжних варіантів, ніяк надалі не використовується.
Метод ДП дозволяєв значній мірі позбутися цих недоліків. В основу методу покладена ідея поступової покрокової оптимізації. Дана задача розбивається на 4 етапи. Свідомо неоптимальні рішення, отримані на проміжних етапах, відкидаються. Використання інформації про ряд рішень дозволяє в значній мірі скоротити обсяг обчислень.
Задача вирішується з застосуванням сіткової моделі.
Спочатку визначаються етапи рішення задачі, що пов'язані між собою обмеженнями на сумарний обсяг капіталовкладень.
I етап. Засоби вкладаються тільки в перший проект.
II етап. Засоби вкладаються в перший і другий проекти разом.
III етап. Засоби вкладаються в перший, другий, третій проекти разом.
IV етап. Засоби вкладаються в усі чотири проекти.
Загальна задача розбивається на підзадачі, що відповідають кожному етапу, не порушуючи при цьому умови допустимості. Позначимо:
Х1 – обсяг капіталовкладень розподілених на етапі 1;
Х2 – обсяг капіталовкладень розподілених на етапах 1 і 2;
Х3 – обсяг капіталовкладень розподілених на етапах 1, 2 і 3;
Х4 – обсяг капіталовкладень розподілених на етапах 1, 2, 3 і 4.
На кожному етапі знаходиться умовно оптимальнерішення.
Умовно оптимальний виграш для вершини 1 II етапу:
Z2* (1) = max {0+200; 140+0} = 200.
Дуги другого етапу характеризуються величинами Х1 іХ2. РізницяΔХ2=Х1-Х2- інвестиції в другий проект.
Умовно оптимальний виграш для вершини 2 II етапу:
Z2* (2) = max {0+320; 140+200; 250+0} = 340.
Найкраще рішення для II етапу:
Z2* (Х2) = max { Z1* (Х1) + П2}.
Найкраще рішення для III етапу:
Z3* (Х3) = max { Z2* (Х2) + П3}.
ΔХ1 = 0; ΔХ2 = 1; ΔХ3 = 1; ΔХ4 = 1.
Розглянута мережна модель називається концептуальною, тому що вона відображає уявний, а не існуючий об'єкт.