SlideShare a Scribd company logo
1 of 113
Download to read offline
(с) Игорь Клейнер 2015
УВЛЕКАТЕЛЬНОЕ ПУТЕШЕСТВИЕ В
СТРАНУ ДИНАМИЧЕСКОГО
ПРОГРАММИРОВАНИЯ
ДОБРО ПОЖАЛОВАТЬ
ОБО МНЕ:
ОБО МНЕ:
ОБО МНЕ:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ В
МАССЫ
ГЛАВНЫЕ ВОПРОСЫ
ГЛАВНЫЕ ВОПРОСЫ
• Кто я?
• Кто здесь?
• Зачем мы тут?
ГЛАВНЫЕ ВОПРОСЫ
• Кто я?
• Кто здесь?
• Зачем мы тут?
ГЛАВНЫЕ ВОПРОСЫ
• Кто я?
• Кто здесь?
• Зачем мы тут?
• Что такое динамическое программирование и
зачем оно нам нужно?
МЕТАФОРА
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
• Два подхода к объяснениям:
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
• Два подхода к объяснениям:
• Сверху вниз
• Снизу вверх
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
• Два подхода к объяснениям:
• Сверху вниз
• Снизу вверх
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Пример обычного объяснения «снизу вверх»
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Объяснение: сверху вниз
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Объяснение: сверху вниз
Мотивация –
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Объяснение: сверху вниз
Мотивация – истории из жизни
CASE STORY #1
• 2011 Intel интервью
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность с
максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3] -7
• [1 -10 2 1 12 -4 5 -3] -2
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность с
максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3] -7
• [1 -10 2 1 12 -4 5 -3] -2
• [1 -10 2 1 12 -4 5 -3] 16
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
• Ничтоже сумняшеся
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
• Ничтоже сумняшеся
CASE STORY #1
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• +
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• + =
CASE STORY #2
• 2014 Microsoft интервью
CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
• Решение:
CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
• Решение: ???
CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
• Решение: динамическое программирование
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
МАГИЯ ДИНАМИЧЕСКОГО ПРОГРАММРОВАНИЯ
МАГИЯ ДИНАМИЧЕСКОГО ПРОГРАММРОВАНИЯ
[1 -10 2 1 12 -4 5 -3]
МАГИЯ ДИНАМИЧЕСКОГО ПРОГРАММРОВАНИЯ
[1 -10 2 1 12 -4 5 -3]
МАГИЯ ДИНАМИЧЕСКОГО ПРОГРАММРОВАНИЯ
ЕЩЕ НЕМНОГО МОТИВАЦИИ
ЕЩЕ НЕМНОГО МОТИВАЦИИ
ЕЩЕ МОТИВАЦИЯ
• Олимпиады по программированию
ЕЩЕ НЕМНОГО МОТИВАЦИИ
И ЕЩЕ СОВСЕМ ЧУТЬ-ЧУТЬ МОТИВАЦИИ
И ЕЩЕ СОВСЕМ ЧУТЬ-ЧУТЬ МОТИВАЦИИ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие определенным
свойством
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие определенным
свойством
• СКОЛЬКО:
• сколько способов вернуть сдачу
• сколько способов обойти граф
• сколько способов выполнить план
• сколько игр надо сыграть чтобы …
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и задачи
оптимизации, обладающие определенным
свойством
• Минимум или максимум
• прибыли  ущерба
• вероятности успеха
• среднего ожидаемого дохода
• продолжительности жизни процесса
ВОПРОС НА ЗАСЫПКУ
• Выбор лучшей невесты это:
• Задача оптимизации
• Комбинаторная задача
• Задача вариационного исчисления
• Хитрая казуистика
ВОПРОС НА ЗАСЫПКУ
• Выбор лучшей невесты это:
• Задача оптимизации
• Комбинаторная задача
• Задача вариационного исчисления
• Хитрая казуистика
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие
определенным свойством
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• сдача 11 - ?
• сдача 6 - ?
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• сдача 11 – 2 монеты (10) (1)
• сдача 6 - 2 монеты (3)(3) или (5) (1)
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем “чудо формулу” для вычисления F(n)
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [ , , , ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [ , , , ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+ , , , ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+ F(n-1) , , , ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+ F(n-1), 1+F(n-2) , , ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = ??? [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = min [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• F(n) = min [1+F(n-1),1+F(n-2),1+F(n-3),1+F(n-5)]
• Не стоит пугаться если не все понятно!
ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• F(n) = min [1+F(n-1),1+F(n-2),1+F(n-3),1+F(n-5)]
• Не стоит пугаться если не все понятно!
• И даже если все не понятно
ВОПРОС
• Любую задачу можно решить с помощью
динамического программирования?
• Да
• Нет
ВОПРОС
• Любую задачу можно решить с помощью
динамического программирования?
• Да
• Нет
РЕЗЮМЕ
• Динамическое программирования –
относительно простая и одновременно
мощная техника позволяющая решать
широкий класс задач
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ  РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ  РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ  РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
БИРЖА
БИРЖА
• Опцион -
БИРЖА
• Опцион дает право купить или продать продукт по
специальной цене
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов, но
переживает, что курс может вырасти.
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов но
переживает, что курс может вырасти.
• Сегодня доллар стоит 56 рублей. Вася покупает за х
рублей опцион на покупку 1000 долларов через год за 60
рублей.
• Если через год доллар будет стоить больше 60, Вася
воспользуется опционом иначе выбросит его в мусор
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов но
переживает, что курс может вырасти.
• Сегодня доллар стоит 56 рублей. Вася покупает за х
рублей опцион на покупку 1000 долларов через год за 60
рублей.
• Если через год доллар будет стоить больше 60, Вася
воспользуется опционом иначе выбросит его в мусор
• Как определить цену опциона?
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
• Успех и широкое распространение формулы привело к
тому, что Шоулз получил Нобелевскую премию по
экономике в 1997 году «за новый метод определения
стоимости производных ценных бумаг».
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
РЕЗЮМЕ
• Динамическое программирования –
относительно простая и одновременно
мощная техника позволяющая решать
широкий класс задач
МАГИЯ ДИНАМИЧЕСКОГО ПРОГРАММРОВАНИЯ
ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Что понять идеи метода стоит посмотреть на
решения 3-5 задач и столько же задач решить
самостоятельно
ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Чтобы уметь самостоятельно пользоваться
методом и решать нестандартные задачи стоит
посмотреть на решения и решить самостоятельно
10-15 задач
ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Чтобы стать гуру в ДП, стоит увеличить количество
решенных задач до 30 и более
МОЖНО ЛИ САМОСТОЯТЕЛЬНО ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Можно и нужно!
• Идеи метода доступны даже школьникам
КАК ИЗУЧИТЬ САМОСТОЯТЕЛЬНО
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
Бархатный путь
КАК ИЗУЧИТЬ САМОСТОЯТЕЛЬНО
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
СЕРТИФИКАТ ДОСТИЖЕНИЙ
ОБРАТНАЯ СВЯЗЬ
• igkleiner@gmail.com
Ваши вопросы и обратная связь суть лучший источник
мотивации
ССЫЛКИ
• Бесплатный онлайн курс «Динамическое
программирование» https://goo.gl/p5yks2
ССЫЛКИ
• Задача о выборе невесты
• https://goo.gl/ij25ZJ
ССЫЛКИ
• Задача о сдаче
• https://goo.gl/BZJh1V
ССЫЛКИ
• Задача о подпоследовательности
• https://goo.gl/ulEBor
ЛИТЕРАТУРА
• Е.С. Вентцель «Исследование операций»
• А. Кофман «3аймемся исследованием операций»
• Dynamic programming and optimal control D.
Bertsekas
БЛАГОДАРНОСТИ
БЛАГОДАРНОСТИ
БЛАГОДАРНОСТИ
• Клейнер Надежда
• Бородин Захар
• Гольцман Александр
• Дубинский Игаль
• Гликин Григорий
• Емельянов Юрий

More Related Content

More from 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
 
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017Igor Kleiner
 
פייתון: הרצאה 1
פייתון: הרצאה 1פייתון: הרצאה 1
פייתון: הרצאה 1Igor Kleiner
 

More from Igor Kleiner (20)

מדע נתונים - למידה מכונות
מדע נתונים - למידה מכונותמדע נתונים - למידה מכונות
מדע נתונים - למידה מכונות
 
מבוא למדעי הנתונים שבוע 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: לולאות
 
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
מבוא לתכנות מדעי: פייתון: הרצאה 2: 2017
 
פייתון: הרצאה 1
פייתון: הרצאה 1פייתון: הרצאה 1
פייתון: הרצאה 1
 

Увлекательное путешествие в страну Динамического программирования

  • 1. (с) Игорь Клейнер 2015 УВЛЕКАТЕЛЬНОЕ ПУТЕШЕСТВИЕ В СТРАНУ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
  • 8. ГЛАВНЫЕ ВОПРОСЫ • Кто я? • Кто здесь? • Зачем мы тут?
  • 9. ГЛАВНЫЕ ВОПРОСЫ • Кто я? • Кто здесь? • Зачем мы тут?
  • 10. ГЛАВНЫЕ ВОПРОСЫ • Кто я? • Кто здесь? • Зачем мы тут? • Что такое динамическое программирование и зачем оно нам нужно?
  • 12. ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ НУЖНО? • Два подхода к объяснениям:
  • 13. ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ НУЖНО? • Два подхода к объяснениям: • Сверху вниз • Снизу вверх
  • 14. ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ НУЖНО? • Два подхода к объяснениям: • Сверху вниз • Снизу вверх
  • 15. ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ НУЖНО? Пример обычного объяснения «снизу вверх»
  • 16.
  • 17.
  • 18. ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ НУЖНО? Объяснение: сверху вниз
  • 19. ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ НУЖНО? Объяснение: сверху вниз Мотивация –
  • 20. ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ НУЖНО? Объяснение: сверху вниз Мотивация – истории из жизни
  • 21. CASE STORY #1 • 2011 Intel интервью
  • 22. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • [1 -10 2 1 12 -4 5 -3]
  • 23. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • [1 -10 2 1 12 -4 5 -3] -7 • [1 -10 2 1 12 -4 5 -3] -2
  • 24. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • [1 -10 2 1 12 -4 5 -3] -7 • [1 -10 2 1 12 -4 5 -3] -2 • [1 -10 2 1 12 -4 5 -3] 16
  • 25. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • [1 -10 2 1 12 -4 5 -3]
  • 26. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • [1 -10 2 1 12 -4 5 -3] • Ничтоже сумняшеся
  • 27. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • [1 -10 2 1 12 -4 5 -3] • Ничтоже сумняшеся
  • 29. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов
  • 30. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • +
  • 31. CASE STORY #1 • 2011 Intel интервью • Предложите алгоритм который находит в последовательности чисел подпоследовательность с максимальной суммой элементов • + =
  • 32. CASE STORY #2 • 2014 Microsoft интервью
  • 33. CASE STORY #2 • 2014 Microsoft интервью • Сколько существует способов вернуть сдачу n монетами 1, 2, 3 и 5 копеек?
  • 34. CASE STORY #2 • 2014 Microsoft интервью • Сколько существует способов вернуть сдачу n монетами 1, 2, 3 и 5 копеек? • Решение:
  • 35. CASE STORY #2 • 2014 Microsoft интервью • Сколько существует способов вернуть сдачу n монетами 1, 2, 3 и 5 копеек? • Решение: ???
  • 36. CASE STORY #2 • 2014 Microsoft интервью • Сколько существует способов вернуть сдачу n монетами 1, 2, 3 и 5 копеек? • Решение: динамическое программирование
  • 37. CASE STORY #3 • Хайфский университет, 2000 год, лекция именитого профессора
  • 38. CASE STORY #3 • Хайфский университет, 2000 год, лекция именитого профессора • Задача: 100 этажей + два яйца: Определить за минимальное количество попыток, этаж начиная с которого яйцо разбивается
  • 39. CASE STORY #3 • Хайфский университет, 2000 год, лекция именитого профессора • Задача: 100 этажей + два яйца: Определить за минимальное количество попыток, этаж начиная с которого яйцо разбивается
  • 46. ЕЩЕ МОТИВАЦИЯ • Олимпиады по программированию
  • 48. И ЕЩЕ СОВСЕМ ЧУТЬ-ЧУТЬ МОТИВАЦИИ
  • 49. И ЕЩЕ СОВСЕМ ЧУТЬ-ЧУТЬ МОТИВАЦИИ
  • 51. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • ДП – позволяет решать комбинаторные задачи и задачи оптимизации, обладающие определенным свойством
  • 52. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • ДП – позволяет решать комбинаторные задачи и задачи оптимизации, обладающие определенным свойством • СКОЛЬКО: • сколько способов вернуть сдачу • сколько способов обойти граф • сколько способов выполнить план • сколько игр надо сыграть чтобы …
  • 53. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • ДП – позволяет решать комбинаторные задачи и задачи оптимизации, обладающие определенным свойством • Минимум или максимум • прибыли ущерба • вероятности успеха • среднего ожидаемого дохода • продолжительности жизни процесса
  • 54. ВОПРОС НА ЗАСЫПКУ • Выбор лучшей невесты это: • Задача оптимизации • Комбинаторная задача • Задача вариационного исчисления • Хитрая казуистика
  • 55. ВОПРОС НА ЗАСЫПКУ • Выбор лучшей невесты это: • Задача оптимизации • Комбинаторная задача • Задача вариационного исчисления • Хитрая казуистика
  • 56. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • ДП – позволяет решать комбинаторные задачи и задачи оптимизации, обладающие определенным свойством • Оптимальность у подзадач – можно решить задачу, с помощью решения задачи меньшей размерности
  • 57. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Оптимальность у подзадач – можно решить задачу, с помощью решения аналогичной задачи меньшей размерности
  • 58. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Оптимальность у подзадач – можно решить задачу, с помощью решения задачи меньшей размерности:
  • 59. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Оптимальность у подзадач – можно решить задачу, с помощью решения задачи меньшей размерности:
  • 60. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Оптимальность у подзадач – можно решить задачу, с помощью решения задачи меньшей размерности:
  • 61. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Оптимальность у подзадач – можно решить задачу, с помощью решения задачи меньшей размерности:
  • 62. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Оптимальность у подзадач – можно решить задачу, с помощью решения задачи меньшей размерности:
  • 63. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Хватит теории, дайте практики!
  • 64. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Хватит теории, дайте практики! • Определить минимальное количество монет, необходимое для возврата сдачи n
  • 65. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Хватит теории, дайте практики! • Определить минимальное количество монет, необходимое для возврата сдачи n • сдача 11 - ? • сдача 6 - ?
  • 66. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ ЗА 5 МИНУТ • Хватит теории, дайте практики! • Определить минимальное количество монет, необходимое для возврата сдачи n • сдача 11 – 2 монеты (10) (1) • сдача 6 - 2 монеты (3)(3) или (5) (1)
  • 67. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n
  • 68. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем “чудо формулу” для вычисления F(n)
  • 69. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = [ , , , ]
  • 70. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = [ , , , ]
  • 71. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = [1+ , , , ]
  • 72. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = [1+ F(n-1) , , , ]
  • 73. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = [1+ F(n-1), 1+F(n-2) , , ]
  • 74. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
  • 75. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = ??? [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
  • 76. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • Обозначим через F(n) минимальное количество монет, необходимое для возврата сдачи n • Напишем чудо формулу для вычисления F(n) • F(n) = min [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
  • 77. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • F(n) = min [1+F(n-1),1+F(n-2),1+F(n-3),1+F(n-5)] • Не стоит пугаться если не все понятно!
  • 78. ЗАДАЧА О СДАЧЕ РЕШЕНИЕ • Определить минимальное количество монет, необходимое для возврата сдачи n • F(n) = min [1+F(n-1),1+F(n-2),1+F(n-3),1+F(n-5)] • Не стоит пугаться если не все понятно! • И даже если все не понятно
  • 79. ВОПРОС • Любую задачу можно решить с помощью динамического программирования? • Да • Нет
  • 80. ВОПРОС • Любую задачу можно решить с помощью динамического программирования? • Да • Нет
  • 81. РЕЗЮМЕ • Динамическое программирования – относительно простая и одновременно мощная техника позволяющая решать широкий класс задач
  • 82. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ ПРИНЦ • Принцу необходимо выбрать лучшую из n невест которые подходят к нему по одной в случайном порядке, раз отказав невесте, принц не сможет вернуться к ней
  • 83. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ ПРИНЦ • Принцу необходимо выбрать лучшую из n невест которые подходят к нему по одной в случайном порядке, раз отказав невесте, принц не сможет вернуться к ней
  • 84. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ ПРИНЦ • Принцу необходимо выбрать лучшую из n невест которые подходят к нему по одной в случайном порядке, раз отказав невесте, принц не сможет вернуться к ней
  • 87. БИРЖА • Опцион дает право купить или продать продукт по специальной цене
  • 88. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ • Пример: Вася хочет купить через год 1000 долларов, но переживает, что курс может вырасти.
  • 89. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ • Пример: Вася хочет купить через год 1000 долларов но переживает, что курс может вырасти. • Сегодня доллар стоит 56 рублей. Вася покупает за х рублей опцион на покупку 1000 долларов через год за 60 рублей. • Если через год доллар будет стоить больше 60, Вася воспользуется опционом иначе выбросит его в мусор
  • 90. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ • Пример: Вася хочет купить через год 1000 долларов но переживает, что курс может вырасти. • Сегодня доллар стоит 56 рублей. Вася покупает за х рублей опцион на покупку 1000 долларов через год за 60 рублей. • Если через год доллар будет стоить больше 60, Вася воспользуется опционом иначе выбросит его в мусор • Как определить цену опциона?
  • 91. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ • Как определить цену опциона? • Формула Блека-Шоулза • Успех и широкое распространение формулы привело к тому, что Шоулз получил Нобелевскую премию по экономике в 1997 году «за новый метод определения стоимости производных ценных бумаг».
  • 92. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ • Как определить цену опциона? • Формула Блека-Шоулза
  • 93. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ • Как определить цену опциона? • Формула Блека-Шоулза
  • 94. РЕЗЮМЕ • Динамическое программирования – относительно простая и одновременно мощная техника позволяющая решать широкий класс задач
  • 96.
  • 97. ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
  • 98. ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ? • Что понять идеи метода стоит посмотреть на решения 3-5 задач и столько же задач решить самостоятельно
  • 99. ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ? • Чтобы уметь самостоятельно пользоваться методом и решать нестандартные задачи стоит посмотреть на решения и решить самостоятельно 10-15 задач
  • 100. ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ? • Чтобы стать гуру в ДП, стоит увеличить количество решенных задач до 30 и более
  • 101. МОЖНО ЛИ САМОСТОЯТЕЛЬНО ИЗУЧИТЬ ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ? • Можно и нужно! • Идеи метода доступны даже школьникам
  • 102. КАК ИЗУЧИТЬ САМОСТОЯТЕЛЬНО ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ Бархатный путь
  • 105. ОБРАТНАЯ СВЯЗЬ • igkleiner@gmail.com Ваши вопросы и обратная связь суть лучший источник мотивации
  • 106. ССЫЛКИ • Бесплатный онлайн курс «Динамическое программирование» https://goo.gl/p5yks2
  • 107. ССЫЛКИ • Задача о выборе невесты • https://goo.gl/ij25ZJ
  • 108. ССЫЛКИ • Задача о сдаче • https://goo.gl/BZJh1V
  • 109. ССЫЛКИ • Задача о подпоследовательности • https://goo.gl/ulEBor
  • 110. ЛИТЕРАТУРА • Е.С. Вентцель «Исследование операций» • А. Кофман «3аймемся исследованием операций» • Dynamic programming and optimal control D. Bertsekas
  • 113. БЛАГОДАРНОСТИ • Клейнер Надежда • Бородин Захар • Гольцман Александр • Дубинский Игаль • Гликин Григорий • Емельянов Юрий