Динамическое программирование, Окулов С.М., Пестов О.А., 2015.
В данной книге систематизирован материал по одному из методов проектирования алгоритмов в информатике — динамическому программированию. Предлагаемые задачи решаются фактически по одной схеме, основанной на данном методе, однако понять, что задача решается этим методом, очень непросто. Для этого кроме знаний требуется усилие подготовленного к решению таких задач интеллекта. Именно этому способствуют содержание книги и стиль изложения материала в ней.
Разобраны задачи, предлагавшиеся школьникам на всероссийских олимпиадах по информатике разных лет, а также на турнирах и конкурсах.
Для учащихся старших классов, студентов и преподавателей информатики.
Задачи на деревьях.
«Логическое дерево». Рассмотрим разновидность двоичного дерева, которую назовем логическим деревом. В этом дереве каждый уровень полностью заполнен, за исключением, возможно, последнего (самого глубокого) уровня. При этом все вершины последнего уровня находятся максимально слева. Каждая вершина дерева имеет ноль или двоих детей.
Каждая вершина дерева имеет связанное с ней логическое значение (1 или 0). Внутренние вершины имеют связанную с ними логическую операцию («И» или «ИЛИ»). Значение вершины с операцией «И» — это логическое «И» {And) значений ее детей. Аналогично значение вершины с операцией «ИЛИ» -это логическое «ИЛИ» (Or) значений ее детей.
Рассмотрим корень дерева. Он имеет некоторое логическое значение. Требуется, чтобы он имел заданное логическое значение v. Разрешено изменять логические операции некоторых внутренних вершин (заменить «И» на «ИЛИ» и наоборот). На рис. 3.6 приведен пример логического дерева.
Оглавление.
Вместо предисловия.
Введение.
Глава 1. Простые задачи.
1.1. Числа Фибоначчи.
1.2. Биномиальные коэффициенты, или Нахождение числа сочетаний.
1.3. Наибольший квадрат.
1.4. Задача о Черепашке.
Глава 2. Основной принцип и метод реализации на основе рекуррентных соотношений.
2.1. Вводные замечания.
2.2. Множество решаемых задач, вычисляемая функция и рекуррентные соотношения.
2.3. Граф зависимостей задач.
2.4. Общая схема.
2.5. Пример решения задачи.
Глава 3. Типы задач по динамическому программированию.
3.1. Табличный метод решения.
3.2. Задачи на отрезках.
3.3. Задачи на деревьях.
3.4. Задачи на подмножествах.
3.5. Динамическое программирование по профилю.
Приложение I. Динамическое программирование как метод решения.задач оптимизации.
Введение.
1. Метод динамического программирования: основные положения.
2. Примеры задач.
2.1. Задача о распределении ресурсов.
2.2. Задача о рюкзаке.
2.3. Задачи о критических путях в графе.
2.3.1. Перечисление путей в графе.
2.3.2. Кратчайший путь в графе.
2.3.3. Максимальный путь в графе.
Приложение II. Справочные данные о задачах динамического программирования.
Купить .
Теги: учебник по программированию :: программирование :: Окулов :: Пестов
Смотрите также учебники, книги и учебные материалы:
- Методы программирования, Компьютерные вычисления, Могилев А.В., 2008
- Linux, системное программирование, Лав Р., 2008
- Java, оптимизация программ, практические методы повышения производительности приложений в JVM, Эванс Б., Гоф Д., Ньюланд К., 2019
- Искусство программирования на R, погружение в большие данные, Норман М., 2019
- Head First, программирование для Android, Гриффите Д., Гриффите Д., 2016
- Объектно ориентированное программирование в Java, Гуськова О.И., 2018
- Flash MX для профессиональных программистов, Капустин М.А., Капустин П.А., Копылова А.Г., 2016
- Программное обеспечение геодезии, фотограмметрии, кадастра, инженерных изысканий, Браверман Б.А., 2018