Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Метод функціональних рівнянь Р.Белмана



Американським економістом Р.Белманом було показано, що знаходження оптимального розв'язку багатоетапного процесу зводиться до розв'язування деякого функціонального рівняння.

Нехай s o і sN - відповідно початковий і кінцевий етапи N- крокового процесу. Позначимо через fN (s o) екстремальне значення функції мети, отримане за N кроків при оптимальній стратегії u управління процесом, який знаходився в початковому стані s o.

Припустимо, що на першому кроці ми отримали розв'язок u о і процес перейшов із стану s o в стан s 1. Досягнутий при цьому ефект характеризується значенням r 0(s o, u o) функції ri (si, ui). Припустимо, що після першого кроку для управління процесом застосовувалася оптимальна стратегія, при якій на решті N -1 етапів функція мети fN -1(s 1) досягала екстремального значення. При описаних умовах загальна оцінка якості управління за N кроків виразиться су­мою r 0(s o, u o)+ fN -1(s 1), а екстремальне значення fN (so) функції мети за N кроків дорівнюватиме:

fN (so)=extr{ r 0(s o, u o)+ fN -1(s 1): u o} (2.20)

Позначимо через fN -1(si) екстремум функції мети, отриманий на останніх N-i кроках, якщо початковим був стан si,. Тоді за аналогією з рівністю (2.20) одержимо:

fNi (si)=extr{ ri (si, ui)+ fN -( i +1)(si+ 1): ui }, i =0,…, N –1. (2.21)

Вираз (2.21) і є математичним записом принципу оптимальності. Його називають основним функціональним рівнянням динамічного програмування. Воно дає змогу описати процедуру прийняття покрокових рішень і поступово сформу­вати оптимальну стратегію управління всім N -кроковим процесом. Із (2.21) вид­но, що при обчисленні чергового значення функції fNi, аргументом вико­ристовується попереднє значення функції fN -( i +1). Співвідношення, які мають та­ку властивість, називають рекурентними. Вся послідовність обчислень, яка приводить до fN (s o), може бути виконана, якщо встановлено значення функцій fN -( i +1).

У кожній конкретній задачі функціональне рівняння (2.21) має свій специфічний вид. А метод функціональних рівнянь є одним із основних методів розв'язування задач динамічного програмування.

Задача розподілу ресурсів

Однією із задач динамічного програмування є оптимальний розподіл ресурсів. В загальному вигляді задача оптимального розподілу ресурсів може бути задана у такій формі.

Є певна кількість ресурсів (матеріальні, фінансові, трудові), які необхідно розподілити між різноманітними об’єктами їх використання на окремих проміжках планового періоду так, щоб одержати максимальну сумарну ефективність від вибраного способу розподілу. Показником ефективності може бути прибуток, собівартість, сумарні затрати, тощо.

Приклад. Територіальний орган управління підрозділами цивільного захисту одержав 7 пожежно-рятувальних автомобілів, які необхідно розподілити між 5 підрозділами. Кожен з цих підрозділів при надходженні до нього автомобілів в кількості u підвищує рівень технічної готовності, який залежить від u, тобто задано функцію fi (u). Всі функції fi (u), i =1,2,3,4,5, відомі (рис. 2.27). Яким повинен бути такий розподіл, щоб в сумі одержати найбільшу технічну готовність по всіх підрозділах?

u f 1(u) f 2(u) f 3(u) f 4(u) f 5(u)
  0,74 0,85 0,90 0,88 0,70
  0,81 0,90 0,92 0,91 0,76
  0,85 0,93 0,93 0,92 0,80
  0,90 0,94 0,94 0,93 0,85
  0,92 0,95 0,95 0,94 0,88
  0,93 0,96 0,96 0,95 0,91
  0,94 0,97 0,96 0,95 0,93
  0,95 0,97 0,96 0,95 0,94

Рис. 2.27.

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

Система, якою керують в даній задачі – система розподілу техніки. Стан системи перед кожним кроком характеризується деяким числом – кількістю нерозподілених машин. Кроком управління є кількість автомобілів, які виділені управлінням: u 1, u 2,..., um. Необхідно знайти оптимальне управління, тобто сукупність чисел u 1*, u 2*,..., um *, яке дає максимальне підвищення рівня технічної оснащеності по управлінню в цілому W, що може бути записане у вигляді:

W = W 1+ W 2+...+ W 5 = f 1(u 1)+ f 2(u 2)+...+ f 5(u 5) ® max

Почнемо оптимізацію з п’ятої частини (кроку). Нехай залишок машин перед цим кроком s. Очевидно, що всі s автомобілів треба передати п’ятій частині. Тому оптимальне управління на 5-му кроці:

u 5(s) = s,

а умовний оптимальний виграш:

W 5(s) = f 5(s)

Для значень s =1,2,...,7 за таблицею (функцією технічної оснащеності fi (u)) для кожного значення s визначимо u 5(s) и W 5(s):

u5 (0) = 0, W 5(0) = 0,70;

u5 (1) = 1, W 5(1) = 0,76;

u5 (2) = 2, W 5(1) = 0,80;

u5 (3) = 3, W 5(1) = 0,85;

u5 (4) = 4, W 5(1) = 0,88;

u5 (5) = 5, W 5(1) = 0,91;

u5 (6) = 6, W 5(1) = 0,93;

u5 (7) = 7, W 5(1) = 0,94.

Одержані дані запишемо в таблицю (Рис. 2.28). Останній крок оптимізовано.

s i =5   i =4   i =3   i =2   i =1  
  u 5(s) W 5(S) u 4(s) W 4(S) u 3(s) W 3(S) u 2(s) W 2(S) u 1(s) W 1(S)
    0,70   1,58   2,48   3,33   4,36
    0,76   1,64   2,54   3,39   4,40
    0,80   1,68   2,58   3,44   4,41
    0,85   1,73   2,63   3,48   4,43
    0,88   1,76   2,66   3,53   4,40
    0,91   1,79   2,69   3,56   4,37
    0,93   1,78   2,72   3,59   4,33
    0,94   1,84   2,74   3,62   4,28

Рис. 2.28.

Перейдемо до передостанньої 4-ї частини (кроку). Нехає у нас є s нерозподілених автомобілів. Позначимо W 4(s) умовний оптимальний виграш на двох останніх кроках: 4-му і 5-му (який вже оптимізовано). Якщо виділити на 4-му кроці 4-ій частині u автомобілів, то на останній крок залишиться su. Отже, виграш на двох останніх кроках буде:

W 4(s) = f 4(u)+ W 5(s–u)

Знову для всіх значень s =1,2,3,...,7 та використовуючи дані першого стовпчика таблиці (Рис. 2.28), для кожного значення s обчислимо u 4(s), W 4(s) і виділимо максимальне значення, яке і є оптимальним виграшем за два останні кроки:

s =0: u 4(0) = 0; W 4(0) = 0.88+0.70+0.90 = 2.48;

s =1: u 4(1) = 1; W 4(1) = 0.70+0.91 = 1.64;

u 4(1) = 0; W 4(1) = 0.88+0.76 = 1.64;

s =2: u 4(2) = 2; W 4(2) = 0.92+0.70 = 1.62;

u 4(2) = 1; W 4(2) = 0.91+0.76 = 1.67;

u 4(2) = 0; W 4(2) = 0.88+0.80 = 1.68;

s =3: u 4(3) = 3; W 4(3) = 0.93+0.70 = 1.63;

u 4(3) = 2; W 4(3) = 0.92+0.76 = 1.0;

u 4(3) = 1; W 4(3) = 0.91+0.80 = 1.71;

u 4(3) = 0; W 4(3) = 0.88+0.85 = 1.73;

s =4: u 4(4) = 4; W 4(4) = 0.94+0.70 = 1.64;

u 4(4) = 3; W 4(4) = 0.93+0.76 = 1.69;

u 4(4) = 2; W 4(4) = 0.92+0.80 = 1.72;

u 4(4) = 1; W 4(4) = 0.91+0.85 = 1.76;

u 4(4) = 0; W 4(4) = 0.88+0.88 = 1.76;

s =5: u 4(5) = 5; W 4(5) = 0.95+0.70 = 1.65;

u 4(5) = 4; W 4(5) = 0.94+0.76 = 1.70;

u 4(5) = 3; W 4(5) = 0.93+0.80 = 1.73;

u 4(5) = 2; W 4(5) = 0.92+0.85 = 1.77;

u 4(5) = 1; W 4(5) = 0.91+0.88 = 1.79;

u 4(5) = 0; W 4(5) = 0.88+0.91 = 1.79;

s =6: u 4(6) = 6; W 4(6) = 0.95+0.70 = 1.65;

u 4(6) = 5; W 4(6) = 0.95+0.76 = 1.71;

u 4(6) = 4; W 4(6) = 0.94+0.80 = 1.74;

u 4(6) = 3; W 4(6) = 0.93+0.85 = 1.78;

u 4(6) = 2; W 4(6) = 0.92+0.88 = 1.80;

u 4(6) = 1; W 4(6) = 0.91+0.91 = 1.82;

u 4(6) = 0; W 4(6) = 0.88+0.93 = 1.81;

s =7: u 4(7) = 7; W 4(7) = 0.95+0.70 = 1.65;

u 4(7) = 6; W 4(7) = 0.95+0.76 = 1.71;

u 4(7) = 5; W 4(7) = 0.95+0.80 = 1.75;

u 4(7) = 4; W 4(7) = 0.94+0.85 = 1.79;

u 4(7) = 3; W 4(7) = 0.93+0.88 = 1.82;

u 4(7) = 2; W 4(7) = 0.92+0.91 = 1.83;

u 4(7) = 1; W 4(7) = 0.91+0.93 = 1.84;

u 4(7) = 0; W 4(7) = 0.88+0.94 = 1.82.

В другий стовпчик таблиці (Рис. 2.28) вносимо результати оптимізації на 4-му кроці.

Далі оптимізуємо третій та другий кроки:

W 3(s) = max{ f 3(u)+ W 4(s–u)}, W 2(s) = max{ f 2(u)+ W 3(s–u)}

Маємо наступні результати, які заносимо в третій та четвертий стовпчики таблиці (Рис. 2.28):

s =0: u 3(0) = 0; W 3(0) = 0.88+0.70 = 1.58;

s =1: u 3(1) = 1; W 3(1) = 0.92+1.58 = 2.50;

u 3(1) = 0; W 3(1) = 0.90+1.64 = 2.54;

s =2: u 3(2) = 2; W 3(2) = 0.93+1.58 = 2.51;

u 3(2) = 1; W 3(2) = 0.92+1.64 = 2.56;

u 3(2) = 0; W 3(2) = 0.90+1.68 = 2.58;

s =3: u 3(3) = 3; W 3(3) = 0.94+1.58 = 2.52;

u 3(3) = 2; W 3(3) = 0.93+1.64 = 2.57;

u 3(3) = 1; W 3(3) = 0.92+1.58 = 2.50;

u 3(3) = 0; W 3(3) = 0.90+1.73 = 2.63;

s =4: u 3(4) = 4; W 3(4) = 0.95+1.58 = 2.54;

u 3(4) = 3; W 3(4) = 0.94+1.64 = 2.58;

u 3(4) = 2; W 3(4) = 0.93+1.68 = 2.61;

u 3(4) = 1; W 3(4) = 0.92+1.73 = 2.65;

u 3(4) = 0; W 3(4) = 0.90+1.76 = 2.66;

s =5: u 3(5) = 5; W 3(5) = 0.96+1.58 = 2.57;

u 3(5) = 4; W 3(5) = 0.95+1.64 = 2.59;

u 3(5) = 3; W 3(5) = 0.94+1.68 = 2.62;

u 3(5) = 2; W 3(5) = 0.93+1.73 = 2.66;

u 3(5) = 1; W 3(5) = 0.92+1.76 = 2.68;

u 3(5) = 0; W 3(5) = 0.90+1.79 = 2.69;

s =6: u 3(6) = 6; W 3(6) = 0.96+1.58 = 2.57;

u 3(6) = 5; W 3(6) = 0.96+1.64 = 2.60;

u 3(6) = 4; W 3(6) = 0.95+1.68 = 2.63;

u 3(6) = 3; W 3(6) = 0.94+1.73 = 2.67;

u 3(6) = 2; W 3(6) = 0.93+1.76 = 2.69;

u 3(6) = 1; W 3(6) = 0.92+1.79 = 2.71;

u 3(6) = 0; W 3(6) = 0.90+1.82 = 1.72;

s =7: u 3(7) = 7; W 3(7) = 0.96+1.58 = 2.57;

u 3(7) = 6; W 3(7) = 0.96+1.64 = 2.60;

u 3(7) = 5; W 3(7) = 0.96+1.68 = 2.64;

u 3(7) = 4; W 3(7) = 0.95+1.73 = 2.68;

u 3(7) = 3; W 3(7) = 0.94+1.76 = 2.70;

u 3(7) = 2; W 3(7) = 0.93+1.79 = 2.72;

u 3(7) = 1; W 3(7) = 0.92+1.82 = 2.74;

u 3(7) = 0; W 3(7) = 0.90+1.84 = 2.74.

s =0: u 2(0) = 0; W 2(0) = 0.85+2.48 = 3.33;

s =1: u 2(1) = 1; W 2(1) = 0.90+2.48 = 3.38;

u 2(1) = 0; W 2(1) = 0.85+2.54 = 2.39;

s =2: u 2(2) = 2; W 2(2) = 0.93+2.48 = 3.41;

u 2(2) = 1; W 2(2) = 0.90+2.54 = 3.44;

u 2(2) = 0; W 2(2) = 0.85+2.58 = 3.43;

s =3: u 2(3) = 3; W 2(3) = 0.94+2.48 = 3.42;

u 2(3) = 2; W 2(3) = 0.93+2.54 = 3.47;

u 2(3) = 1; W 2(3) = 0.90+2.58 = 3.48;

u 2(3) = 0; W 2(3) = 0.85+2.63 = 3.48;

s =4: u 2(4) = 4; W 2(4) = 0.95+2.48 = 3.43;

u 2(4) = 3; W 2(4) = 0.94+2.54 = 3.48;

u 2(4) = 2; W 2(4) = 0.93+2.58 = 3.51;

u 2(4) = 1; W 2(4) = 0.90+2.63 = 3.53;

u 2(4) = 0; W 2(4) = 0.85+2.66 = 3.51;

s =5: u 2(5) = 5; W 2(5) = 0.96+2.48 = 3.44;

u 2(5) = 4; W 2(5) = 0.95+2.54 = 3.49;

u 2(5) = 3; W 2(5) = 0.94+2.58 = 3.52;

u 2(5) = 2; W 2(5) = 0.93+2.63 = 3.56;

u 2(5) = 1; W 2(5) = 0.90+2.66 = 3.56;

u 2(5) = 0; W 2(5) = 0.85+2.69 = 3.54;

s =6: u 2(6) = 6; W 2(6) = 0.97+2.48 = 3.45;

u 2(6) = 5; W 2(6) = 0.96+2.54 = 3.50;

u 2(6) = 4; W 2(6) = 0.95+2.58 = 3.53;

u 2(6) = 3; W 2(6) = 0.94+2.63 = 3.57;

u 2(6) = 2; W 2(6) = 0.93+2.66 = 3.57;

u 2(6) = 1; W 2(6) = 0.90+2.69 = 3.59;

u 2(6) = 0; W 2(6) = 0.85+2.72 = 3.57;

s =7: u 2(7) = 7; W 2(7) = 0.97+2.48 = 3.45;

u 2(7) = 6; W 2(7) = 0.97+2.54 = 3.51;

u 2(7) = 5; W 2(7) = 0.96+2.58 = 3.54;

u 2(7) = 4; W 2(7) = 0.95+2.63 = 3.58;

u 2(7) = 3; W 2(7) = 0.94+2.66 = 3.58;

u 2(7) = 2; W 2(7) = 0.93+2.69 = 3.62;

u 2(7) = 1; W 2(7) = 0.90+2.72 = 3.62;

u 2(7) = 0; W 2(7) = 0.85+2.74 = 3.59.

Продовжуючи, дійдемо до 1-ї частини. Тут нам не треба змінювати значення s, оскільки число автомобілів перед першим кроком дорівнює 7:

W * = W 1(7) = max{ f 1(u)+ W 2(7- u)}

Таким чином, максимальне підвищення технічної готовності по всьому управлінні знайдено. Тепер виберемо рекомендації. Максимум технічної готовності управління досягається при відправці 3 автомобілів в 1 частину. Після першого кроку залишається 4 автомобілі. Згідно з таблицею, виділяємо другій частині оптимальну кількість автомобілів - 1, третьому - 0, четвертому - 0 і п’ятому - 3.

Задача вибору найкоротшого маршруту

Іншою задачею динамічного програмування є задача вибору найкоротшого (найшвидшого) маршруту. Ця задача формулюється наступним чином:

На заданій мережі доріг є декілька маршрутів, якими можна добратися з пункту 1 в пункт N. Відомим є час руху між окремими проміжними пунктами мережі. Потрібно вибрати в мережі такий ма­ршрут слідування з пункту 1 в пункт N, щоб сумарна відстань (сумарний час) була найменшою.

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

Для розв'язування задачі методом динамічного програмування розіб'ємо всі пункти мережі на групи. До першої групи віднесемо пункт 1; до другої - пункти, в які можна по­пасти безпосередньо з пункту 1; до третьої - пункти, в які можна попасти без­посередньо з будь-якого пункту другої групи і т.д. Внаслідок такого розбиття рух транспорту з пункту 1 в пункт N набуде поетапного характеру: на першому етапі транспорт рухається з пункту 1 в деякий пункт другої групи, на другому ета­пі - з пункту другої групи в пункт третьої групи і т.д. Таким чином, процес зна­ходження найкоротшого маршруту з пункту 1 в пункт N розкладається на етапи. На кожному з етапів потрібно так вибрати маршрут, щоб час слідування був мінімальним.

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

Приклад. Задано мережу доріг з вказуванням відстаней (Рис. 2.29). Знайти найкоротший шлях слідування з пункту 1 в пункт 7.

Рис. 2.29.

Позначимо через dij відстань між суміжними вузлами i та j, а Uj – найкоротшу відстань між першим та j -им вузлами. За методом Беллмана запишемо формулу (2.21) у такому вигляді:

Uj =min{ Ui + dij: i =1,…, j –1}, j =1, …, 7.

Знайдемо поетапно Uj.

1. U 1=0

2. U 2= U 1+ d 12=0+2=2, U 3= U 1+ d 13=0+4=4.

3. U 4=min{ U 1+ d 14, U 2+ d 24, U 3+ d 34}=min{0+10,2+11,4+3}=7.

4. U 5=min{ U 2+ d 25, U 4+ d 45}=min{2+5,7+8}=7

U 6=min{ U 3+ d 36, U 4+ d 46}=min{4+1,7+7}=5

5. U 7=min{ U 5+ d 57, U 6+ d 67}=min{7+6,5+9}=13

Одержали мінімальну відстань між вузлами 1 і 7, яка дорівнює 13, а найкоротший маршрут буде таким: 1®2®5®7.

? Контрольні запитання





Дата публикования: 2015-10-09; Прочитано: 971 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.03 с)...