Алгоритм построения детерминированного автомата из недетерминированного
Пусть 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}