3. Декомпозиция автомата
Декомпозируем его на автоматы с двумя состояниями.
Алфавит состояний А={1, 2, 3, 4, 5, 6, 7, 8}, алфавит входов Z={z1, z2, z3, z4 },алфавит выходов W={ w1, w2}.
Выберем разбиения множества состояний А произвольно, но так, чтобы они были ортогональны. Пусть
1(А) = { 1 2 3 4, 5 6 7 8 }={ B1 , B2 } = B;
2(А) = { 1 2 5 6, 3 4 7 8 }= { C1 , C2 } = C;
3(А) = { 1 5 3 7, 2 6 4 8 } = { D1 , D2 } = D.
Проверка показывает, что 1(А) x 2(А)= { 1 2, 3 4 , 5 6, 7 8 }, а 1(А) x 2(А) x 3(А)= {1, 3, 5, 7, 2, 4, 6,8} =0(А), т.е. 1(А), 2(А), 3(А) – ортогональны.
Для каждого разбиения i построим функцию Fi: AxZi, на базе функции . Эта функция определяет реакции автоматов Si на внешнее воздействие zi, при условии, что автомат S (и реализующий его автомат SN) находится в состоянии k.
Определим для функций Fi разбиения i на множестве А так, чтобы для любых аk и аm из множества А условие: z Z Fi(ak, z)= Fi(am, z) выполнялось тогда и только тогда, когда ak и am принадлежат к одной группе разбиения i.
F1 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
z1 |
B2 |
B1 |
B2 |
B1 |
-- |
B1 |
B2 |
B1 |
z2 |
B1 |
-- |
B2 |
B1 |
B2 |
B2 |
B1 |
B1 |
z3 |
B1 |
B2 |
B2 |
B2 |
B1 |
B1 |
B1 |
B1 |
z4 |
B1 |
B1 |
-- |
B1 |
B1 |
-- |
B2 |
B1 |
F2 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
z1 |
C2 |
C1 |
C1 |
C2 |
-- |
C1 |
C1 |
C1 |
z2 |
C2 |
-- |
C2 |
C1 |
C1 |
C2 |
C2 |
C1 |
z3 |
C1 |
C2 |
C1 |
C1 |
C2 |
C1 |
C1 |
C2 |
z4 |
C1 |
C2 |
-- |
C1 |
C1 |
-- |
C1 |
C1 |
F3 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
z1 |
D2 |
D1 |
D2 |
D1 |
-- |
D1 |
D2 |
D1 |
z2 |
D2 |
-- |
D1 |
D1 |
D2 |
D1 |
D1 |
D2 |
z3 |
D1 |
D1 |
D2 |
D1 |
D2 |
D1 |
D2 |
D1 |
z4 |
D1 |
D2 |
-- |
D1 |
D1 |
-- |
D1 |
D2 |
В результате получим: 1 = { 1, 24 3, 56, 7, 8}, 2 = { 1, 2, 367, 4, 58}, 3 ={1, 26, 37, 4, 5, 8}
Определим для функции Fi ещё одно разбиение на множестве Z – i , так, чтобы для любых zk и zm из множества Z условие aA Fi (a, zk ) = Fi(a, zm) выполнялось тогда и только тогда, когда zk и zm принадлежат к одной группе разбиения i. Получим
1 = { z1, z2, z3, z4}={u1, u2, u3, u4}=U,
2 = { z1, z2, z3, z4}={v1, v2, v3, v4}=V,
3 = { z1, z2, z3, z4}={t1, t2, t3, t4}=T
Найдём все возможные произведения пересечений:
1(A)x2(A) = {12, 34,56, 78},
1(A) x 3(A) = {13, 57, 68, 24},
2(A)x 3(A)= {15, 26, 37, 48 },
1(A)x2(A)x3(A)={1, 3, 5, 7, 2, 4, 6, 8}
1 > 1(A) x2(A) x3(A), значит Z1`=2(A)x 3(A)= {15, 26, 37, 48 } = {p1, p2, p3, p4 } = P,
первый автомат зависит от второго и третьего.
2 > 1(A) x2(A) x3(A), значит Z2`=1(A)x 3(A)= {13, 57, 68, 24} = {m1, m2, m3, m4 } = M,
второй автомат зависит от первого и третьего.
3 > 1(A) x2(A) x3(A), значит Z3`=1(A)x 2(A)= {12, 34,56, 78} = {h1, h2, h3, h4 } = H,
третий автомат зависит от первого и второго.
Рассмотрим воздействия автоматов друг на друга с помощью введенных выше обозначений
1 |
B1 |
B2 |
|
|
2 |
C1 |
C2 |
|
|
2 |
D1 |
D2 |
|
p1/u1 |
B2 |
-- |
q3/q4 |
|
m1/v1 |
C2 |
C1 |
e3 |
|
h1/t1 |
D2 |
D1 |
r3 |
p1/u2 |
B1 |
B2 |
q2 |
|
m1/v2 |
C2 |
C2 |
e4 |
|
h1/t2 |
D2 |
-- |
r3/r4 |
p1/u3 |
B1 |
B1 |
q1 |
|
m1/v3 |
C1 |
C1 |
e1 |
|
h1t3 |
D1 |
D1 |
r1 |
p1/u4 |
B1 |
B1 |
q1 |
|
m1/v4 |
C1 |
-- |
e1/e2 |
|
h1/w4 |
D1 |
D2 |
r2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p2/u1 |
B1 |
B1 |
q1 |
|
m2/v1 |
-- |
C1 |
e1/e3 |
|
h2/t1 |
D2 |
D1 |
r3 |
p2/u2 |
-- |
B2 |
q2/q4 |
|
m2/v2 |
C1 |
C2 |
e2 |
|
h2/t2 |
D1 |
D1 |
r1 |
p2/u3 |
B2 |
B1 |
q3 |
|
m2/v3 |
C2 |
C1 |
e3 |
|
h2/t3 |
D2 |
D1 |
r3 |
p2/u4 |
B1 |
-- |
q1/q2 |
|
m2/v4 |
C1 |
C1 |
e1 |
|
h2/t4 |
-- |
D1 |
r1/r3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p3/u1 |
B2 |
B2 |
q4 |
|
m3/v1 |
C1 |
C1 |
e1 |
|
h3/t1 |
-- |
D1 |
r1/r3 |
p3/u2 |
B2 |
B1 |
q3 |
|
m3/v2 |
C2 |
C1 |
e3 |
|
h3/t2 |
D2 |
D1 |
r3 |
p3/u3 |
B2 |
B1 |
q3 |
|
m3/v3 |
C1 |
C2 |
e2 |
|
h3/t3 |
D2 |
D1 |
r3 |
p3/u4 |
-- |
B2 |
q2/q4 |
|
m3/v4 |
-- |
C1 |
e1/e3 |
|
h3/t4 |
D1 |
-- |
r1/r2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
p4/u1 |
B1 |
B1 |
q1 |
|
m4/v1 |
C1 |
C2 |
e2 |
|
h4/t1 |
D2 |
D1 |
r3 |
p4/u2 |
B1 |
B1 |
q1 |
|
m4/v2 |
-- |
C1 |
e1/e3 |
|
h4/t2 |
D1 |
D2 |
r2 |
p4/u3 |
B2 |
B1 |
q3 |
|
m4/v3 |
C2 |
C1 |
e3 |
|
h4/t3 |
D2 |
D1 |
r3 |
p4/u4 |
B1 |
B1 |
q1 |
|
m4/v4 |
C2 |
C1 |
e3 |
|
h4/t4 |
D1 |
D2 |
r2 |
|
|
|
B1 |
B2 |
|
|
|
|
|
|
C1 |
C2 |
|
|
|
|
|
|
D1 |
D2 |
|
|
|
|
|
q1 |
B1 |
B1 |
|
|
|
|
|
e1 |
C1 |
C1 |
|
|
|
|
|
r1 |
D1 |
D1 |
|
|
|
|
|
q2 |
B1 |
B2 |
|
|
|
|
|
e2 |
C1 |
C2 |
|
|
|
|
|
r2 |
D1 |
D2 |
|
|
|
|
|
q3 |
B2 |
B1 |
|
|
|
|
|
e3 |
C2 |
C1 |
|
|
|
|
|
r3 |
D2 |
D1 |
|
|
|
|
|
q4 |
B2 |
B2 |
|
|
|
|
|
e4 |
C2 |
C2 |
|
|
|
|
|
r4 |
D2 |
D2 |
|
|
|
Автомат S1:
q1=00; u1=00; p1=00;
q2=01; u2=01; p2=01;
q3=10; u3=11; p3=10;
q4=11; u4=10; p4=11;
Найдем функцию Q:
u\p |
00 |
01 |
11 |
10 |
00 |
q3 |
q1 |
q1 |
q4 |
01 |
q2 |
q2 |
q1 |
q3 |
11 |
q1 |
q3 |
q3 |
q3 |
10 |
q1 |
q1 |
q1 |
q2 |
Найдем функцию Q1:
x1x2\cd |
00 |
01 |
11 |
10 |
00 |
1 |
0 |
0 |
1 |
01 |
0 |
0 |
0 |
1 |
11 |
0 |
1 |
1 |
1 |
10 |
0 |
0 |
0 |
0 |
Q1=
Найдем функцию Q2:
x1x2\cd |
00 |
01 |
11 |
10 |
00 |
0 |
0 |
0 |
1 |
01 |
1 |
1 |
0 |
0 |
11 |
0 |
0 |
0 |
0 |
10 |
0 |
0 |
0 |
1 |
Q2=
Автомат S2:
e1=00; v1=00; m1=00;
e2=01; v2=01; m2=01;
e3=10; v3=11; m3=10;
e4=11; v4=10; m4=11;
Найдем функцию E:
v\m |
00 |
01 |
11 |
10 |
00 |
e3 |
e1 |
e2 |
e1 |
01 |
e4 |
e2 |
e1 |
e3 |
11 |
e1 |
e3 |
e3 |
e2 |
10 |
e1 |
e1 |
e3 |
e1 |
Найдем функцию E1:
x1x2\bd |
00 |
01 |
11 |
10 |
00 |
1 |
0 |
0 |
0 |
01 |
1 |
0 |
0 |
1 |
11 |
0 |
1 |
1 |
0 |
10 |
0 |
0 |
1 |
0 |
E1=
Найдем функцию E2:
x1x2\bd |
00 |
01 |
11 |
10 |
00 |
0 |
0 |
1 |
0 |
01 |
1 |
1 |
0 |
0 |
11 |
0 |
0 |
0 |
1 |
10 |
0 |
0 |
0 |
0 |
E2=
Автомат S3:
r1=00; w1=00; h1=00;
r2=01; w2=01; h2=01;
r3=10; w3=11; h3=10;
r4=11; w4=10; h4=11;
Найдем функцию R:
x1x2\h |
00 |
01 |
11 |
10 |
00 |
r3 |
r3 |
r3 |
r1 |
01 |
r3 |
r1 |
r2 |
r3 |
11 |
r1 |
r3 |
r3 |
r3 |
10 |
r2 |
r1 |
r2 |
r1 |
Найдем функцию R1:
x1x2\bc |
00 |
01 |
11 |
10 |
00 |
1 |
1 |
1 |
0 |
01 |
1 |
0 |
0 |
1 |
11 |
0 |
1 |
1 |
1 |
10 |
0 |
0 |
0 |
0 |
R1=
Найдем функцию R2:
x1x2\bc |
00 |
01 |
11 |
10 |
00 |
0 |
0 |
0 |
0 |
01 |
0 |
0 |
1 |
0 |
11 |
0 |
0 |
0 |
0 |
10 |
1 |
0 |
1 |
0 |
R2=
Возникает необходимость закодировать функцию выхода g
Функция g реализует выход автомата.
Установим соответствие между состояниями компонентных автоматов и исходного автомата.
-
b1 c1 d1
000
1
b1 c1 d2
001
2
b1 c2 d1
010
3
b1 c2 d2
011
4
b2 c1 d1
100
5
b2 c1 d2
101
6
b2 c2 d1
110
7
b2 c2 d2
111
8
z \ bcd |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
b1c1d1 |
b1c1d2 |
b1c2d1 |
b1c2d2 |
b2c1d1 |
b2c1d2 |
b2c2d1 |
b2c2d2 |
|
z1 |
W2 |
W1 |
W1 |
W1 |
W2 |
W2 |
W1 |
W2 |
z2 |
W2 |
-- |
W1 |
W2 |
W1 |
W2 |
W1 |
W2 |
z3 |
W2 |
W1 |
W2 |
W2 |
W1 |
W1 |
W1 |
W1 |
z4 |
W2 |
-- |
-- |
W2 |
W2 |
-- |
W2 |
W2 |
Закодируем W1 = 1, W2=0
Получим функцию
x1x2\bcd |
000 |
001 |
011 |
010 |
110 |
111 |
101 |
100 |
00 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
01 |
0 |
-- |
0 |
1 |
1 |
0 |
0 |
1 |
11 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
10 |
0 |
-- |
0 |
-- |
0 |
0 |
-- |
0 |
Функция выхода будет иметь вид
g=
Схема сети компонентных автоматов
