Upload
igor-kleiner
View
211
Download
0
Embed Size (px)
Citation preview
ОБО МНЕ
«Критическое мышление на каждый
день»
«Динамическое программирование»
«Секреты прохождения интервью»
«Психология восприятия»
«Просто о нейронах»
«Шизофрения»
ГЛАВНЫЕ ВОПРОСЫ
• Кто я?
• Кто здесь?
• Зачем мы тут?
• Что такое динамическое программирование и
зачем оно нужно?
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
• Два подхода к объяснениям:
• Сверху вниз
• Снизу вверх
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
• Два подхода к объяснениям:
• Сверху вниз
• Снизу вверх
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Пример обычного объяснения «снизу вверх»
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Наше объяснение: сверху вниз
Мотивация –
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Наше объяснение: сверху вниз
Мотивация – истории из жизни
ЧТО ТАКОЕ ДИНАМИЧЕСКОЕ
ПРОГРАММИРОВАНИЕ И ЗАЧЕМ ОНО НАМ
НУЖНО?
Наше объяснение: сверху вниз
Мотивация – истории из жизни
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
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• +
CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• + =
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 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
• В хучшем случае достаточно 100 попыток
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
• В худшем случае достаточно 100 попыток
• Но можно ли лучше?
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
• В худшем случае достаточно 100 попыток
• Но можно ли лучше? 50? 25? 14? 10? 2?
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
Достаточно 14 бросков
КРАТКИЙ ИТОГ
• Динамическое программирование:
• прохождение собеседования
• работа
• олимпиады по программированию
• учеба на технических специальностях
• кайф от новых открытий и решения сложных
задач
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие определенным
свойством
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и задачи оптимизации, обладающие определенным свойством
• СКОЛЬКО:
• сколько способов вернуть сдачу
• сколько способов обойти граф
• сколько способов выполнить план
• сколько игр надо сыграть чтобы …
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и задачи
оптимизации, обладающие определенным свойством
• минимум или максимум
• прибыли \ ущерба
• вероятности успеха
• среднего ожидаемого дохода
• продолжительности жизни процесса
ВОПРОС НА ЗАСЫПКУ
• Выбор лучшей невесты это:
• Задача оптимизации
• Комбинаторная задача
• Задача вариационного исчисления
• Хитрая казуистика
ВОПРОС НА ЗАСЫПКУ
• Выбор лучшей невесты это:
• Задача оптимизации
• Комбинаторная задача
• Задача вариационного исчисления
• Хитрая казуистика
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие
определенным свойством
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
ОЧЕНЬ ОЧЕНЬ СЛОЖНАЯ ЗАДАЧА
МНОЖЕСТВО ПАРАМЕТРОВ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим маленькую часть
задачи - легко
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим большую часть задачи,
используя полученное ранее решение
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим большую часть задачи,
используя полученное ранее решение
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим большую часть задачи,
используя полученное ранее решение
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
УРА!!!
МЫ РЕШИЛИ ВСЮ ЗАДАЧУ
Решим всю задачу,
используя полученные ранее решения
НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
• Но!
НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
• Но!
НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
• Но! Дьявол кроется в деталях
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• сдача 11 - ?
• сдача 6 - ?
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• сдача 11 – 3 монеты (5) (5) (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)]
• Не стоит пугаться если не все понятно!
• И даже если все не понятно
«АЛГОРИТМ» РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ
ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
• Определить целевую функцию:
• F(n) – минимальное количество ….
• F(m,n) – максимальный риск при условии ….
«АЛГОРИТМ» РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ
ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
• Определить целевую функцию:
• F(n) – минимальное количество ….
• F(m,n) – максимальный риск при условии ….
• Написать «магическую» формулу для вычисления
F(n)
«АЛГОРИТМ» РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ
ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
• Определить целевую функцию:
• F(n) – минимальное количество ….
• F(m,n) – максимальный риск при условии ….
• Написать «магическую» формулу для вычисления
F(n)
• Задачать начальные условия: F(0)=1, F(0,n)=n
РЕЗЮМЕ
• Динамическое программирования –
относительно простая и одновременно
мощная техника позволяющая решать
широкий класс задач
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12,
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1,
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1, 15,
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1, 15, 143
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1, 15, 143, 2, 3, 200, 4, 32 - катастрофа
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143, 2,
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143, 2, 3,
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143, 2, 3, 200, 4, 32 победа
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ \ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
БИРЖА
• Опцион дает право купить или продать продукт по
специальной цене в заранее определенно время
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов, но
переживает, что курс может вырасти.
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов но
переживает, что курс может вырасти.
• Сегодня доллар стоит 56 рублей. Вася покупает за х
рублей опцион на покупку 1000 долларов через год по
цене 60 рублей за доллар.
• Если через год доллар будет стоить больше 60, Вася
воспользуется опционом иначе выбросит его в мусор
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов но
переживает, что курс может вырасти.
• Сегодня доллар стоит 56 рублей. Вася покупает за х
рублей опцион на покупку 1000 долларов через год за 60
рублей.
• Если через год доллар будет стоить больше 60, Вася
воспользуется опционом иначе выбросит его в мусор
• Как определить цену опциона?
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
• Успех и широкое распространение формулы привело к
тому, что Шоулз получил Нобелевскую премию по
экономике в 1997 году «за новый метод определения
стоимости производных ценных бумаг».
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
РЕЗЮМЕ
• Динамическое программирования –
относительно простая и одновременно
мощная техника позволяющая решать
широкий класс задач
МОЖНО ЛИ САМОСТОЯТЕЛЬНО ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Можно и нужно!
• Идеи метода доступны даже школьникам
ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Что понять идеи метода стоит посмотреть на
решения 3-5 задач и столько же задач решить
самостоятельно
ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Чтобы уметь самостоятельно пользоваться
методом и решать нестандартные задачи стоит
посмотреть на решения и решить самостоятельно
10-15 задач
ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Чтобы стать гуру в ДП, стоит увеличить количество
решенных задач до 30 и более
ВОПРОСЫ
• В рамках каких курсов, как правило, студенты
изучают динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть чуть
• алгоритмы - часть, чуть чуть
ВОПРОСЫ
• В рамках каких курсов, как правило, студенты изучают
динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть чуть
• алгоритмы - часть, чуть чуть
• Парадокс – в целом многие студенты плохо
понимают суть метода и не умеют им пользоваться
ВОПРОСЫ
• В рамках каких курсов, как правило, студенты изучают динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть-чуть
• алгоритмы - часть, чуть-чуть
• Парадокс – в целом многие студенты плохо понимают суть метода и не умеют им пользоваться
Почему?
ВОПРОСЫ
• В рамках каких курсов, как правило, студенты изучают динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть-чуть
• алгоритмы - часть, чуть-чуть
• Парадокс – в целом многие студенты плохо понимают суть метода и не умеют им пользоваться
Почему?
ВОПРОС
• Часто ли встречаются задачи, решаемые с
помощью ДП на интервью?
• Да довольно часто 20-60% (примерно)
ВОПРОС
• Где еще применяется ДП?
• Image processing
• Graph theory
• Data mining
• Statistical learning
• Biology
ОБРАТНАЯ СВЯЗЬ
Ваши вопросы и обратная связь суть лучший источник
мотивации
ССЫЛКИ
• Бесплатный онлайн курс «Динамическое
программирование» https://goo.gl/p5yks2
ЛИТЕРАТУРА
• Виленкин «Комбинаторика»
• Е.С. Вентцель «Исследование операций»
• А. Кофман «3аймемся исследованием операций»
• Dynamic programming and optimal control D.
Bertsekas