Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
automats.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
5.12 Mб
Скачать

1.2. Преобразование абстрактных автоматов

Минимизация числа состояний абстрактного автомата

Два автомата называются эквивалентными, если они реализуют один и тот же алфавитный оператор. Задача минимизации числа состояний автомата формулируется следующим образом: задан автомат A и требуется построить эквивалентный автомат , имеющий минимальное число состояний.

Рассмотрим алгоритм минимизации числа состояний абстрактного автомата Мили A = <V,W,S,,,s(0)>. Задача решается за N шагов. Введем определения понятий, которые используются при описании алгоритма.

Определение: состояние s 1-эквивалентно состоянию , если и только если столбец таблицы выходов для состояния s совпадает со столбцом таблицы выходов для состояния .

Определение: состояние s тождественно , т.е. s  , тогда и только тогда, когда и столбец таблицы переходов для s совпадает со столбцом таблицы переходов для .

Определение: состояние s k-эквивалентно состоянию для k2, если и только если состояние 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. Тогда таблицы переходов и выходов минимизированного автомата:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]