- •Проектирование автоматов
- •Проектирование автоматов
- •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 Декомпозиция автомата
1.4.1. Задача декомпозиции
В разделе 1.2.2. для автомата S1 введено понятие реализующий (покрывающий) автомат S.
Задача декомпозиции – задача построения сети автоматов N, реализующей заданный автомат. Таким образом, задача декомпозиции состоит в том, чтобы для заданного автомата построить сеть из более простых автоматов, которая бы реализовала заданный автомат.
При декомпозиции используется аппарат разбиения множества состояний. Дадим необходимые определения.
Пусть множество А = {1 , 2 , 3 , 4 , 5 , 6}.
Разбиением множества А называют множество его подмножеств, которые не пересекаются между собой и в объединении дают множество A. Эти подмножества называют блоками разбиения.
Например, для заданного множества разбиением может быть
1(А) = {1234 , 56}.
Назовем одноэлементным разбиением множества А 0(А) такое разбиение, в котором в каждом блоке содержится только один элемент множества А.
0(А) = {1 , 2 , 3 , 4 , 5 , 6}.
Будем говорить, что разбиение ij, если каждый блок разбиения i входит в какой-нибудь блок разбиения j.
Рассмотрим пример. Пусть 1(А) = {1234 , 56}, 2(А) = {12 , 34 , 56},
1(А) 2(А) 0(А).
3(А) = {15 , 34 , 26},
1(А) и 3(А) – не сравнимы.
Произведением разбиений i(А) и j(А) назовем разбиение k(А), которое содержит все непустые пересечения блоков разбиений-сомножителей.
Пример
1(А) = {1234 , 56}, 2(А) = {1256 , 56},
1(А) x 2(А) = {12 , 34 , 56}.
Множество разбиений 1(А), 2(А), …, N(А) называется ортогональным, если произведение всех разбиений равно одноэлементному разбиению множества А.
1(А) x 2(А) x … x N(А) = 0(А)
Пример. 1(А)={1234, 56}, 2(А) = {1256, 34}, 3(А)={135, 246}.
1(А) x 2(А) x 3(А) = {1 , 2 , 3 , 4 , 5 , 6} = 0(А)
Семантика. Составим каждому разбиению компонентный автомат. Будем считать, что в один блок включены все состояния исходного автомата, в которых данный компонентный автомат находится в состоянии, соответствующем блоку.
Общая теорема декомпозиции: Множеству разбиений {i(А), i=1,N} можно сопоставить абстрактную сеть автоматов, реализующих заданный автомат S, тогда и только тогда, когда П i(А) = 0(А).
1.4.2. Разбиения со свойствами подстановки
Разбиение ={1, 2, , k} называется СП-разбиением (разбиением со свойством подстановки), если из того, что ai и aj находятся в одном блоке, следует, чтоZ. (ai, Z) и (aj,Z) будут находиться в одном блоке.
Если для автомата S СП-разбиение существует, то можно постро-ить автомат S’, для которого состояниями являются имена блоков раз-биения и под действием любого входа из Z он переходит из блока в блок по функции автомата S. Такой автомат называют фактор–автоматом автомата S по разбиению . В этом случае автомат можно представить последовательным соединением автомата S’ и автомата, состояниям которого сопоставлены блоки разбиения, ортогонального с .
Пример. Пусть автомат имеет таблицу переходов (табл. 1.18). Из этой таблицы видно, что разбиение = {134, 256} будет СП-разбиением.
Обозначим блок 134 как b1, блок 256 как b2, тогда фактор–автомат S’ по этому разбиению будет иметь два состояния, его таблица будет иметь вид табл. 1.19.
Таблица 1.18 |
||||||
|
a1 |
a2 |
a3 |
a4 |
a5 |
a6 |
z1 |
a4 |
a1 |
a4 |
a1 |
a3 |
a4 |
z2 |
a5 |
a3 |
a6 |
a2 |
a4 |
a3 |
Таблица 1.19 |
||
|
b1 |
b2 |
z1 |
b1 |
b1 |
z2 |
b2 |
b1 |
Выберем в качестве разбиения, ортогонального с , разбиение {15, 32, 46}, обозначим его блоки как с1, с2, c3 и примем их за состоя-ния второго автомата S’’. Тогда исходному автомату будет сопоставлено последовательное соединение автомата S’, на вход которого поступают переменные Z, и автомата S’’, на вход которого поступают переменные Z и выходы автомата S’, совпадающие с его состояниями.
Таблица 1.20 |
|||
|
c1 |
c2 |
c3 |
z1/b1 |
c3 |
c3 |
c1 |
z1/b2 |
c2 |
c1 |
c3 |
z2/b1 |
c1 |
c3 |
c2 |
z2/b2 |
c3 |
c2 |
c2 |
Если для автомата находится СП-разбиение, то его использование может существенно упростить сеть автоматов, получающуюся в результате декомпозиции. Так, если и для автомата S’’ разбиение оказалось бы СП-разбиением, то тогда автомат реализовался бы параллельным соединением двух автоматов, то есть схемы для функций fi были бы не нужны, и сеть имела бы минимальную структуру.
Множество всех СП-разбиений можно построить по следующему алгоритму.
Таблица 1.21 |
|
a1 |
b1c1 |
a2 |
b2c2 |
a3 |
b1c2 |
a4 |
b1c3 |
a5 |
b2c1 |
a6 |
b2c3 |
Далее рассматриваем случай, когда в одном блоке состояния a1 и a3, потом a1 и a4, и так далее, все (n-1)n вариант. (В нашем случае 5х3=15 вариантов). Полученные нетривиальные варианты затем суммируем попарно между собой, в результате получаем все возможные варианты СП-разбиений.