- •Проектирование автоматов
- •Проектирование автоматов
- •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
4.2. Диагностические и установочные эксперименты
Автомат S, таблица состояний и выходов которого задана, находится в начале эксперимента в одном из состояний ai ... aj . Сформулируем две задачи.
Диагностическая задача. Требуется найти состояние автомата в начале эксперимента.
Установочная задача. Требуется установить S в состояние, которое известно.
Диагностическая задача есть задача определения начального состояния S, а установочная задача состоит в определении конечного состояния S.
Эксперимент, который решает диагностическую задачу, называется диагностическим; установочную задачу – установочным. Ясно, что каж-дый диагностический эксперимент есть также установочный экспери-мент, так как знание начального состояния S и приложенной последова-тельности означает знание конечного состояния. Обратное не обязательно верно.
Множество состояний {a1 ... am}, одно из которых, как известно экс-периментатору, есть начальное состояние S, называется множеством допустимых начальных состояний и обозначается А(S). Как диагностическая, так и установочная задачи становятся тривиальными, когда А(S) является одноэлементным множеством, т.е. когда m=1. Наше внимание будет сконцентрировано на случаях, когда m2.
4.2.1. Дерево преемников
Введем предварительно ряд понятий. Под a-множеством автомата S будем понимать любое конечное множество его состояний, причем элементы этого множества не обязательно различны. Множество, состоящее из единственного элемента, называется простым; содержащее два или более одинаковых элементов - кратным. Множество назовём однородным, если оно состоит из одинаковых элементов. Например, множество {a3} простое, {a2, a3, a2} – кратное, {a3, a3, a3} – однородное.
A-группа есть множество a-множеств автомата S, в котором число элементов во всех входящих в A-группу a-множеств равно m и совпадает с числом элементов в А(S). A-группа называется простой, если все a-множества в ней простые, однородной, если все a-множества в нём однородные.
Предположим, что G есть A-группа, содержащая a-множества σ1, …, σr. Тогда zi1 zi2...zik -преемником G будет другая A-группа, построенная согласно следующим правилам:
Разбиваем каждое множество σi на такие подмножества, что два состояния σi включаются в одно и то же подмножество тогда и только тогда, когда они вырабатывают одинаковые реакции на входную последовательность zi1 zi2...zik. Считаем каждое подмножество как σ-множество, а множество всех таких множеств как A-группу, обозначенную через G *.
В a-множествах из G * заменяем каждое состояние его преемником относительно входной последовательности zi1 zi2...zik. Полученная A-группа есть zi1 zi2...zik- преемник G.
Дерево преемников есть структура, определенная для данного автомата S и заданного множества допустимых начальных состояний A(S). Структура состоит из ветвей, расположенных в последовательных уровнях, причем высшим уровнем является "нулевой", следующий за высшим является "первый" уровень и т. д. Нулевой уровень дерева содержит единственную ветвь, называемую начальной ветвью.
В дереве преемников, построенном для автомата с входным алфавитом {Z1,...,Zp}, каждая ветвь в k-м уровне (k 0) расщепляется на p ветвей, представляющих Z1,...,Zp соответственно и являющихся ветвями в (k +1)-м уровне. Ветвь, представляющая входной символ zi , называется "ветвью zi".
Путем по дереву называется последовательность из l таких ветвей, что каждая следующая порождается предыдущей. Если k-я ветвь этого пути есть zik, то говорят, что этот путь описывает входную последовательность zi1,...,zik. Таким образом, первые (k + 1) уровней дерева преемников содержат pk путей, описывающих все возможные входные последовательности длиной k, которые могут быть построены из p входных символов.
Каждая ветвь в дереве преемников, построенном для S и A(S), связана с A-группой, с начальной ветвью связана A(S). Если ветвь b связана с A-группой G, то ветвь zi, которую порождает b, связана с zi - преемником G. A-группы, связанные с ветвями k-го уровня (k 1), могут быть определены из A-групп, связанных с ветвями (k-1)-го уровня.
Данное дерево преемников по своему протяжению бесконечно. Вводят понятие "усеченного" варианта путем формулировки ряда "правил завершения". Оконечной ветвью называют ветвь, которая не порождает каких-либо ветвей следующего уровня. Правило завершения определяет, когда ветвь становится оконечной.