- •Проектирование автоматов
- •Проектирование автоматов
- •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.2. Минимизация автоматов
Если состояния автомата эквивалентны, то они неразличимы между собой по реакции на любое входное слово. Автомат называется минимальным, если в нём нет эквивалентных состояний.
В предыдущем разделе введено понятие эквивалентности автоматов, позволяющее дать второе определение минимального автомата. Для автомата S минимальным автоматом называют автомат, имеющий минимальное число состояний среди множества автоматов, эквивалентных ему.
Задачу нахождения автомата, минимального заданному, называют задачей минимизации автомата.
1.2.1. Минимизация полностью определенного автомата
Назовём состояния am и aS k-эквивалентными, если для них реакция на любое входное слово длиной не более k совпадают.
Тогда 1-эквивалентными будут те состояния, у которых реакция на любой символ входного алфавита одинакова, т.е. если у них одинаковые столбцы в матрице выходов.
Заменим в матрице переходов автомата имя состояния на имя блока в 1-эквивалентном разбиении. Сравним полученные столбцы для состояний в каждом блоке 1-эквивалентного разбиения. Проведём разбиение в каждом таком блоке по условию одинаковости столбцов. Получим разбиение на 2-эквивалентные состояния. Продолжим эту процедуру до тех пор, пока блоки к-эквивалентного разбиения не совпадут с блоками (к+1)-эквивалентного разбиения. В этом случае можно показать, что полученное разбиение будет разбиением на эквивалентные классы.
Пример. Пусть автомат описан табл.1.5.
Таблица 1.5 |
||||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
z1 |
3/w1 |
6/w1 |
4/w1 |
1/w1 |
6/w1 |
3/w1 |
4/w1 |
10/w1 |
7/w1 |
9/w1 |
z2 |
2/w1 |
5/w2 |
7/w1 |
7/w2 |
3/w2 |
9/w2 |
3/w1 |
3/w2 |
6/w2 |
7/w2 |
Разбиение на 1-эквивалентные блоки имеет вид: b1 = (1, 3, 7), b2 = (2, 4, 5, 6, 8, 9, 10). По табл 1.5 построим переходы в блоки (b1, b2).
Таблица 1.6 |
||||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
z1 |
b1 |
b2 |
b2 |
b1 |
b2 |
b1 |
b2 |
b2 |
b1 |
b2 |
z2 |
b2 |
b2 |
b1 |
b1 |
b1 |
b2 |
b1 |
b1 |
b2 |
b1 |
Разбиение на 2-эквивалентные состояния (по одинаковости столбцов в табл. 1.7) будет иметь вид: с1 = (1), с2 = (3, 7), с3 = (2), с4 = (4), с5 = (5, 8,10), с6 = (6,9). Построим переходы в блоки (с1-с6).
Таблица 1.7 |
||||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
z1 |
с2 |
с6 |
с4 |
с1 |
с6 |
с2 |
с4 |
с5 |
с2 |
с6 |
z2 |
с3 |
с5 |
с2 |
с2 |
с2 |
с6 |
с2 |
с2 |
с6 |
с2 |
Разбиение на 3-эквивалентные состояния (см. табл.1.7) имеет вид: d1 = (1), d2 = (3,7), d3 = (2), d4 = (4), d5 = (5, 10), d6 = (8), d7 = (6, 9).
Переходы в блоки (d1-d7) представлены в табл. 1.8.
Таблица 1.8 |
||||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
z1 |
d2 |
d7 |
d4 |
d1 |
d7 |
d2 |
d4 |
d5 |
d2 |
d7 |
z2 |
d3 |
d5 |
d2 |
d2 |
d2 |
d7 |
d2 |
d2 |
d7 |
d2 |
Разбиение на 4-эквивалентные состояния имеют вид: e1 = (1), e2 = (3,7), e3 = (2), e4 = (4), e5 = (5, 10), e6 = (8), e7 = (6, 9) и совпадают с 3-эквивалентными разбиениями. Значит минимальный автомат имеет 7 состояний, его таблица переходов-выходов представлена в табл 1.9.
Таблица 1.9 |
|||||||
|
d1 |
d2 |
d3 |
d4 |
d5 |
d6 |
d7 |
z1 |
d2/w1 |
d4/w1 |
d7/w1 |
d1/w1 |
d7/w1 |
d5/w1 |
d2/w1 |
z2 |
d3/w1 |
d2/w1 |
d5/w2 |
d2/w2 |
d2/w2 |
d2/w2 |
d7/w2 |