Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекц_ИТ_1.doc
Скачиваний:
124
Добавлен:
29.03.2015
Размер:
1.34 Mб
Скачать

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

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

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

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

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

( q’,  ) = ( q’’,  ).

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

( q’,  )  cij, ( q’’, )  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. Рабочие состояния каждой группы проверяются на эквивалентность.

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

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

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

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 } - начальное состояние.

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

x0

x1

x2

x3

x4

x5

x6

x7

r0

r1

r1

r12

r11

r2

r11

r3

r4

r5

r4

r0

r5

r0

r6

r7

r9

r7

r8

r8

r2

r9

r10

r10

r2

r11

r11

r12

r0

r6

r3