- •Проектирование автоматов
- •Проектирование автоматов
- •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.1. Эквивалентность автоматов
Состояния автомата ai и aj называются эквивалентными, что обозначается как ai~aj, если для них имеет место: z
1. (ai, z)= (aj, z),
2. (ai, z)~ (aj, z).
Свойства отношения эквивалентности состояний:
1. am ~ am, 2. am ~ an => an ~ am, 3. (am ~ ak)&(an ~ ak) am ~ an.
Таким образом, это есть отношение эквивалентности в общепринятом теоретико-множественном смысле, и множество состояний разбивается на непересекающиеся классы состояний – классы эквивалентности.
Автоматы S=<Z, W, A, , >, и S1=<Z, W, A1, 1, 1>, называют эквивалентными, что обозначается как S ~S1, если (аА а1А1, a ~ a1) &(а1А1 аА, a1 ~ a).
Были введены две модели автоматов – автомат Мура и автомат Мили. Следующая теорема показывает, что эти модели равномощны, т.е. любой автомат можно реализовать в каждой из этих моделей.
Теорема. Для любого автомата Мура существует эквивалентный ему автомат Мили и наоборот.
Доказательство теоремы построим на преобразовании автомата одного типа, описанного с помощью графа, в автомат другого типа.
Необходимость. Покажем, как для любого автомата Мура построить эквивалентный ему автомат Мили. Для этого достаточно перенести выходы автомата с вершин графа на входящие дуги графа.
Рассмотрим это на примере автомата Мура Sµ=<Z,W,A, , ,>, где А={a0, a1, a2, a3, a4}; Z={x1,x2,x3}; W={w1,w2}. Функции автомата представлены в виде графа на рис. 1.4. Результирующий автомат функционирует в соответствии с графом на рис.1.5. Полученный автомат эквивалентен исходному автомату по построению.
Достаточность. Покажем, что для любого автомата Мили можно построить эквивалентный ему автомат Мура. Для каждой вершины графа рассмотрим заходящие в неё дуги. Если эти дуги взвешены различными значениями выхода, то расщепим вершину таким образом, чтобы каждому значению выхода соответствовала своя вершина, и каждую дугу направим в свою вершину.
Пусть автомат Мили S описан в виде графа на рис. 1.6. Рассмот-рим состояние a2, в которое заходят дуга (a0, a2), отмеченная выходом w1, и дуга (a3, a2), отмеченная выходом w3, и дуга (a1,a2), отмеченная выходом w2. Других заходящих дуг в эту вершину нет, значит расщепим вершину a2 в графе для автомата Мура на a2, которой сопоставим вы-ход w2 и куда направим дугу (a1, a2), вершину a1`, которой сопоставим
z2/w2
выход w1 и куда направим дугу (a0,a2`), и вершину a2``, куда направим дугу (a3,a2) и которой сопоставим выход w3. Выходные дуги для вновь введённых вершин будут те же, что и для исходной вершины. Таким образом, из вершин a2` и a2`` должны исходить дуги к тем же вершинам, что и из вершины a2.
Полученный автомат описан графом на рис. 1.7.
z2/w2
Рис.1.6
Рис.1.7
Очевидно, что автоматы S и S' эквивалентны по построению.
Модель автомата Мура проще, за простоту модели заплатили большим числом состояний.