- •Предисловие
- •Введение
- •Глава 1. Множества
- •§ 1. Множества н их спецификация
- •§ 2. Простейшие операции над множествами
- •X ∉ ø при любом х.
- •§ 3. Диаграммы Венна
- •§ 4. Подмножества и доказательства
- •Глава 2. Отношения
- •§ 5. Произведения множеств
- •§ 1. Основные понятия
- •§ 2. Графические представления
- •§ 3. Свойства отношений
- •§ 4. Разбиения и отношения эквивалентности
- •§ 5. Отношения порядка
- •§ 6. Отношения на базах данных и структурах данных
- •§ 7. Составные отношения
- •§ 8. Замыкание отношений
- •Глава 3. Функции
- •§ 1. Функции и отображения
- •§ 2. Обратные функции и отображения
- •§ 3. Мощность множеств и счетность
- •§ 4. Некоторые специальные классы функций
- •§ 5. Аналитические свойства вещественных функций
- •§ 6. Операции
- •Глава 4. Основные понятия арифметики
- •§ 1. «Малая» конечная арифметика
- •§ 2. «Большая» конечная арифметика
- •§ 3. Двоичная арифметика
- •§ 4. Логическая арифметика
- •Глава 5. Алгебраические структуры
- •§ 1. Алгебраические структуры и подструктуры
- •§ 2. Простейшие операционные структуры
- •§ 3. Кольца и поля
- •§ 4. Линейная алгебра
- •4.1. Векторные пространства о линейные преобразования.
- •§ 5. Решетка и булевы алгебры
- •§ 6. Замкнутые полукольца
- •Глава 6. Матрицы
- •§ 1. Матрицы и бинарные отношения на конечных множествах
- •§ 2. Матрицы над другими алгебраическими структурами
- •§ 3. Матрицы и векторные пространства
- •Глава 7. Теория графов
- •§ 1. Вводные понятия
- •§ 2. Маршруты, циклы и связанность.
- •§ 3. Планарные графы
- •3.1. Теоремы Эйлера и Куратовского.
- •3.2. Раскраска карт и графов.
- •§ 4. Структуры данных для представления графа
- •§ 5. Обход графа
- •5.2. Обход графа по глубине.
- •5.4. Остовные леса обходов по глубине и ширине.
- •§ 6. Ориентированные графы
- •6.2. Маршруты и связность в орграфах.
- •Глава 8. Языки и грамматики
- •§ 1. Основные понятия
- •§ 2. Грамматики с фразовой структурой
- •2.1. Основные определения.
- •§ 3. Контекстно-свободные языки
- •§ 4. Понятия грамматического разбора и грамматических модификаций
- •§ 5. Грамматики операторного предшествования
- •Глава 9. Конечные автоматы
- •§ 1. Общие понятия
- •§ 2. Конечные автоматы
- •§ 3. Регулярная алгебра
- •Глава 10.Компьютерная геометрия
- •§ 1. Системы координат для подмножеств r3
- •§ 2. Преобразования
- •§ 3. Кривые и поверхности
§ 3. Регулярная алгебра
Способы комбинирования конечных распознавателей могут использоваться для проверки аксиом множеств, из которых могут развиваться алгебраические системы. Классическая система, известная как регулярная алгебра, основана на трех операциях — объединении, пересечении и конкатенации, определенных на множестве строк. Уравнения в алгебре могут точно определять некоторые множества строк; эти множества являются решением уравнений (п. 3.1). Результаты, вытекающие из решений, имеют непосредственное применение к аспектам теории языков (п. 3.2).
3.1. Выражения и уравнения. Перед тем как дать формальное определение, мы введем две константы внутри системы. Существует множество строк и {Λ}, которые обозначим символами 0 и 1 соответственно. Мы обосновываем их использование изображением конечных
распознавателей соответственно на рис. 9.16, а и b,
Р
ис.
9.16
Определение. Пусть X — множество строк, представимое конечным распознавателем. Когда X называется регулярным выражением. Если X и Y обозначают множества строк, представимых двумя определенными машинами, то (в силу определения построения конечных распознавателей) Х Y (далее будем писать X + Y), X* и XY также являются регулярными выражениями.
Разрешенные конструкции составных конечных автоматов предполагают следующие аксиомы для работы с произвольными регулярными выражениями А, В и С:
1) А + В = В + А;
2) А + (В + С) = (А + В) + С;
3) А + А = А
4) А + 0 = А;
5) А(ВС) = (АВ)С;
6) A1 = А = 1А;
7) А0 = 0 = 0А;
8) А(В + С) = АВ + АС;
9) (A + B)C = AB + BC;
10) 0* = 1;
11) А* = А + А*;
12) (A*)*=4*.
Такую алгебраическую систему называют регулярной алгеброй.
Проверка достоверности этих аксиом требует рассмотрения совершенно общих случаев. Поэтому их трудно должным образом описать. Тем не менее, чтобы обозначить используемые ниже идеи, рассмотрим два примера, исходя из двух аксиом, примененных к конкретному регулярному выражению.
Пример 3.1. Пусть A = {abn: 0 ≤ n}. Это выражение регулярно, так как является представимым для машины М, изображенной на рис. 9.17, а.
Используя машину, изображенную на рис. 9.16, а, которая распознает 0, и применяя подходящее построение, получим машину, изображенную па рис. 9.17,6, которая, очевидно, эквивалентна М. Следовательно, А = А + 0. //
Рис. 9.17
Пример 3.2. Используя A и 1, определяемые машинами, данными выше, и обычной конструкцией конкатенации, получаем недетерминированный конечный распознаватель, изображенный на рис. 9.18, а, который будет представлять строки в регулярном выражении 1А. Эту машину делаем детерминированной (рис. 9.18,b), затем получаем машину (рис. 9.18,с), эквивалентную М, которая удовлетворяет (в данном случае) части аксиомы 6), а именно 1А = А. //
Определив регулярную алгебру, посмотрим, как ее использовать. Предположим, что А, В и С являются заданными регулярными выражениями (множествами строк) и что X и Y — неизвестные регулярные выражения такие, что выполнены следующие соотношения:
X = AX + BY, Y = ХС + В.
Существуют ли решения этих «уравнений», и если да, то как их найти? Как мы вскоре увидим, регулярные
Рис.
9.18
уравнения не имеют единственного решения; поэтому мы вначале введем понятие аппроксимации для регулярных выражений.
Определение. Для регулярных выражений X и Y отношение ≤ определяем следующим образом:
X ≤ Y (X аппроксимирует Y), если X + Y = Y. //
Теорема. Отношение определенное над регулярными выражениями, является отношением порядка.
Доказательство.
Транзитивность имеет место, так как
X ≤ Y, Y ≤ Z X + Y = Y, Y + Z = Z. (*)
Поэтому
X + Z = X+(Y + Z) = (X + Y) + Z = Y + Z = Z
и, следовательно, X ≤ Z.
Антисимметричность имеет место, поскольку
X ≤ Y, Y ≤ Х Y = Х + Y= Y+ Х = Х.
Рефлективность следует из X + X = X. //
Отсюда также следует, что X ≤ Y ZX ≤ ZY для регулярных выражений X, Y и Z, однако детали доказательства оставим в качестве упражнения.
Перед тем как рассматривать уравнения, напомним, что из определения операции замыкания следует
А*
= А0 + А1
+ ... +
Ап
+ ... =
где А0 = 1. Это соотношение оказывается полезным при доказательстве следующих утверждений.
Лемма. Пусть Y и Z — решения регулярного уравнения X = АХ + В. Тогда
а) В ≤ Y,
б) AY ≤ Y,
в) Y + Z — решение. Доказательство.
а) Так
как
Y
— решение уравнения
,
то
,
и поэтому
Y + B=(AY + B)+B = AY + (B + B) = AY + B=Y,
Следовательно, В ≤ Y.
б) Аналогично Y + AY = (В + AY) + AY = В + AY = Y. Следовательно, AY ≤ Y.
в) Имеем
Y + Z = AY + B + AZ + B = A(Y + Z) + B. //
Уже достаточно много сказано о свойствах решений уравнения, однако существует ли хотя бы одно решение?
Лемма.
является
решением уравнения X = АХ + В.
Д о к а з а т е л ь с т в о. Подставляя в уравнение, имеем
А
(А*В) + В
= (А А* + А0)
В =
В
=
=
В
=
В = А*В. //
Теорема.
является наименьшим (по отношению к
решением регулярного уравнения
.
Доказательство. Из лемм следует, что А*В — решение, и если Y — какое-либо другое решение, то В ≤ У, AB ≤ AY ≤ Y. Поэтому АВ ≤ У, АnВ ≤ У, и, добавляя неравенства для всех n ∈ N {0}, получаем А*В ≤ У. Следовательно, утверждение теоремы верно. //
Заметим, что А*В — это множество строк, каждая из которых является решением уравнения; если А = {а} и В = {М, то все строки вида аnb также являются решениями.
Заметим также, что так как А*В является наименьшим решением уравнения X = АХ + В, то оно является наименьшим выражением таким, что X → АХ + В совпадает с тождественным отображением. Поэтому его также называют наименьшей стационарной точкой уравнения (или минимальной стационарной точкой).
Рассмотрев одно частное уравнение, мы сейчас можем непосредственно получить аналогичные результаты для других похожих уравнений; доказательства в этих случаях будем опускать.
Теорема. Для заданных регулярных выражений А и В уравнение X = АХ + В эквивалентно паре уравнений
X = YB, Y = YA + 1
в том смысле, что они имеют одно и то же наименьшее решение, и это решение есть Х = А*В. //
Теорема. Для заданных регулярных выражений А и В уравнение X = АХ + В эквивалентно паре уравнений
X = BY, Y = AY + 1.
(В этом случае обе системы наименьшее решение Х = ВА*.) //
Эти две теоремы позволяют нам преобразовывать правые линейные формы (X = АХ + В) в левые линейные формы (Х = ХА+В), которые соответствуют правым и левым рекурсиям внутри регулярных грамматик. Детали этого соответствия даны в п. 3.2, однако сначала мы обобщим результаты на системы алгебраических уравнений.
П
редположим,
что X1,
..., Хn
— неизвестные регулярные выражения
и что
Aij
(1 ≤ i,
j
≤ n)
и
В1,
...,
Вп
— известные
регулярные выражения такие, что
Теперь можно использовать операции, определенные на регулярных выражениях, чтобы ввести операции на матрицах из регулярных выражений:
(С + D)ij = Cij + Dij,
(СD)ij
=
С ≤ D тогда и только тогда, когда Cij ≤ Dij для всех i, j, где С и D — согласованные матрицы, элементы которых являются регулярными выражениями. Обозначив через X «регулярную матрицу», мы можем представить приведенные выше уравнения в виде
X = ХА + В.
Применяя рассуждения, аналогичные тем, которые использовались в случае одного уравнения, можно показать, что эта система имеет минимальную стационарную точку ВА*, которая достигается на решениях X = BY, где Y = AY + I; I — единичная матрица. Соответствующие результаты справедливы для правых линейных систем. Из замечаний следует, что эти системы эквивалентны. Это помогает удалению левых рекурсий в контекстно-свободных грамматиках.
Ясно, что для уравнения X «= ХА + В решение может быть определено как
Xi
= (BY)i
=
где
Yi
=
(AY + I)ij
=
Пример 4.4 гл. 8 показывает, как этот результат переносится на контекстно-свободные грамматики. Преобразования, используемые в этом примере (хотя они и не строго обоснованы), появились при помощи рассуждений по аналогии. Мы завершаем этот раздел, указывая на формальную связь между регулярной алгеброй конечных распознавателей и регулярными грамматиками.
3.2. Представления регулярных грамматик. Напомним, в гл. 8 структурная грамматика G=(N, Т, Р, S) называлась грамматикой Хомского типа 3 или (Λ-свободной) регулярной грамматикой, если все элементы Р имели вид А → х или А → хВ, где х ⊆ Т и А, В ⊆ N, или же (если Λ ⊆ L(G)) S → Λ; в этом случае S не встречается ни в какой правой части.
Множество предложений, порожденных регулярной грамматикой, называют регулярным множеством или регулярным языком. В настоящий момент мы в состоянии обосновать использование дважды одной и той же терминологии и, следовательно, использовать регулярную алгебру в грамматиках.
Основной результат состоит из двух частей и дан в виде теоремы с конструктивным доказательством. Часть I является непосредственной, так как каждый переход определяют на всей его области определения; в части 11 не обязательно, чтобы грамматика (N, Т, Р, S) для данных X ∈ N и а ∈ T имела продукцию вида X → а или X → aY при некотором Y ∈ N.
Теорема. Множество, представимое конечным ав~ томатом, является в точности таким же, как если бы выводилось из регулярных грамматик.
Доказательство. Опишем конструкции доказательства.
Вначале рассмотрим конечный автомат М = (Q, ∑, t, g, F). Теперь построим регулярную грамматику G=(N, Т, Р, S). Если Λ∉ А (М), то можно сделать следующее. Пусть N = Q, Т = ∑ и S = q; построим Р такое, что
P = {X→aY, Y ∈ t(X, а)} {X → a, t(X, a) F },
Если Λ ∈ А(М), то расширяем конструкцию, создавая новый детерминал q, полагая S — q и добавляя к Р продукции
S → Λ,
S → aY (если Y ∈ t(q, а)),
S → a (если t(q, а) F = 0).
Сейчас легко показать, что для каждого x ∈ ∑ условие х ∈ А (М) выполнено тогда и только тогда, когда х ∈ L(G). Очевидно, что если q ∈ F, то А представимо автоматом М и S → Λ — продукция G в наоборот. Если также а ∈ А (М) и |а| = п, то
а = а1а2 ... аn, ai ∈ ∑,
и
поэтому существует путь в графе
М,
как показано на
Рис. 9.19
рис. 9.19. Здесь Ai ∈ N (не обязательно все различны) и B ∈ F, и но построению (рис. 9.20). Таким образом, a ∈ L(G). Проводя рассуждения в обратном порядке, аналогично получаем L(G) ⊆ A(M) и, следовательно, равенство доказано.
Сейчас
надо показать, что для данной (Λ-свободной)
регулярной грамматики предложения
этой грамматики могут быть представимы
некоторым конечным автоматом, а все
другие строки не представимы этим
автоматом. Возьмем
G1
= (N1,
Т1,
Р1,
S1)
и построим
M1
= (Q1,
∑1,
t1,
q1,
F1)
как показано далее. Пусть ∑1
= Т1
и Q1
= N1
{τ}
{π}
(где τ
и π
— специальные символы, которых нет
в N1;
τ
представляет правильную терминальную
строку, а π
представляет ошибку), q1
= S1
и F1
= {τ}.
Если также Λ
∈
L(G1),
т. е
S1
→ Λ принадлежит Р1,
то
F1
=
{τ,
q1}.
Окончательно имеем
Рис.9.20 Рис. 9.21
t1 = {((X, a), Y): X→ aY есть в Р1}
{((X, а), τ): X → а есть в P1)
{(( τ, а), π) для всех а ∈ ∑1}
{((X, b), π): если X N1 и не X → bY для любого Y ∈ N1, и не выполняется условие X → b есть в P1}
{(( π, а), π) для всех а ∈ ∑1}.
Обоснование того факта, что эта машина представляет L(G1), оставляем в качестве упражнения. //
Пример 3.3. Пусть задана регулярная грамматика G =({A, В, С, D}, {х, у, z}, Р, А), где
P = {А → Λ |хВ| уС, В → zB |y| уС, С → xD, D → yD|x}.
Используя описанную выше конструкцию, получим машину, изображенную на рис. 9.21. //
Упражнение 9.3.
Пусть заданы регулярные выражения А, В, С и D такие, что A ≤ С и В ≤ С. Доказать, что
а) А + D ≤ С + D; б) AD ≤ CD;
в) DA ≤ DC; г) А* ≤ С*; д) А + В ≤ С.
Исследовать, как преобразуются результаты п. 1 данного упражнения, если
и
— регулярные матрицы размера
.
3. Определить конечный автомат для языка L, определенного как 11*01* (т. е. L = {w ∈ {0, 1}*: w} начинается с 1 и имеет только один нуль. Выписать правую линейную грамматику, определяемую этим автоматом, и последовательность перемещений, делающих представимой строку 111011.
