- •Проектирование автоматов
- •Проектирование автоматов
- •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. Синтез схем
3.1. Определения
Пусть задано множество элементов, каждый из которых имеет единственный выходной полюс и характеризуется числом входных полюсов и реализуемой этим элементом функцией от значений на входных полюсах. Значения переменных на входных и выходных полюсах элементов принимаются из множества {0,1}. Будем считать, что каждый элемент из определяет тип элемента и что в наличии есть неограниченное множество элементов данного типа.
Схемой назовём композицию элементов из , полученную отожде-ствлением (связыванием) выходов некоторых элементов с входами других элементов, при которой выполняются следующие свойства:
С каждым входом связано не более одного выхода.
В схеме не образуются контуры.
С каждым выходом может быть связано более одного входа.
Назовём эти свойства свойством корректности связей схемы.
Все несвязанные входы элементов схемы назовём её входами, несвязанные выходы элементов и некоторые выделенные связанные выходы элементов схемы назовём выходами схемы.
Пример схемы приведён на рис. 3.1.
З десь x, y и z – входы схемы, g и f – её выходы, элементы 1 и 2 реализуют функцию конъюнкции, элемент 3 – функцию инверсии.
Можно показать, что если выполняются условия корректности, то на выходах схемы реализуются функции, равные суперпозиции функций элементов схемы.
Для схемы 1: f=(xy)Z, g=xy .
Множество назовём базисом схемы.
Задачей синтеза схем назовём задачу построения в заданном базисе для заданных функций F={f1, f2,…,fm} схемы, реализующей эти функции.
Будем оценивать решение числом элементов в схеме.
Одно из важных требований к результирующей схеме состоит в том, что она должна иметь минимальное число элементов. Прежде чем рассматривать решение задачи синтеза, ответим на вопрос: каким требованиям должен отвечать базис, чтобы в нём можно было построить схему для любых заданных функций?
3.2. Функциональная полнота базиса
3.2.1. Классы функций
Пусть задано некоторое множество функций M. Множество функций, которое может быть реализовано схемами в базисе M, называют классом, порожденным M, а само множество M называется порождающим множеством этого класса.
Рассмотрим некоторые классы функций.
Класс всех функций обозначим классом C. Порождающее множество этого класса называют функционально полным. В этих терминах поставленный выше вопрос можно сформулировать как вопрос о свойствах функционально полного множества элементов.
3.2.2. Монотонные функции
Определение. Два набора значений двоичных переменных =<1,2,…,n> и =<1,2,…,n> назовём сравнимыми и будем писать , если i i=1,…,n I i. Здесь понимается в обычном виде: 1>0.
Е сли и , наборы считаются несравнимыми.
Пример. Наборы =<010111> и =<010101> сравнимы и . Набор и =<100111> несравнимы.
Определение. Функция f называется монотонной, если для любых двух наборов значений входных переменных и из того, что , следует, что f()f().
Свойства монотонных функций.
Нулевой набор значений сравним с любым набором и явля-ется меньшим любого из них. Значит, если монотонная функ-ция равна единице на этом наборе, то она равна единице и на любом наборе, т.е. равна константе. Точно так же, если на единичном наборе значений монотонная функция равна нулю, то она не может быть единицей ни на каком наборе, так как единичный набор больше всякого другого набора.
Пусть функция на наборе , отличном от единичного, равна 1, и пусть значение I-й компоненты в нём равно 0. Это значит, что на наборе, который отличается только тем, что i-я пере-менная в нём равна 1, функция тоже примет единичное зна-чение. Это означает, что конъюнкции в ДНФ, соответствую-щие этим наборам, можно склеить по переменной xi. Точно так же, для набора со значением переменной 0 (т.е. с возмож-ным значением в конъюнкции переменной с инверсией) найдётся набор со значением переменной 1, что приведёт к склеиванию по этой переменной. Значит, в минимальной ДНФ монотонной функции нет переменных в инверсной форме.
Из этих свойств можно вывести, что:
суперпозиция монотонных функций будет функцией монотонной, т.е. множество монотонных функций образует класс монотонных функций, обозначаемый как M;
базисом класса М будут обе константы и пара функций – конъюнкция и дизъюнкция, т.е. множество {xy, xy, 0,1}.
Задача. Докажите, что константы должны присутствовать в базисе.