- •Проектирование автоматов
- •Проектирование автоматов
- •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.2. Диагностический эксперимент
Диагностическим деревом называют дерево преемников, в котором ветвь b k-го уровня становится оконечной, если удовлетворяется одно из следующих условий:
A-группа, связанная с b, содержит кратное a-множество.
A-группа, связанная с b, связана с некоторой ветвью уровня, предшествующего k-му.
Имеется ветвь k-го уровня (возможно, сама ветвь b), связанная с простой A-группой.
Диагностическим путем называется любой путь в диагностическом дереве, оконечная ветвь которого связана с простой А-группой.
Диагностической последовательностью для S и A(S)={a1,a2,...,an} называется любая входная последовательность, которая, будучи приложенной к S|a1, S|a2,...S|an, дает в результате n различных выходных последовательностей (здесь как S|a1 обозначен автомат S в состоянии a1).
Входная последовательность, описанная диагностическим путем в диагностическом дереве, построенном для S и А(S), есть диагностическая последовательность для S и А (S).
Рассмотрим построение диагностического дерева на примере автомата S1. У него множество состояний S = {1,2,3,4,5,6,7,8,9}, множество входных сигналов X = {α, β}, множество выходных сигналов Y = {0,1}.
Таблицы переходов и выхода S1 представлены в табл.4.1. Множество допустимых состояний А(S) = {4,5,6,7,9}.
Таблица 4.1 |
|
||||||||||
|
YS |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
Y |
α |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
|
β |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
||
S |
α |
1 |
1 |
5 |
3 |
2 |
7 |
8 |
5 |
2 |
|
β |
4 |
5 |
1 |
4 |
6 |
3 |
4 |
9 |
8 |
Шаг 1
На нулевом уровне дерева находится множество допустимых состояний A(S).
Найдем α-преемник А-группы A(S). Для этого разбиваем каждое a-множество из A(S) на подмножества, которые вырабатывают одинаковые реакции на входную последовательность α. Состояния {4,5,6} вырабатывают выходной сигнал 1, а состояния {7,9} дают выходной сигнал 0. Таким образом, получаем А-группу G'={4,5,6}{7,9}.
Затем в a-множествах из G' заменяем каждое состояние его преемником относительно входной последовательности α. Получаем следующую A-группу {3,2,7}{8,2}. Данная А-группа является α-преемником A(S) и связана с ветвью α первого уровня.
Полученная А-группа не удовлетворяет условиям окончания ветви диагностического дерева.
0 |
{4,5,6,7,9} |
|
|
α |
β |
1 |
{3,2,7}{8,2} |
|
Шаг 2
Найдем β-преемник А-группы A(S). Для этого разбиваем каждое a-множество из A(S) на подмножества, которые вырабатывают одинаковые реакции на входную последовательность β. Состояния 4,5,7 вырабатывают выходной сигнал 1, а состояния 6,9 вырабатывают выходной сигнал 0. Таким образом получаем А-группу G' = {4,5,7}{6,9}.
Затем в a-множествах из G' заменяем каждое состояние его преемником относительно входной последовательности β. Получаем следующую A-группу {4,6,4}{3,8}. Данная А-группа является β-преемником A(S) и соединена с ветвью β первого уровня.
Полученная А-группа является кратной, поэтому ветвь, связанная с данной А-группой, является оконечной ветвью дерева.
0 |
{4,5,6,7,9} |
|
|
α |
β |
1 |
{3,2,7}{8,2} |
{4,6,4}{3,8} |
Шаг 3
Рассмотрим построение второго уровня дерева. Для этого находим α и β-преемников А-группы {3,2,7}{8,2}, расположенной на втором уровне дерева.
α-преемником является А-группа {1,8}{5}{5}{1}, β-преемником является {1,5,4}{9,5}.
0 |
{4,5,6,7,9} |
||
|
α |
β |
|
1 |
{3,2,7}{8,2} |
{4,6,4}{3,8} |
|
|
α |
β |
|
2 |
{5,1,8}{5}{1} |
{1,5,4}{9,5} |
Шаг 4
Построение третьего уровня дерева производим аналогично: для А-групп третьего уровня находим α- и β-преемников.
А-группа {4,6,4}{8}{6} содержит кратное σ-множество {4,6,4}, поэто-му ветвь дерева, связанная с данной А-группой, является конечной.
0 |
{4,5,6,7,9} |
||||
|
α |
β |
|||
1 |
{3,2,7}{8,2} |
{4,6,4}{3,8} |
|||
|
α |
β |
|
||
2 |
{5,1,8}{5}{1} |
{1,5,4}{9,5} |
|||
|
α |
β |
α |
β |
|
3 |
{2,5}{1}{5}{1} |
{6,4,9}{6}{4} |
{1}{2,3}{2}{2} |
{4,6,4}{8}{6} |
Шаг 5
Построение четвертого уровня дерева производим аналогично.
Одна из полученных А-групп {1}{2}{1}{2}{1} состоит из простых σ-множеств. Поэтому все ветви этого уровня являются оконечными. На этом построение диагностического дерева заканчивается.
0 |
{4,5,6,7,9} |
|||||||||
|
α |
β |
||||||||
1 |
{3,2,7}{8,2} |
{4,6,4}{3,8} |
||||||||
|
α |
β |
|
|||||||
2 |
{5,1,8}{5}{1} |
{1,5,4}{9,5} |
||||||||
|
α |
β |
α |
β |
||||||
3 |
{2,5}{1}{5}{1} |
{6,4,9}{6}{4} |
{1}{2,3}{2}{2} |
{4,6,4}{8}{6} |
||||||
|
α |
β |
α |
β |
α |
β |
|
|||
4 |
{1}{2} {1}{2} {1} |
{5,6} {4}{6} {4} |
{7,3} {2}{7} {3} |
{3,8} {4}{3} {4} |
{1}{1,5} {1}{1} |
{4}{5,1} {5}{5} |
Диагностическим путем данного дерева является путь α, α, α, α. Поэтому диагностической последовательностью для данного автомата S и данного множества начальных состояний A(S)={4,5,6,7,9} является последовательность (α, α, α, α).
В таблице приведены реакции состояний 4,5,6,7,9 на входную последовательность α,α,α,α
Начальное состояние |
Реакция на α,α,α,α |
4 |
1010 |
5 |
1000 |
6 |
1011 |
7 |
0110 |
9 |
0000 |
Для множества начальных состояний {4,5,6,7,9} диагностическая задача имеет решение с помощью простого безусловного эксперимента, но возможны случаи, когда диагностическая последовательность не существует.
Рассмотрим пример для автомата S1 и множества допустимых состояний {1,2,3,4,5}. По алгоритму, описанному ранее, построим диагностическое дерево.
0 |
{1,2,3,4,5} |
|
|
α |
β |
1 |
{1,1,5}{3,2} |
{4,5,1,4,6} |
Все А-группы первого уровня являются кратными, т.е. для данного S и А(S) не существует диагностической последовательности, и это означает, что не существует решения диагностической задачи для данных S и А(S) с помощью простого безусловного эксперимента.