
Построение графа автомата Мура.
Исходная таблица автомата Мура на таблице 4.
Таблица 4
|
Q0/x |
Q1/x |
Q2/z |
Q3/z |
Q4/z |
Q5/y |
Q6/z |
Q7/x |
Q8/y |
Q9/y |
Q10/y |
Q11/y |
A |
Q9 |
Q11 |
Q4 |
Q6 |
Q2 |
Q6 |
Q2 |
Q9 |
Q6 |
Q0 |
Q4 |
Q1 |
B |
Q4 |
Q6 |
Q4 |
Q10 |
Q8 |
Q10 |
Q5 |
Q3 |
Q5 |
Q7 |
Q8 |
Q7 |
Строится граф автомата Мура в программе jFlap на рисунке 7.
Рисунок 7 – Граф автомата Мура
На вход автомат получает последовательность abbbaaaa, выходная последовательность автомата в этом случае – yxzyzzz на рисунке 8.
Рисунок 8 – Первый тест автомата Мура
На вход автомат получает последовательность abbaaaaa, выходная последовательность автомата в этом случае – yxzzzzzz на рисунке 9.
Рисунок 9 – Второй тест автомата Мура
Построение минимизированного автомата Мура.
Исходная таблица автомата Мура на таблице 5.
Таблица 5
|
Q0/x |
Q1/x |
Q2/z |
Q3/z |
Q4/z |
Q5/y |
Q6/z |
Q7/x |
Q8/y |
Q9/y |
Q10/y |
Q11/y |
A |
Q9 |
Q11 |
Q4 |
Q6 |
Q2 |
Q6 |
Q2 |
Q9 |
Q6 |
Q0 |
Q4 |
Q1 |
B |
Q4 |
Q6 |
Q4 |
Q10 |
Q8 |
Q10 |
Q5 |
Q3 |
Q5 |
Q7 |
Q8 |
Q7 |
Теперь состояния делятся на группы по выходу – x, y, z:
A0 = {q0, q1, q7}
A1 = {q2, q3, q4, q6}
A2 = {q5, q8, q9, q10, q11}
Исходная таблица делится на группы:
Таблица 6
|
A0 |
A1 |
A2 |
||||||||||
|
Q0/x |
Q1/x |
Q7/x |
Q2/z |
Q3/z |
Q4/z |
Q6/z |
Q5/y |
Q8/y |
Q9/y |
Q10/y |
Q11/y |
|
A |
A2 |
A2 |
A2 |
A1 |
A1 |
A1 |
A1 |
A1 |
A1 |
A0 |
A1 |
A0 |
|
B |
A1 |
A1 |
A1 |
A1 |
A2 |
A2 |
A2 |
A2 |
A2 |
A0 |
A2 |
A0 |
Делим группы состояний дальше.
B0 = {q0, q1, q7}
B1 = {q2}
B2 = {q3, q4, q6}
B3 = {q5, q8, q10}
B4 = {q9, q11}
Таблица 7
|
B0 |
B1 |
B2 |
B3 |
B4 |
||||||||
|
Q0/x |
Q1/x |
Q7/x |
Q2/z |
Q3/z |
Q4/z |
Q6/z |
Q5/y |
Q8/y |
Q10/y |
Q9/y |
Q11/y |
|
A |
B4 |
B4 |
B4 |
B2 |
B2 |
B1 |
B1 |
B2 |
B2 |
B2 |
B0 |
B0 |
|
B |
B2 |
B2 |
B2 |
B2 |
B3 |
B3 |
B3 |
B3 |
B3 |
B3 |
B0 |
B0 |
Делим группы состояний дальше.
C0 = {q0, q1, q7}
C1 = {q2}
C2 = {q3}
C3 = {q4, q6}
C4 = {q5, q8, q10}
C5 = {q9, q11}
Таблица 8
|
С0 |
С1 |
С2 |
С3 |
С4 |
С5 |
|||||||
|
Q0/x |
Q1/x |
Q7/x |
Q2/z |
Q3/z |
Q4/z |
Q6/z |
Q5/y |
Q8/y |
Q10/y |
Q9/y |
Q11/y |
|
A |
С5 |
С5 |
С5 |
С4 |
С3 |
С1 |
С1 |
С3 |
С3 |
С3 |
С0 |
С0 |
|
B |
С3 |
С3 |
С2 |
С4 |
С4 |
С4 |
С4 |
С4 |
С4 |
С4 |
С0 |
С0 |
Делим группы состояний дальше.
C0 = {q0, q1}
С1 = {q7}
C2 = {q2}
C3 = {q3}
C4 = {q4, q6}
C5 = {q5, q8, q10}
C6 = {q9, q11}
Таблица 9
|
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
||||||
|
Q0/x |
Q1/x |
Q7/x |
Q2/z |
Q3/z |
Q4/z |
Q6/z |
Q5/y |
Q8/y |
Q10/y |
Q9/y |
Q11/y |
|
A |
D6 |
D6 |
D6 |
D4 |
D4 |
D2 |
D2 |
D4 |
D4 |
D4 |
D0 |
D0 |
|
B |
D4 |
D4 |
D3 |
D4 |
D5 |
D5 |
D5 |
D5 |
D5 |
D5 |
D1 |
D1 |
Все, не делится, так как в группах у состояний одинаковые входы и выходы по группе.
На основании этой таблицы строится минимизированный автомат Мура.
Таблица 10
|
Q0/x |
Q1/x |
Q2/z |
Q3/z |
Q4/z |
Q5/y |
Q6/y |
A |
Q6 |
Q6 |
Q4 |
Q4 |
Q2 |
Q4 |
Q0 |
b |
Q4 |
Q3 |
Q4 |
Q5 |
Q5 |
Q5 |
Q1 |
На основании таблицы автоматов строится граф
Рисунок 10 – Граф минимизированного автомата Мура
На вход автомат получает последовательность abbbaaaa, выходная последовательность автомата в этом случае – yxzyzzz на рисунке 11.
Рисунок 11 – Первый тест минимизированного автомата Мура
На вход автомат получает последовательность abbaaaaa, выходная последовательность автомата в этом случае – yxzzzzzz на рисунке 12.
Рисунок 12 – Второй тест минимизированного автомата Мура
Вывод:
Сравнив все пройденные тесты, можно сделать вывод, что графы автоматов и их минимизированные версии построены верно.