- •Проектирование автоматов
- •Проектирование автоматов
- •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
3.5. Упражнения Функциональная полнота
Определить, образует ли заданная функция функционально полный базис. Если нет, то какие функции необходимо добавить, чтобы они вместе с заданной функцией образовали базис?
f = (abc) ca ;
f = (abcd)v(ab)d ;
f = a bc va bc vabc vabc ;
f = a bc va b c v abc vabc ;
f = (ab)cv (avbvc) abc;
f = (cb)v ac(bd)vd&(⌐(ca));
f = ((ab) ac)&(cb).
Синтез схем
1. Построить схему для заданной пары функций методом факторизации в классическом базисе {2И, 2ИЛИ, НЕ} (в скобках – число элементов в схеме).
{f1 =abc v a b c v ac, f2= abc v a b c } (не более 7 эл-тов);
{f1 =ac v bс v d (b v c), f2 = a bd v ad v cd v ab d } (не более 8 эл-тов);
{f1= ab va b с v ab c), f2 = a v ab v cd v ab d } (не более 4 эл-тов);
{f1= ab va b с v ab c, f2 = a (ab) v ab c } (не более 4 эл-тов);
{f1= ab vb c v ab c, f2 = a b v a b c v a bc } (не более 5 эл-тов);
{f1 = ab va b c v a bc, f2= a b c } (не более 5 эл-тов);
{f1 = (ab va b c v a bc), f2 = a v a b v b c } (не более 5 эл-тов).
2. Построить схему для заданной функции методом декомпозиции в классическом базисе {2И, 2ИЛИ, НЕ}, используя разложение К. Шеннона
{f = (01101001000111101010010100011110)};
{f = (00111101110000100101000110101110)};
{f = (00101101000111101010010100011110)};
{f = (10011101011000100101000110101110)};
{f = (00011101111000100101000110101110)};
{f = (11011101001000100101000110101110)};
{f = (11010010001011010101101010100101)};
{f = 10100101000111101010010100011110) }).
3. Построить схему для заданной функции методом декомпозиции в монофункциональном базисе {3И-НЕ}
{f: T1 = (001, 010, 100)};
{f: T1 = (001, 010, 100, 111)};
{f: T1 = (000, 011, 100, 110)};
{f: T1 = (000, 011, 100)};
{f: T1 = (010, 100, 101)};
{f: T1 = (000, 110, 101)};
{f: T1 = (000, 011, 101)}.
4. Построить методом факторизации в классическом базисе {2И, 2ИЛИ, НЕ} плоскую схему с внешним доступом для заданной пары функций
{f1 = a b c v a b c, f2= a bc v a b c } (не более 6 эл-тов);
{f1 =a vb a, f2= (a b)c v c } (не более 6 эл-тов);
{f1 = (b a)d v d, f2= (a b)c v c} (не более 6 эл-тов);
{f1= a bc v abc v a b c, f2= abc v ac v bc} (не более 7 эл-тов);
{f1 = bc v ab v a c, f2= bc v ab } (не более 5 эл-тов);
{f1 = ab v a c, f2= (b a v b) } (не более 7 эл-тов).
4. Эксперименты над автоматами
4.1. Построение диагностических деревьев
Реакция нетривиального автомата S на определенные воздействия не предсказуема, если состояние S не известно; с другой стороны, эта реакция всегда может быть предсказана, если начальное состояние известно. Таким образом, одна из основных задач анализа конечных автоматов состоит в том, чтобы распознать состояние исследуемого автомата. После того как состояние распознано, можно определить поведение автомата при всех дальнейших условиях, и могут быть предприняты шаги по введению автомата в различные режимы работы, желательные для исследователя. Существуют две наиболее важные задачи распознавания состояния:
Задача определения начального состояния автомата (т.е. состояния, в котором находится автомат, когда он предоставляется исследователю);
Задача распознавания конечного состояния автомата (т.е. состояния, в котором находится автомат, когда завершены испытательные операции, проводимые исследователем).
Решение любой из этих задач составляет решение основной задачи приведения автомата к виду, предсказуемому для исследователя. Инструментом решения этих задач является эксперимент.
Эксперимент - это процесс приложения входных последовательно-стей к автоматам, наблюдения получаемых выходных последовательно-стей и вывода заключений, основанных на этих наблюдениях. Предполагается, что автомат, над которым проводится эксперимент, описан известными таблицами переходов и выходов, и в нём доступны входные и выходные полюса. Заключения следует делать только на основе приложенных воздействий, наблюдаемых реакций и таблиц.
Различают два типа экспериментов:
Безусловные эксперименты, когда прикладываемая входная последовательность полностью определена заранее.
Условные эксперименты, когда прикладываемая входная последовательность состоит из двух или более подпоследовательностей, причем каждая подпоследовательность (исключая первую) определена на основании реакций, вызываемых предыдущими подпоследовательностями.
Преимущество условных экспериментов состоит в том, что они могут быть относительно короче; но безусловные эксперименты легче построить, чем условные.
Один автомат называется копией другого, если оба автомата имеют одинаковые таблицы переходов и если они находятся в одном и том же состоянии перед началом эксперимента. Эксперименты могут быть классифицированы по числу требуемых для их проведения экземпляров исследуемого автомата.
Простые эксперименты, когда требуется единственный экземпляр автомата.
Кратные эксперименты, когда требуется более чем один экземпляр автомата.
Так как большинство автоматов, встречающихся в практике, имеются в единственном экземпляре, простые эксперименты предпочтительнее кратных.
Длина эксперимента принимается как общее число входных символов, прикладываемых в процессе проведения эксперимента.
Порядок эксперимента принимается как число входных подпоследовательностей (т.е. последовательностей, разделенных операциями принятия решений), из которых состоит эксперимент.
Кратность эксперимента есть число экземпляров автомата, требующихся при исследовании. Длина, порядок и кратность эксперимента могут рассматриваться как грубые меры его стоимости.