Эквивалентности КА и грамматики

advertisement
Тема 5: Эквивалентность
автоматов
регулярных
грамматик
и
конечных
Регулярная грамматика это грамматика 3-го типа по Хомскому и
определяется как четвёрка G=(VT ,VN , P, S), VN∩VТ=∅. Любое правило в
регулярных грамматиках имеет следующий общий вид: A->a или A->bC,
где a, bVN; A, CVТ.
Определение:
Регулярная
грамматика
G
эквивалентна
конечному
автомату КА, если L(G)=L(КА).
Теорема (GF): Для любой регулярной грамматики можно построить
эквивалентный конечный автомат.
Алгоритм построения:
Дана регулярная грамматика G=(VT, VN, P, S). Необходимо построить
конечный автомат КА = (Σ, Q, q0, δ, F), на основе данной грамматики.
Элементы автомата определяются так:
1) Σ = VT
2) Q = VN{X}, где X новый символ, X VN
3) F = {X}
4) q0 = S
5) δ: Множество переходов создается имея в виду тип правил
грамматики:
a. для всех правил типа A->bC  δ(A, b) = δ(A, b) {C} (в
A
b
C
графе будет такой переход
)
b. для всех правил типа A->b  δ(A, b) = δ(A, b) {X} (в графе
A
будет такой переход
b
X
X
Пример: Дана G=(VT, VN, P, S), VT = {9,
)
.}, VN = {S, A, B}, P =
{1.S9S, 2.S9, 3.S9A, 4.S.B, 5.A., 6.A9, 7.A9B, 8.B9,
9.B9B}. (9 – это любая цифра)
Построить эквивалентный КА = (Σ, Q, q0, δ, F).
По алгоритму Σ = VT = {9, .}, Q = VN{X} = {S, A, B, X}, F = {X},
q0 = S.
a) Для всех правил типа A->bC создаем следующие переходы:
δ(S, 9) = {S}
δ(S, 9) = {A}
δ(S, .) = {B}
δ(A, 9) = {B}
δ(B, 9) = {B}.
b) Для всех правил типа A->b создаем следующие переходы:
δ(S, 9) = {X}
δ(A, .) = {X}
δ(A, 9) = {X}
δ(B, 9) = {X}.
Граф автомата выглядит так:
.
9
S
9
9
A
9
9
9
.
B
9
XX
Проверим на эквивалентность грамматику и конечный автомат, то
есть проверим проходимость нескольких слов грамматики через КА: 9,
9999, 9., 9.999
Теорема
(FG):
Для
любого
конечного
автомата
можно
построить
эквивалентную регулярную грамматику.
Алгоритм построения:
Дан конечный автомат КА = (Σ, Q, q0, δ, F). Необходимо построить
регулярную грамматику G=(VT, VN , P, S), на основе данного конечного
автомата.
Элементы грамматики определяются так:
1) VT = Σ
2) VN = Q
3) S = q0
4) Множество правил создается имея в виду тип переходов автомата:
a. для всех состояний типа q1 δ(q2, a), a Σ; q1, q2Q (в графе
q2
a
q1
есть такой переход
) включаем в множество P
продукцию q2aq1.
b. для всех состояний типа q1 δ(q2, a), a Σ и q1F (в графе
q2
a
есть такой переход
q1
q1
) включаем в множество P
продукцию q2a.
Пример: Дан КА = (Σ, Q, q0, δ, F), Σ = {0, 1}, Q = {q0, q1, q2, q3}, F =
{q3}, функция перехода
δ: δ(q0, 1)={q1}, δ(q0, 0)={q2}, δ(q1,
0)={q1}, δ(q1, 1)={q3}, δ(q2, 1)={q2}, δ(q2, 0)={q3}, δ(q3, 0)={q3},
δ(q3, 1)={q3}.
0
q1
0
1
1
q0
q3
q3
0
0
1
q2
1
Необходимо построить регулярную грамматику G=(VT, VN, P, S).
Используем вышеизложенный алгоритм: VT = Σ = {0,1}, VN = Q = {q0,
q1, q2, q3}, S = q0.
Правила P:
a.
q01q1
b.
q11
q00q2
q20
q10q1
q31
q11q3
q30
q21q2
q20q3
q30q3
q31q3
Проверим
на
эквивалентность
конечный
автомат
и
регулярную
грамматику, используя следующие слова: 00, 11, 011101, 10011.
Download