Минимизация числа состояний автомата

Теорема. Для любого автомата существует минимальный автомат с точностью до изоморфизма.

Алгоритм Мили

Пусть задан автомат S с n состояниями. На каждом шаге алгоритма будем строить некоторое разбиение множества состояний Q на классы cij, где i - номер шага, j - номер класса. Разбиение на i + 1 шаге получается разбиением классов, полученных на i шаге.

 

1. Два состояния q’ и q’’ относятся в класс c1j, если при " a Î A для функций выхода справедливо равенство

l( q’, a ) = l( q’’, a ).

2.q’ и q’’ из класса cij относятся к классу ci+1,j , если для " a Î A найдется такое j, для которого справедливы следующие отношения принадлежности

d( q’, a ) Î cij, d( q’’, a) Î cij.

 

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

 

Пример. Для автомата, заданного таблицей переходов вида:

  a1 a2 a3
q1 2,0 4,1 4,1
q2 1,1 1,0 5,0
q3 1,1 6,0 5,0
q4 8,0 1,1 1,1
q5 6,1 4,1 3,0
q6 8,0 9,1 6,1
q7 6,1 1,1 3,0
q8 4,1 4,0 7,0
q9 7,0 9,1 7,1

 

построить разбиение состояний на классы эквивалентности.

 

Решение. Построим классы c1j в соответствии с первым шагом алгоритма:

c11 = { q1, q4, q6, q9 } , c12 = { q2, q3, q8 }, c13={ q5, q7 }.

 

Следующие классы будем выделять в соответствии с пунктом 2 алгоритма:

 

c21 = { q1, q6, q4}, c22 = { q9 }, c23 = { q2, q3, q8}, c24 = { q5, q7 };

c31 = { q1, q4 }, c32 = { q6 }, c33 = { q9 }, c34 = { q2, q3, q8},

с35 = { q5, q7 }; c41 = { q1, q4 }, c42 = { q6 }, c43 = { q9 },

c44 = { q2, q8 }, c45 = { q3 }, c46 = { q5, q7 }.

Из эквивалентных состояний, принадлежащих одному классу, оставляем только одно состояние. В итоге, множество состояний минимизированного автомата представится множеством {q1, q6, q9, q2,q3, q5 }. Следовательно, новая таблица переходов будет иметь на три строки меньше, поскольку на три состояния уменьшилось общее число состояний заданного автомата. Таблица переходов минимального автомата будет следующей:

 

  a1 a2 a3
q1 2,0 1,1 1,1
q2 1,1 1,0 5,0
q3 1,1 6,0 5,0
q5 6,1 1,1 3,0
q6 2,0 9,1 6,1
q9 5,0 9,1 5,1

 

Алгоритм минимизации автомата по методике Мура

1.В таблице переходов отыскиваются строки, у которых есть рабочие

состояния в одинаковых столбцах. Рабочим состоянием считается

состояние отличное от состояния ошибки. Состояния, которым

соответствуют такие строки, заносятся в группы.

2.Рабочие состояния каждой группы проверяются на эквивалентность.

3. Если среди рабочих состояний групп установлена эквивалентность, то состояния, образующие группу, считаются

эквивалентными.

Пример. Для автомата, заданного таблицей переходов вида:

 

  x0 x1 x2 x3 x4 x5 x6 x7
q0 q7           q10 q1,3
q1,3 q2     q4        
q2   q5            
q4               q6
q5               q8,19
q6               q9,19
q7               q9,19
q8,19         q0 q19    
q9,19         q0 q19    
q10           q11   q14,17
q11   q12            
q12           q13    
q13             q19  
q14,17   q15,18            
q15,18           q16 q19  
q16             q19  
q19                

 

построить минимальный автомат, используя методику Мура.

 

Решение. Построим группы состояний, подозреваемых на эквивалентность, в соответствии с алгоритмом. Ими будут:

 

[ q4; q5; q6; q7 ] ; [ q8, 19; q 9, 19 ]; [ q13; q16 ]; [ q2; q11; q14,17 ].

 

Состояния внутри выделенных групп необходимо проверить на эквивалентность. После проверки и удаления из групп состояний, не удовлетворяющих условию эквивалентности, классы эквивалентных состояний примут вид:

 

[ q5; q6; q7 ]; [ q8, 19; q 9, 19 ]; [ q13; q16 ].

 

Введем новые обозначения состояний автомата:

 

r0 = { q5, q6, q7}; r6 = { q10 }; r7 ={ q11 };

r1 = { q9,19, q8,19 }; r8 ={ q12 };

r2 = { q13, q16 }; r9 = { q14,17 };

r3 = { q1,3 }; r10 = { q15,18 };

r4 = { q2 }; r11 = { q19 } - заключительное состояние;

r5 = { q4 }; r12 = { q0 } - начальное состояние.

 

 

Таблица переходов минимального автомата примет вид: