Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка к курсовой.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
394.75 Кб
Скачать

4. Преобразование недетерминированного конечного автомата в детерминированный конечный автомат

Детерминированный конечный автомат — это пятерка

А= (Q, V, М, S, Z), где

Q — алфавит состояний;

V — входной алфавит;

М — функция переходов(Q*VР(Q));

S — начальное состояние;

Z — множество заключительных состояний;

SZ.

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

В данном случае такими состояниями являются q1,q3 и q7, в которые переходит автомат из состояния qo под воздействием х7.

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

Здесь три альтернативных состояния X, Y и Z в недетерминированном конечном автомате представляются одним [X Y Z] в детерминированном, которое представляет первые три состояния. Следовательно, если недетерминированный конечный автомат представляют пятеркой

А= (Q, VT, M, S, Z),

то эквивалентный детерминированный конечный автомат имеет вид

А= (Q, VT, М', S, Z).

Алфавит состояний Q' определяется через подмножество алфавита Q.

Функция переходов М определяется как

M([q1,q2,…,qk],T)=[R1,R2,…,Rt],

если в недетерминированном конечном автомате

M({q1, q2,..., qk}, T)={R1, R2,..., Rt }.

Начальное состояние S' =[S1, S2,..., Si]=q0, еcли S ={S1, S2,..., Si}.

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

Построенный по этим правилам эквивалентный детерминированный конечный автомат допускает одни и те же входные цепочки, что и исходный недетерминированный.

Рис. 2

В рассматриваемом примере недетерминированность автомата локально проявляется в том, что из некоторого его состояния qi исходят несколько дуг, помеченных одним и тем же символом хj (рис.2).

Недетерминированность в этом случае может быть легко устранена «склеиванием» двух состояний q1 и qk в одно q1,k . При этом q1, k инцидентны все исходящие дуги хг, хр, xt, являющиеся исходящими дугами состояний q1 и qk (рис. 3).

Рис.3

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

  1. Построить начальное состояние S' и отметить им первую строку таблицы переходов.

  2. Определить все состояния Q', которые могут быть достигнуты из данного состояния.

  3. Если во вновь определенных состояниях не встречаются такие, которые отмечали ранее строки таблицы, то для них надо выделить новые строки и повторить п.2.

4. В таблице переходов выделить заключительные состояния Z'.

В результате применения этого алгоритма от автомата, орграф которого представлен на рис. 1, можно перейти к эквивалентному детерминированному автомату, таблица переходов которого приведена в табл. 5, а орграф — на рис. 4.

Таблица 5

Хo

X1

X2

X3

X4

X5

X6

X7

q0

q10

q1 q3 q7

q1,3,7

q2

q19

q9

q4

q2

q5

q4

q6

q5

q19

q8

q6

q19

q8

q8

qo

q19

q9

qo

q19

q10

q17

q14

q11

q11

q12

q12

q13

q13

q19

q14

q15

q15

q16

q16

q19

q17

q18

q18

q19

q19

Рис. 4.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]