
35
Соответственно существуют правила q
i
→ a
i +1
q
i +1
(i = 0, 1,..., n –1) и правило
q
n –1
→ a
n
. Очевидно, что они обязаны своим существованием тому, что δ(q
i
,
a
i +1
) = q
i +1
(i = 0, 1,..., n –1) и q
n
∈F. А тогда существует последовательность
конфигураций fa M вида
(q
0
, a
1
a
2
...a
n
) (q
1
, a
2
... a
n
) ... (q
n –1
, a
n
) (q
n
, ε),
причем q
n
∈F. Это значит, что x ∈T(M).
Если q
0
∉F, то ε∉T(M) и L(G)=T(M ). Если q
0
∈F, то ε∈T(M). В этом слу-
чае L(G) = T(M ) \ {ε}. По теореме 2.1 мы можем получить из G новую грамма-
тику G
1
типа 3, такую, что L(G
1
) = L(G) ∪ {ε} = T(M). Что и требовалось дока-
зать.
Пример 3.4. Рассмотрим грамматику типа 3 G =({S, B}, {0, 1}, P, S), где
P = {S → 0B, B → 0B, B → 1S, B → 0}. Мы можем построить ndfa M =
({S, B, A}, {0, 1}, δ, S, {A}), где δ определяется следующим образом:
1) δ(S,0) = {B},
2) δ(S,1) = ∅,
3) δ(B,0) = {B, A}, 4) δ(B,1) = {S},
5) δ(A,0) = ∅, 6) δ(A,1) = ∅.
По теореме 3.5 T(M ) = L(G), в чем легко убедиться непосредственно.
Теперь мы используем построения теоремы 3.4, чтобы найти dfa M
1
, эквива-
лентный автомату M.
Положим M
1
= (Q
1
, {0, 1}, δ
1
, [S], F
1
), где Q
1
= {ϕ, [S], [B], [A], [S, B], [S, A], [B,
A], [S,B, A]}, F
1
= {[A], [S, A], [B, A], [S, B, A]}; δ
1
определяется следующим обра-
зом:
1) δ
1
([S], 0) = [B],
2) δ
1
([S], 1) = ϕ,
3) δ
1
([B], 0) = [B, A], 4) δ
1
([B],1) = [S],
5) δ
1
([B, A], 0) = [B, A], 6) δ
1
([B, A], 1) = [S],
7) δ
1
(ϕ, 0) = ϕ, 8) δ
1
(ϕ, 1) = ϕ.
Имеются и другие определения δ
1
. Однако ни в какие другие состояния,
кроме ϕ, [S], [B], [B, A] автомат M
1
никогда не входит, и все другие состояния и
правила, определяющие и использующие их, могут быть удалены из множеств
состояний Q
1
, F
1
и δ
1
как бесполезные.
Теперь согласно построениям теоремы 3.6 по автомату M
1
построим грамма-
тику типа 3:
G
1
= (V
N
, V
T
, P, S), где V
N
= {ϕ, [S], [B], [B, A]}, V
T
= {0,1}, S = [S],
P = {(1) [S] → 0[B], (2) [S] → 1ϕ, (3) [B] → 0[B, A], (4) [B] → 1[S], (5) [B] → 0,
(6) [B, A] → 0[B, A], (7) [B, A] → 1[S], (8) [B, A] → 0, (9) ϕ → 0ϕ,
(10) ϕ → 1ϕ
}.
Грамматика G
1
значительно сложнее грамматики G, но L(G
1
) = L(G). Дейст-
вительно, грамматику G
1
можно упростить, если заметить, что правила для
[B, A] порождают в точности те же цепочки, что и правила для [B]. Поэтому не-
терминал [B, A] можно заменить всюду на [B] и исключить появившиеся дубли-
каты правил для [B]. Кроме того, отметим, что нетерминал ϕ не порождает ни