double arrow

Алгоритм построения детерминированного автомата из недетерминированного

Пусть A= (Z, X, t, z0, F) - недетерминированный автомат.

Построим А'= (Z', X', t', z0', F') следующим образом:

1) X'= X

2) Z'= P(Z), где P(Z) - множество некоторых подмножеств множества Z.

3) z0'= z0

4) F'= {"S Z| F S 0}

5) t'(S, a)= S', при этом, для "S Z, S' - это некоторое подмножество состояний P, таких, что S'={P| t(P,a)}, t(Z,a) содержит p для некоторого z S.

Построим детерминированный автомат для примера из предыдущего пункта. Множество всех подмножеств множества Z:

z0 z1 z2 zF

z0z1 z0z2 z0zF z1z2 z1zF z2zF

z0z1z2 z0z1zF z0z2zF z1z2zF

z0z1z2zF

Построим функцию перехода для новых состояний автомата:

             
z0 (A) z1 (B) z2 (C)   A B C
z1 (B) z1 zF (D) z1 (B) Þ B D B
z2 (C) z2 (C) z2 zF (E)   C C E
z1 zF (D) z1 zF (D) z1 (B)   D D B
z2 zF (E) z2 (C) z2 zF (E)   E C E

Множество заключительных состояний F'= {D, E}

 
 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: