- •Проектирование автоматов
- •Проектирование автоматов
- •5.7. Упражнения 90
- •Введение
- •1. Абстрактные автоматы
- •1.1. Эквивалентность автоматов
- •1.2. Минимизация автоматов
- •1.2.1. Минимизация полностью определенного автомата
- •1.2.2. Минимизация частичного автомата
- •1.3. Композиция автоматов
- •1.3.1. Параллельное соединение
- •1.3.2. Последовательное соединение
- •1.3.3. Соединение с обратной связью
- •1.3.4. Соединение в сеть
- •1.4 Декомпозиция автомата
- •1.4.1. Задача декомпозиции
- •1.4.2. Разбиения со свойствами подстановки
- •1.4.3. Метод декомпозиции
- •1.5. Упражнения Эквивалентность автоматов
- •Минимизация полностью определённого автомата.
- •Декомпозиция автоматов
- •2. Структурные автоматы
- •2.1. Автоматная полнота и теорема в.М.Глушкова
- •2.2. Гонки в автомате
- •2.2.1. Кодирование состояний
- •2.2.2. Понятие о гонках. Противогоночное кодирование
- •2.3. Проектирование автомата
- •2.4. Упражнение Кодирование
- •Синтез автомата
- •3. Синтез схем
- •3.1. Определения
- •3.2. Функциональная полнота базиса
- •3.2.1. Классы функций
- •3.2.2. Монотонные функции
- •3.2.3. Самодвойственные функции
- •3.2.4. Линейные функции
- •3.2.5. Функции, сохраняющие константу
- •3.2.6. Функциональная полнота
- •3.3. Топологические ограничения в схемах
- •3.3.1. Плоские схемы
- •3.3.2. Ограничения на глубину связи в схеме
- •3.4. Методы синтеза схем
- •3.4.1. Метод факторизации
- •3.4.2. Метод декомпозиции
- •3.4.3. Синтез схем в классическом базисе.
- •3.4.4. Синтез схем в монофункциональном базисе.
- •3.5. Упражнения Функциональная полнота
- •Синтез схем
- •4. Эксперименты над автоматами
- •4.1. Построение диагностических деревьев
- •4.2. Диагностические и установочные эксперименты
- •4.2.1. Дерево преемников
- •4.2.2. Диагностический эксперимент
- •4.2.3. Установочный эксперимент
- •4.3. Упражнения Диагностические эксперименты
- •Установочные эксперименты
- •5. Формальные грамматики
- •5.1. Языки и порождающие их грамматики
- •5.2. Примеры фрагментов описаний в языках программирования.
- •5.3. Порождающая грамматика
- •5.4. Классы языков и грамматик
- •5.5. Язык, понимаемый устройством
- •5.6. Автоматные языки
- •5.7. Упражнения
- •Библиографический список
- •Проектирование автоматов
- •620002, Екатеринбург, Мира, 19
1.4.3. Метод декомпозиции
Рассмотрим метод на примере автомата, представленного в табл.1.22. Алфавит состояний А = {1, 2, 3, 4, 5, 6},
алфавит входов Z = { z1 , z2 , z3 , z4 },
алфавит выходов W = {w1 , w2 , w3}.
Нетрудно убедиться, что для этого автомата СП-разбиения нет.
Таблица 1.22 |
||||||
/ |
1 |
2 |
3 |
4 |
5 |
6 |
z1 |
2 / w1 |
5 / w1 |
1 / w1 |
6 / w1 |
1 / w3 |
2 / w2 |
z2 |
6 / w2 |
1 / w1 |
5 / w3 |
2 / w2 |
1 / w1 |
6 / w2 |
z3 |
6 / w1 |
1 / w1 |
5 / w1 |
2 / w2 |
2 / w3 |
5 / w3 |
z4 |
2 / w3 |
5 / w3 |
1 / w1 |
6 / w3 |
4 / w1 |
3 / w1 |
Выберем разбиения множества состояний А: 1(А)={1234, 56}, 2(А) = {1256, 34}, 3(А)={135, 246}, т.е. сеть будет состоять из трёх компонентных автоматов. Условие теоремы выполняется, 1(А), 2(А) и 3(А) – ортогональны.
Будем считать для выбранного примера, что алфавиты состояний компонентных автоматов A, B и С.
p1(А) = { 1234 , 56} = { b1 , b2} = B.
p2(А) = {1256 , 34} = {c1 , c2} = C.
p3(А) = {135 , 246} = {d1 , d2} = D.
Так, например, если автомат В (соответствующий разбиению p1(А)) находится в состоянии b1, автомат С (соответствующий разбиению p2(А)) – в состоянии с2, автомат D (соответствующий разбиению p2(А)) – в состоянии d1, то автомат SN будет находиться в состоянии 3. Выбор разбиений p1, p2, p3 определяет сложность функций fi, а от нее – со сколькими автоматами связан автомат Si.
Для каждого разбиения pi построим функцию Fi: AxZ®pI на базе функции d. Эта функция определяет реакции автоматов Si на внешнее воздействие zi, при условии, что автомат S (и реализующий его автомат SN) находится в состоянии k.
Таблица 1.23 |
||||||
F1 |
1 |
2 |
3 |
4 |
5 |
6 |
z1 |
b1 |
b2 |
b1 |
b2 |
b1 |
b1 |
z2 |
b2 |
b1 |
b2 |
b1 |
b1 |
b2 |
z3 |
b2 |
b1 |
b2 |
b1 |
b1 |
b2 |
z4 |
b1 |
b2 |
b1 |
b2 |
b1 |
b1 |
ZZ Fi (ak, z)=Fi (am , z) выполнялось тогда и только тогда, когда ak и am принадлежат к одной группе разбиения i. (табл.1.23 -1.25).
1 = {136 , 24 , 5} , 2 = {1234 , 56}, 3 = {14 , 23 , 5, 6},
Таблица 1.24 |
||||||
F2 |
1 |
2 |
3 |
4 |
5 |
6 |
Z1 |
c1 |
cl |
cl |
cl |
cl |
cl |
Z2 |
cl |
cl |
cl |
cl |
cl |
cl |
Z3 |
cl |
cl |
cl |
cl |
cl |
cl |
Z4 |
cl |
cl |
cl |
cl |
c2 |
c2 |
Таблица 1.25 |
||||||||
F3 |
1 |
2 |
3 |
4 |
5 |
6 |
|
|
Z1 |
d2 |
dl |
dl |
d2 |
dl |
d2 |
|
|
Z2 |
d2 |
dl |
dl |
d2 |
dl |
d2 |
|
|
Z3 |
d2 |
dl |
dl |
d2 |
d2 |
dl |
|
|
Z4 |
d2 |
dl |
dl |
d2 |
d2 |
dl |
|
Определим для функции Fi разбиения i на множестве Z так, чтобы для любых Zk и Zm из множества Z условие: aA Fi (a, Zk) = Fi(a , Zm) выполнялось тогда и только тогда, когда Zk и Zm принадлежат к одной группе разбиения i.
1 = {z1 z4 , z2 z3} 2 = {z1 z2 z3 , z4};
3 = {z1 z2 , z3 z4}.
Построим сеть N = < ZN , WN , {Si} , {fi} , {i} , g > ZN = Z, WN = W.
2) Si , fi , i - определяют компонентные автоматы;
Si = ( Ai , Zi , i ); Ai = { i } – блоки разбиения;
Zi = Zi` x Zi``, если Zi` не пустое множество,
Zi = Zi``, если Zi` пустое множество, Zi`` = i.
Zi` определяются по следующему правилу:
Если ix(k x l x…xm)i, то Zi` = (k x l x … x m).
Найдём все возможные произведения пересечений.
1(A)x2(A) = {12, 56, 34}
1(A) x 3(A) = { 13 , 5 , 24 , 6 }
2(A) x 3(A) = { 15 , 26 , 3 , 4 }
1(A) x 2(A) x 3(A)={ 1 , 2 , 3 , 4 , 5 , 6 }
Определим зависимость функции переходов первого автомата от других автоматов.
Таблица 1.26 |
||
1 |
b1 |
b2 |
d1,u1 |
b1 |
b1 |
d1,u2 |
b2 |
b1 |
d2,u1 |
b2 |
b1 |
d2,u2 |
b1 |
b2 |
1 = {z1 z4 , z2 z3} = {u1 , u2} = U.
1: B x ( D x U ) B Функция переходов представлена в табл.1.26, композиция – на рис.1.14
Определим зависимость функции переходов второго автомата от других автоматов
2(A) x 1(A) ={13 , 5 , 24 , 6 }
2 > 2(A) x 1(A), => Z2`=1(A)={1234 ,56 }={b1, b2} = B,
2 ={Z1, Z2, Z3, Z4}={v1, v2}=V,
Таблица 1.27 |
||
2 |
с1 |
с2 |
b1,v1 |
с1 |
с1 |
b1,v2 |
с1 |
с1 |
b2,v1 |
с1 |
* |
b2,v2 |
c2 |
* |
* - такое событие
невозможно, т.к. с2 обозначает состояния
3 или 4 результирующего автомата SN,
a
b2
– состояния 5 или 6, поэтому, если автомат
С находится в состоянии с2, то b2
не может поступать на его вход.
Определим зависимость функции переходов второго автомата от других автоматов
3 = { 14 , 23 , 5 , 6 }
1(A) x 2(A) x 3(A) = { 1, 2, 3, 4, 5, 6}.
3 > 3(A) x 1(A) x 2(A)=> Z3`=1(A)x2(A)={12, 56, 34}={p1, p2, p3} = P,
3 = { Z1 Z2 , Z3 Z4 } = { v1 , v2 } = V,
3: D x ( P x V) D
Таблица 1.28 |
|||
3 |
d1 |
d2 |
|
p1,v1 |
b1,c1,v1 |
d2 |
d1 |
p1,v2 |
b1,c1,v2 |
d2 |
d1 |
p2,v1 |
b2,c1,v1 |
d1 |
d2 |
p2,v2 |
b2,c1,v2 |
d1 |
d2 |
p3,v1 |
b1,c2,v1 |
d1 |
d2 |
p3,v2 |
b1,c2,v2 |
d2 |
d1 |
Функция переходов представлена в табл.1.28, композиция –на рис.1.16.
Создадим разбиение множества P x V:
Q = { (p1,v1) (p1,v2) (p3,v2) , (p2,v1) (p2,v2) ( p3,v1) } = {q1, q2}.
Тогда функция 3 принимает вид, показанный в табл.1.29.
Таблица 1.29 |
||
3 |
d1 |
d2 |
q1 |
d2 |
d1 |
q2 |
d1 |
d2 |
Выходная функция представлена в табл.1.30, композиция –на рис.1.17.
Таблица1.30 |
||||||
g
|
b1,c1,d1 |
b1,c1,d2 |
b1,c2,d1 |
b1,c2,d2 |
b2,c1,d1 |
b2,c1,d2 |
1 |
2 |
3 |
4 |
5 |
6 |
|
z1 |
w1 |
w1 |
w1 |
w1 |
w3 |
w2 |
z2 |
w2 |
w1 |
w3 |
w2 |
w1 |
w2 |
z3 |
w1 |
w1 |
w1 |
w2 |
w3 |
w3 |
z4 |
w3 |
w3 |
w1 |
w3 |
w1 |
w1 |