Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція-4.docx
Скачиваний:
6
Добавлен:
22.04.2019
Размер:
2.18 Mб
Скачать

5.2. Приклади задач динамічного прорамування.

5.2.1. задача про наймання працівників. Допустимо до розглядання питаня застосування методів динамічного програмування в конкретних економічно-математичних моделях.

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

(5.16)

Для інших наступних кроків основне рекурентне співвідношення має вигляд:

(5.17)

Де - мінімальні затрати з го по й періоди, в допущенні, що кількість робітників в й період дорівнює . Точки , в яких досягаються мінімуми (5.17), визначають умовне оптимальне управління на кожному кроці.

Послідовно визначаючи і дійшовши до етапу 1 ми зможемо знайти безумовне оптимальне управління із тої умови, що на початок першого періода чисельність робітників повинна становити , а саме:

.

Інші компоненти оптимального плану і стану , утворюючі оптимальну траєкторію, послідовно знаходяться по рекурентним формулам:

,

Після чого не виникає складності визначити оптимальне значення цільової функції (5.15).

Зупинимося тепер на другому випадку, коли заданий фінальний стан управляемого об´єкту, тобто бажана кількість робітників на осанньому етапі . Очевидно, що в даній ситуації треба поступити з точністю «до навпаки» і розглянути процес прийняття рішення від початку до кінця. Найкраще умовне управління на першому кроці буде знайдене в процесі знаходження функцій:

(5.18)

Де стан є можливою кількістю робітників на початковому кроці. відповідно, основне рекурентне співвідношення виразить мінімальні витримки аж до го періоду через такі для попередніх періодів (з першого по ( )-й при умові, що чисельність робітників в й період буде дорівнювати :

(5.19)

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

.

В останньому так як і в першому випадку, підраховується мінімальна величина витримок.

Узагальнюючи складені схеми рішення, можна прийти до висновку:

При дослідженні алгоритмів динамічного програмування, якщо заданий початковий стан упарвляємої системи, то задача вирішується в зворотньому напрямку, а якщо кінцеве, то -в прямому. На кінець , якщо задані як початкові, так і кінцеві стани, то задача суттєво ускладнюється. (в якості компромісу в тому випадку можна відмовитися від оптимізації на першому чи останньому етапі).

4. Сіткові графіки

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

6

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

Найпростіший приклад одне-цільового сіткового графіка зображений на мал. . Сітковий графік складається з об'єктів двох видів: вузлів (позначених кружками) і з'єднуючих їх (спрямованих) ребер (позначених стрілками).

Кожному вузлу відповідає деяка подія, що полягає в закінченні того чи іншого етапу робіт, наприклад, «закладка фундаменту кінчена», «технічний проект прийнятий комісією» і т.д. Кожній стрілці (ребру графіка) відповідає та чи інша робота, що розуміється як процес, а не як результат, наприклад, процес спорудження стін, процес оформлення ескізного проекту і т.д. Для кожної роботи задається її тривалість, вимірювана у фіксованих для даного графіка одиницях (годинник, дні, чи тижні місяці).

Зміст графіка складається насамперед у тім, щоб указати всі технологічні зв'язки, що визначають можливі послідовності робіт. З мал. видно, що робота 6 може бути почата лише після закінчення роботи 1, а робота 7 – лише після закінчення робіт 3 і 4. У ряді випадків для завдання зв'язків приходиться користатися так називаними фіктивними роботами, що мають нульову тривалість і позначено на графіку пунктирними стрільцями.

Роль фіктивних робіт легко усвідомити з мал. 16. Робота 7 може виконуватися після закінчення робіт 3 і 4, а роботи 5 і 9 – після закінчення робіт 2, 3 і 4. Якби ми об'єднали вузли ІІІ і IV, то роботі 7 довелося б чекати закінчення не тільки робіт 3 і 4, але і роботи 2. При наявності фіктивної роботи необхідність такого чекання виключається.

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

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

Припустимо, що для графіка, зображеного на мал. , тривалості робіт задані наступними числами: t1 = 3; t2 = 7; t3 = 5; t4 = 3; t5 = 5; t6 = 6; t7 = 3; t8 = 2; t9 = 6. Події І відповідає момент часу Т1 = 0.

Щоб знайти мінімальний термін Ті настання будь-якої іншої події (і > 2), необхідно, мабуть, прорахувати сумарні витрати часу по всіх шляхах, що веде у відповідний цій події вузол з початкового вузла, і вибрати з них максимальне значення. Усякий раз, коли для якоїсь події термін його настання встановлений, можна будувати подальші шляхи, відправляючись від цієї події, як від початкового. Для події ІІ, до якого веде тільки один шлях (робота І), одержимо

.

Для події ІІІ маємо два шляхи. З огляду на лише роботу 3, одержимо перше (не остаточне) значення для часу Т3, настання цієї події:

.

Відповідне обчислення по робот 4 приводить до значення:

.

Найбільше з цих двох значень і дає саме шуканий термін настання події ІІІ: Т3 = 6.

Для події IV

; .

Звідси Т4 = 7. Для події V

; ; .

Таким чином, Т5 = 12. Нарешті,

; .

Звідки Т6 = 14.

Одержавши мінімальний термін Т6 настання кінцевої події (а виходить, і час закінчення всіх робіт), ми можемо, відправляючись від нього і виконуючи описану процедуру в зворотному порядку, обчислити максимальні можливі терміни настання всіх подій графіка, виходячи з необхідності закінчити всі роботи в обчислений термін. Для кінцевої події думаємо = Т6 = 14. Для події V маємо = Т6 – t8 = 14 – 2 = 12. Для події IV маємо дві можливості (рухаючи від подій V і VI у напрямку, зворотному стрілкам):

; і .

З отриманих чисел необхідно, мабуть, вибрати мінімальне тобто = 7. Для події ІІІ одержуємо:

; .

Таким чином, Т3 = 7. Для події ІІ:

; .

Звідки Т2 = 4.

При правильному обчисленні час настання початкової події завжди повинний бути дорівнює 0. Перевіряємо:

; ; .

Мінімальне значення дорівнює 0. Таким чином, Т1 = 0, що підтверджує (хоча і не з абсолютною гарантією) правильність проведених нами обчислень.

Зведемо отримані значення в табл. 6.

Терміни

Події

І

ІІ

ІІІ

ІV

V

VI

Ті

0

3

6

7

12

14

Ті

0

4

7

7

12

14

З цієї таблиці видно, що для подій ІІ і ІІІ припустиме запізнення на одиницю часу без зміни загального терміну виконання робіт. Для подій /, IV, V, VI ніякі запізнення неприпустимі; будь-яка затримка в їхньому настанні спричиняє збільшення загального терміну всіх робіт. Про події, що володіють такою властивістю, прийнято говорити, що вони знаходяться на критичному шляху.

Для перебування критичного шляху для кожної j-і роботи обчислимо мінімально і максимально можливі терміни початку і закінчення роботи:

;

;

;

,

де р — подія, що коштує на початку роботи j; q – у її кінці. Результати розрахунків зводимо в табл. 7.

Різниця будемо називати резервом часу для j-і роботи. Роботи, у яких резерв часу дорівнює нулю, складають критичний шлях. У нашому випадку критичний шлях складають роботи 2, 5 і 8. Інші роботи мають менші чи великі ненульові резерви часу. Зрозуміло, при використанні сіткового графіка як інструмент керування (а не тільки як засіб для початкового аналізу), необхідно здійснювати регулярне відновлення інформації (як про очікувану тривалість робіт, так і про фактичний їхній стан) і щораз

Термін

Види робіт

1

2

3

4

5

6

7

8

9

0

0

0

3

7

3

6

12

7

1

0

2

4

7

6

9

12

8

3

7

5

6

12

9

9

14

13

4

7

7

7

12

12

12

14

14

tj

3

7

5

3

5

6

3

2

6

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

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

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

Розглянемо двох цільовий сітковий графік, зображений на мал. 17, для якого тривалості робіт задані табл. 8,

Види робіт

1

2

3

4

5

6

7

8

9

10

11

Термін (tj)

4

3

4

2

3

4

4

6

5

2

4

Діючи точно в такий же спосіб, як і в попередньому прикладі, визначимо мінімальні терміни настання всіх подій (табл. 9).

Для визначення максимально можливих термінів Tj настання подій, думаємо

T7 = T7 = 12 і T8 = T8 = 14

Позначимо через і максимально можливі терміни настання події м з погляду задач досягнення окремо узятих цілей VII і VIII відповідно.

Таблиця 9

Подія

I

II

III

IV

V

VI

VII

VIII

Термін

(Ti)

0

4

3

8

6

7

12

14

Таблиця 10

Подія

I

II

III

IV

V

VI

VII

VIII

Термін

(Ti)

0

4

3

8

6

7

12

14

Тоді , оскільки досягнення мети VII не вимагає настання події VI. З іншого боку, .

Максимально можливий термін настання події VI з погляду досягнення обох цілей:

.

Для події V одержуємо:

; .

Тоді . Продовжуючи таким чином, знаходимо терміни Ті для всіх подій (таблиця 10).

Для обчислення мінімально і максимально можливих термінів початку і закінчення робіт, можна користатися тими ж формулами, що і раніш, якщо мова йде про досягнення обох цілей. Заміняючи у формулах Тi на і , знаходимо відповідні терміни з погляду задач досягнення кожної з цілей VII і VIII

окремо:

Наприклад,

; ; ; .

Відповідно

; ;

, .

Аналогічним образом обчислюємо терміни для всіх інших робіт.

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

Для кращого з'ясування сутності проблем, що встають у зв'язку з оптимізацією розподілу ресурсів при плануванні і керуванні на основі сіткових графіків, розглянемо наступний приклад. Нехай сукупність підлягаючих виконанню робіт описується сітковим графіком, зображеним на мал. Припустимо, що мається всього два ресурси R1 і R2, що підлягають розподілу (робітники двох чи спеціальностей устаткування двох різних видів).

Таблиця 11

Ресурси

Види робіт

1

2

3

4

5

6

7

8

9

10

11

12

R1

2

4

6

2

0

2

2

2

0

2

2

4

28

R2

3

3

0

3

3

0

3

3

3

6

3

6

36

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

міс; міс.

Критичним ресурсом ( що обмежує знизу термін виконання робіт) у даному випадку буде ресурс R1.

Мінімально можливе час виконання всіх робіт Т  14мес. Цей час являє собою теоретичну межу (не завжди досяжний) для оптимізації плану виконання робіт.

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

Для першої роботи як по першому, так і по другому ресурсі час ti її виконання однаково до дорівнює одному місяцю. Втрат (простоїв) ресурсів при цьому немає. При виконанні другої роботи критичним є перший ресурс. Обчислений по ньому час виконання роботи t2 дорівнює міс. При роботі протягом цього терміну розташовуємо 3  2 = 6 ресурсо-місяцями по другому ресурсі. Оскільки фактично для виконання другої роботи потрібно лише 3 ресурсо-місяця, то по ресурсі R1 утвориться втрата, рівна 6 – 3 = 3 ресурсо-місяцям. Продовжуючи аналогічним образом, зведемо час, а також сумарні витрати і втрати ресурсів при обраному порядку виконання робіт наростаючим підсумком (тобто у виді сум по усім виконаним до розглянутого моменту роботам) у табл. 12.

Таблиця 12

Види робіт

Показники

1

2

3

4

5

6

7

8

9

10

11

12

Затрати: R1

2

6

12

14

14

16

18

20

20

22

24

28

R2

3

6

6

9

12

12

15

18

21

27

30

36

Втрати: R1

0

0

0

0

2

2

2

2

4

6

6

6

R2

0

3

12

12

12

15

15

15

15

15

15

15

Час

1

3

6

7

8

9

10

11

12

14

15

17

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

Припустимо, що ресурси R1 і R2 допускають незалежне використання і при виконанні будь-якої роботи можуть витрачатися в будь-якому порядку. Основна ідея по поліпшенню початкового плану при такім припущенні полягає в тому, щоб починати використання ресурсу, що звільнився, для виконання наступних робіт, не чекаючи повного вивільнення всіх ресурсів.

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

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

Для полегшення вибору належної черговості виконання робіт розділимо їх на три групи: критичні по першому, другому і по обох ресурсах. У першу групу попадають роботи 2, 3, 6, у другу – роботи 5, 9, 10 і в третини-роботи 1, 4, 7, 8, 11, 12. Роботи останньої групи можуть виконуватися в будь-який час, що допускається вихідним сітковим графіком, не створюючи небажаних утрат ресурсів. Проблема складається у визначенні правильної

послідовності робіт першої і другої групи.

Оскільки при виконанні другої роботи утвориться резерв 3 ресурсо – місяця по ресурсі R2, то бажано, не чекаючи закінчення цієї роботи, почати критичну по R2 роботу, у якій цей ресурс бажано цілком використовувати. Такий є, мабуть, робота 5.

Для роботи 3 такими можуть бути роботи 5, 9 і 10, а для роботи 6–9 і 10. Одним з можливих рішень, що дають необхідну черговість, служить послідовність виконання робіт 1, 2, 5, 4, 7, 6, 9, 3, 10, 8, 11, 12, для якої всі показники приведені у табл. 13.

Показники

Види робіт

1

2

5

4

7

6

9

3

10

8

11

12

Час початку використання

ресурсу R1

0

1

3

3

4

5

6

6

9

10

11

12

Час заверш. використання

ресурсу R1

1

3

3

4

5

6

6

9

10

11

12

14

Час початку використання

ресурсу R2

0

1

2

3

4

5

5

6

6

10

11

12

Час заверш. використання

ресурсу R2

1

2

3

4

5

5

6

6

8

11

12

14

Час початку роботи

0

1

2

3

4

5

5

6

6

10

11

12

Час завершення роботи

1

3

3

4

5

6

6

9

10

11

12

14

Використання R1

R2

2

3

6

6

6

9

8

12

10

15

12

15

12

18

18

18

20

24

22

27

24

30

28

36

Втрати R1

R2

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

3

0

6

0

6

0

6

0

6

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

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

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