Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Теория автоматов и формальных языков. Учебник.pdf

Министерство науки и высшего образования
Российской Федерации
Федеральное государственное бюджетное
образовательное учреждение высшего образования
«Тверской государственный университет»
Б. Н. Карлов
ТЕОРИЯ АВТОМАТОВ
И ФОРМАЛЬНЫХ ЯЗЫКОВ
Учебник
Тверь 2021

УДК 519.713 + 519.766.23
ББК 22.18 + 32.815я73-1
К 23
Тверской государственный университет
Факультет прикладной математики и кибернетики
Карлов Б. Н.
К 23
Теория автоматов и формальных языков : Учебник. — Тверь :
Твер. гос. ун-т, 2021. — 404 с.
Учебник содержит материал по дисциплине «Теория автоматов и формальных языков»: языки, операции над языками, порождающие грамматики, конечные автоматы, регулярные выражения, автоматы с магазинной
памятью, нормальные формы контекстно-свободных грамматик, алгоритмические проблемы для формальных языков.
Учебник адресован, прежде всего, студентам старших курсов, обучающимся по направлениям укрупнённой группы 02.03.00 «Компьютерные и
информационные науки».
УДК 519.713 + 519.766.23
ББК 22.18 + 32.815я73-1
© Карлов Борис Николаевич, 2021
© Тверской государственный университет, 2021

ОГЛАВЛЕНИЕ 3
Оглавление
Предисловие 6
Глава 1. Формальные грамматики и языки 10
§ 1.1. Основные определения . . . . . . . . . . . . . . . . . . . 10
§ 1.2. Операции над языками . . . . . . . . . . . . . . . . . . . 15
§ 1.3. Полусистемы Туэ . . . . . . . . . . . . . . . . . . . . . . 25
§ 1.4. Порождающие грамматики . . . . . . . . . . . . . . . . . 32
§ 1.5. Проблема соответствий Поста . . . . . . . . . . . . . . . 46
Глава 2. Конечные автоматы и регулярные
выражения 51
§ 2.1. Детерминированные конечные автоматы . . . . . . . . . 51
§ 2.2. Недетерминированные конечные автоматы . . . . . . . 67
§ 2.3. Праволинейные грамматики . . . . . . . . . . . . . . . . 81
§ 2.4. Регулярные выражения . . . . . . . . . . . . . . . . . . . 90
§ 2.5. Системы уравнений . . . . . . . . . . . . . . . . . . . . . 107
§ 2.6. Двусторонние конечные автоматы . . . . . . . . . . . . 117
Глава 3. Свойства регулярных языков 131
§ 3.1. Лемма о разрастании для регулярных языков . . . . . . 131
§ 3.2. Взаимозамещаемость . . . . . . . . . . . . . . . . . . . . 137
§ 3.3. Конечные преобразователи . . . . . . . . . . . . . . . . . 152
§ 3.4. Свойства замкнутости класса регулярных языков . . . 166

4 ОГЛАВЛЕНИЕ
Глава 4. Алгоритмические проблемы для регулярных
языков 171
§ 4.1. Алгоритмические проблемы для конечных автоматов . 171
§ 4.2. Моделирование НКА . . . . . . . . . . . . . . . . . . . . 180
§ 4.3. Минимизация ДКА . . . . . . . . . . . . . . . . . . . . . 184
§ 4.4. Проверка эквивалентности ДКА . . . . . . . . . . . . . 197
§ 4.5. Проблема эквивалентности для регулярных выражений 208
Глава 5. Контекстно-свободные грамматики и языки 218
§ 5.1. Примеры контекстно-свободных языков . . . . . . . . . 218
§ 5.2. Деревья вывода . . . . . . . . . . . . . . . . . . . . . . . 230
§ 5.3. Автоматы с магазинной памятью . . . . . . . . . . . . . 249
§ 5.4. Эквивалентность КС-грамматик и МП-автоматов . . . 259
Глава 6. Нормальные формы КС-грамматик 277
§ 6.1. Бинарные грамматики . . . . . . . . . . . . . . . . . . . 277
§ 6.2. Бесполезные нетерминалы . . . . . . . . . . . . . . . . . 281
§ 6.3. Пустые правила . . . . . . . . . . . . . . . . . . . . . . . 289
§ 6.4. Цепные правила . . . . . . . . . . . . . . . . . . . . . . . 297
§ 6.5. Нормальная форма Хомского . . . . . . . . . . . . . . . 302
§ 6.6. Левая рекурсия . . . . . . . . . . . . . . . . . . . . . . . 306
§ 6.7. Нормальная форма Грейбах . . . . . . . . . . . . . . . . 311
Глава 7. Свойства КС-языков 320
§ 7.1. Лемма о разрастании для КС-языков . . . . . . . . . . . 320
§ 7.2. Лемма Огдена . . . . . . . . . . . . . . . . . . . . . . . . 326
§ 7.3. Свойства замкнутости класса КС-языков . . . . . . . . 335
§ 7.4. Детерминированные МП-автоматы . . . . . . . . . . . . 342
§ 7.5. Свойства детерминированных КС-языков . . . . . . . . 355
Глава 8. Алгоритмические проблемы для КС-языков 372
§ 8.1. Разрешимые проблемы для КС-грамматик . . . . . . . 372
§ 8.2. Неразрешимые проблемы для КС-грамматик . . . . . . 378

ОГЛАВЛЕНИЕ 5
§ 8.3. Алгоритм Кока-Янгера-Касами . . . . . . . . . . . . . . 387
Указатель обозначений 393
Указатель терминов 396
Литература 402

6 ОГЛАВЛЕНИЕ
Предисловие
Данная книга содержит материал курса «Теория автоматов и формальных языков», который читается студентам направления «Фундаментальная информатика и информационные технологии». Программа этого курса была разработана профессором М. А. Тайцлиным
на основе части программы дисциплины «Математические основания информатики». После этого программа подверглась некоторой
корректировке автором книги, который читал курс в 2012–2020 гг.
Существует большое количество книг по теории формальных языков, как довольно старых, так и современных. Главной причиной
написания данного учебника послужило то, что автору неизвестны
другие издания на русском языке, содержащие все необходимые темы.
Некоторые издания (например, [5,8]) рассчитаны на широкий круг
читателей или на начинающих, поэтому они не содержат некоторых
глубоких теорем, а многие результаты приведены без доказательства.
В других изданиях отсутствуют некоторые важные темы. Например, в классической книге [1] отсутствует теорема Майхилла-Нероуда
и некоторые фундаментальные свойства конечных преобразований.
Книга [3] посвящена преимущественно контекстно-свободным языкам
и не затрагивает регулярные выражения и их связь с конечными
автоматами, а в книге [10], напротив, изучаются только конечные
автоматы. В книге [9] нет результатов о неоднозначных контекстносвободных языках, в книге [4] отсутствует описание многих алгоритмов, связанных с автоматами и грамматиками. Некоторые издания
(например, [7]) ориентированы прежде всего на приложения теории
формальных языков к разработке трансляторов, поэтому они не
содержат многих важных теоретических результатов.
Мы предполагаем, что читатель знаком с базовыми математическими понятиями (множество, отношение, функция, отношение
эквивалентности и т.п.) и с основными понятиями теории графов
(ориентированный и неориентированный граф, путь в графе, до-

ОГЛАВЛЕНИЕ 7
стижимость, дерево и т.п.). Также мы предполагаем знакомство с
теорией алгоритмов, в частности с понятиями машины Тьюринга,
неразрешимой проблемы, рекурсивно перечислимого множества и
сложности вычислений. Этот материал изучается на младших курсах
в дисциплинах «Дискретная математика» и «Математическая логика
и теория алгоритмов» или им подобных, ознакомиться с ним можно,
например, по книгам [6,9]. Мы не предполагаем глубокого знания общей алгебры и только иногда используем простейшие алгебраические
понятия (моноид, полукольцо, конечно порождённая группа).
Настоящая книга состоит из восьми глав. В первой главе приводятся определения основных понятий теории формальных языков,
вводится понятие порождающей грамматики, доказывается эквивалентность грамматик и машин Тьюринга, а также неразрешимость
проблемы соответствий Поста. Некоторые параграфы включены в
эту главу с целью собрать в одном месте определения и результаты, которые будут неоднократно использоваться в дальнейшем. Их
можно изучать по мере необходимости.
Во второй главе мы изучаем регулярные языки и различные
способы их задания. Мы определяем детерминированные и недетерминированные конечные автоматы (ДКА и НКА), праволинейные
и автоматные грамматики, регулярные выражения, а также двусторонние конечные автоматы. Мы доказываем эквивалентность этих
способов описания языков.
В третьей главе приводятся основные свойства регулярных языков: лемма о разрастании, теорема Майхилла-Нероуда и её следствия,
свойства замкнутости класса регулярных языков. С помощью этих
свойств устанавливается, что некоторые языки не являются регулярными. В этой же главе мы определяем конечные преобразования
и доказываем теорему Нива о их связи с регулярными языками и
гомоморфизмами.
Четвёртая глава посвящена алгоритмическим проблемам, связанным с регулярными языками. Мы доказываем алгоритмическую

8 ОГЛАВЛЕНИЕ
разрешимость некоторых простейших проблем для конечных автоматов, а также неразрешимость проблемы эквивалентности конечных
преобразователей. Далее мы приводим три эффективных алгоритма
для конечных автоматов: алгоритм минимизации ДКА, алгоритм
моделирования НКА и алгоритм для проверки эквивалентности двух
ДКА. После этого мы доказываем, что для регулярных выражений
проблема эквивалентсноти является PSPACE-полной.
В пятой главе начинается изучение контекстно-свободных грамматик и языков (КС-грамматик и КС-языков). Мы даём определения
КС-грамматики и дерева вывода и приводим несколько примеров. Далее мы определяем автоматы с магазинной памятью (МП-автоматы)
и доказываем, что они эквивалентны КС-грамматикам.
В шестой главе определяются различные способы преобразования
и упрощения КС-грамматик. Мы доказываем, что любую КС-грамматику можно преобразовать к бинарному виду, излагаем алгоритмы
для устранения бесполезных нетерминалов, пустых и цепных правил
и для приведения КС-грамматики к нормальной форме Хомского.
Далее мы доказываем теорему об устранении левой рекурсии и показываем метод приведения КС-грамматики к нормальной форме
Грейбах.
Седьмая глава посвящена свойствам КС-языков. Сначала мы доказываем лемму о разрастании для КС-языков и приводим примеры
языков, не являющихся контекстно-свободными. Далее мы доказываем лемму Огдена и приводим пример неоднозначного КС-языка. После
этого мы устанавливаем некоторые свойства замкнутости класса КСязыков. В последних двух параграфах изучаются детерминированные
МП-автоматы (ДМП-автоматы). Мы доказываем, что существуют
КС-языки, не распознаваемыми никаким ДМП-автоматом, а также
устанавливаем некоторые свойства детерминированных КС-языков, в
частности, замкнутость класса этих языков относительно дополнения.
В восьмой главе мы изучаем алгоритмические проблемы, связанными с КС-языками. Мы доказываем алгоритмическую разреши-

ОГЛАВЛЕНИЕ 9
мость некоторых проблем для КС-грамматик и показываем, как с
помощью этих алгоритмов можно проверить эквивалентность двух
детерминированных конечных преобразователей. Далее мы доказываем неразрешимость нескольких проблем для КС-грамматик. В
последнем параграфе мы приводим более эффективный метод для
проверки выводимости слова в КС-грамматике — алгоритм КокаЯнгера-Касами.
Книга содержит около 300 задач разной сложности, которые помещены после каждого параграфа.
В конце приведены указатели обозначений и терминов.
После предметного указателя приводится список литературы. Он
содержит книги, которые были использованы при написании данного учебника, а также издания, которые содержат дополнительный
материал.
Все замечания и предложения следует отправлять автору по адресу
bnkarlov@gmail.com

10 Глава 1. Формальные грамматики и языки
Глава 1
Формальные грамматики и языки
§ 1.1. Основные определения
Мы будем придерживаться обозначений из книги [6]. Отметим
только, что через P(A) обозначается множество всех подмножеств
множестваA, а через P
жеств множества A.
Сначала мы дадим точные определения некоторых понятий теории
формальных языков: алфавита, слова и языка.
(A) — множество всех конечных подмно-
кон
Оп реде ление 1.
жество. Элементы алфавита называются с и м в о л а м и или б у к в а м и.
Пустьaиb— натуральные числа. Через [
{x ∈ ω:a 6 x 6 b }
Оп ределен ие 2.
w :[1, n]→
д л и н о й слова w. Длина слова обозначается |w|.
Σ, гдеn— натуральное число. Числоnназывается
А л ф а в и т — это произвольное непустое мно-
a, b
] обозначим множество
. Из определения следует, что [
С л о в о в алфавите Σ — это отображение
a, b
] =∅при
a > b
.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
