Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик (Отчет).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.49 Mб
Скачать

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

Минимизация автомата, эквивалентного полученному в предыдущем разделе полностью определенному автомату, проводится в два этапа. Сначала множество состояний автомата разбивается на классы эквивалентности, а затем строится минимальный (приведенный) автомат.

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

Построим треугольную таблицу (табл.6), клетки которой соответствуют всем парам рабочих состояний (qi,qj) ij, т.е. состояний, отличных от q20 «Ошибка». Если для рабочих состояний qi и qj в табл.5 существует входной символ х1, при котором переход из qi осуществляется в одно из рабочих состояний, а из qj в состояние ошибки, то состояние qi и qj не эквивалентны, и соответствующая им клетка помечается крестом. То есть, если какие - либо две строчки табл.5 содержат разное число рабочих состояний или отличаются позициями, занимаемыми рабочими состояниями, то обозначающие эти строки состояния не эквивалентны. В противном случае в клетку табл.6 с координатами qi, qj запишем каждую пару состояний (qs,qt), ts, в которые автомат может перейти из qi и qj при подаче одного и того же входного символа (количество этих пар равно числу столбцов с рабочими состояниями в строке qi и qj табл.5).

В рассматриваемом случае в табл.5 автомат из состояния qo переходит в рабочие состояния при входных символах х3, х5, х7, при остальных входных символах, qo переходит в состояние q20 «Ошибка». Других состояний, которые оказываются в рабочих состояниях при том же наборе входных символов (х3, х5, х7) нет, поэтому в столбце qo табл.6 все клетки следует вычеркнуть. То же можно сделать со столбцами q1,3, q2. Из состояния q4 автомат переходит в состояния q6 при входном символе х1, и при этих же символах в рабочие состояния автомат переходит из состояний q13, q16, q18, поэтому три клетки в столбце q4 не должны вычеркиваться. Проделав эту операцию со всеми столбцами, теперь необходимо определить явность эквивалентности пар состояний. Для этого берем не вычеркнутые клетки в табл.5, например {q4 и q13} и проверяем на рис.4 эти два состояния. Если оба состояния переходят при одинаковом xi, в одно и то же состояние qi, то пары состояний явно эквиваленты. В нашем примере, пары {q4 и q13} переходят при одинаковом x1, но в разные состояния (q4 в q6, а q13 в q19), следовательно пара состояний не эквивалента и клетку необходимо вычеркнуть. А пара состояний {q13 и q16} будет эквивалента, т.к. переход осуществляется по x1 в состояние q19 как из q13, так и из q16.

Таблица 6

0

1,3

X

2

X

X

4

X

X

X

5

X

X

X

X

6

X

X

X

X

7

X

X

X

X

8

X

X

X

X

X

X

X

9

X

X

X

X

X

X

X

10

X

X

X

X

X

X

X

X

X

11,17

X

X

X

X

X

X

X

X

X

X

12

X

X

X

X

X

X

X

X

X

X

X

13

X

X

X

+

X

X

X

X

X

X

X

X

14

X

X

X

X

X

X

X

X

X

X

X

X

X

15

X

X

X

X

X

X

X

X

X

X

X

X

X

16

X

X

X

+

X

X

X

X

X

X

X

X

X

X

18

X

X

X

+

X

X

X

X

X

X

X

X

X

X

19

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

X

0

1,3

2

4

5

6

7

8

9

10

11,17

12

13

14

15

16

18

19

Не вычеркнутые клетки результирующей таблицы соответствуют всем парам эквивалентных состояний.

Класс эквивалентности образуется состояниями, которые попарно эквивалентны. В данном случае образуются следующие пары эквивалентных состояний: {q5 и q6} {q5 и q7} {q6 и q7} {q8 и q9} {q12 и q15} {q13 и q16} {q13 и q18} {q16 и q18}.

Всего восемь пар попарно эквивалентных состояний. Эти состояния образуют пять классов эквивалентности: {q5, q6, q7}, {q8, q9}, {q12 , q15}, {q13, q16 , q18}.

Каждое состояние, не вошедшее ни в один класс эквивалентности, эквивалентно лишь само себе и само образует этот класс. В рассматриваемом примере к нерасчлененным пяти классам необходимо добавить еще семь классов эквивалентности: q0; q1,3; q2; q4; q11,17; q14; q19.

Состояние минимального автомата обозначим буквами r с индексами

r0 = {q0}; r1={q1,3}; r2={q2}; r3={q4}; r4={q5, q6, q7}; r5={q8, q9}; r6={q10}; r7={q11,17}; r8={q12, q15}; r9={q13, q16, q18}; r10={q14}; r11={q19}.

Таким образом, минимальный автомат содержит 12 состояний, не считая состояния r12={q20} "Ошибка". Орграф этого автомата приводится на рис.5 (без указания состояния «Ошибка»), а таблица переходов в табл.7.

Рис.5

Проанализировав полученный граф, можно выявить девять цепочек переходов по графу: 51400; 5145; 56100; 5615; 700; 75; 3501; 36751; 37751; и три цепочки: 51403; 56103l; 703; при которых происходит возвращение к начальному состоянию автомата S = r0.

В этой таблице, также как и в табл. 5, незаполненные клетки соответ-ствуют состоянию «Ошибка».

Таблица 7

X0

X1

X2

X3

X4

X5

X6

X7

r0

r6

r1

r4

r1

r2

r3

r2

r4

r3

r4

r4

r5

r11

r5

r11

r0

r6

r7

r10

r7

r9

r8

r8

r9

r9

r11

r10

r8

r11