Читайте также:
|
|
Два автомата называются эквивалентными, если они реализуют один и тот же алфавитный оператор. Задача минимизации числа состояний автомата формулируется следующим образом: задан автомат A и требуется построить эквивалентный автомат , имеющий минимальное число состояний.
Рассмотрим алгоритм минимизации числа состояний абстрактного автомата Мили A = < V,W,S,l,m,s (0)>. Задача решается за N шагов. Введем определения понятий, которые используются при описании алгоритма.
Определение: состояние s 1-эквивалентно состоянию , если и только если столбец таблицы выходов для состояния s совпадает со столбцом таблицы выходов для состояния .
Определение: состояние s тождественно , т.е. s º , тогда и только тогда, когда и столбец таблицы переходов для s совпадает со столбцом таблицы переходов для .
Определение: состояние s k -эквивалентно состоянию для k ³2, если и только если состояние s (k -1)-эквивалентно состоянию и (k -1)-замещенный столбец таблицы переходов для s совпадает с (k -1)-замещенным столбцом таблицы переходов для .
Определение: (k -1)- замещенным назовем столбец таблицы переходов, в котором каждый символ s Î S заменен на наименование (k -1)-класса, которому принадлежит s.
Алгоритм минимизации:
Шаг 1. Разбить множество состояний S на два или более 1-классов по отношению 1-эквивалентности, которое обозначим .
Если разбиение на 1-классы невозможно, то автомат уже имеет минимальное число состояний и работа алгоритма заканчивается.
Если разбиение на 1-классы возможно, выявить в каждом 1-классе подклассы тождественных состояний по отношению тождественности º.
Оставить в каждом 1-классе по одному представителю каждого подкласса тождественных состояний: получим окончательные значения 1-классов .
Шаг k. Разбить каждый (k -1)-класс на два или более k -подклассов по отношению k -эквивалентности.
Если ни один (k -1)-класс не поддается разбиению, то перейти к завершающему шагу N.
Шаг N. В полученном разбиении выбрать из каждого класса по одному представителю состояний, которые и остаются в минимизированном автомате. Если в полученной таблице переходов имеются удаленные состояния, следует заменить их представителями соответствующих классов.
Пример 4. Автомата Мили задан таблицами выходов и переходов:
s 1 s 3 s 5 | |
v 1 v 2 | C 1,1 C 1,2 C 1,2 C 1,2 C 1,1 C 1,1 |
Разбиваем C 1,1 на два 2-класса: C 2,1={ s 1} и C 2,2={ s 3, s 5}. 1-замещенная таблица переходов для класса C 1,2:
s 2 s 4 s 6 s 8 | |
v 1 v 2 | C 1,1 C 1,2 C 1,2 C 1,1 C 1,2 C 1,1 C 1,1 C 1,2 |
Разбиваем на два 2-класса C 2,3={ s 2, s 8} и C 2,4={ s 4, s 6}.
Шаг 3. C 2,1 входит в окончательное разбиение, поскольку содержит только одно состояние. 2-замещенная таблица переходов для C 2,2:
s 3 s 5 | |
v 1 v 2 | C 2,4 C 2,4 C 2,2 C 2,2 |
т.е. C 2,2 не поддается разбиению. 2-замещенная таблица для C 2,3:
s 2 s 8 | |
v 1 v 2 | C 2,2 C 2,2 C 2,4 C 2,4 |
т.е. C 2,3 не поддается разбиению. 2-замещенная таблица для C 2,4:
s 4 s 6 | |
v 1 v 2 | C 2,3 C 2,3 C 2,2 C 2,2 |
Дата добавления: 2015-10-23; просмотров: 205 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Способы описания конечных автоматов | | | Тестирование абстрактных автоматов |