
- •1. Алфавит, слова, операции над словами
- •2. Языки. Операции над языками
- •2.1. Теоретико-множественные операции
- •2.2.Специфические операции
- •3. Абстрактные формальные системы
- •4. Формальные порождающие грамматики
- •5. Классификация грамматик
- •6.1. Диаграмма грамматики
- •6.2. Порождение и распознавание цепочек
- •6.3. Детерминизация недетерминированных автоматов
- •6.4. Автоматы с -переходами
- •Детерминизация автоматов с -переходами
- •Оптимизация автоматов с -переходами
- •6.5. Минимизация числа состояний автомата Минимизация автоматов методом таблиц различий
- •Минимизация автоматов по методу Хафмена
- •Минимизация не полностью определенных автоматов
- •6.6. Регулярные множества и регулярные выражения
- •6.7. Разрешимые проблемы для а-грамматик
- •7. Нотации для задания кс-грамматик
- •7.1. Математическая нотация
- •7.2. Бекусова нормальная форма
- •7.3. Расширенная форма Бекуса – Наура (рбнф)
- •7.4. Синтаксическая диаграмма
- •8. Структура цепочек. Су-схемы
- •9. Преобразования кс-грамматик
- •9.1 Устранение непроизводящих правил
- •Алгоритм устранения непроизводящих нетерминалов.
- •9.2. Устранение недостижимых нетерминалов
- •Алгоритм преобразования грамматики.
- •9.3. Устранение -правил
- •Алгоритм преобразования грамматики.
- •9.4. Устранение цепных правил (правил вида а в)
- •Алгоритм исключения цепных правил.
- •10. Разрешимые и неразрешимые свойства кс-грамматик
- •10.1. Разрешимые свойства кс-грамматик
- •10.2. Неразрешимые свойства кс-грамматик
- •11. Синтаксический анализ для кс-языков
- •11.1. Типовая задача синтаксического анализа
- •11.2. Ll(k)-грамматики
- •Использование ll(k) свойства при построении анализатора.
- •11.3. Восходящий анализ
- •Алгоритм разбора для гпп.
- •12.Элементы теории конечных автоматов
- •12.1. Автомат Мили
- •Метод Хафмена минимизации числа состояний автомата
- •12.2. Автоматы Мура
- •12.3. Частичные автоматы
- •13. Сети автоматов. Их анализ и синтез
- •13.1. Синхронные сети автоматов
- •13.2. Правильно построенные логические сети
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
МОСКОВСКИЙ ИНЖЕНЕРНО-ФИЗИЧЕСКИЙ ИНСТИТУТ
(ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ)
Сергиевский Г.М., Короткова М.А.
Введение в математическую лингвистику и теорию автоматов.
Конспект лекций
МОСКВА 2004
УДК 519.713(075)+519.76(075)
ББК 22.18я7
С32
Сергиевский Г.М., Короткова М.А. Введение в математическую лингвистику и теорию автоматов. Конспект лекций. – М., МИФИ, 2004
Учебное пособие предназначено для студентов факультета Кибернетики, изучающих на пятом семестре математическую лингвистику и основы теории автоматов. Пособие представляет собой конспект лекций по этому курсу. В дальнейшем планируется расширить представленный материал и дополнить его методическими указаниями, примерами и задачами. Пособие может быть полезно всем желающим получить начальные знания по изложенным разделам дискретной математики.
Рецензент В.П. Румянцев
Рекомендовано редсоветом МИФИ
в качестве учебного пособия
© Г.М.Сергиевский, М.А.Короткова, 2004
© Московский инженерно-физический институт
(государственный университет), 2004
Содержание
1. Алфавит, слова, операции над словами 4
2. Языки. Операции над языками 5
2.1. Теоретико-множественные операции 5
2.2.Специфические операции 6
3. Абстрактные формальные системы 6
4. Формальные порождающие грамматики 8
5. Классификация грамматик 10
6. А-языки. Конечные лингвистические автоматы 12
6.1. Диаграмма грамматики 12
6.2. Порождение и распознавание цепочек 14
6.3. Детерминизация недетерминированных автоматов 17
6.4. Автоматы с -переходами 20
6.5. Минимизация числа состояний автомата 25
6.6. Регулярные множества и регулярные выражения 30
6.7. Разрешимые проблемы для А-грамматик 36
7. Нотации для задания КС-грамматик 37
7.1. Математическая нотация 37
7.2. Бекусова нормальная форма 37
7.3. Расширенная форма Бекуса – Наура (РБНФ) 39
7.4. Синтаксическая диаграмма 40
8. Структура цепочек. СУ-схемы 41
9. Преобразования КС-грамматик 46
9.1 Устранение непроизводящих правил 46
9.2. Устранение недостижимых нетерминалов 47
9.3. Устранение -правил 49
9.4. Устранение цепных правил (правил вида А В) 50
10. Разрешимые и неразрешимые свойства КС-грамматик 51
10.1. Разрешимые свойства КС-грамматик 51
10.2. Неразрешимые свойства КС-грамматик 53
11. Синтаксический анализ для КС-языков 55
11.1. Типовая задача синтаксического анализа 55
11.2. LL(k)-грамматики 56
11.3. Восходящий анализ 62
12.Элементы теории конечных автоматов 67
12.1. Автомат Мили 67
12.2. Автоматы Мура 73
12.3. Частичные автоматы 77
13. Сети автоматов. Их анализ и синтез 80
13.1. Синхронные сети автоматов 81
13.2. Правильно построенные логические сети 85
Пособие рассматривает основные понятия и теоремы математической лингвистики, а также включает некоторые аспекты теории автоматов.
1. Алфавит, слова, операции над словами
Пусть V={v1, v2,…,vn}, n1 – некоторый алфавит. Тогда любая последовательность x1x2…xk, k0, где xi V, 1 i k , слово в алфавите V; при k=0 –получается пустое слово, обозначим его . Множество всех слов алфавита V обозначается V*.
Слово X =x1…xk графически совпадает со словом Y=y1…ym, если xiV (1 i k), yjV (1 j m), m=k, и для любого i ,1 i k, xi=yi. Графическое совпадение слов обозначается X=Y.
Длиной слова Х (обозначается Х) называется число вхождений символов в слово Х. Если X =x1…xk, то Х=k . =0.
Конкатенацией слов X =x1…xk и Y=y1…yl называется слово Z= =XY= x1…xk y1…yl. Например, конкатенацией слов «поло» и «вина» будет слово «половина».
Свойства конкатенации:
является единицей для конкатенации, т.е. для любого слова Х верно, что Х=Х=Х.
Операция конкатенации является ассоциативной, т.е. (XY)Z=X(YZ).
Операция конкатенации не является коммутативной, XYYX.
Для конкатенации, как и для произведения, конкатенация n одинаковых слов X обозначается Xn. Считаем, что
X0= для любого слова Х. Множество V* всех слов алфавита V является полугруппой относительно операции конкатенации.
Полугруппа – множество с заданной на нем ассоциативной бинарной операцией.
Если слово Х=Х1 Х2, то Х1 – начало слова Х, а Х2 – конец слова Х.
Определим, что слово P входит в слово Q, если существует пара слов R и S, такая, что R – первый элемент пары, S – второй элемент пары, и Q =R P S.
Легко доказать следующее
Утверждение. Если слово P входит в слово Q, то существует некоторое слово U, такое, что P – начало U, а U – конец Q.
Следствие. Если слово P входит в слово Q, то P есть начало некоторого конца Q (или конец некоторого начала Q).
Если P есть некоторое начало (конец) Q и P Q, то P – собственное начало (конец) Q.
Конкретные вхождения слова P в слово Q обозначаются RPS, где R, P,S – слова в алфавите V, V. Тогда R – левое крыло вхождения, S – правое крыло вхождения, P – основа.
Определим, что вхождение P1 слова P в слово Q предшествует вхождению P2 слова P в это же слово, если левое крыло вхождения P1 является собственным началом левого крыла вхождения P2.
2. Языки. Операции над языками
Произвольное множество цепочек над алфавитом V, иначе любое подмножество свободной полугруппы V*, называется фомальным языком над V. Поэтому язык может быть задан как любое множество:
перечислением элементов;
ограничивающим свойством;
через известные множества;
порождающей процедурой.
В основном будем использовать четвёртый способ, но рассмотрение языков начнем с третьего способа их представления.
Например, для любого V множество слов четной длины является языком. Множество слов нечетной длины также является языком, но в отличие от первого — не замкнутым относительно операции конкатенации. Будем обозначать языки буквой L (с индексами или без них). Рассмотрим операции над языками.
Так как язык является множеством, то применимы все соответствующие операции, для которых выполняются все законы теории множеств.
В частности, L, L.