Четвёртый этап минимизации

В некоторых случаях после получения отмеченной таблицы переходов автомата возможен четвертый этап минимизации. Правда этот этап не всегда приводит к уменьшению числа состояний и часто является проверочным. Алгоритм этого этапа рассмотрим на примере.

Пусть есть автомат, заданный следующей отмеченной таблицей переходов:

yg y1 y1 y1 y2 y1 y2 y2 y2
xj\ai                
x1                
x2                
X3                

Алгоритм минимизации заключается в следующем:

1. Все внутренние состояния разбиваются на группы по числу выходных сигналов. В нашем случае есть два выходных сигнала y 1 и y 2 и, следовательно, будет две группы, которые мы обозначим буквами a и b.

2. По таблице переходов автомата определяют, к каким группам принадлежат внутренние состояния, в которые автомат переходит из данного состояния под воздействием каждой буквы входного алфавита. Эти состояния запишем в виде последовательности букв под каждым из состояний автомата. Например, из состояния 0 автомат переходит в состояния 2, 3 и 1, которые принадлежат соответственно к следующим группам a, b и a. Эта последовательность букв (aba) и записывается под состоянием 0.

3. Проводят новое разделение внутренних состояний на группы, объединяя в каждой группе состояния, отмеченные одинаковой последовательностью букв. В нашем случае каждая из двух групп распадается на две группы, по числу различных последовательностей букв:

4. Пользуясь таблицей переходов автомата, вновь отмечают каждое состояние последовательностью букв. Разделение состояний на новые группы продолжают до тех пор, пока новые группы состояний появляться не будут. В нашем случае, минимизация заканчивается на втором шаге, так как все состояния, входящие в группы а и с отмечены одинаковыми последовательностями букв, а группа b и d содержат только по одному состоянию.

Все состояния, входящие в каждую из этих групп, можно заменить одним состоянием той же группы. Взяв в качестве представителей групп состояния 0, 1, 3 и 6 и обозначив их символами a 0, a 1, a 2 и a 3 соответственно, получим следующую таблицу переходов с минимальным числом внутренних состояний.

yg y1 y1 y2 y2
xj\ai a0 a1 a2 a3
x1 a0 a2 a0 a2
x2 a2 a1 a2 a1
x3 a1 a3 a1 a3

Для построения автомата Мили, воспользуемся рассмотренным ранее алгоритмом, для чего в каждую клетку >совмещенной таблицы переходов и выходов запишем значения выходного сигнала, которым отмечено, находящееся здесь состояние.

xj\ai a0 a1 a2 a3
x1 a0/y1 a2/y2 a0/y1 a2/y2
x2 a2/y2 a1/y1 a2/y2 a1/y1
x3 a1/y1 a3/y2 a1/y1 a3/y2

В полученной таблице колонки, помеченные состояниями a 0 и a 2, a 1 и a 3 идентичны, что позволяет при минимизации исключить состояния a 2 и a 3. В результате получаем таблицу переходов и выходов автомата Мили имеющего два состояния a 0 и a 1.

xj\ai a0 a1
x1 a0/y1 a0/y2
x2 a0/y2 a1/y1
x3 a1/y1 a1/y2

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: