Минимизация числа состояний автомата
Теорема. Для любого автомата существует минимальный автомат с точностью до изоморфизма.
Алгоритм Мили
Пусть задан автомат 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 } - начальное состояние.
Таблица переходов минимального автомата примет вид: