Содержание
- 2. Цель лекции Изучить базовые идеи динамического программирования и простейшие примеры его применения Изучить методы реализации этих
- 3. Чем не является динамическое программирование Динамическое программирование – не метод составления программ, а метод составления алгоритмов
- 4. Где используется динамическое программирование? Алгоритм обработки графов Алгоритмы обработки строк Биоинформатика Распознавание речи Оптимизация запросов к
- 5. Числа Фибоначчи Пример почти динамического программирования Fib(0) = Fib(1) = 1 Fib(n) = Fib(n-1) + Fib(n-2),
- 6. Простой способ вычисления function fib(n : longint) : longint; begin if (n result := 1; exit;
- 7. Дерево вычислений Медленно работает – время пропорционально значению числа Фибоначчи, которые растут примерно как 1.6n Много
- 8. Метод запоминания ответов После того, как число вычислено надо его запомнить, а не считать заново В
- 9. Более быстрое вычисление function fib(n : longint) : longint; begin if (n result := 1; exit;
- 10. Ациклический граф вычислений Содержит n вершин Каждое число вычисляется ровно один раз
- 11. Что позволило ускорить вычисление? Перекрывающиеся подзадачи (много одинаковых поддеревьев) Небольшое число различных подзадач (для вычисления Fib(n)
- 12. Признаки возможности применения ДП Возможность разбиения задачи на подзадачи (метод «разделяй-и-властвуй») Наличие свойства оптимальности для подзадач
- 13. Этапы решения задачи методом динамического программирования Разбиение задачи на подзадачи Построение рекуррентной формулы для вычисления значения
- 14. Задача о наибольшей общей подпоследовательности На примере этой задачи будут рассматриваться указанные четыре этапа На базе
- 15. Постановка задачи Заданы две строки: a1a2…an и b1b2…bm Необходимо найти строку максимальной длины, которая встречается в
- 16. Медленное решение Перебрать все подпоследовательности одной из строк и проверить их вхождение в другую строку Число
- 17. Разбиение на подзадачи (1) Рассмотрим строки : a1a2…an и b1b2…bm Если последние символы совпадают (an=bm), то
- 18. Разбиение на подзадачи (2) Подзадачами являются задачи такого типа «Найти наибольшую общую подпоследвательность строк a1a2…ai и
- 19. Рекуррентная формула
- 20. Начальные условия len[0][k] = 0 для всех k len[i][0] = 0 для всех i
- 21. Два метода вычисления «Сверху вниз» – рекурсия с запоминанием ответов «Снизу вверх» – заполнение таблицы
- 22. Метод «сверху вниз» Решение больших подзадач начинается до того, как получены ответы для маленьких Маленькие решаются
- 23. Программа function calc(i, k : integer) : integer; begin if (calculated[i][k]) then begin result := len[i][k];
- 24. Преимущества и недостатки Преимущества: Достаточно просто пишется на основе рекуррентной формулы Вычисляются ответы только для тех
- 25. Метод «снизу вверх» Заполняется таблица ответов на подзадачи в порядке возрастания размера подзадачи Когда начинается решение
- 26. Программа len[0][0] := 0; for i := 1 to n do begin len[i][0] := 0; end;
- 27. Преимущества и недостатки Преимущества: Требуется меньше памяти, чем при методе «сверху вниз» и отсутствует рекурсия Быстрее
- 28. Пример Красный цвет – начальные условия Зеленый цвет – случай ai = bk Желтый цвет –
- 29. Восстановление структуры оптимального ответа Верхний путь – GA Нижний путь – AC
- 30. Программа procedure restore(i, k : integer); begin if (i = 0) or (k = 0) then
- 31. Как делать в общем случае? Такой метод работает в этой задаче, но не понятно, как его
- 32. Вычисление функции с запоминанием выбранного варианта for i := 1 to n do begin for k
- 33. Восстановление ответа procedure restore(i, k : integer); begin if (i = 0) or (k = 0)
- 34. Упражнение – 1 Путь с максимальной суммой. Задан прямоугольник размером n на m, в каждой клетке
- 35. Упражнение – 2 Число путей. Задан прямоугольник размером n на m, некоторые клетки которого вырезаны. За
- 36. Упражнение – 3 Максимальный подпалиндром. Задана строка. Необходимо найти наибольшую по длине подпоследовательность, которая является палиндромом
- 37. Упражнение – 4 Наибольшая возрастающая подпоследовательность. Задана последовательность из n чисел. Необходимо найти ее наибольшую по
- 38. Литература Кормен, Лейзерсон, Ривест, Штайн «Алгоритмы. Построение и анализ», глава 15
- 39. Выводы Динамическое программирование – метод составления алгоритмов Оно применимо в случае наличия перекрывающихся подзадач Решение задачи
- 41. Скачать презентацию


















![Начальные условия len[0][k] = 0 для всех k len[i][0] = 0 для всех i](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388374/slide-19.jpg)


![Программа function calc(i, k : integer) : integer; begin if (calculated[i][k]) then](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388374/slide-22.jpg)


![Программа len[0][0] := 0; for i := 1 to n do begin](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/388374/slide-25.jpg)













Вампилов Александр Валентинович. (1937- 1972)
Лекция 3. Государство Киевская Русь (IX-XШ века)
Многомерный стиль руководства
Спортивное питание
Стармикс Haribo
24 декабря – день варежек
Усиление железобетонных конструкций
Русские изразцы
Политическая система США
Система адаптации новых сотрудников в ВИ Волхонская Светлана Рахманкина Екатерина.
Презентация на тему Подготовка к судебному заседанию
Презентация на тему Самые большие птицы
Разделы фонетики
Презентация на тему Биогеоценоз и биоценоз
Отчет о соблюдении лимитов, ограничений и нормативов, установленных Кредитной политикой в отношении лизингового портфеля
“Вопрос – ответ”
Астраханский государственный университет Эффективность компонентоотдачи нефтегазоконденсатных месторождений Булатов М.Ф., про
Промышленные установки АТ ВТ АВТ
Маленькая фея: новинки
День юного героя-антифашиста.
Розборка ноутбука Toshiba
Презентация "Буше (Boucher) Франсуа (1703–1770), французский живописец" - скачать презентации по МХК
Тип Моллюски Класс Головоногие
Популяризация деятельности департамента росгидромета по ПФО, развитие ключевых механизмов открытости информации
Экскурсия по старому городу
Электронные деньги и формы их использования
Клуб спортивного бального танца Виктория
Хазан Юрий Моисеевич –– директор ЗАО «Московский Прожекторный Завод». Имеет награды: 1970 г. - юбилейная медаль «За доблестный труд»