ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 29.04.2024
Просмотров: 123
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
70
Теорема 2.3.3.
Для любого регулярного события
Е существует двух- полюсный источник, представляющий
Е.
Доказательство
. Теорема доказывается индукцией по глубине по- строения формулы регулярного события. Элементарное событие пред- ставляется сигнальным графом с двумя вершинами – начальной и заклю- чительной и ребром, соединяющим эти вершины. Это ребро взвешено буквой
х
i
или е (рис. 2.4, а).
Если построены двухполюсные источники:
Н
1
, представляющий регу- лярное событие
Е
1
, и
Н
2
, представляющий регулярное событие
Е
2
, с начальными
q
01
,
q
02
и заключительными
q
z1
и
q
z2
вершинами соответ- ственно, то источник
Н с начальной вершиной q
0
и заключительной –
q
z
, представляющий регулярное событие
Е – результат регулярной операции над
Е
1
и Е
2
, строится следующим образом:
1) объединение
Е=Е
1
∪
Е
2
будет изображено параллельным соединени- ем
Н
1
и
Н
2
(рис. 2.4,
б). Из вершины q
0
проводятся пустые ребра в
q
01
и
q
02
, а из
q
z1 и
q
z2
проводятся пустые ребра в вершину
q
z
;
2) конкатенация
Е=Е
1
Е
2 строится последовательным соединением
Н
1
и
Н
2
(рис. 2.4,
в). Из q
z1
проводится пустое ребро в q
02
; вершина
q
01
объ- является начальной у
Н, вершина q
z2
– заключительной;
3) итерация
*
1
( )
E
E
=
получается зацикливанием
Н
1
(рис. 2.4,
г): из вершины
q
z1
проводится пустое ребро в
q
01
,
и эта же вершина q
01
объяв- ляется начальной и заключительной в
Н.
Рис. 2.4. Источники, представляющие регулярные операции
б)
в)
q
0
x
i
q
z
q
Н
1
q
z
1
q
0 1
а)
Н
1
q
z1
q
01
Н
1
q
z1
q
01
Н
2
q
02
q
z2
Н
2
q
0
q
z
г)
q
02
q
z2
71
Построенные таким образом источники действительно представляют соответствующие события. Докажем это, например, для объединения
Е=Е
1
∪
Е
2
(доказательства для умножения и итерации аналогичны). Возь- мем
х∈
Е. Тогда
х
=
х
1
∪х
2
, где
х
1
∈
Е
1
, а
1 ... 4 5 6 7 8 9 10 11 ... 35
х
2
∈
Е
2
. По условию
Н
1
представляет
Е
1
,
Н
2
представляет
Е
2
, поэтому существует путь
х
1
из
q
01
в
q
z1
и путь
х
2
из
q
02
в q
z2
. Тогда по построению существует путь
е
х
1
е
∪
е
х
2
е=
х
1
∪х
2
из вершины
q
0
в вершину
q
z
. И наоборот, всякий путь
х
из
q
0
в
q
z
обязатель- но проходит через
q
01
и
q
z1
либо через
q
02
и
q
z2
и имеет вид
х
=
х
1
∪х
2
, где
х
1
– путь из
q
01 в
q
z1
, а
х
2
– путь из
q
02 в
q
z2
, откуда следует, что
х
1
∈
Е
1
и
х
2
∈
Е
2
. Что и требовалось доказать.
При построении источника в некоторых случаях необходимо вводить пустые ребра (ребра, взвешенные пустой буквой
e). Это делается для то- го, чтобы избежать ложных путей. Система правил, когда следует вво- дить пустые ребра в граф регулярного выражения, следующая.
1. Пустые ребра вводятся в случае произведения двух или более ите- раций
*
( )
i
i N
S
R
∈
=
∏
(рис. 2.5.), где
R
i
– регулярные выражения.
2. Пустые ребра в источнике, представляющем событие
S, когда регу- лярное выражение для
S начинается или заканчивается итерацией, вво- дятся в случаях: а)
S=(P
*
⋅R)
*
; б)
S=(R⋅N
*
)
*
; в)
S=(P
*
⋅R⋅N
*
)
*
Здесь
R, P и N – произвольные регулярные выражения.
Соответствующие графы изображены на рис. 2.6.
R
2
R
1
R
N
q
0
е
….
q
z
Рис. 2.5. Введение пустых ребер при произведении итераций
72 3. Пустые ребра вводятся в случае дизъюнкции, если хотя бы один из дизъюнктивных членов начинается с итерации
*
*
S R Q P
Q
=
⋅ ∪
∪ ∪ , где
Q – регулярное выражение, не содержащее итерации (рис. 2.7).
4. Пустые ребра вводятся при умножении слева на дизъюнкцию, если хотя бы один из дизъюнктивных членов заканчивается итерацией (рис. 2.8.)
(
)
*
*
S
Q R
P
Q N
=
⋅
∪
∪ ∪
⋅ .
Рис. 2.6. Введение пустых ребер при итерации
R
P
q
0
(
q
z
)
е
а)
R
N
е
q
б)
q
0
(
q
z
)
е
R
P
N
в)
q
0
(
q
z
)
e
R
P
е
е
Q
Q
q
q
z3
q
z1
q
Рис. 2.7. Введение пустых ребер в случае дизъюнкции
73
Перечисленная система правил является полной, т.е. ни в каких дру- гих случаях вводить пустые ребра нет необходимости. Это нетрудно по- казать, рассматривая всевозможные сочетания операций (
∪
,
•
, *) в регу- лярном выражении.
2.3.3. Синтез автоматов (абстрактный уровень)
Перейдем теперь к синтезу автоматов, т.е., по сути, к доказательству теоремы 2.3.2
а.
Вначале введем понятие
детерминированного источника. Речь уже шла о том, что автомат без выходов – это частный случай источника. Ис- точник будет являться графом автомата без выходов, если он: а) содер- жит одну начальную вершину; б) не содержит пустых ребер и в) удовле- творяет условиям автоматности. Такой источник и назовем детерминиро- ванным источником в отличие от произвольного недетерминированного источника. Это название связано с тем, что произвольный источник мож- но интерпретировать как недетерминированный автомат, т. е. как авто- мат, в котором функция переходов
( )
,
q x
δ
может иметь несколько значе- ний (символу
х при вершине q можетсоответствовать множество ребер, а слову
х
– множество путей из вершины
q).
Теперь докажем вспомогательную теорему.
Теорема 2.3.4
(детерминизации). Для любого источника
Н с n верши- нами существует эквивалентный ему детерминированный источник
Н', имеющий не более чем 2
n
вершин.
Доказательство
. Назовем множество вершин qɶ замкнутым, если из того, что
q
i
∈
qɶ , следует, что qɶ принадлежит любая вершина, в которую
R
P
е
е
е
Q
Q
q
0
N
q
z
Рис. 2.8. Введение пустых ребер при умножении на дизъюнкцию
74 из
q
i
ведет пустое ребро. Таким образом, для источника без пустых ребер любое множество вершин замкнуто.
Источник
Н' строится следующим образом. Образуем все замкнутые подмножества вершин
Н (а их не более чем 2
n
) и каждому такому под- множеству поставим в соответствие вершину
i
qɶ источника Н'.
Через
0
qɶ обозначим наименьшее замкнутое подмножество вершин Н, содержащее все начальные вершины
Н.
Это будет начальная вершина
Н'. Заключительными вершинами Н'
объявим все подмножества
i
qɶ
,
содержащее хотя бы одну заключитель- ную вершину
Н. Если из множества
i
qɶ источника Н есть пути х (х
∈
Х) в множество
j
qɶ , то в источнике Н' соединяем вершину
i
qɶ с вершиной
j
qɶ
ребром, на котором написан символ
х. Если же в Н никакая из вершин
i
qɶ не имеет выходящего из нее ребра с символом
х, то соединяем вершину
i
qɶ в Н' с вершиной Ø (пустое подмножество вершин Н) ребром х. Таким образом, каждой вершине
i
qɶ в Н' и каждому символу х соответствует ровно одно ребро
х, выходящее из
i
qɶ , и источник Н' является детермини- рованным. Построение ребер
Н' определяет функцию перехода автомата, граф которого – это источник
Н'. Начальное состояние этого автомата
0
qɶ .
Осталось показать, что источник
Н' эквивалентен Н. Действительно,
Н' обладает свойством: в Н' непустой путь
x
из
0
qɶ в
j
qɶ
существует тогда и только тогда, когда в
Н для любой вершины
j
q q
∈ ɶ
существует путь
x
из некоторой начальной вершины
0 0
q
q
∈ ɶ в q. Пустым путь
x
быть не может, так как, если
x
=е, то
0
j
q
q
=
ɶ
ɶ
по условию замкнутости, а в
Н' пу- стых ребер по построению нет. Это свойство доказывается индукцией по длине слова
x
.
Если
x
=х (состоит из одного символа), то это свойство выполняется по построению ребер в
Н'. Предположим теперь, что оно выполняется и для слова длины, меньшей или равной
k, и докажем, что оно выполняется и для слова
x
х, где х
∈
Х произвольная буква входного алфавита.
Пусть в
Н'
имеется непустой путь
x
х из
0
qɶ в
j
qɶ :
(
)
0
,
j
q
x
q
δ
=
x
ɶ
ɶ
. Если
(
)
0
,
k
q
q
δ
=
x
ɶ
ɶ
, то из
k
qɶ в
j
qɶ
ведет ребро
х. По предположению, в Н для любой вершины
q*
∈
0
qɶ существует путь
x
из начальной вершины
q
0
в
q*.
75
По построению
Н' из того, что в Н'
есть ребро
х из
k
qɶ в
j
qɶ
, следует, что в
Н для любой вершины q
∈
i
qɶ найдется вершина из подмножества
k
qɶ , из которой ведет путь
х в q, поэтому в Н имеется путь из q* в q и, следова- тельно, путь
x
х из q
0
в
q.
И наоборот, если в
Н для любой вершины q
∈
i
qɶ есть путь
x
х из начальной вершины
0 0
q
q
∈
ɶ
в вершину
q, то в Н' будет выполняться условие
(
)
0
,
j
q x
q
δ
=
x
ɶ
ɶ
.
Доказывается это аналогичным образом. При этом рассматривается множество путей
x
х из начальных вершин Н в вершины множества
i
qɶ и множества
k
qɶ всех вершин, в которые ведут отрезки
x
этих путей.
Из доказанного свойства
Н' и определения заключительных вершин
Н' следует, что в Н' путь
x
из
0
qɶ в заключительную вершину есть тогда и только тогда, когда в
Н имеется путь
x
из некоторой начальной вершины в заключительную. Следовательно, источники
Н и Н' эквивалентны, по- скольку представляют одно и то же событие. Что и требовалось доказать.
По сути дела, из доказательства теорем 2.3.3 и 2.3.4 и следует доказа- тельство теоремы синтеза 2.3.2
а, а синтез автомата, представляющего произвольное регулярное событие
Е, состоит в том, что сначала строится источник, представляющий
Е, а затем этот источник детерминируется согласно процедуре, изложенной при доказательстве теоремы 2.3.4.
Практически детерминизация упрощается в связи с тем, что некото- рые подмножества вершин
Н (состояния Н') не достижимы из начального состояния и их удаление не изменит события, представляемого автома- том. Поэтому в матрицу переходов
Н' включаются только те подмноже- ства, которые порождаются процедурой детерминизации, начатой с под- множества
0
qɶ . В этом случае построенный автомат может иметь меньше чем 2
n
состояний.
Пример 2.12.
Рассмотрим синтез автомата на абстрактном уровне. Ре- гулярное событие, которое должен представлять автомат, может быть задано либо словесным описанием, либо регулярным выражением. Пусть регулярное событие в алфавите {
a,b,c}задано выражением
(
)
( )
*
*
*
*
(
)
a b c c
a b
ac
∪ ⋅
⋅ ∪
⋅
. (2.3.1)
76
Процедура синтеза начинается с построения источника
H. При этом нужно учитывать правила введения пустых ребер. В формуле (2.3.1) име- ется произведение итераций (правило 1); первая скобка представляет со- бой дизъюнкцию, в которой один из дизъюнктивных членов начинается с итерации (правило 3), а также один из дизъюнктивных членов заканчива- ется итерацией (правило 4). Поэтому построенный источник
H будет со- держать пустые ребра (см. рис. 2.9).
На рис. 2.9 ребра, которым не приписано букв, – пустые. Начальная вершина источника – 1, заключительная – 5.
Следующий этап – детерминизация источника
H в соответствии с теоремой 2.3.4. При этом строим только замкнутые подмножества, до- стижимые из начального замкнутого подмножества {1,2}. Функция пере- ходов полученного автомата приведена в табл. 2.17.
Т а б л и ц а 2 . 1 7
a
b
c
{1,2}
{2}
{4,5}
{3,4,5}
{2}
{2}
{4,5}
∅
{4,5}
{4,5,6}
{4,5}
∅
{3,4,5}
{4,5,6}
{4,5}
{3,4,5}
∅
∅
∅
∅
{4,5,6}
{4,5,6}
{4,5}
{5}
{5}
{6}
∅
∅
{6}
∅
∅
{5}
1 2
3 4
5
a
c
a
b
с
b
6
a
c
Рис. 2.9. Источник, представляющий событие (2.3.1)
77
В этой таблице знаком
∅
обозначено пустое множество. После пере- обозначения подмножеств вершин – {1,2}→1; {2}→2; {4,5}→3;
{3,4,5}→4;
∅
→6; {4,5,6}→7; {5}→8; {6}→9 – таблица переходов авто- мата приобретает следующий вид (табл. 2.18).
Т а б л и ц а 2 . 1 8
a
b
c
1 2
3 4
2 2
3 5
3
5 3
5
4
5 3
4 5
5 5
5
6
5 3
7
7
8 5
5 8
5 5
7
В табл. 2.18 выделены жирным шрифтом заключительные состояния
3,4,6 и 7, соответствующие подмножествам из табл. 2.17, содержащим заключительное состояние 5 источника
H.
2.3.4. Анализ автоматов (абстрактный уровень)
Для процедуры анализа автоматов потребуется ввести несколько но- вых понятий. Ребра и вершины источника, не входящие в контур обрат- ных связей, назовем
каскадными. Вершины называются стоком, если они имеют только входящие ребра и
истоком, если они имеют только выходящие ребра. Две вершины, лежащие в контуре обратной связи, называются спаренными.
Источник, состоящий только из каскадных вершин, называется
кас-
кадным. Поскольку стоки и истоки всегда каскадные, то любую из вер- шин обратной связи можно сделать каскадной с помощью операции, называемой
расщеплением вершины. Произвольная вершина q в этом случае расщепляется на две вершины:
q', которая называется истоком, и
q'', служащая стоком. Пример такого расщепления приведен на рис. 2.10.
Расщепленные вершины называются индексными вершинами. Мини- мальное число вершин, которые нужно расщепить, чтобы разбить все кон- туры обратной связи, называется
индексом соединения обратной связи.
Граф, изображающий источник, можно упростить, устранив ряд вер- шин и приведя ветвевой переход к значению пути через устраненные