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

Preview:

Citation preview

Динамическое

программирование

(с) Игорь Клейнер 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

Recommended