Невероятное путешествие в страну динамического программирования - научно-популярный вебинар
Специально для - образовательного IT-портала GeekBrains
(с) Игорь Клейнер 2015
Школа обработки и анализа данных
ШОАДик
Увлекательное путешествие в страну Динамического программированияIgor Kleiner
Увлекательное путешествие в страну Динамического программирования
Вебинар 1-час
Для программистов, математиков, статистиков и инженеров разработчиков программного обеспечения, а также для всех желающих и любителей математики
Демонстрация процесса continuous delivery на базе коктейля – гремучей смеси из телесериала "Игра престолов" и богатом практическом опыте докладчика, а так же проговаривание примеров использования логических инструментов для облегчения работы тестирования.
Почему оно не находится! / Андрей Аксенов (Sphinx)Ontico
HighLoad++ 2017
Зал «Конгресс-Холл», 7 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/3000.html
...и что сделать, чтобы уже находилось?
И снова про качество поиска. Поменьше скучной теории (ну, чтобы не более 60%); больше практических примеров. Как оценить типа-качество "на пальцах"; почему это плохая идея. Как построить оценивалку; насколько это просто; где взять готовую (нигде); зачем человечеству Толока или Mechanical Turk.
...
DUMP-2015: «Как размножаются программисты» Николай Ясинский, Сигнал, Казань it-people
Выступление на DUMP-2015.
Видео доклада: https://youtu.be/j1tJ9m3ypIM?list=PLRdS-n5seLRrR2gBuM7Kt1yIizNGIrnM9
Организатор конференции: IT-People.ru
Сайт конференции: www.dump-conf.ru
электронные средства поддержания трудовой дисциплины в географически распреде...Daniel Podolsky
Компания GitInSky, также известная как ООО "Жить в небе", действует на рынке, который мы назовем "аутсорсинг системного администрирования", более трех лет.
С одной стороны — не много. С другой — статистика жизненного цикла стартапов говорит нам, что пора слегка отвлечься от штурма и натиска, и поглядеть, что же у нас получается.
Удачно, что отвлекаться и глядеть входит в мои служебные обязанности как технического директора.
Я посвятил анализу сложившихся в компании практик, их результатов и перспектив довольно много времени в начале 2017 года. Человеко-месяц, в общей сложности, если не больше. В основном размышлениям над вопросом, который, я уверен, регулярно задает себе руководитель любого звена: "Почему я так много работаю, а результат такой скромный?". Ответ, кстати, прост и неприятен: "Потому, что я не работаю, а трачу время".
Но доклад мой не об этом. Доклад мой о том, что я раскопал в результате анализа оных практик применительно к такому явлению как "трудовая дисциплина" и техническим средствам ее поддержания.
Итак, я намерен рассказать:
* Что такое "трудовая дисциплина". Это, забегая вперед, совсем не "приходить на работу вовремя". Ну, или именно "приходить на работу вовремя", если правильно понимать это "вовремя".
* Что такое трудовая дисциплина в команде "удаленщиков". Надо сказать, что все это время мы набираем инженеров исключительно на "удаленку", и успешно — по большей части успешно — справляемся решать такой командой довольно сложные и интересные задачи.
* Почему на удаленке не работают традиционные средства поддержания дисциплины: личная харизма руководителя, бамбуковая палка, наручники и батарея.
* Какие формы принимает в такой ситуации традиционный процесс, и насколько эти формы уродливы.
* Подбираясь к теме доклада — как развивались наши представления о дисциплине, и какие средства мы пытались использовать на разных этапах становления компании.
* Наконец, к чему мы пришли. Что именно внедрено сейчас, как оно повлияло на наш доморощенный процесс. Что думают об этом менеджеры, и что говорят инженеры.
* Самое важное — для меня, уж точно: где провисает, и что мы собираемся с этим делать.
Увлекательное путешествие в страну Динамического программированияIgor Kleiner
Увлекательное путешествие в страну Динамического программирования
Вебинар 1-час
Для программистов, математиков, статистиков и инженеров разработчиков программного обеспечения, а также для всех желающих и любителей математики
Демонстрация процесса continuous delivery на базе коктейля – гремучей смеси из телесериала "Игра престолов" и богатом практическом опыте докладчика, а так же проговаривание примеров использования логических инструментов для облегчения работы тестирования.
Почему оно не находится! / Андрей Аксенов (Sphinx)Ontico
HighLoad++ 2017
Зал «Конгресс-Холл», 7 ноября, 18:00
Тезисы:
http://www.highload.ru/2017/abstracts/3000.html
...и что сделать, чтобы уже находилось?
И снова про качество поиска. Поменьше скучной теории (ну, чтобы не более 60%); больше практических примеров. Как оценить типа-качество "на пальцах"; почему это плохая идея. Как построить оценивалку; насколько это просто; где взять готовую (нигде); зачем человечеству Толока или Mechanical Turk.
...
DUMP-2015: «Как размножаются программисты» Николай Ясинский, Сигнал, Казань it-people
Выступление на DUMP-2015.
Видео доклада: https://youtu.be/j1tJ9m3ypIM?list=PLRdS-n5seLRrR2gBuM7Kt1yIizNGIrnM9
Организатор конференции: IT-People.ru
Сайт конференции: www.dump-conf.ru
электронные средства поддержания трудовой дисциплины в географически распреде...Daniel Podolsky
Компания GitInSky, также известная как ООО "Жить в небе", действует на рынке, который мы назовем "аутсорсинг системного администрирования", более трех лет.
С одной стороны — не много. С другой — статистика жизненного цикла стартапов говорит нам, что пора слегка отвлечься от штурма и натиска, и поглядеть, что же у нас получается.
Удачно, что отвлекаться и глядеть входит в мои служебные обязанности как технического директора.
Я посвятил анализу сложившихся в компании практик, их результатов и перспектив довольно много времени в начале 2017 года. Человеко-месяц, в общей сложности, если не больше. В основном размышлениям над вопросом, который, я уверен, регулярно задает себе руководитель любого звена: "Почему я так много работаю, а результат такой скромный?". Ответ, кстати, прост и неприятен: "Потому, что я не работаю, а трачу время".
Но доклад мой не об этом. Доклад мой о том, что я раскопал в результате анализа оных практик применительно к такому явлению как "трудовая дисциплина" и техническим средствам ее поддержания.
Итак, я намерен рассказать:
* Что такое "трудовая дисциплина". Это, забегая вперед, совсем не "приходить на работу вовремя". Ну, или именно "приходить на работу вовремя", если правильно понимать это "вовремя".
* Что такое трудовая дисциплина в команде "удаленщиков". Надо сказать, что все это время мы набираем инженеров исключительно на "удаленку", и успешно — по большей части успешно — справляемся решать такой командой довольно сложные и интересные задачи.
* Почему на удаленке не работают традиционные средства поддержания дисциплины: личная харизма руководителя, бамбуковая палка, наручники и батарея.
* Какие формы принимает в такой ситуации традиционный процесс, и насколько эти формы уродливы.
* Подбираясь к теме доклада — как развивались наши представления о дисциплине, и какие средства мы пытались использовать на разных этапах становления компании.
* Наконец, к чему мы пришли. Что именно внедрено сейчас, как оно повлияло на наш доморощенный процесс. Что думают об этом менеджеры, и что говорят инженеры.
* Самое важное — для меня, уж точно: где провисает, и что мы собираемся с этим делать.
Тривиально о тривиальном / Даниил Подольский (GitInSky.com)Ontico
РИТ++ 2017, Whale Rider
Зал Москва, 6 июня, 18:00
Тезисы:
http://whalerider.ru/2017/abstracts/2576.html
Компания GitInSky, также известная как ООО "Жить в небе", действует на рынке, который мы назовем "аутсорсинг системного администрирования", более трех лет.
С одной стороны — не много. С другой — статистика жизненного цикла стартапов говорит нам, что пора слегка отвлечься от штурма и натиска, и поглядеть, что же у нас получается.
Удачно, что отвлекаться и глядеть входит в мои служебные обязанности как технического директора.
...
Sergey Kudryashov.Использование процесса Product Discovery для перехода от "...Lviv Startup Club
Sergey Kudryashov.Использование процесса Product Discovery для перехода от "создания фич" к "проверке гипотез"
https://www.youtube.com/channel/UC5pkffv9LpA4y8wppOtjzOg?view_as=subscriber
Путь IT-воина: как найти работу мечты и полететь в космосSkillFactory
Сергей Федоров и Сергей Трюхан о том, как лучше всего построить карьеру, которая вам по душе, какие на самом деле есть улочки и лазейки на этом пути, а также – как принять правильное решение. Честный и субъективный взгляд на карьеру ИТ-специалиста "изнутри".
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...Ontico
1. Кадровые вопросы.
1.1. Как отбирать персонал? Возможно ли обучение с нуля?
1.2. Специфика сменной работы, график работы.
1.3. Передача знаний между сотрудниками.
2. Управление процессом, специфика вопросов менеджмента.
2.1. Специфика постановки задач, связанных с поддержкой и оперативным реагированием.
2.2. Регламентирование процессов поддержки.
2.3. Как возможно планирование в условиях хаотической смены приоритетов?
3. Мониторинг техподдержки как средство минимизации человеческого фактора.
3.1. Мониторинг обработки входящих запросов.
3.2. Мониторинг времени, затраченного на выполнение задач.
3.3. Организация и автоматизация "бэк-офиса".
Динамика изменений со стороны бизнеса (наших заказчиков) сейчас настолько велика, что впереди оказываются компании, процесс разработки в которых непрерывно эволюционирует.
Эволюционный процесс позволяет научиться делать более быстрые поставки, более качественные решения, а главное, поставлять с первого раза именно то, что нужно бизнесу.
Необходимый минимум для построения современных процессов разработки - это три ключевых, обязательных для освоения навыка, которым просто обязан научиться каждый участник проектной команды.
Картинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Мир меняется очень быстро. То, что казалось нормальным еще несколько лет назад, перестало быть таковым. Например, наши родители не считают, что работа должна приносить удовольствие. Они уверены, что работа должна приносить деньги.
Все поменялось. Теперь все уверены, что работа должна нравится. Если это не так, нужно немедленно эту работу сменить на другую, более развлекающую.
С этим можно спорить и несоглашаться, но победить это уже нельзя. Вопрос в том, можем ли мы это использовать и как это сделать?
Мы поговорим о геймификации, одном из способов этого добиться. Геймификация — это использование игровых подходов вне игрового контекста.
Вот и мы с вами посмотрим, как практики гейм дизайна использовать для улучшения процесса разработки ПО.
Анализ данных просто и доступно - урок 1Igor Kleiner
Курс лекций: анализ данных просто и доступно
Лекция 1
Что такое данные?
Что такое анализ данных
Мотивация: Челленджер, еАрмони, Своя игра, Моней бол
примеры работы с Оранж
Анализ корона вируса
Тривиально о тривиальном / Даниил Подольский (GitInSky.com)Ontico
РИТ++ 2017, Whale Rider
Зал Москва, 6 июня, 18:00
Тезисы:
http://whalerider.ru/2017/abstracts/2576.html
Компания GitInSky, также известная как ООО "Жить в небе", действует на рынке, который мы назовем "аутсорсинг системного администрирования", более трех лет.
С одной стороны — не много. С другой — статистика жизненного цикла стартапов говорит нам, что пора слегка отвлечься от штурма и натиска, и поглядеть, что же у нас получается.
Удачно, что отвлекаться и глядеть входит в мои служебные обязанности как технического директора.
...
Sergey Kudryashov.Использование процесса Product Discovery для перехода от "...Lviv Startup Club
Sergey Kudryashov.Использование процесса Product Discovery для перехода от "создания фич" к "проверке гипотез"
https://www.youtube.com/channel/UC5pkffv9LpA4y8wppOtjzOg?view_as=subscriber
Путь IT-воина: как найти работу мечты и полететь в космосSkillFactory
Сергей Федоров и Сергей Трюхан о том, как лучше всего построить карьеру, которая вам по душе, какие на самом деле есть улочки и лазейки на этом пути, а также – как принять правильное решение. Честный и субъективный взгляд на карьеру ИТ-специалиста "изнутри".
Строим 24/7 DevOps центр на высоконагруженном проекте / Евгений Потапов (ITSu...Ontico
1. Кадровые вопросы.
1.1. Как отбирать персонал? Возможно ли обучение с нуля?
1.2. Специфика сменной работы, график работы.
1.3. Передача знаний между сотрудниками.
2. Управление процессом, специфика вопросов менеджмента.
2.1. Специфика постановки задач, связанных с поддержкой и оперативным реагированием.
2.2. Регламентирование процессов поддержки.
2.3. Как возможно планирование в условиях хаотической смены приоритетов?
3. Мониторинг техподдержки как средство минимизации человеческого фактора.
3.1. Мониторинг обработки входящих запросов.
3.2. Мониторинг времени, затраченного на выполнение задач.
3.3. Организация и автоматизация "бэк-офиса".
Динамика изменений со стороны бизнеса (наших заказчиков) сейчас настолько велика, что впереди оказываются компании, процесс разработки в которых непрерывно эволюционирует.
Эволюционный процесс позволяет научиться делать более быстрые поставки, более качественные решения, а главное, поставлять с первого раза именно то, что нужно бизнесу.
Необходимый минимум для построения современных процессов разработки - это три ключевых, обязательных для освоения навыка, которым просто обязан научиться каждый участник проектной команды.
Картинки к моему рассказу о том, как мы делаем Банки.ру. Некоторые слайды очень неоднозначны без текста. Тезисы тут: http://nastachku.ru/lectures?lecture_id=630#lecture_630
Видео тут https://www.youtube.com/watch?v=m5QuiTZwMrU
Мир меняется очень быстро. То, что казалось нормальным еще несколько лет назад, перестало быть таковым. Например, наши родители не считают, что работа должна приносить удовольствие. Они уверены, что работа должна приносить деньги.
Все поменялось. Теперь все уверены, что работа должна нравится. Если это не так, нужно немедленно эту работу сменить на другую, более развлекающую.
С этим можно спорить и несоглашаться, но победить это уже нельзя. Вопрос в том, можем ли мы это использовать и как это сделать?
Мы поговорим о геймификации, одном из способов этого добиться. Геймификация — это использование игровых подходов вне игрового контекста.
Вот и мы с вами посмотрим, как практики гейм дизайна использовать для улучшения процесса разработки ПО.
Анализ данных просто и доступно - урок 1Igor Kleiner
Курс лекций: анализ данных просто и доступно
Лекция 1
Что такое данные?
Что такое анализ данных
Мотивация: Челленджер, еАрмони, Своя игра, Моней бол
примеры работы с Оранж
Анализ корона вируса
9. ОБО МНЕ
«Критическое мышление на каждый
день»
«Динамическое программирование»
«Секреты прохождения интервью»
«Психология восприятия»
«Просто о нейронах»
«Шизофрения»
30. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм, который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
31. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм, который находит в
последовательности чисел подпоследовательность с
максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3] -7
• [1 -10 2 1 12 -4 5 -3] -2
32. 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
33. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
34. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
• Ничтоже сумняшеся
35. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• [1 -10 2 1 12 -4 5 -3]
• Ничтоже сумняшеся
37. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
38. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• +
39. CASE STORY #1
• 2011 Intel интервью
• Предложите алгоритм который находит в
последовательности чисел подпоследовательность
с максимальной суммой элементов
• + =
41. CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
42. CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
• Решение:
43. CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
• Решение: ???
44. CASE STORY #2
• 2014 Microsoft интервью
• Сколько существует способов вернуть сдачу n
монетами 1, 2, 3 и 5 копеек?
• Решение: динамическое программирование
45. CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
46. CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
47. CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
• В хучшем случае достаточно 100 попыток
48. CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
• В худшем случае достаточно 100 попыток
• Но можно ли лучше?
49. CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
• В худшем случае достаточно 100 попыток
• Но можно ли лучше? 50? 25? 14? 10? 2?
50. CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
51. CASE STORY #3
• Хайфский университет, 2000 год, лекция именитого
профессора
• Задача: 100 этажей + два яйца:
Определить за минимальное
количество попыток, этаж
начиная с которого яйцо разбивается
Достаточно 14 бросков
63. КРАТКИЙ ИТОГ
• Динамическое программирование:
• прохождение собеседования
• работа
• олимпиады по программированию
• учеба на технических специальностях
• кайф от новых открытий и решения сложных
задач
65. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие определенным
свойством
66. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие определенным
свойством
• СКОЛЬКО:
• сколько способов вернуть сдачу
• сколько способов обойти граф
• сколько способов выполнить план
• сколько игр надо сыграть чтобы …
67. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и задачи
оптимизации, обладающие определенным
свойством
• минимум или максимум
• прибыли ущерба
• вероятности успеха
• среднего ожидаемого дохода
• продолжительности жизни процесса
68. ВОПРОС НА ЗАСЫПКУ
• Выбор лучшей невесты это:
• Задача оптимизации
• Комбинаторная задача
• Задача вариационного исчисления
• Хитрая казуистика
69. ВОПРОС НА ЗАСЫПКУ
• Выбор лучшей невесты это:
• Задача оптимизации
• Комбинаторная задача
• Задача вариационного исчисления
• Хитрая казуистика
70. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• ДП – позволяет решать комбинаторные задачи и
задачи оптимизации, обладающие
определенным свойством
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности
71. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
72. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
ОЧЕНЬ ОЧЕНЬ СЛОЖНАЯ ЗАДАЧА
МНОЖЕСТВО ПАРАМЕТРОВ
73. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим маленькую часть
задачи - легко
74. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим большую часть задачи,
используя полученное ранее решение
75. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим большую часть задачи,
используя полученное ранее решение
76. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
Решим большую часть задачи,
используя полученное ранее решение
77. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения аналогичной задачи
меньшей размерности
УРА!!!
МЫ РЕШИЛИ ВСЮ ЗАДАЧУ
Решим всю задачу,
используя полученные ранее решения
78. НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
79. НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
80. НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
• Но!
81. НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
• Но!
82. НЕУЖЕЛИ ВСЕ ТАК ПРОСТО?
ГДЕ ПОДВОХ?
• Да все относительно просто!
• Даже школьники могут пользоваться динамическим
программированием
• Но! Дьявол кроется в деталях
83. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
84. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
85. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
86. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
87. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Оптимальность у подзадач – можно решить
задачу, с помощью решения задачи меньшей
размерности:
89. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
90. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• сдача 11 - ?
• сдача 6 - ?
91. ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ
ЗА 5 МИНУТ
• Хватит теории, дайте практики!
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• сдача 11 – 3 монеты (5) (5) (1)
• сдача 6 - 2 монеты (3)(3) или (5) (1)
92. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
93. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем “чудо формулу” для вычисления F(n)
94. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [ , , , ]
95. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [ , , , ]
96. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+ , , , ]
97. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+ F(n-1) , , , ]
98. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+ F(n-1), 1+F(n-2) , , ]
99. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
100. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• Обозначим через F(n) минимальное количество
монет, необходимое для возврата сдачи n
• Напишем чудо формулу для вычисления F(n)
• F(n) = ??? [1+F(n-1), 1+F(n-2), 1+F(n-3) ,1+F(n-5) ]
101. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи 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) ]
102. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• F(n) = min [1+F(n-1),1+F(n-2),1+F(n-3),1+F(n-5)]
• Не стоит пугаться если не все понятно!
103. ЗАДАЧА О СДАЧЕ
РЕШЕНИЕ
• Определить минимальное количество монет,
необходимое для возврата сдачи n
• F(n) = min [1+F(n-1),1+F(n-2),1+F(n-3),1+F(n-5)]
• Не стоит пугаться если не все понятно!
• И даже если все не понятно
104. «АЛГОРИТМ» РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ
ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
• Определить целевую функцию:
• F(n) – минимальное количество ….
• F(m,n) – максимальный риск при условии ….
105. «АЛГОРИТМ» РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ
ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
• Определить целевую функцию:
• F(n) – минимальное количество ….
• F(m,n) – максимальный риск при условии ….
• Написать «магическую» формулу для вычисления
F(n)
106. «АЛГОРИТМ» РЕШЕНИЯ ЗАДАЧИ С ПОМОЩЬЮ
ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ
• Определить целевую функцию:
• F(n) – минимальное количество ….
• F(m,n) – максимальный риск при условии ….
• Написать «магическую» формулу для вычисления
F(n)
• Задачать начальные условия: F(0)=1, F(0,n)=n
107. ВОПРОС
• Любую задачу можно решить с помощью
динамического программирования?
• Да
• Нет
108. ВОПРОС
• Любую задачу можно решить с помощью
динамического программирования?
• Да
• Нет
110. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
111. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12,
112. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1,
113. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1, 15,
114. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1, 15, 143
115. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Например: 12, 1, 15, 143, 2, 3, 200, 4, 32 - катастрофа
116. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс
117. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143
118. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143, 2,
119. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143, 2, 3,
120. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
Возьму первую из принцесс которая лучше первых четырех
увиденных принцесс: 12, 1, 15, 143, 2, 3, 200, 4, 32 победа
121. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
122. ЗАДАЧА О ВЫБОРЕ НЕВЕСТЫ РАЗБОРЧИВЫЙ
ПРИНЦ
• Принцу необходимо выбрать лучшую из n
невест которые подходят к нему по одной в
случайном порядке, раз отказав невесте,
принц не сможет вернуться к ней
125. БИРЖА
• Опцион дает право купить или продать продукт по
специальной цене в заранее определенно время
126. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов, но
переживает, что курс может вырасти.
127. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов но
переживает, что курс может вырасти.
• Сегодня доллар стоит 56 рублей. Вася покупает за х
рублей опцион на покупку 1000 долларов через год по
цене 60 рублей за доллар.
• Если через год доллар будет стоить больше 60, Вася
воспользуется опционом иначе выбросит его в мусор
128. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Пример: Вася хочет купить через год 1000 долларов но
переживает, что курс может вырасти.
• Сегодня доллар стоит 56 рублей. Вася покупает за х
рублей опцион на покупку 1000 долларов через год за 60
рублей.
• Если через год доллар будет стоить больше 60, Вася
воспользуется опционом иначе выбросит его в мусор
• Как определить цену опциона?
129. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
• Успех и широкое распространение формулы привело к
тому, что Шоулз получил Нобелевскую премию по
экономике в 1997 году «за новый метод определения
стоимости производных ценных бумаг».
130. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
131. ОПЦИОН ДАЕТ ПРАВО КУПИТЬ ИЛИ ПРОДАТЬ
ПРОДУКТ ПО СПЕЦИАЛЬНОЙ ЦЕНЕ
• Как определить цену опциона?
• Формула Блека-Шоулза
139. ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Что понять идеи метода стоит посмотреть на
решения 3-5 задач и столько же задач решить
самостоятельно
140. ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Чтобы уметь самостоятельно пользоваться
методом и решать нестандартные задачи стоит
посмотреть на решения и решить самостоятельно
10-15 задач
141. ЧТО ДЕЛАТЬ ЕСЛИ Я ХОЧУ ИЗУЧИТЬ
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ?
• Чтобы стать гуру в ДП, стоит увеличить количество
решенных задач до 30 и более
142. ВОПРОСЫ
• В рамках каких курсов, как правило, студенты
изучают динамическое программирование?
143. ВОПРОСЫ
• В рамках каких курсов, как правило, студенты
изучают динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть чуть
• алгоритмы - часть, чуть чуть
144. ВОПРОСЫ
• В рамках каких курсов, как правило, студенты изучают
динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть чуть
• алгоритмы - часть, чуть чуть
• Парадокс – в целом многие студенты плохо
понимают суть метода и не умеют им пользоваться
145. ВОПРОСЫ
• В рамках каких курсов, как правило, студенты изучают
динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть-чуть
• алгоритмы - часть, чуть-чуть
• Парадокс – в целом многие студенты плохо
понимают суть метода и не умеют им пользоваться
Почему?
146. ВОПРОСЫ
• В рамках каких курсов, как правило, студенты изучают
динамическое программирование?
• дискретная математика – иногда, чуть-чуть
• структуры данных – часто, чуть-чуть
• алгоритмы - часть, чуть-чуть
• Парадокс – в целом многие студенты плохо
понимают суть метода и не умеют им пользоваться
Почему?
147. ВОПРОС
• Часто ли встречаются задачи, решаемые с
помощью ДП на интервью?
148. ВОПРОС
• Часто ли встречаются задачи, решаемые с
помощью ДП на интервью?
• Да довольно часто 20-60% (примерно)
157. ЛИТЕРАТУРА
• Виленкин «Комбинаторика»
• Е.С. Вентцель «Исследование операций»
• А. Кофман «3аймемся исследованием операций»
• Dynamic programming and optimal control D.
Bertsekas