SlideShare a Scribd company logo
1 of 32
Динамічне програмування
Динамічне програмування – це коли у є задача яку не зрозуміло як
вирішувати і вона розбивається на багато менших задач, які теж незрозуміло
як вирішувати (А. Кумок)
Переваги динамічного програмування:
▪ Пошук гарантовано оптимальних рішень.
▪ Пошук оптимальних рішень для всієї задачі та повного набору проміжних
підзадач.
▪ Оптимізація процесу обчислень (зменшення складності знаходження
розв`язку до поліноміальної/логарифмічної).
▪ Можливість вирішення широкого класу задач економіко-математичного
моделювання.
▪ Відсутність альтернативних високоефективних методів вирішення задач.
Типовий приклад задачі МДП
Скільки стрибків потрібно
зробити кролику?
Скільки стрибків потрібно
зробити кролику?
Схема вирішення задач динамічного
програмування
1. Визначити процес побудови оптимального
рішення.
2. Знайти елементарну підзадачу, яка
вирішується тривіальним способом.
3. Побудувати рекурентне співвідношення, що
зв`язує оптимальне значення рішення для
підзадач.
4. Рухаючись знизу вверх, визначити оптимальне
рішення для кожної з підзадач.
5. Користуючись отриманою інформацією
визначити оптимальне рішення основної
задачі.
Основна
задача
Задача
1
Задача
2
Задача
3
Задача
4
Задача
5
Типи задач, що вирішуються МДП:
▪ Задачі пошуку оптимального (найкоротшого, найдешевшого, повного)
шляху.
▪ Задачі економічної оптимізації.
▪ Задачі пошуку (найменшої, найбільшої) кількості можливих комбінацій.
▪ Задачі аналізу текстових та числових даних (порівняння рядків,
перетворення послідовностей до єдиного вигляду, пошук поліндромів та
підполіндромів).
▪ Задачі планування та прогнозування майбутнього.
▪ Задачі розробки систем масового обслуговування та багатопоточної
обробки даних.
Задачі пошуку
оптимального шляху
«Задача пошуку виходу з лабіринту», «Задача пошуку оптимального шляху»,
«Задача комівояжера», «Задача двох комівояжерів»
Задача пошуку виходу з лабіринту
Задача пошуку виходу з лабіринту
Задача пошуку оптимального шляху
Класична задача комівояжера
Пошук оптимального Гамільтонового контуру на графі.
▪ Повний перебір (для 15 точок – 43 589 145 600, 18 міст – > 177 трильйонів)
▪ Випадковий перебір
▪ Жадні алгоритми
▪ Метод віток та границь
▪ Метод еластичної мережі (МДП) (для 30 точок – 1000 ітерацій)
Алгоритми рішення задачі
Можливі підмаршрути 1 порядку
1) (2,3) 3+1=4; 3) (3,2) 4+2=6; 5) (4,2) 2+5=5;
2) (2,4) 5+3=8; 4) (3,4) 2+3=5; 6) (4,3) 4+1=5.
Підмаршрути 2 порядку
1) (2, (3,4)) = min(3+5, 5+5) = 8;
2) (3, (4,2)) = min(4+8, 2+7) = 9;
3) (4, (2,3)) = min(5+4, 4+6) = 9;
1) (2,3) 3+1=4; 3) (3,2) 4+2=6; 5) (4,2) 2+5=5;
2) (2,4) 5+3=8; 4) (3,4) 2+3=5; 6) (4,3) 4+1=5.
(1, (3, (4,2)) = min(5+8, 1+9, 4+9) = 10.
Алгоритм вирішення
задачі комівояжера
методом динамічного
програмування:
Задачі економічної
оптимізації
«Задача про гроші», «Задача про ранець», «Задача про розподіл капіталу»,
«Задача інкасації», «Задача пошуку максимального добутку»
Формулювання задачі про гроші
Банкомат має набір купюр різних номіналів (2, 5, 10,
20, 50, 100) кількість банкнот обмежена. В залежності
від наявності купюр кожного типу визначити
мінімальну їх кількість необхідну для формування
запитуваної суми або те, що суму сформувати не
можна.
Розв`язок задачі
Маючи набір: 2 (10), 5 (0), 10 (3), 15(1), 20 (10), 50 (1), 100(1)
визначити мінімальну кількість купюр для формування суми в 175 од або
вказати, що таку суму зібрати неможливо.
Нехай S[i] – чергова підсума, яку потрібно зібрати, де i – сума, а S[i] – кількість
одиниць. Тоді S[1], S[0], S[-1], S[-2]… = Ø; S[175] = stop.
Рішення:
S[2] => 2 = 1;
S[3] => S[1] + S[2] = Ø;
S[4] => (S[3] + S[1]), (S[2]+S[2]) = 2;
S[5] => (S[2] + S[2] + S[1]), (S[3]+S[2]), (5) = 1;
S[6] => (S[3] + S[3]), (S[2]+S[2]+S[2]), (S[5], S[1]) = 3;
…..
S[175] => (S[10] + S[15] + S[50] + S[100]) = 4;
Схема вирішення задач динамічного
програмування
1. Знайти елементарну підзадачу, яка
вирішується тривіальним способом.
2. Побудувати рекурентне
співвідношення, що зв`язує оптимальне
значення розв`язку для підзадач.
3. Користуючись отриманою
інформацією визначити оптимальне
рішення основної задачі.
Основна
задача
Задача
1
Задача
2
Задача
3
Задача
4
Задача
5
Рівняння Беллмана
Принцип оптимальності Беллмана
▪ Bellman's optimality principle - оптимальна
поведінка має ту властивість, що, які б не були
початковий стан і рішення (тобто «управління»),
наступні рішення повинні складати оптимальну
поведінку відносно стану, що виходить в
результаті першого рішення.
▪ Цей принцип можна виразити і розмірковуючи
від протилежного: якщо не використовувати
найкращим чином те, що ми маємо зараз, то і
надалі не вдасться найкращим чином
розпорядитися тим, що ми могли б мати.
Дякую за увагу!

More Related Content

What's hot

Алгебра8 урок16
Алгебра8 урок16Алгебра8 урок16
Алгебра8 урок16Slovyansk School
 
мпр т 5
мпр т 5мпр т 5
мпр т 5Ivan
 
Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...
Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...
Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...sveta7940
 
Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...
Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...
Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...sveta7940
 
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.sveta7940
 
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.sveta7940
 
озош і ііі ст. №5 ім. р. к. рапія презентація до семінару заболотня а. л.
озош і ііі ст. №5 ім. р. к. рапія  презентація до семінару заболотня а. л.озош і ііі ст. №5 ім. р. к. рапія  презентація до семінару заболотня а. л.
озош і ііі ст. №5 ім. р. к. рапія презентація до семінару заболотня а. л.Юрий Заболотний
 
формули скороченого множення
формули скороченого множенняформули скороченого множення
формули скороченого множенняTetyana Andrikevych
 
График уравнения с двумя переменным
График уравнения с двумя переменнымГрафик уравнения с двумя переменным
График уравнения с двумя переменнымИлья Сыч
 
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.sveta7940
 
Системы уравнений с двумя переменными
Системы уравнений с двумя переменнымиСистемы уравнений с двумя переменными
Системы уравнений с двумя переменнымиИлья Сыч
 
Рівняння х2=а. Основна тотожність квадратного кореня.
Рівняння х2=а. Основна тотожність квадратного кореня.Рівняння х2=а. Основна тотожність квадратного кореня.
Рівняння х2=а. Основна тотожність квадратного кореня.sveta7940
 
Графік функції франгмент
Графік функції франгментГрафік функції франгмент
Графік функції франгментAnnaTimohovich
 
Презентація:Властивості множення раціональних чисел
Презентація:Властивості множення раціональних чиселПрезентація:Властивості множення раціональних чисел
Презентація:Властивості множення раціональних чиселsveta7940
 

What's hot (20)

Linear regression
Linear regressionLinear regression
Linear regression
 
Алгебра8 урок16
Алгебра8 урок16Алгебра8 урок16
Алгебра8 урок16
 
Ppp
PppPpp
Ppp
 
мпр т 5
мпр т 5мпр т 5
мпр т 5
 
Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...
Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...
Презентація: Перетворення виразів (повторення та систематизація матеріалу).pp...
 
Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...
Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...
Квадратний тричлен та його корені. Розкладання квадратного тричлена на лінійн...
 
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
 
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
Презентація:Квадратний корінь з числа. Арифметичний квадратний корінь.
 
Fynksia
FynksiaFynksia
Fynksia
 
функція у=коріньх
функція у=коріньхфункція у=коріньх
функція у=коріньх
 
Lr4
Lr4Lr4
Lr4
 
функція у = х 2
функція у = х 2 функція у = х 2
функція у = х 2
 
озош і ііі ст. №5 ім. р. к. рапія презентація до семінару заболотня а. л.
озош і ііі ст. №5 ім. р. к. рапія  презентація до семінару заболотня а. л.озош і ііі ст. №5 ім. р. к. рапія  презентація до семінару заболотня а. л.
озош і ііі ст. №5 ім. р. к. рапія презентація до семінару заболотня а. л.
 
формули скороченого множення
формули скороченого множенняформули скороченого множення
формули скороченого множення
 
График уравнения с двумя переменным
График уравнения с двумя переменнымГрафик уравнения с двумя переменным
График уравнения с двумя переменным
 
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
 
Системы уравнений с двумя переменными
Системы уравнений с двумя переменнымиСистемы уравнений с двумя переменными
Системы уравнений с двумя переменными
 
Рівняння х2=а. Основна тотожність квадратного кореня.
Рівняння х2=а. Основна тотожність квадратного кореня.Рівняння х2=а. Основна тотожність квадратного кореня.
Рівняння х2=а. Основна тотожність квадратного кореня.
 
Графік функції франгмент
Графік функції франгментГрафік функції франгмент
Графік функції франгмент
 
Презентація:Властивості множення раціональних чисел
Презентація:Властивості множення раціональних чиселПрезентація:Властивості множення раціональних чисел
Презентація:Властивості множення раціональних чисел
 

Similar to IT Talks The approach for solving impossible tasks (dynamic programming)

мпр т 9
мпр т 9мпр т 9
мпр т 9Ivan
 
Множення десяткових дробів
Множення десяткових дробівМноження десяткових дробів
Множення десяткових дробівssuseraeea271
 
рацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiярацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiяAndy Levkovich
 
2407 инд зад рац числа 6кл
2407 инд зад рац числа 6кл2407 инд зад рац числа 6кл
2407 инд зад рац числа 6клurvlan
 
Найбільше і найменше значення функції на відрізку, 11 клас
Найбільше і найменше значення функції на відрізку, 11 класНайбільше і найменше значення функції на відрізку, 11 клас
Найбільше і найменше значення функції на відрізку, 11 класvmakarets
 
презентація 8грудня
презентація 8грудняпрезентація 8грудня
презентація 8грудняkristina_chepil
 
Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...
Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...
Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...Вероника Черепинец
 
Масиви Структури даних (1).ppt
Масиви Структури даних (1).pptМасиви Структури даних (1).ppt
Масиви Структури даних (1).pptDarkUmaru
 
Урок 01 Перетворення виразів.Ppt
Урок 01 Перетворення виразів.PptУрок 01 Перетворення виразів.Ppt
Урок 01 Перетворення виразів.Pptssuser302741
 
Конспект уроку у 5 класі
Конспект уроку у 5 класіКонспект уроку у 5 класі
Конспект уроку у 5 класіJo01
 
презентація моя 23 06-2016
презентація моя 23 06-2016презентація моя 23 06-2016
презентація моя 23 06-2016GTM_NUFT
 
графіки тригонометричних функцій
графіки тригонометричних функційграфіки тригонометричних функцій
графіки тригонометричних функційyahnoluida
 
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.sveta7940
 
алгебра підручник для 7 класу авт. мерзляк а.г. та ін.
алгебра   підручник для 7 класу авт. мерзляк а.г. та ін.алгебра   підручник для 7 класу авт. мерзляк а.г. та ін.
алгебра підручник для 7 класу авт. мерзляк а.г. та ін.Гергель Ольга
 
Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015
Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015
Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015oleg379
 
Презентація:Додавання та віднімання десяткових дробів
Презентація:Додавання та віднімання десяткових дробівПрезентація:Додавання та віднімання десяткових дробів
Презентація:Додавання та віднімання десяткових дробівsveta7940
 
7126 брошура формули
7126 брошура формули7126 брошура формули
7126 брошура формулиurvlan
 
5 m i_2013
5 m i_20135 m i_2013
5 m i_2013UA4-6
 

Similar to IT Talks The approach for solving impossible tasks (dynamic programming) (20)

мпр т 9
мпр т 9мпр т 9
мпр т 9
 
Множення десяткових дробів
Множення десяткових дробівМноження десяткових дробів
Множення десяткових дробів
 
рацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiярацIонал нi числа,_6_клас_презентацiя
рацIонал нi числа,_6_клас_презентацiя
 
2407 инд зад рац числа 6кл
2407 инд зад рац числа 6кл2407 инд зад рац числа 6кл
2407 инд зад рац числа 6кл
 
Найбільше і найменше значення функції на відрізку, 11 клас
Найбільше і найменше значення функції на відрізку, 11 класНайбільше і найменше значення функції на відрізку, 11 клас
Найбільше і найменше значення функції на відрізку, 11 клас
 
презентація 8грудня
презентація 8грудняпрезентація 8грудня
презентація 8грудня
 
Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...
Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...
Синтез оптимального керування для систем диференціальних рівнянь с нефіксован...
 
для
длядля
для
 
Масиви Структури даних (1).ppt
Масиви Структури даних (1).pptМасиви Структури даних (1).ppt
Масиви Структури даних (1).ppt
 
Урок 01 Перетворення виразів.Ppt
Урок 01 Перетворення виразів.PptУрок 01 Перетворення виразів.Ppt
Урок 01 Перетворення виразів.Ppt
 
Конспект уроку у 5 класі
Конспект уроку у 5 класіКонспект уроку у 5 класі
Конспект уроку у 5 класі
 
презентація моя 23 06-2016
презентація моя 23 06-2016презентація моя 23 06-2016
презентація моя 23 06-2016
 
графіки тригонометричних функцій
графіки тригонометричних функційграфіки тригонометричних функцій
графіки тригонометричних функцій
 
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
Презентація:Рівняння х2=а. Основна тотожність квадратного кореня.
 
2740 7 a_m_2015_u
2740 7 a_m_2015_u2740 7 a_m_2015_u
2740 7 a_m_2015_u
 
алгебра підручник для 7 класу авт. мерзляк а.г. та ін.
алгебра   підручник для 7 класу авт. мерзляк а.г. та ін.алгебра   підручник для 7 класу авт. мерзляк а.г. та ін.
алгебра підручник для 7 класу авт. мерзляк а.г. та ін.
 
Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015
Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015
Алгебра 7 клас Мерзляк А.Г., Полонський В.Б., Якір М.С. 2015
 
Презентація:Додавання та віднімання десяткових дробів
Презентація:Додавання та віднімання десяткових дробівПрезентація:Додавання та віднімання десяткових дробів
Презентація:Додавання та віднімання десяткових дробів
 
7126 брошура формули
7126 брошура формули7126 брошура формули
7126 брошура формули
 
5 m i_2013
5 m i_20135 m i_2013
5 m i_2013
 

More from Vadym Muliavka

Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT TalksMykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT TalksVadym Muliavka
 
Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"Vadym Muliavka
 
IT Talks "VR Tips for Engineers and Developers"
IT Talks "VR Tips for Engineers and Developers"IT Talks "VR Tips for Engineers and Developers"
IT Talks "VR Tips for Engineers and Developers"Vadym Muliavka
 
Rivne IT Talks How to programa Quantum Computer?
Rivne IT Talks How to programa Quantum Computer?Rivne IT Talks How to programa Quantum Computer?
Rivne IT Talks How to programa Quantum Computer?Vadym Muliavka
 
IT Talks The c++'s simplest smart pointers in depth
IT Talks The c++'s simplest smart pointers in depthIT Talks The c++'s simplest smart pointers in depth
IT Talks The c++'s simplest smart pointers in depthVadym Muliavka
 
Bug reporting and tracking
Bug reporting and trackingBug reporting and tracking
Bug reporting and trackingVadym Muliavka
 
Boundary value analysis
Boundary value analysisBoundary value analysis
Boundary value analysisVadym Muliavka
 
Equivalence partitions analysis
Equivalence partitions analysisEquivalence partitions analysis
Equivalence partitions analysisVadym Muliavka
 
IT Talks Автоматизація тестування з допомогою Selenium
IT Talks Автоматизація тестування з допомогою SeleniumIT Talks Автоматизація тестування з допомогою Selenium
IT Talks Автоматизація тестування з допомогою SeleniumVadym Muliavka
 
IT Talks Тестування та аналіз вимог
IT Talks Тестування та аналіз вимогIT Talks Тестування та аналіз вимог
IT Talks Тестування та аналіз вимогVadym Muliavka
 
IT Talks QA - якість процесів розробки
IT Talks QA - якість процесів розробкиIT Talks QA - якість процесів розробки
IT Talks QA - якість процесів розробкиVadym Muliavka
 

More from Vadym Muliavka (11)

Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT TalksMykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
 
Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"Roman Valchuk "Introducing to DevOps technologies"
Roman Valchuk "Introducing to DevOps technologies"
 
IT Talks "VR Tips for Engineers and Developers"
IT Talks "VR Tips for Engineers and Developers"IT Talks "VR Tips for Engineers and Developers"
IT Talks "VR Tips for Engineers and Developers"
 
Rivne IT Talks How to programa Quantum Computer?
Rivne IT Talks How to programa Quantum Computer?Rivne IT Talks How to programa Quantum Computer?
Rivne IT Talks How to programa Quantum Computer?
 
IT Talks The c++'s simplest smart pointers in depth
IT Talks The c++'s simplest smart pointers in depthIT Talks The c++'s simplest smart pointers in depth
IT Talks The c++'s simplest smart pointers in depth
 
Bug reporting and tracking
Bug reporting and trackingBug reporting and tracking
Bug reporting and tracking
 
Boundary value analysis
Boundary value analysisBoundary value analysis
Boundary value analysis
 
Equivalence partitions analysis
Equivalence partitions analysisEquivalence partitions analysis
Equivalence partitions analysis
 
IT Talks Автоматизація тестування з допомогою Selenium
IT Talks Автоматизація тестування з допомогою SeleniumIT Talks Автоматизація тестування з допомогою Selenium
IT Talks Автоматизація тестування з допомогою Selenium
 
IT Talks Тестування та аналіз вимог
IT Talks Тестування та аналіз вимогIT Talks Тестування та аналіз вимог
IT Talks Тестування та аналіз вимог
 
IT Talks QA - якість процесів розробки
IT Talks QA - якість процесів розробкиIT Talks QA - якість процесів розробки
IT Talks QA - якість процесів розробки
 

IT Talks The approach for solving impossible tasks (dynamic programming)

  • 1. Динамічне програмування Динамічне програмування – це коли у є задача яку не зрозуміло як вирішувати і вона розбивається на багато менших задач, які теж незрозуміло як вирішувати (А. Кумок)
  • 2. Переваги динамічного програмування: ▪ Пошук гарантовано оптимальних рішень. ▪ Пошук оптимальних рішень для всієї задачі та повного набору проміжних підзадач. ▪ Оптимізація процесу обчислень (зменшення складності знаходження розв`язку до поліноміальної/логарифмічної). ▪ Можливість вирішення широкого класу задач економіко-математичного моделювання. ▪ Відсутність альтернативних високоефективних методів вирішення задач.
  • 6.
  • 7. Схема вирішення задач динамічного програмування 1. Визначити процес побудови оптимального рішення. 2. Знайти елементарну підзадачу, яка вирішується тривіальним способом. 3. Побудувати рекурентне співвідношення, що зв`язує оптимальне значення рішення для підзадач. 4. Рухаючись знизу вверх, визначити оптимальне рішення для кожної з підзадач. 5. Користуючись отриманою інформацією визначити оптимальне рішення основної задачі. Основна задача Задача 1 Задача 2 Задача 3 Задача 4 Задача 5
  • 8. Типи задач, що вирішуються МДП: ▪ Задачі пошуку оптимального (найкоротшого, найдешевшого, повного) шляху. ▪ Задачі економічної оптимізації. ▪ Задачі пошуку (найменшої, найбільшої) кількості можливих комбінацій. ▪ Задачі аналізу текстових та числових даних (порівняння рядків, перетворення послідовностей до єдиного вигляду, пошук поліндромів та підполіндромів). ▪ Задачі планування та прогнозування майбутнього. ▪ Задачі розробки систем масового обслуговування та багатопоточної обробки даних.
  • 9. Задачі пошуку оптимального шляху «Задача пошуку виходу з лабіринту», «Задача пошуку оптимального шляху», «Задача комівояжера», «Задача двох комівояжерів»
  • 10. Задача пошуку виходу з лабіринту
  • 11. Задача пошуку виходу з лабіринту
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 18.
  • 19.
  • 20.
  • 21. Класична задача комівояжера Пошук оптимального Гамільтонового контуру на графі.
  • 22. ▪ Повний перебір (для 15 точок – 43 589 145 600, 18 міст – > 177 трильйонів) ▪ Випадковий перебір ▪ Жадні алгоритми ▪ Метод віток та границь ▪ Метод еластичної мережі (МДП) (для 30 точок – 1000 ітерацій) Алгоритми рішення задачі
  • 23. Можливі підмаршрути 1 порядку 1) (2,3) 3+1=4; 3) (3,2) 4+2=6; 5) (4,2) 2+5=5; 2) (2,4) 5+3=8; 4) (3,4) 2+3=5; 6) (4,3) 4+1=5.
  • 24. Підмаршрути 2 порядку 1) (2, (3,4)) = min(3+5, 5+5) = 8; 2) (3, (4,2)) = min(4+8, 2+7) = 9; 3) (4, (2,3)) = min(5+4, 4+6) = 9; 1) (2,3) 3+1=4; 3) (3,2) 4+2=6; 5) (4,2) 2+5=5; 2) (2,4) 5+3=8; 4) (3,4) 2+3=5; 6) (4,3) 4+1=5. (1, (3, (4,2)) = min(5+8, 1+9, 4+9) = 10.
  • 26. Задачі економічної оптимізації «Задача про гроші», «Задача про ранець», «Задача про розподіл капіталу», «Задача інкасації», «Задача пошуку максимального добутку»
  • 27. Формулювання задачі про гроші Банкомат має набір купюр різних номіналів (2, 5, 10, 20, 50, 100) кількість банкнот обмежена. В залежності від наявності купюр кожного типу визначити мінімальну їх кількість необхідну для формування запитуваної суми або те, що суму сформувати не можна.
  • 28. Розв`язок задачі Маючи набір: 2 (10), 5 (0), 10 (3), 15(1), 20 (10), 50 (1), 100(1) визначити мінімальну кількість купюр для формування суми в 175 од або вказати, що таку суму зібрати неможливо. Нехай S[i] – чергова підсума, яку потрібно зібрати, де i – сума, а S[i] – кількість одиниць. Тоді S[1], S[0], S[-1], S[-2]… = Ø; S[175] = stop. Рішення: S[2] => 2 = 1; S[3] => S[1] + S[2] = Ø; S[4] => (S[3] + S[1]), (S[2]+S[2]) = 2; S[5] => (S[2] + S[2] + S[1]), (S[3]+S[2]), (5) = 1; S[6] => (S[3] + S[3]), (S[2]+S[2]+S[2]), (S[5], S[1]) = 3; ….. S[175] => (S[10] + S[15] + S[50] + S[100]) = 4;
  • 29. Схема вирішення задач динамічного програмування 1. Знайти елементарну підзадачу, яка вирішується тривіальним способом. 2. Побудувати рекурентне співвідношення, що зв`язує оптимальне значення розв`язку для підзадач. 3. Користуючись отриманою інформацією визначити оптимальне рішення основної задачі. Основна задача Задача 1 Задача 2 Задача 3 Задача 4 Задача 5
  • 31. Принцип оптимальності Беллмана ▪ Bellman's optimality principle - оптимальна поведінка має ту властивість, що, які б не були початковий стан і рішення (тобто «управління»), наступні рішення повинні складати оптимальну поведінку відносно стану, що виходить в результаті першого рішення. ▪ Цей принцип можна виразити і розмірковуючи від протилежного: якщо не використовувати найкращим чином те, що ми маємо зараз, то і надалі не вдасться найкращим чином розпорядитися тим, що ми могли б мати.