Главная страница

Математическая теория систем. Математические основы теории систем


Скачать 2.07 Mb.
НазваниеМатематические основы теории систем
Дата20.01.2023
Размер2.07 Mb.
Формат файлаpdf
Имя файлаМатематическая теория систем.pdf
ТипУчебное пособие
#895603
страница9 из 35
1   ...   5   6   7   8   9   10   11   12   ...   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=(RN
*
)
*
; в)
S=(P
*
RN
*
)
*
Здесь
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.
Расщепленные вершины называются индексными вершинами. Мини- мальное число вершин, которые нужно расщепить, чтобы разбить все кон- туры обратной связи, называется
индексом соединения обратной связи.
Граф, изображающий источник, можно упростить, устранив ряд вер- шин и приведя ветвевой переход к значению пути через устраненные

78 вершины. Полученный граф называется
остатком первоначального.
Вершина, входящая в остаточный граф, называется остаточной. Путь, если он связывает остаточную вершину с собой или с заданной остаточ- ной вершиной и не проходит через другие остаточные вершины, называ- ется остаточным.
Исключая в исходном источнике все вершины, кроме истоков, стоков и индексных вершин, получим
индексный остаток. Если необходимо сохранить вершину
q, не являющуюся ни истоком, ни стоком, ни индекс- ной вершиной, то это можно сделать путем соединения новой вершины
q' с вершиной
q ребром е и устранением вершины q. В результате получа- ется исток. Аналогичным образом поступают и для образования стока.
Существующие методы анализа можно разделить на графические, ис- пользующие понятие источника и его эквивалентные преобразования, и аналитические, в которых применяются уравнения в алгебре регулярных событий. Впервые алгоритм получения регулярных выражений был дан
Мак-Нотоном и Ямадой (Мс. Naughton & Yamada) в 1960 г., однако он довольно громоздок и не приводится.
Рассмотрим графический алгоритм анализа. Отыскание регулярного выражения, означающего множество слов, переводящих автомат из со- стояния
q
i
в состояние
q
j
,
сводится в конечном итоге к нахождению вет- вевого перехода из вершины
q
i
в
q
j
на графе автомата. В этом случае граф автомата приводится к источнику, имеющему только два состояния:
q
i
и
q
j
. Если в начале приведения вершина
q
i
является истоком, q
j
– стоком, то полученный источник будет иметь только один непустой переход от
q
i
к
q
j
и вес этого перехода будет являться искомым регулярным выражением.
При таком приведении остальные вершины должны быть удалены.
Например, пусть необходимо удалить в графе вершину
q
k
с петлей
t
kk
(см. рис. 2.11,
а).
х
3
х
3
х
4
х
4
q
а)
х
3
q'
х
4
х
4
q''
б)
Рис. 2.10. Пример расщепления вершины

79
Регулярное выражение, связывающее
p
q и
s
q , будет
*
1
( )
pk
kk
ks
R
t
t
t
=

⋅ , а при устранении вершины
q
k
получим
(рис.
2.11,
б):
*
(
)
p s
p k
k k
k s
R t
t
t
t
=



Таким образом, любой граф автомата можно свести к источнику с двумя вершинами
q
i
и
q
j
, ветвевой переход между которыми и есть иско- мое регулярное выражение, представимое состоянием
q
j
при условии, что
q
i
– начальное состояние.
При анализе граф автомата, как правило, приводят к индексному остатку. Это можно сделать с помощью элементарных преобразований, но на практике используют приведение к индексному остатку с провер- кой по правилу. Это правило заключается в том, что между остаточными вершинами
q
i
и
q
j
в построенном источнике должно быть ребро, если в первоначальном графе есть, по крайней мере, один остаточный путь от
q
i
к
q
j
. Вес такого ребра равен объединению всех приращений остаточных путей от
q
i
к q
j
. Прирост пути от q
i
к
q
j определяется произведением при- ращений ребер, образующих этот путь.
Если индексный остаток включает сложный контур обратной связи, устраняемые вершины могут быть исключены расщеплением вершин.
При удалении некоторой вершины
q
k
все другие вершины расщепляются на истоки и стоки. Далее вычисляются пути от истока до стока, и рас- щепленные вершины соединяются вновь.
1   ...   5   6   7   8   9   10   11   12   ...   35


написать администратору сайта