
Математические основы теории систем.-2
.pdf
Пример 2.14. Рассмотрим автомат, заданный своим графом переходов (см. рис. 2.13).
|
|
|
|
|
|
|
|
|
x6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x7 |
|
q5 |
|
|
|
|
|
|
|
|
x5 |
|
q3 |
|||||
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q1 |
|
|
|
|
x8 |
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
x1 |
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
x10 |
||||
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x3 |
|
|
x9 |
|
|
||
q1 |
|
|
x2 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
q6 |
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
q4 |
x11 |
|
|
|
x12 |
x4 |
x13 |
|
|
|
q7 |
Рис. 2.13. Граф автомата |
Пусть начальное состояние автомата q1 , а заключительное – q7 . Тре-
буется провести анализ автомата, т.е. найти регулярное выражение, представимое этим автоматом. Поскольку вершина q1 является истоком, а
вершина q7 – стоком, вводить дополнительные вершины не требуется. В графе на рис. 2.13 две индексные вершины – q2 и q4 . Можно оставить любую из них, например, q4 . Тогда индексный остаток графа будет таким, как на рис. 2.14.
81

q1 x1 (x5 x6 x7 x8 )x10 x12
q7
x1x2 x1(x5 x6 x7 x8 )x9
q4 x11x12 x13 x3 (x5x6 x7 x8 )x10 x12
x4 x3 x2 x3 (x5 x6 x7 x8 )x9
Рис. 2.14. Индексный остаток графа
Путь x3 (x5 x6 x7 x8 )x9 (x13 x11x12 ) от вершины q4 до вершины q7 не является остаточным, так как проходит через индексную вершину q4 . Устраняя индексную вершину q4 , получаем окончательное выражение для регулярного события, представимого автоматом при условии, что начальное состояние автомата – q1 , а заключительное – q7 :
(x1x2 x1 (x5 x6 x7 x8 )x9 )(x4 x3 x2 x3 (x5 x6 x7 x8 )x9 ) (x11x12x13 x3 (x5 x6 x7 x8 )x10 x12 ) x1 (x5 x6 x7 x8 )x10 x12 .
2.4 Алгебра абстрактных автоматов
Рассмотрим свойства теоретико-множественных и алгебраических операций на множестве абстрактных автоматов. Есть две теоретикомножественные операции – объединение и пересечение, а также четыре алгебраические – умножение, суммирование, суперпозиция и композиция. Все эти операции бинарные и играют важную роль при синтезе автоматов, так как на структурном уровне они соответствуют различным способам соединения простых (в частности элементарных) автоматов между собой при построении структурных схем более сложных автоматов [9].
Множество автоматов совместно с операциями над ними образуют алгебру абстрактных автоматов, которую не нужно путать с алгеброй регулярных событий на множестве слов входного алфавита произвольного автомата.
Задать определенную бинарную операцию на множестве автоматов означает указать закон, по которому любым двум автоматам из некоторого множества автоматов сопоставляется третий автомат из этого же мно-
82

жества. Какое именно множество имеется в виду, зависит от конкретного случая (от конкретной операции), а равенство понимается, как правило, с точностью до изоморфизма.
2.4.1.Теоретико-множественные операции
Операции объединения и пересечения автоматов играют вспомогательную роль при задании алгебраических операций, хотя их можно рассматривать и как самостоятельные операции на множестве В(L) подавтоматов произвольного непустого автомата L. Тогда объединение двух автоматов А В(L) и В В(L) представляет автомат С=А В, который является эквивалентным продолжением автоматов А и В, а пересечение представляет автомат D B(L), по отношению к которому автоматы А и В являются эквивалентными продолжениями.
Зададим операции объединения и пересечения более конкретно. Пусть L – произвольный непустой автомат Мили, а В(L) – множество его подавтоматов. Пусть далее А В(L) и В В(L) – подавтоматы автомата L, причем и А, и В имеют одинаковые начальные состояния, совпадающие с начальным состоянием L. Пусть заданы автомат А=(Х1,Q1,Y1,q1 Q1,
F1(x X1/y Y1)) и автомат В=(Х2,Q2,Y2,q1 Q2,F2(x X2/y Y2)). Тогда автомат С=(X,Q,Y,q Q,F(x X/y Y)) будет являться объединением А и В, если множества X, Y, Q и отображение F определяются по формулам
X=({1}X1) ({2}X2); |
(2.4.1) |
Q=Q1 Q2; |
(2.4.2) |
Y=({1}Y1) ({2}Y2); |
(2.4.3) |
Fq=F1q F2q, |
(2.4.4) |
где q Q. Для тех состояний, когда q Q1, полагаем F1q=Ø, а при q Q2 имеем F2q=Ø.
Если не происходит нарушения автоматности для автомата С, то есть равенство
F1q(x/y)=F2q(x/y)
не нарушается для любых q Q, x X и y Y (когда оба отображения не пусты) или если
X1∩X2=Ø; |
(2.4.5) |
Y1∩Y2=Ø, |
(2.4.6) |
|
83 |

то формулы (2.4.1) и (2.4.3) упрощаются и принимают вид |
|
X=X1 X2; |
(2.4.7) |
Y=Y1 Y2 . |
(2.4.8) |
В том случае, когда А и В вполне определенные автоматы, автомат С=А В также вполне определен, в противном случае автомат С будет частичным.
Пример |
2.15. Автоматы |
заданы своими |
автоматными таблицами. |
||||||
|
|
A |
|
|
|
|
|
B |
|
|
|
|
|
|
|
|
|
|
|
|
q\x |
x1 |
x2 |
|
|
q\x |
x1 |
x2 |
x3 |
|
1 |
- |
3,y2 |
|
|
1 |
2, y1 |
3, y2 |
- |
|
2 |
2, y2 |
- |
|
|
2 |
2, y2 |
- |
1, y1 |
|
3 |
3, y1 |
2, y3 |
|
|
3 |
- |
- |
1, y3 |
Найдем их объединение C = A B . Поскольку нарушения условий автоматности не происходит, то нет необходимости различать одинаковые буквы алфавитов, и поэтому пользуемся формулами (2.4.7) и (2.4.8), а также формулами (2.4.2) и (2.4.4). В результате получаем автомат С:
С
q\x |
x1 |
x2 |
x3 |
1 |
2, y1 |
3, y2 |
- |
2 |
2, y2 |
- |
1, y1 |
3 |
3, y1 |
2, y3 |
1, y3 |
Операцию объединения с соответствующими формулами (2.4.1) – (2.4.8) легко объединить и на случай n автоматов.
Из формул (2.4.2), (2.4.4), (2.4.5) – (2.4.8) следует, что каждый автомат Мили может быть представлен объединением автономных автоматов по входным и выходным буквам:
A = ( Ax ) ( Ay ) .
x X y Y
84

Такое представление используется при разложении автоматов по различным операциям.
Автоматное отображение SC(q1, x), индуцируемое автоматом С, есть продолжение автоматных отображений SA(q1, x) на множество Х*.
Пересечением автоматов А и В будет являться автомат D=A∩В, если его алфавиты X, Q, Y и отображение F определяется формулами
X=X1∩X2; |
(2.4.9) |
Q=Q1∩Q2; |
(2.4.10) |
Y=Y1∩Y2; |
(2.4.11) |
Fq=F1q∩F2q, |
(2.4.12) |
где q Q.
Пример 2.16. Найдем пересечение автоматов А и В из примера 2.15. Применяя формулы (2.4.9) – (2.4.12), получаем автоматную таблицу
автомата D = A∩ B :
D
q\x |
x1 |
x2 |
1 |
- |
3, y2 |
2 |
2, y2 |
- |
3 |
- |
- |
Так же, как и операцию объединения, операцию пересечения, определяемую формулами (2.4.9) – (2.4.12), можно распространить на случай n автоматов.
Задание объединения и пересечения автоматов Мура наталкивается на трудности, связанные с тем, что одинаковые состояния могут иметь разные значения функции отметок, в связи с чем рекомендуется сначала интерпретировать автоматы Мура эквивалентными автоматами Мили, а затем находить их объединение или пересечение по известным формулам.
Нетрудно заметить, что операции объединения и пересечения автоматов ассоциативны, коммутативны и дистрибутивны.
2.4.2.Алгебраические операции
Калгебраическим операциям над автоматами относятся умножение, суммирование, суперпозиция и композиция.
82

Операция умножения графов приводит к двум операциям умножения автоматов. Первая операция, обозначаемая , применяется к произвольным автоматам с раздельными входами, то есть с разными входными алфавитами, а вторая обозначается и применяется к автоматам с общим входом, то есть с одним и тем же входным алфавитом.
Произведением произвольных непустых автоматов
А=(X,Q,Y,q1 Q,F(x X/y Y)) и B=(U,W,V,w1 W,P(u U/v V)) будет называться автомат К=(Z,H,S,h1 H,R(z Z/s S)), у которого
Z=X U; |
(2.4.13) |
H=Q W; |
(2.4.14) |
S=Y V; |
(2.4.15) |
Rh=Fq Pw, |
(2.4.16) |
где q Q, w W, h H, h=(q,w), z=(x,u), s=(y,v).
Начальным состоянием автомата К=А В будет состояние h1=(q1,w1). Если оба автомата А и В вполне определенные, то и их произведение является вполне определенным автоматом. Если хотя бы один из исходных автоматов частичный, то в результате умножения получаем частичный автомат.
Можно определить операцию умножения и через матрицы соединений. Пусть имеется матрица соединений автомата А:
RA = ri j (x / y)
,
где i, j{1, 2, … m} и |
|
|
|
|
|
|
|
|
|
|
|
|
|
x / y, если q |
j |
F |
по букве x X |
||||||||
ri j (x |
|
|
qi |
|
|
|
|
|
|
|
|
|
/ y) = |
|
|
|
|
|
|
|
|
|
|
|
|
|
0, если qj Fq ; |
|
|
|
|
|
|
|
|
|||
|
|
|
|
i |
|
|
|
|
|
|
|
|
и матрица соединений автомата В: |
|
|
|
|
|
|
|
|
||||
где k, l{1, 2, … n} и |
|
|
RB = |
|
|
|
rk l (u / w) |
|
|
|
, |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
||
|
u / v, если w P |
по букве u U |
||||||||||
rk l (u |
|
l |
|
wk |
|
|
|
|
|
|
|
|
/ v) = |
|
|
|
|
|
|
|
|
|
|
|
|
|
0, если wl Pw ; |
|
|
|
|
|
|
|
|
|||
|
|
|
|
k |
|
|
|
|
|
|
|
|
с выходом y Y,
с выходом v V ,
83

Матрица соединений Rk автомата K=А×В равна прямому произведению матриц RA и RB, то есть
|
|
|
|
RK=RA ×RB, |
|
|
|
|
||
а ее элементы определяются так: |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(x,u) /(y,v), если ri j = x / y и rk l = u / v, |
|||||||
|
|
rαβ (z / s) = |
= 0 или rk l = 0, |
|
|
|
|
|||
|
|
|
0, если ri j |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
где α,β {1, 2, …p}, p=m·n, z=(x,u), s=(y,v). |
|
|
|
|
||||||
Пример 2.17. Автоматы А и |
В заданы автоматными |
таблицами: |
||||||||
|
|
A |
|
|
|
|
B |
|
|
|
|
q\x |
x1 |
x2 |
|
|
|
|
|
||
|
q1 |
q2,y1 |
q1,y2 |
|
|
w\u |
|
|
|
|
|
q2 |
q3,y2 |
- |
|
|
w1 |
w1,v2 |
|
- |
|
|
q3 |
- |
q3,y1 |
|
|
w2 |
w1,v1 |
|
w2,v1 |
|
|
|
|
|
|
|
|
|
|
|
|
Найдем произведение этих автоматов, т.е. автомат K = A× B . Входной алфавит автомата K – это упорядоченные пары входных букв
автоматов А и В: обозначим их Z = {z1, z2 , z3 , z4} ,
где z1 = (x1,u1 ) , z2 = (x1,u2 ) , z3 = (x2 ,u1 ) , z4 = (x2 ,u2 ) .
Выходной алфавит автомата K обозначим через S={s1,s2 , s3 , s4} , где s1 = (y1,v1 ) , s2 = (y1,v2 ) , s3 = (y2 ,v1 ) , s4 = (y2 ,v2 ) .
Алфавит состояний автомата K – это H = {h1,h2 ,h3 ,h4 ,h5 ,h6 } , |
|
||||
где |
h1 = (q1,u1 ) , h2 = (q1,u2 ) , |
h3 = (q2 ,u1 ) , |
h4 |
= (q2 ,u2 ) , h5 |
= (q3 ,u1 ) , |
h6 = (q3 ,u2 ) . |
|
|
|
|
|
Найдем отображение Rh1 по входной букве |
z1 . Состояние |
h1 – это |
|||
пара |
(q1, w1 ) , а входная буква |
z1 – это пара |
(x1,u1 ) . Автомат А из со- |
||
стояния q1 по входной букве x1 |
согласно автоматной таблице перейдет в |
||||
состояние q2 , а автомат В из состояния w1 по входной букве u1 |
перейдет |
в состояние w1 . Эта пара (q2 ,w1 ) согласно обозначениям есть состояние
84

h3 автомата K. На выходах автоматов А и В появятся при этом буквы y1 и v2 соответственно. Пара ( y1,v2 ) – это буква s2 выходного алфавита автомата K. Аналогично находим отображение Rh1 по входной букве z3 . Отображение состояния w1 автомата В по входной букве u2 не определено, поэтому также не определено отображение состояния h1 автомата K по входным буквам z2 и z4 . Таким образом, получаем
Rh1 = {h3 (z1, s2 ),h1 (z3 ,s4 )} .
Далее проделываем то же самое для состояний h2 ,h3 ,h4 ,h5 ,h6 . Соответствующие отображения этих состояний имеют вид
Rh2 = {h3 (z1,s1 ),h4 (z2 ,s1 ),h1 (z3 ,s3 ),h2 (z4 ,s3 )};
Rh3 = {h5 (z1,s4 )};
Rh4 = {h5 (z1 ,s3 ),h6 (z2 ,s3 )};
Rh5 = {h5 (z3 ,s2 )};
Rh6 = {h5 (z3 ,s1 ),h6 (z4 ,s1 )}.
По полученным отображениям можно составить автоматную таблицу:
K
h\z |
z1 |
z2 |
z3 |
z4 |
h1 |
h3 ,s2 |
- |
h1,s4 |
- |
|
|
|
|
|
h2 |
h3 ,s1 |
h4 ,s1 |
h1,s3 |
h2 , s3 |
h3 |
h5 ,s4 |
- |
- |
- |
|
|
|
|
|
h4 |
h5 ,s3 |
h6 ,s3 |
- |
- |
|
|
|
|
|
h5 |
- |
- |
h5 , s2 |
- |
|
|
|
|
|
h6 |
- |
- |
h5 ,s1 |
h6 ,s1 |
|
|
|
|
|
и матрицу соединений RK :
85

RK
h\h |
h1 |
h2 |
h3 |
h4 |
h5 |
h6 |
h1 |
z3 , s4 |
0 |
z1,s2 |
0 |
0 |
0 |
|
|
|
|
|
|
|
h2 |
z3 , s4 |
z4 , s3 |
z1,s1 |
z2 ,s1 |
0 |
0 |
|
|
|
|
|
|
|
h3 |
0 |
0 |
0 |
0 |
z1,s4 |
0 |
|
|
|
|
|
|
|
h4 |
0 |
0 |
0 |
0 |
z1,s3 |
z2 , s3 |
|
|
|
|
|
|
|
h5 |
0 |
0 |
0 |
0 |
z3 ,s2 |
0 |
|
|
|
|
|
|
|
h6 |
0 |
0 |
0 |
0 |
z3 ,s1 |
z4 ,s1 |
|
|
|
|
|
|
|
Эту же матрицу соединений можно получить и из матриц соединений автоматов А и В. Для этого по автоматным таблицам составим матрицы соединений автоматов А и В – RA и RB :
RA RB
|
q1 |
q2 |
q3 |
|
q1 |
x2 , y2 |
x1, y1 |
0 |
|
|
|
|||
q2 |
0 |
0 |
x1 |
, y2 |
|
|
|||
q3 |
0 |
0 |
x2 |
, y1 |
|
|
|
w1 |
w2 |
w1 |
u1,v2 |
0 |
|
||
w2 |
u2 ,v1 |
u1,v1 |
Проведем прямое умножение этих матриц, т.е. каждый элемент одной матрицы умножается на каждый элемент другой матрицы (декартово произведение). В результате получим матрицу соединений автомата К (ввиду большого объема приведен только фрагмент матрицы):
RK
|
|
(q1,w1 ) |
(q1,w2 ) |
(q2 , w1 ) |
(q2 ,w2 ) |
(q1,w1 ) |
(x2 ,u1 ),(y2 ,v2 ) |
0 |
(x1,u1 ),(y1,v2 ) |
0 |
|
|
|
|
|
|
|
(q1,w2 ) |
(x2 ,u2 ),(y2 ,v1 ) |
(x2 ,u1 ),(y2 ,v1 ) |
(x1,u2 ),(y1,v1 ) |
(x1,u1 ),(y1,v1 ) |
|
|
|
|
|
|
|
(q2 |
,w1 ) |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
(q2 |
,w2 ) |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
86

После переобозначений матрица принимает уже знакомый вид.
Автомат К=А В соответствует параллельной одновременной работе автоматов А и В (рис. 2.15), причем Z и S определяются по формулам. (2.4.13) и (2.4.15).
Y |
V |
|
S |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
K |
|
|
|
|
А |
|
|
|
В |
|
эквивалентно |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Z |
||
|
Х |
|
U |
|
Рис. 2.15. Произведение двух автоматов с раздельными входами
Обозначим отображения, индуцируемые автоматами А и В через SA и SB соответственно, а отображение, индуцируемое автоматом К=А В, через SK, и пусть х Х* и u U* – слова в соответствующих алфавитах, имеющие равную длину:
x=xi1 x i2 … xik, u=uj1uj2 … ujk
и SA(x)=yi1yi2 … yik, SB(u)=vj1vj2 … vjk.
Слово z Z* является декартовым (прямым) произведением слов x и u и обозначается z=x u, если каждая буква слова z есть пара, образованная соответствующими буквами слов х и u. Поэтому z=(xi1, uj1)(xi2, uj2)…
(xik,ujk), и SK(z)=(yi1,vj1)(yi2,vj2)…(yik, vjk).
Если областью определения частичного отображения SA является множество допустимых слов х Х*, а областью определения частичного отображения SB – множество допустимых слов u U*, то областью определения частичного отображения SK будет множество таких слов z Z*, которые построены из допустимых слов х и u и имеют одинаковую длину. Таким образом, можно записать
SK(z)=SK(x u)=SA(x) SB(u)=y v=s,
где y Y*, v V*, s S*.
87