Методы разработки алгоритмов: «разделяй и властвуй» и динамическое программирование 2012 Середа А.Н.

Презентация:



Advertisements
Похожие презентации
Динамическое программирование. Основные концепции Федор Царев, Андрей Лушников Спецкурс «Олимпиадное программирование» Лекция Санкт-Петербург,
Advertisements

Что нужно знать: динамическое программирование – это способ решения сложных задач путем сведения их к более простым задачам того же типа динамическое.
Х Рыбалко Т.В. Сведение задачи к подзадачам Понятие рекуррентного соотношения Использование таблиц для запоминания решений подзадачИспользование таблиц.
Решение основных задач на дроби 6 класс. 1) 2) 3) 4) 5) = 1 7 = 7 9 = = · : · : Вычислите.
6 класс Всего – 15 км Проселочная дорога – 0,8 км Вдоль реки – 3,5 км Полем – 1,7 км Лесом - ? Пусть х - Расстояние пройденное лесом 0,8 + 3,5 + 1,7 +
ЕГЭ информатика Алгоритмизация и программирование Консультация 4.
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
Классификация и регрессия Доклад по курсу Интеллектуальный анализ данных Закирова А.Р. 1.
1 Массивы 2 Опр. Массивом называется совокупность однотипных данных, связанных общим именем. Основные характеристики массива: 1. Имя массива 2. Тип компонентов.
Графический учебный исполнитель Учебными исполнителями называют различные образы на экране компьютера, которыми можно управлять, отдавая команды. Используются.
К. Поляков, Исполнитель Калькулятор.
1 Индекс – величина, характеризующая положение элемента, относительно начала массива. МАССИВЫ Конечная, упорядоченная по номерам совокупность значений,
Теория графов. Теория графов – обширный самостоятельный раздел дискретной математики. Используется при проектировании компьютерных сетей, трубопроводов,
Алгоритмы на графах Волновой метод. Постановка задачи Постановка задачи. Пусть G – неориентированный связный граф, а и b – две его вершины. Требуется.
Введение в теорию графов. ЗАДАЧА ПРОКЛАДКИ КОММУНИКАЦИЙ
АЛГОРИТМЫ НАХОЖДЕНИЯ КРАТЧАЙШИХ ПУТЕЙ НА ГРАФАХ..
ПОИСК В ПРОСТРАНСТВЕ СОСТЯНИЙ. Методы решения задач Представление задач в пространстве состояний
ГИА - информатика Задание 6 Учитель информатики и ИКТ МОУ «СОШ32» г. Энгельса klv168.narod.ru.
Теория графов Основные определения. Задание графов Графический способ – Привести пример графического задания графа, состоящего из вершин А, В и С, связанных.
Космачева Нина Петровна, учитель математики МОУ средней школы 8 г.Рославля Смоленской области.
Транксрипт:

Методы разработки алгоритмов: «разделяй и властвуй» и динамическое программирование 2012 Середа А.Н.

Разделяй и властвуй Этапы решения задачи 1.Разделяй! Задача разделяется на две или более задачи меньшей размерности, решаемых независимо одна от другой 2.Покоряй! Каждая из полученных подзадач решается рекурсивно 3.Соединяй! Из решений подзадач компонуется решение исходной задачи

Пример задачи. Пример задачи. Отсортировать массив по возрастанию. Решение Решение. 1.Делим массив на две примерно равные части 2.Сортируем каждую из них по возрастанию 3.Сливаем два отсортированных массива в один Разделяй и властвуй

15,25,14,1,10,2,0,1715,25,14,115, ,114110,2,0,1710,21020,17017 Подзадачи независимы! В процессе разделения не возникает одинаковых подзадач Разделяем

Разделяй и властвуй ,251,142,100,17 1,14,15,250,2,10,17 0,1,2,10,14,15,17,25 Покоряем и соединяем

Разделяй и властвуй А как соединяем? Выбираем меньший из верхних Количество действий пропорционально сумме количеств элементов соединяемых массивов

Динамическое программирование Задача разбивается на вспомогательные задачи меньшей размерности Эти вспомогательные задачи не являются независимыми, т.е. разные вспомогательные задачи используют решение одних и тех же подзадач Решения вспомогательных задач запоминаются в таблице, чтобы не тратить время на их повторное решение Из решений перекрывающихся вспомогательных задач получается решение исходной задачи

Фишка может двигаться только вперед по полю длины N. Длина хода фишки не более K. Найти число различных вариантов ходов, при которых фишка может пройти поле от начала до конца. Например, при N=3, K=2 возможные пути: (1,1,1), (1,2), (2,1), т.е. возможны 3 варианта. Начальное положение фишки первая клетка поля, конечное первая клетка за пределами поля. Динамическое программирование Пример задачи

Пусть длина поля N=5, максимальная длина хода K=3 Представим в виде дерева размер поля, ещё не пройденного фишкой, включая поле, на котором она стоит. Лист дерева соответствует фишке, вышедшей за пределы поля. Ответ на вопрос задачи – количество путей от корня дерева до его листьев Динамическое программирование Анализируем

Примеры повторяющихся подзадач. Не надо каждый раз решать их заново! Запоминаем ответы, экономим время! Вес вершины – длина непройденного поля Вес дуги – длина хода

Восходящее динамическое программирование

Нисходящее динамическое программирование Другой подход