SlideShare a Scribd company logo
1 of 19
Download to read offline
Динамическое
программирование
(с) Игорь Клейнер M.Sc.
2017
Цели Урока
Первое знакомство с динамическим программированием
Что такое динамическое программирование?
Задачи оптимизации и задачи комбинаторики
Свойство оптимальности у подзадач
Динамическое программирование
• Что же такое ДП?
Динамическое программирование
• Что же такое ДП?
• ДП - метод решения задач оптимизации и комбинаторики, обладающих
определенным свойством
Динамическое программирование
• Что же такое ДП?
• ДП метод решения задач оптимизации и комбинаторики, обладающих
определенным свойством
ДП метод решения задач оптимизации и
комбинаторики, обладающих определенным
свойством
• Метод: определённая последовательность действий, ведущих к решению задачи
шаг 1 шаг 2 … решение
ДП метод решения задач оптимизации и
комбинаторики, обладающих определенным
свойством
• Метод – инструмент: определенная совокупность действий ведущих к решению
задачи
• Задача оптимизации: задача поиска максимума или минимума некой функции,
например:
ДП метод решения задач оптимизации и
комбинаторики, обладающих определенным
свойством
• Метод – инструмент: определенная совокупность действий ведущих к решению задачи
• Задача оптимизации: задача поиска максимума или минимума некой функции,
например:
• выбор лучшей невесты
• выбор кратчайшего пути
• выбор стратегии игры с максимальным средним выигрышем
• выбор плана производства минимизирующего потери
• …
ДП метод решения задач оптимизации и
комбинаторики, обладающих определенным
свойством
• Метод – инструмент: определенная совокупность действий ведущих к решению задачи
• Задача оптимизации: задача поиска максимума или минимума некой функции,
например:
• выбор лучшей невесты
• выбор кратчайшего пути
• выбор стратегии игры с максимальным средним выигрышем
• выбор плана производства минимизирующего потери
• …
ДП метод решения задач оптимизации и
комбинаторики, обладающих определенным
свойством
• Метод – инструмент: определенная совокупность действий ведущих к решению
задачи
• Задача оптимизации: задача поиска максимума или минимума некой функции
• Задача комбинаторики: задача, связанная с подсчетом количества объектов
• сколькими способами можно 10 человек поставить в ряд?
• сколькими способами можно покрасить данный граф в три цвета
• сколько существует способов вернуть сдачу Х с помощью монет 1,2,3 копейки
ДП метод решения задач оптимизации и
комбинаторики, обладающих определенным
свойством
• Метод – инструмент: определенная совокупность действий ведущих к решению
задачи
• Задача оптимизации: задача поиска максимума или минимума некой функции
• Задача комбинаторики: задача, связанная с подсчетом количества объектов
• Свойство оптимальности подзадач: оптимальное решение всей задачи
строится на решении более простых подзадач
Свойство оптимальности подзадач
неформальное объяснение
• Свойство оптимальности подзадач: оптимальное решение всей задачи
строится на решении более простых подзадач
• Дана исходная сложная задача решить которую сразу мы не можем
очень сложная задача
«реши меня»
Свойство оптимальности подзадач
неформальное объяснение
• Дана исходная сложная задача решить которую сразу мы не можем
• Упростим задачу и решим ее очень простую версию
Свойство оптимальности подзадач
неформальное объяснение
• Дана исходная сложная задача решить которую сразу мы не можем
• Используя решение очень простой задачи, решим чуть более сложную подзадачу
Свойство оптимальности подзадач
неформальное объяснение
• Дана исходная сложная задача решить которую сразу мы не можем
• Используя решения предыдущих подзадач, решим еще более сложную
подзадачу
маленькая
подзадача мы
умеем ее решать
S0
чуть более сложная
подзадача S1 ее мы уже
решили
Решим еще более
сложную подзадачу S2
используя решения
предыдущих подзадач
Свойство оптимальности подзадач
неформальное объяснение
• Дана исходная сложная задача решить которую сразу мы не можем
• Продолжим расширять подзадачу пока не получим решение исходной задачи
маленькая
подзадача мы
умеем ее решать
S0
чуть более сложная
подзадача S1 ее мы уже
решили
Решим еще более
сложную подзадачу S2
используя решения
предыдущих подзадач
Свойство оптимальности подзадач
неформальное объяснение
ПОБЕДА
Исходная сложная задача решена с помощью решения
последовательности простых подзадач
Итоги урока
Первое знакомство с методом динамического программирования
ДП позволяет решать некоторые задачи оптимизации и комбинаторики, используя свойство
оптимальности у подзадач
Ссылки
• Канал курса на портале YouTube:
• https://www.youtube.com/playlist?list=PLUfHxBkkFMScqPOn8J0aHvd48wykQNcWS
• Группа динамическое программирование «в контакте»
• https://vk.com/public76350495
• Слайды лекций курса:
• https://www.slideshare.net/igorkleiner5

More Related Content

Viewers also liked

ראיון הייטק פגישה 3
ראיון הייטק פגישה 3ראיון הייטק פגישה 3
ראיון הייטק פגישה 3Igor Kleiner
 
programmer expossed lesson 1 ראיון בהייטק
programmer expossed lesson 1 ראיון בהייטקprogrammer expossed lesson 1 ראיון בהייטק
programmer expossed lesson 1 ראיון בהייטקIgor Kleiner
 
ראיון בהייטק פגישה 5 - programer interview lesson 5
ראיון בהייטק פגישה 5 - programer interview lesson 5ראיון בהייטק פגישה 5 - programer interview lesson 5
ראיון בהייטק פגישה 5 - programer interview lesson 5Igor Kleiner
 
Критическое мышление , лекция 2, 2013 (Клейнер Игорь)
Критическое мышление , лекция 2, 2013 (Клейнер Игорь)Критическое мышление , лекция 2, 2013 (Клейнер Игорь)
Критическое мышление , лекция 2, 2013 (Клейнер Игорь)Igor Kleiner
 
Programmer interview exposed - lection 5 temp version
Programmer interview exposed - lection 5 temp versionProgrammer interview exposed - lection 5 temp version
Programmer interview exposed - lection 5 temp versionIgor Kleiner
 
programmer interview exposed lesson 2 - ראיון בהייטק
programmer interview exposed lesson 2 - ראיון בהייטקprogrammer interview exposed lesson 2 - ראיון בהייטק
programmer interview exposed lesson 2 - ראיון בהייטקIgor Kleiner
 
Certificate and Report TELC
Certificate and Report TELCCertificate and Report TELC
Certificate and Report TELCSalvador Selva
 
كشف اسماء السيدات المقبولين في الوظائف الصحية
 كشف اسماء السيدات المقبولين في الوظائف الصحية كشف اسماء السيدات المقبولين في الوظائف الصحية
كشف اسماء السيدات المقبولين في الوظائف الصحيةAbdo Magdi
 
объекты Excel
объекты Excelобъекты Excel
объекты ExcelLidiKashka
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.YakubovichDA
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеYakubovichDA
 

Viewers also liked (16)

ראיון הייטק פגישה 3
ראיון הייטק פגישה 3ראיון הייטק פגישה 3
ראיון הייטק פגישה 3
 
programmer expossed lesson 1 ראיון בהייטק
programmer expossed lesson 1 ראיון בהייטקprogrammer expossed lesson 1 ראיון בהייטק
programmer expossed lesson 1 ראיון בהייטק
 
ראיון בהייטק פגישה 5 - programer interview lesson 5
ראיון בהייטק פגישה 5 - programer interview lesson 5ראיון בהייטק פגישה 5 - programer interview lesson 5
ראיון בהייטק פגישה 5 - programer interview lesson 5
 
Критическое мышление , лекция 2, 2013 (Клейнер Игорь)
Критическое мышление , лекция 2, 2013 (Клейнер Игорь)Критическое мышление , лекция 2, 2013 (Клейнер Игорь)
Критическое мышление , лекция 2, 2013 (Клейнер Игорь)
 
Programmer interview exposed - lection 5 temp version
Programmer interview exposed - lection 5 temp versionProgrammer interview exposed - lection 5 temp version
Programmer interview exposed - lection 5 temp version
 
programmer interview exposed lesson 2 - ראיון בהייטק
programmer interview exposed lesson 2 - ראיון בהייטקprogrammer interview exposed lesson 2 - ראיון בהייטק
programmer interview exposed lesson 2 - ראיון בהייטק
 
Certificate and Report TELC
Certificate and Report TELCCertificate and Report TELC
Certificate and Report TELC
 
كشف اسماء السيدات المقبولين في الوظائف الصحية
 كشف اسماء السيدات المقبولين في الوظائف الصحية كشف اسماء السيدات المقبولين في الوظائف الصحية
كشف اسماء السيدات المقبولين في الوظائف الصحية
 
объекты Excel
объекты Excelобъекты Excel
объекты Excel
 
mmosa2016
mmosa2016mmosa2016
mmosa2016
 
Banking Training In Nepal
Banking Training In NepalBanking Training In Nepal
Banking Training In Nepal
 
Lag ej 1
Lag ej 1Lag ej 1
Lag ej 1
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 
Contabilidad
ContabilidadContabilidad
Contabilidad
 
Carnaval 2017
Carnaval 2017Carnaval 2017
Carnaval 2017
 

Similar to Динамическое программирование - курс лекций.1

Crowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкойCrowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкойssuser80b897
 
Невероятное путешествие в страну динамического программирования
Невероятное путешествие в страну динамического программированияНевероятное путешествие в страну динамического программирования
Невероятное путешествие в страну динамического программированияIgor Kleiner
 
FlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in ClojureFlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in Clojuredenyslebediev
 
Декларативно функциональный стиль в PHP
Декларативно функциональный стиль в PHPДекларативно функциональный стиль в PHP
Декларативно функциональный стиль в PHPParallels
 
автоматическое аннотирование новостного потока
автоматическое аннотирование новостного потокаавтоматическое аннотирование новостного потока
автоматическое аннотирование новостного потокаNatalia Ostapuk
 
кривошеев евгений - как нужно уметь думать специалистам
кривошеев евгений -  как нужно уметь думать специалистамкривошеев евгений -  как нужно уметь думать специалистам
кривошеев евгений - как нужно уметь думать специалистамMagneta AI
 

Similar to Динамическое программирование - курс лекций.1 (9)

Crowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкойCrowdsourcing с механической поддержкой
Crowdsourcing с механической поддержкой
 
Невероятное путешествие в страну динамического программирования
Невероятное путешествие в страну динамического программированияНевероятное путешествие в страну динамического программирования
Невероятное путешествие в страну динамического программирования
 
FlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in ClojureFlatGUI: Reactive GUI Toolkit Implemented in Clojure
FlatGUI: Reactive GUI Toolkit Implemented in Clojure
 
Design & Process Models
Design & Process ModelsDesign & Process Models
Design & Process Models
 
Декларативно функциональный стиль в PHP
Декларативно функциональный стиль в PHPДекларативно функциональный стиль в PHP
Декларативно функциональный стиль в PHP
 
BDD
BDDBDD
BDD
 
автоматическое аннотирование новостного потока
автоматическое аннотирование новостного потокаавтоматическое аннотирование новостного потока
автоматическое аннотирование новостного потока
 
кривошеев евгений - как нужно уметь думать специалистам
кривошеев евгений -  как нужно уметь думать специалистамкривошеев евгений -  как нужно уметь думать специалистам
кривошеев евгений - как нужно уметь думать специалистам
 
Design&Process Models
Design&Process ModelsDesign&Process Models
Design&Process Models
 

More from Igor Kleiner

Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1Igor Kleiner
 
מדעי נתונים לכל אחד
מדעי נתונים לכל אחדמדעי נתונים לכל אחד
מדעי נתונים לכל אחדIgor Kleiner
 
מדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותמדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותIgor Kleiner
 
מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2Igor Kleiner
 
מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1Igor Kleiner
 
תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3Igor Kleiner
 
תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4Igor Kleiner
 
שאלות לתרגול עצמי
שאלות לתרגול עצמישאלות לתרגול עצמי
שאלות לתרגול עצמיIgor Kleiner
 
פתרון תרגיל 3
פתרון תרגיל 3פתרון תרגיל 3
פתרון תרגיל 3Igor Kleiner
 
מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13Igor Kleiner
 
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיותתכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיותIgor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמימבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמיIgor Kleiner
 
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעהתכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעהIgor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017Igor Kleiner
 
תכנות מדעי: פייתון: הרצאה 8: 2017
תכנות מדעי: פייתון: הרצאה 8:  2017תכנות מדעי: פייתון: הרצאה 8:  2017
תכנות מדעי: פייתון: הרצאה 8: 2017Igor Kleiner
 
תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017Igor Kleiner
 
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימותתכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימותIgor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017Igor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017Igor Kleiner
 
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאותמבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאותIgor Kleiner
 

More from Igor Kleiner (20)

Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1Анализ данных просто и доступно - урок 1
Анализ данных просто и доступно - урок 1
 
מדעי נתונים לכל אחד
מדעי נתונים לכל אחדמדעי נתונים לכל אחד
מדעי נתונים לכל אחד
 
מדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותמדע נתונים - למידה מכונות
מדע נתונים - למידה מכונות
 
מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2מבוא למדעי הנתונים שבוע 2
מבוא למדעי הנתונים שבוע 2
 
מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1מבוא למדעי הנתונים הרצאה 1
מבוא למדעי הנתונים הרצאה 1
 
תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3תכנות דינמי הרצאה 3
תכנות דינמי הרצאה 3
 
תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4תכנות דינמי הרצאה 4
תכנות דינמי הרצאה 4
 
שאלות לתרגול עצמי
שאלות לתרגול עצמישאלות לתרגול עצמי
שאלות לתרגול עצמי
 
פתרון תרגיל 3
פתרון תרגיל 3פתרון תרגיל 3
פתרון תרגיל 3
 
מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13מבוא לתכנות מדעי: פייתון הרצאה 13
מבוא לתכנות מדעי: פייתון הרצאה 13
 
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיותתכנות מדעי פייתון: הרצאה 12: סיבוכיות
תכנות מדעי פייתון: הרצאה 12: סיבוכיות
 
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמימבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
מבוא לתכנות מדעי: פייתון: הרצאה 11: דבגינג + תכנות דינמי
 
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעהתכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
תכנות מדעי: פייתון: הרצאה 10: : תחום הכרעה
 
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 9: 2017
 
תכנות מדעי: פייתון: הרצאה 8: 2017
תכנות מדעי: פייתון: הרצאה 8:  2017תכנות מדעי: פייתון: הרצאה 8:  2017
תכנות מדעי: פייתון: הרצאה 8: 2017
 
תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017תכנות מדעי: פייתון : הרצאה 7: 2017
תכנות מדעי: פייתון : הרצאה 7: 2017
 
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימותתכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
תכנות מדעי: פייתון: הרצאה 6: קבצים, רשימות
 
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 5: 2017
 
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 4: 2017
 
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאותמבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
מבוא לתכנות מדעי: פייתון: הרצאה 3: לולאות
 

Динамическое программирование - курс лекций.1

  • 2. Цели Урока Первое знакомство с динамическим программированием Что такое динамическое программирование? Задачи оптимизации и задачи комбинаторики Свойство оптимальности у подзадач
  • 4. Динамическое программирование • Что же такое ДП? • ДП - метод решения задач оптимизации и комбинаторики, обладающих определенным свойством
  • 5. Динамическое программирование • Что же такое ДП? • ДП метод решения задач оптимизации и комбинаторики, обладающих определенным свойством
  • 6. ДП метод решения задач оптимизации и комбинаторики, обладающих определенным свойством • Метод: определённая последовательность действий, ведущих к решению задачи шаг 1 шаг 2 … решение
  • 7. ДП метод решения задач оптимизации и комбинаторики, обладающих определенным свойством • Метод – инструмент: определенная совокупность действий ведущих к решению задачи • Задача оптимизации: задача поиска максимума или минимума некой функции, например:
  • 8. ДП метод решения задач оптимизации и комбинаторики, обладающих определенным свойством • Метод – инструмент: определенная совокупность действий ведущих к решению задачи • Задача оптимизации: задача поиска максимума или минимума некой функции, например: • выбор лучшей невесты • выбор кратчайшего пути • выбор стратегии игры с максимальным средним выигрышем • выбор плана производства минимизирующего потери • …
  • 9. ДП метод решения задач оптимизации и комбинаторики, обладающих определенным свойством • Метод – инструмент: определенная совокупность действий ведущих к решению задачи • Задача оптимизации: задача поиска максимума или минимума некой функции, например: • выбор лучшей невесты • выбор кратчайшего пути • выбор стратегии игры с максимальным средним выигрышем • выбор плана производства минимизирующего потери • …
  • 10. ДП метод решения задач оптимизации и комбинаторики, обладающих определенным свойством • Метод – инструмент: определенная совокупность действий ведущих к решению задачи • Задача оптимизации: задача поиска максимума или минимума некой функции • Задача комбинаторики: задача, связанная с подсчетом количества объектов • сколькими способами можно 10 человек поставить в ряд? • сколькими способами можно покрасить данный граф в три цвета • сколько существует способов вернуть сдачу Х с помощью монет 1,2,3 копейки
  • 11. ДП метод решения задач оптимизации и комбинаторики, обладающих определенным свойством • Метод – инструмент: определенная совокупность действий ведущих к решению задачи • Задача оптимизации: задача поиска максимума или минимума некой функции • Задача комбинаторики: задача, связанная с подсчетом количества объектов • Свойство оптимальности подзадач: оптимальное решение всей задачи строится на решении более простых подзадач
  • 12. Свойство оптимальности подзадач неформальное объяснение • Свойство оптимальности подзадач: оптимальное решение всей задачи строится на решении более простых подзадач • Дана исходная сложная задача решить которую сразу мы не можем очень сложная задача «реши меня»
  • 13. Свойство оптимальности подзадач неформальное объяснение • Дана исходная сложная задача решить которую сразу мы не можем • Упростим задачу и решим ее очень простую версию
  • 14. Свойство оптимальности подзадач неформальное объяснение • Дана исходная сложная задача решить которую сразу мы не можем • Используя решение очень простой задачи, решим чуть более сложную подзадачу
  • 15. Свойство оптимальности подзадач неформальное объяснение • Дана исходная сложная задача решить которую сразу мы не можем • Используя решения предыдущих подзадач, решим еще более сложную подзадачу маленькая подзадача мы умеем ее решать S0 чуть более сложная подзадача S1 ее мы уже решили Решим еще более сложную подзадачу S2 используя решения предыдущих подзадач
  • 16. Свойство оптимальности подзадач неформальное объяснение • Дана исходная сложная задача решить которую сразу мы не можем • Продолжим расширять подзадачу пока не получим решение исходной задачи маленькая подзадача мы умеем ее решать S0 чуть более сложная подзадача S1 ее мы уже решили Решим еще более сложную подзадачу S2 используя решения предыдущих подзадач
  • 17. Свойство оптимальности подзадач неформальное объяснение ПОБЕДА Исходная сложная задача решена с помощью решения последовательности простых подзадач
  • 18. Итоги урока Первое знакомство с методом динамического программирования ДП позволяет решать некоторые задачи оптимизации и комбинаторики, используя свойство оптимальности у подзадач
  • 19. Ссылки • Канал курса на портале YouTube: • https://www.youtube.com/playlist?list=PLUfHxBkkFMScqPOn8J0aHvd48wykQNcWS • Группа динамическое программирование «в контакте» • https://vk.com/public76350495 • Слайды лекций курса: • https://www.slideshare.net/igorkleiner5