- •Глава 1
- •1.1. Понятие абстрактного автомата
- •1.2. Преобразование абстрактных автоматов
- •1.3. Соединение (композиция) автоматов
- •1.4. Тестирование абстрактных автоматов
- •2. Начальные языки описания абстрактных автоматов
- •2.1. Язык Граф-Схем Алгоритмов
- •2.2. Язык регулярных выражений
- •2.3. Формальные грамматики и языки
- •2.4. Автоматы и грамматики [ 7 ]
- •2.5. Машина тьюринга [ 5, 8 ]
- •3. Структурный синтез автоматов и кодирование информации
- •3. 3. ПредставЛение символьной информации
- •4.1 Машинное изображение чисел
- •4.2. Выполнение арифметических и логических операций
- •4.3. Микропрограммирование
- •5 Математический аппарат синтеза комбинационных автоматов
- •5.1 Элементная база построения комбинационных автоматов
- •5.2. Переключательные функции (логика высказываний)
- •7. Структурный синтез автоматов с памятью, асинхронные автоматы и сети петри
- •7.1. Канонический метод синтеза автоматов с памятью
- •7.3 Моделирование дискретных асинхронных процессов и сети Петри
- •Свойства сетей Петри
1.2. Преобразование абстрактных автоматов
Минимизация числа состояний абстрактного автомата
Два
автомата называются эквивалентными,
если они реализуют один и тот же алфавитный
оператор. Задача минимизации числа
состояний автомата формулируется
следующим образом: задан автомат A
и
требуется построить эквивалентный
автомат
,
имеющий минимальное число состояний.
Рассмотрим алгоритм минимизации числа состояний абстрактного автомата Мили A = <V,W,S,,,s(0)>. Задача решается за N шагов. Введем определения понятий, которые используются при описании алгоритма.
Определение:
состояние s
1-эквивалентно состоянию
,
если и только если столбец таблицы
выходов для состояния s
совпадает со столбцом таблицы выходов
для состояния
.
Определение:
состояние s
тождественно
,
т.е. s
,
тогда и только тогда, когда
и столбец таблицы переходов для s
совпадает со столбцом таблицы переходов
для
.
Определение: состояние s k-эквивалентно состоянию для k2, если и только если состояние s (k-1)-эквивалентно состоянию и (k-1)-замещенный столбец таблицы переходов для s совпадает с (k-1)-замещенным столбцом таблицы переходов для .
Определение: (k-1)-замещенным назовем столбец таблицы переходов, в котором каждый символ sS заменен на наименование (k-1)-класса, которому принадлежит s.
Алгоритм минимизации:
Шаг
1. Разбить множество состояний S
на два или более 1-классов
по отношению 1-эквивалентности, которое
обозначим
.
Если разбиение на 1-классы невозможно, то автомат уже имеет минимальное число состояний и работа алгоритма заканчивается.
Если разбиение на 1-классы возможно, выявить в каждом 1-классе подклассы тождественных состояний по отношению тождественности .
Оставить
в каждом 1-классе
по одному представителю каждого подкласса
тождественных состояний: получим
окончательные значения 1-классов
.
Шаг
k.
Разбить каждый (k-1)-класс
на два или более k-подклассов
по отношению k-эквивалентности.
Если ни один (k-1)-класс не поддается разбиению, то перейти к завершающему шагу N.
Шаг
N.
В полученном разбиении выбрать из
каждого класса
по
одному представителю состояний, которые
и остаются в минимизированном автомате.
Если в полученной таблице переходов
имеются удаленные состояния, следует
заменить их представителями соответствующих
классов.
Пример 4. Автомата Мили задан таблицами выходов и переходов:
Шаг
1. Предварительное 1-разбиение есть
,
где
и
.
Но s5s7,
потому отбрасываем из
состояние s7
и получаем окончательное 1-разбиение
{C1,1,C1,2},
где C1,1={s1,s3,s5}
и C1,2={s2,s4,s6,s8}.
В столбце для s2
заменяем s7
на s5:
Ш
аг
2. 1-замещенная таблица переходов для
класса C1,1
есть
|
s1 s3 s5 |
v1 v2 |
C1,1 C1,2 C1,2 C1,2 C1,1 C1,1 |
Разбиваем C1,1 на два 2-класса: C2,1={s1} и C2,2={s3,s5}. 1-замещенная таблица переходов для класса C1,2:
|
s2 s4 s6 s8 |
v1 v2 |
C1,1 C1,2 C1,2 C1,1 C1,2 C1,1 C1,1 C1,2
|
Разбиваем
на два 2-класса C2,3={s2,s8}
и C2,4={s4,s6}.
Шаг 3. C2,1 входит в окончательное разбиение, поскольку содержит только одно состояние. 2-замещенная таблица переходов для C2,2:
|
s3 s5 |
v1 v2 |
C2,4 C2,4 C2,2 C2,2 |
т.е. C2,2 не поддается разбиению. 2-замещенная таблица для C2,3:
|
s2 s8 |
v1 v2 |
C2,2 C2,2 C2,4 C2,4 |
т.е. C2,3 не поддается разбиению. 2-замещенная таблица для C2,4:
|
s4 s6 |
v1 v2 |
C2,3 C2,3 C2,2 C2,2 |
т
.е.
C2,4
не поддается разбиению. Итак, поскольку
дальнейшее разбиение невозможно,
получено разбиение {
C2,1,
C2,2,
C2,3,
C2,4}.
Выбираем в каждом классе по одному
представителю, например: s1
C2,1,
s2
C2,2,
s3
C2,3,
s4
C2,4.
Тогда
таблицы переходов и выходов минимизированного
автомата:
