
- •Математическая логика и теория алгоритмов
- •Варианты индивидуальных заданий
- •Типовые задачи практического задания
- •Вопросы к экзамену
- •Проблема позиционирования в машине Поста;
- •Рекурсивная реализация алгоритмов
- •Ульянов м.В., Шептунов м.В. Математическая логика и теория алгоритмов, часть 2: Теория алгоритмов.– м.: мгапи, 2003.– 80 с.
- •Цыганов а.В. Введение в теорию алгоритмов (части 1, 2).– сПбГу, 2008
- •Афанасьева т. В. Алгоритмы и программы : учебное пособие / т. В. Афанасьева, ю. Е. Кувайскова, в. А. Фасхутдинова. – Ульяновск : УлГту, 2011. – 227 с. Isbn 978-5-9795-0857-3
Исторические аспекты разработки теории алгоритмов;
Цели и задачи классической теории алгоритмов;
Цели и задачи теории асимптотического анализа алгоритмов;
Цели и задачи практического анализа алгоритмов;
Применение результатов теории алгоритмов;
Требования к компонентам понятия «алгоритм».
Язык алгоритмов.
Подходы к математическому уточнению понятия «алгоритм».
Блок-схемы алгоритмов.
Математическое уточнение понятия «алгоритм» с помощью рекурсивных функций, тезис Черча.
Нормальные алгорифмы, принцип нормализации.
Формализации алгоритма, определения Колмогорова и Маркова;
Требования к алгоритму, связанные с формальными определениями;
Понятие общей и конкретной проблемы по Посту;
Пространство символов и примитивные операции в машине Поста;
Понятие финитного 1-процесса в машине Поста;
Способы задания проблем и формулировка 1;
Гипотеза Поста;
Формальное описание машины Тьюринга;
Функция переходов в машине Тьюринга;
Понятие об алгоритмически неразрешимых проблемах
Проблема позиционирования в машине Поста;
Проблема соответствий Поста над алфавитом S;
Проблема останова в машине Тьюринга;
Проблема эквивалентности и тотальности;
Формальная система языка высокого уровня;
Понятие трудоемкости алгоритма в формальном базисе;
Обобщенный критерий оценки качества алгоритма,
Обозначения в анализе алгоритмов: худший, лучший и средний случаи;
Классификация алгоритмов по виду функции трудоемкости;
Примеры количественных и параметрически–зависимых алгоритмов;
Обозначения в асимптотическом анализе функций;
Примеры функций, не связанных асимптотическими обозначениями;
Элементарные операции в псевдоязыке высокого уровня;
Анализ трудоемкости основных алгоритмических конструкций;
Построение функции трудоемкости для задачи суммирования матрицы;
Построение функции трудоемкости для поиска максимума в массиве;
Проблемы при переходе от трудоемкости к временным оценкам;
Методики перехода от функции трудоемкости к временным оценкам;
Возможности пооперационного анализа алгоритмов на примере задачи умножения комплексных чисел;
Теоретический предел трудоемкости задачи;
Основные задачи теории сложности вычислений
Понятие сложностных классов задач, класс Р;
Сложностной класс NP, понятие сертификата;
Проблема P=NP, и ее современное состояние;
Сводимость языков и определение класса NPC;
Примеры NP – полных задач;
Задача о клике и ее особенности;
Формулировка задачи о сумме;
Асимптотическая оценка сложности алгоритма для прямого перебора;
Алгоритм решения задачи о сумме;
Подалгоритм увеличения на единицу двоичного счетчика;
Оценки трудоемкости для лучшего и худшего случая;
Функция трудоемкости алгоритма для решения задачи о сумме;
Понятие индукции и рекурсии;
Примеры рекурсивного задания функций;
Рекурсивная реализация алгоритмов
Трудоемкость механизма вызова функции в языке высокого уровня;
Рекурсивное дерево, рекурсивные вызовы и возвраты;
Трудоемкость рекурсивного алгоритма вычисления факториала;
Анализ рекурсивных соотношений методом итераций;
Анализ рекурсивных соотношений методом подстановки;
Общий вид функции трудоемкости при решении задач методом декомпозиции;
Основная теорема о рекуррентных соотношениях;
Примеры решения рекуррентных соотношений на основе теоремы Бентли – Хакен – Сакса;
Рекурсивный алгоритм сортировки слиянием
Процедура слияния двух отсортированных массивов
Оценка трудоемкости процедуры слияния;
Подсчет вершин в дереве рекурсивных вызовов для алгоритма сортировки слиянием;
Анализ алгоритма рекурсивной сортировки методом прямого подсчета вершин рекурсивного дерева;
Функции подсчета количества битов и количества единиц в двоичном представлении числа и их свойства;
Алгоритм быстрого возведения в степень
Анализ трудоемкости алгоритма быстрого возведения в степень;
Понятие полугруппы, моноида и группы, примеры групп;
Сравнения и сведения из теории простых чисел;
Мультипликативная группа вычетов по модулю N и ее свойства;
Степени элементов группы и теорема Ферма-Эйлера;
Вероятностный тест Миллера-Рабина для поиска простых чисел;
Криптосистема RSA;
Применение теории алгоритмов к анализу криптостойкости RSA.
Рекомендуемая литература
Основная: