Модели вычислений
Лектор - профессор Захаров Владимир Анатольевич.
Содержание
Программа курса
Конечные автоматы и регулярные выражения
- Формальные языки. Операции над языками. Проблемы принадлежности слова языку, пустоты, тотальности, равенства, включения.
- Недетерминированные конечные автоматы. Вычисления автоматов. Автоматные языки.
- Детерминированные конечные автоматы. Эквивалентные состояния и эквивалентные автоматы. Алгоритм проверки эквивалентности детерминированных конечных автоматов.
- Минимальные детерминированные конечные автоматы. Теорема о существовании и единственности минимального детерминированного конечного автомата. Алгоритм минимизации детерминированных конечных автоматов.
- Алгоритм преобразования конечного автомата к детерминированному виду. Замкнутость класса автоматных языков относительно операций над языками.
- Теорема о разрастании для автоматных языков. Примеры неавтоматных языков.
- Регулярные выражения. Алгебра регулярных выражений. Уравнения в регулярных выражениях. Теорема Клини о соответствии между регулярными выражениями и конечными автоматами.
- Задача проверки соответствия текста шаблону и теоретико-автоматный подход к ее решению. Задача поиска подстроки в строке. Алгоритм Ахо-Карасик.
- Двусторонние конечные автоматы. Теорема о соответствии между односторонними и двусторонними конечными автоматами.
Машины Тьюринга и рекурсивно перечислимые языки
- Одноленточные машины Тьюринга. Вычисления машин Тьюринга. Рекурсивные и рекурсивно-перечислимые языки.
- Моделирование односторонних и многоленточных машин Тьюринга одноленточными машинами Тьюринга.
- Арифметические функции, вычислимые по Тьюрингу. Характеристические теоремы для рекурсивных и рекурсивно-перечислимых языки.
- Массовые алгоритмические проблемы и их связь с рекурсивными языками
- Универсальные машины Тьюринга. Неразрешимость проблемы останова для машин Тьюринга.
- Сводимость алгоритмических проблем. Примеры алгоритмически неразрешимых проблем программирования.
- Функциональные (семантические) свойства программ. Теорема Райса.
- Замкнутость классов рекурсивных и рекурсивно перечислимых языков относительно теоретико-множественных операций.
- Проблема соответствий Поста. Алгоритмическая неразрешимость проблемы соответствий Поста.
- Многоголовочные конечные автоматы. Алгоритмическая неразрешимость проблемы останова для многоголовочных конечных автоматов.
- Ассоциативные исчисления. Алгоритмическая неразрешимость проблемы достижимости для полусистем Туэ.
- Примеры алгоритмически неразрешимых проблем математики: проблема разрешимости диофантовых уравнений, проблема мозаики. Машины Минского. Универсальность модели вычислений машин Минского.
Формальные грамматики и языки
- Формальные грамматики: основные понятия. Классификация Хомского формальных грамматик (иерархия Хомского).
- Праволинейные грамматики и языки. Совпадением класса праволинейных языков и класса автоматных языков. Разрешимость проблем принадлежности и эквивалентности для класса праволинейных языков.
- Теорема о разрастании (лемма о накачке) для автоматных языков. Примеры языков, не являющихся автоматными.
- Контекстно-свободные грамматики и языки. Примеры контекстно-свободных языков. Замкнутость класса контекстно-свободных языков относительно операции объединения. Разрешимость проблемы принадлежности для контекстно-свободных языков.
- Нормальная форма Хомского для контекстно-свободных грамматик. Приведение контекстно-свободных грамматик к нормальной форме Хомского.
- Теорема о разрастании (лемма о накачке) для контекстно-свободных языков. Примеры языков, не являющихся контекстно-свободными.
- Автоматы с магазинной памятью. Теорема о совпадении класса контекстно-свободных языков и класса языков, распознаваемых автоматами с магазинной памятью.
- Алгоритм Кока-Янгера-Касами синтаксического анализа контекстно-свободных языков.
- Незамкнутость класса контекстно-свободных языков относительно операций пересечения и дополнения.
- Контекстно-зависимые грамматики и языки. Примеры контекстно-зависимых языков. Разрешимость проблемы принадлежности для контекстно-зависимых языков.
- Грамматики типа 0 и рекурсивно-перечислимые языки.
Алгоритмически неразрешимые математические задачи
- Проблема соответствий Поста. Теорема об алгоритмической неразрешимости проблемы соответствий Поста.
- Алгоритмическая неразрешимость проблемы непустоты пересечения, проблемы тотальности и проблемы эквивалентности для контекстно-свободных грамматик.
- Примеры алгоритмически неразрешимых проблем арифметики, алгебры, комбинаторики.
Литература
- Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т. 1: Синтаксический анализ. - М.: Мир, 1978. - 612 с.
- Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии и инструменты. - М.: Вильямс, 2001. - 768 с.
- Верещагин Н.К., Шень А. Лекции по математической логике и теории алгоритмов. Часть 3. Вычислимые функции. - М.: МЦНМО, 1999. - 176 с.
- Катленд Н. Вычислимость. Введение в теорию рекурсивных функций. - М.: Мир, 1983.
- Льюис Ф., Розенкранц Д, Стирнз Р. Теоретические основы проектирования компиляторов. - М.: Мир, 1979.. - 656 с.
- Матрос Д.Ш., Поднебесова Г.Б. Теория алгоритмов. - М.: Бином, 2008. - 200 с.
- Пентус А.Е., Пентус М.Р. Математическая теория формальных языков. Серия "Основы информатики и математики" - М: Бином, 2006. - 247 с.
- Роджерс Х. Теория рекурсивных функций и эффективная вычислимость. - М.: Мир, 1972.
- Хопкрофт Дж., Мотвани Р., Ульман Дж. Введение в теорию автоматов, языков и вычислений. - М.: Вильямс, 2002. - 528 с.
Правила проведения экзамена
Экзамен проводится в форме письменной контрольной работы. Время, отведенное на решение задач, составляет 120 мин. Письменная контрольная работа состоит из 10 заданий.
Задания 1-4 - это задачи требующие применения стандартных алгоритмов и методов решения. Правильное решение каждой такой задачи оценивается 2 баллами.
В заданиях 5-8 требуется сформулировать определения основных понятий, введенных в лекционном курсе. Правильное решение каждой такой задачи оценивается 1 баллом.
В задании 9 требуется сформулировать и доказать одну из теорем, рассмотренных в лекционном курсе. Правильное решение каждой такой задачи оценивается 2 баллами.
В задании 10 требуется решить теоретическую задачу, опираясь на сведения, представленные в лекционном курсе. Правильное решение каждой такой задачи оценивается 3 баллами.
Оценка контрольной работы проводится по следующим критериям:
14-17 баллов - отлично,
10-15 баллов - отлично,
7-9 баллов - удовлетворительно.