Алгоритмы - В этой книге, предназначенной для студентов математических и программистских специальностей (начиная с младших курсов), подробно разбираются основные методы построения и анализа эффективных алгоритмов. Она основана на лекциях авторов в университетах Сан-Диего и Беркли. Выбор материала не вполне стандартный (скажем, о сортировке и структурах данных, связанных с хранением упорядоченных множеств в сбалансированных деревьях, не говорится, зато обсуждаются линейное программирование и даже квантовые вычисления). Авторы старались выделить основные идеи и излагать доказательства наглядно, не злоупотребляя формализмом, но и не жертвуя математической строгостью; оригинальный подход авторов делает книгу интересной не только студентам, но и опытным преподавателям. Каждый раздел снабжен упражнениями.
Название: Алгоритмы Автор: Дасгупта С., Пападимитриу Х., Вазирани У. Издательство: МЦНМО Год: 2014 Страниц: 319 Формат: PDF Размер: 1,69 МБ ISBN: 978-5-4439-0236-4 Качество: Отличное Язык: Русский
Содержание:
Предисловие Глава 0. Пролог 0.1. Книги и алгоритмы 0.2. Вычисление чисел Фибоначчи 0.3. O-символика Упражнения Глава 1. Числовые алгоритмы 1.1. Элементарная арифметика 1.2. Арифметика сравнений 1.3. Проверка чисел на простоту 1.4. Криптография 1.5. Универсальное хеширование Упражнения Глава 2. Метод «разделяй и властвуй» 2.1. Умножение чисел 2.2. Рекуррентные соотношения 2.3. Сортировка слиянием 2.4. Медианы 2.5. Умножение матриц 2.6. Быстрое преобразование Фурье Упражнения Глава 3. Декомпозиция графов 3.1. Откуда берутся графы 3.2. Поиск в глубину в неориентированных графах 3.3. Поиск в глубину в ориентированных графах 3.4. Компоненты сильной связности Упражнения Глава 4. Пути в графах 4.1. Расстояния в графе 4.2. Поиск в ширину 4.3. Длины рёбер 4.4. Алгоритм Дейкстры 4.5. Реализации очередей с приоритетами 4.6. Кратчайшие пути и отрицательные веса 4.7. Кратчайшие пути в ациклических графах Упражнения Глава 5. Жадные алгоритмы 5.1. Покрывающие деревья 5.2. Кодирование Хаффмана 5.3. Формулы Хорна 5.4. Покрытие множествами Упражнения Глава 6. Динамическое программирование 6.1. Ещё раз о кратчайших путях в ориентированных ациклических графах 6.2. Наибольшая возрастающая подпоследовательность 6.3. Расстояние редактирования 6.4. Задача о рюкзаке 6.5. Произведение матриц 6.6. Кратчайшие пути 6.7. Независимые множества в деревьях Упражнения Глава 7. Линейное программирование и сводящиеся к нему задачи 7.1. Введение в линейное программирование 7.2. Потоки в сетях 7.3. Паросочетания в двудольных графах 7.4. Принцип двойственности 7.5. Игры с нулевой суммой 7.6. Симплекс-метод 7.7. Эпилог: вычисление значения схемы Упражнения Глава 8. NP-полные задачи 8.1. Задачи поиска 8.2. NP-полные задачи: определения и примеры 8.3. Сведения Упражнения Глава 9. Решение NP-полных задач 9.1. Оптимизация перебора 9.2. Приближённые алгоритмы 9.3. Эвристики локального поиска Упражнения Глава 10. Квантовые алгоритмы 10.1. Кубиты, суперпозиция, измерения 10.2. План действий 10.3. Квантовое преобразование Фурье 10.4. Периодичность 10.5. Квантовые схемы 10.6. Периодичность и разложение на множители 10.7. Квантовый алгоритм разложения на множители Упражнения Исторические замечания и книги для дальнейшего чтения Указатель имён и терминов