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

Міністерство освіти і науки, молоді та спорту Луцький національний технічний університет

Кафедра ПЦБ

Реферат на тему:

«Динамічне програмування»

Виконала:

Христецька О.В.

Ст..гр.МБГм-51

Перевірив:

Пасічник Р.В.

Луцьк 2014р Зміст

Вступ

  1. Загальні визначення, суть, застосування та алгоритм динамічного програмування

  2. Економічна сутність динамічного програмування

  3. Принцип оптимальності. Рівняння Беллмана

  4. Задача про інвестиції

  5. Задача розрахунку траєкторії літака

  6. Задача про рюкзак (завантаження транспортного засобу)

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

  8. Область застосування методу динамічного програмування

Висновок

Література

Вступ

Для вибору оптимального рішення при виконанні завдань програмування іноді потрібно перебирати великукількість комбінацій даних, що навантажує пам’ять персонального комп’ютера. До таких методіввідноситься, наприклад, метод програмування «розділяй і володарюй». У даномувипадку алгоритмом передбачено поділ завдання на окремі дрібні підзадачі. Такий метод застосовуєтьсятільки в тих випадках, коли дрібні підзадачі незалежні між собою. Для того щоб уникнути виконання зайвої роботи в тому випадку, якщо підзадачі взаємозалежні, використовується метод динамічного програмування, запропонований американцем Р.Беллманом в 50-х роках.

  1. Загальні визначення, суть та алгоритм динамічного програмування

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

Примітка. В основі цього методу лежить принцип оптимальності Р. Беллмана.

У математичному вигляді задачу динамічного програмування (ДП) можна подати таким чином:

або

- цілі числа.

Математичні моделі задач динамічного та лінійного програмування подібні, але додаткові обмеження задачі ДП такі.

  1. Адитивність (мультиплікативність) функції мети. Мультшшікативна функція шляхом логарифмування може бути перетворена в адитивну.

  2. Лише одне обмеження:.

  3. Цілочисловість:та- цілі числа.

До особливостей розв'язку задач ДП можна віднести.

1. Багатоетапність:

2. Побудова розв'язку задачі цілеспрямованим перебором у прямому та зворотному напрямках («лавиноподібна» стратегія).

3. Оптимум цільової функції на етапі t дійсний як відносно цього етапу, так і відносно наступних етапів

4. Кожний етап - це окрема задача, яка може бути розв'язана різними методами, а забезпечення ЦФ етапу - це вектор:

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

Суть методу

Динамічне програмування полягає у визначенні оптимального рішення n-мірної задачі, розділяючи її n окремих етапів. Кожен з них є підзадачею по відношенню до однієї змінної.

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

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

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

Метод вдосконалить виконання завдань, що вирішуються за допомогою перебору варіантів або рекурсій.

Побудова алгоритму завдання

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

Іноді на 3-му кроці потрібно додатково запам’ятовувати деяку допоміжну інформацію про хід виконання кожної підзадачі. Це називається зворотним ходом.

Застосування методу

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

  • оптимальність для підзадач;

  • наявність в задачі перекриваються підзадач.

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

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

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