Спецкурс
«Анализ вычислительной сложности алгоритмов»
Лектор: профессор кафедры алгоритмических языков Абрамов С. А.
В курсе рассматриваются основные элементарные подходы
к исследованию двух характеристик алгоритма
временной и пространственной сложности.
Эти виды сложности рассматриваются в худшем случае и в среднем.
Уделяется внимание вопросам корректного
использования понятий и методов математического анализа
при формулировании и доказательстве утверждений о сложности.
* * *
Результаты контрольной №1 в 2003 г.
Результаты контрольной №2 в 2003 г.
Результаты контрольной №3 в 2003 г.
Результаты семестра в 2003 г.
* * *
Программа курса:
- Вход (входные данные) алгоритма и размер входа. Затраты
алгоритма для данного входа; понятие
сложности в худшем случае.
- Однородная и битовая сложность.
- Оценивание сложности; асимптотики. Сравнение сложностей разных
алгоритмов на основе асимптотик.
- Различие оценок при разных выборах размера как функции входа.
Возможность «плохого» выбора.
- «Полиномиальные» алгоритмы.
Гипотеза P <> NP. Сводимость. NP-полнота.
- Сложность фрагментов алгоритма; управляющие структуры.
- Оценивание числа шагов циклического алгоритма (функции, убывающие
по ходу выполнения алгоритма); завершимость алгоритма.
- Различие в характере временных и пространственных затрат
(сложностей).
- Рекуррентные соотношения для пошаговых затрат.
Временная и пространственная
cложность рекурсивных алгоритмов.
- Рекуррентные соотношения, сопутствующие стратегии
«разделяй и властвуй».
- Понятие сложности в среднем.
- Производящие функции.
- Анализ рандомизированных алгоритмов.
Завершимость в среднем.
- Нижние границы сложности
алгоритмов некоторого класса (в худшем случае и в среднем).
Привлечение ограниченных вычислительных
моделей.
- Оптимальные алгоритмы. Алгоритмы, оптимальные по порядку
сложности.
- Неветвящиеся программы и индукция.
Вычислительные модели, ориентированные на конкретные
задачи.