Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория автоматов и формальных языков. Учебник.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
Министерство науки и высшего образования
Российской Федерации
Федеральное государственное бюджетное
образовательное учреждение высшего образования
«Тверской государственный университет»
Б. Н. Карлов
ТЕОРИЯ АВТОМАТОВ
И ФОРМАЛЬНЫХ ЯЗЫКОВ
Тверь 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
.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]