Вы находитесь на странице: 1из 5

Регулярная грамматика

Правая регулярная грамматика – все правила


могут быть в одной из следующих форм:
A→a или A→bC, где a, bVT; A,CVN.
Пример правой регулярной грамматики:
Регулярные граматики Ex.: G=(VT, VN , P, S), VT = a,b, VN = S, A,
P=
1. S → a
USM
2. S → b
FMI
3. S → aA
4. S → bS
DI
5. A → bS
6. A →b

1 3

Регулярные граматики Регулярная грамматика


Регулярная грамматика это грамматика 3-го типа по Левая регулярная грамматика – все правила
Хомскому. Она также состоит из четвёрки могут быть в одной из следующих форм:
G=(VT ,VN , P, S), VN∩VТ=∅ где: A → a sau A → Cb, unde a, bVT; A,CVN.
VТ - терминальный алфавит. Пример левой регулярной грамматики:
G =(VT, VN , P, S), VT = a,b, VN = S, D, F,
VN - нетерминальный алфавит. P=
P - множество правил или продукций. Любое правило 1. S → Da
в регулярных грамматиках имеет следующий общий 2. D → Da
вид: A→a или A→bC, где a, bVT; A, CVN. 3. D → Fb
S - начальный символ из набора нетерминалов, 4. F → Fb
аксиома. 5. F → b
.
2 4

1
Регулярная грамматика Эквивалентность регулярных
Gramatică regulată грамматик и конечных автоматов
Регулярные грамматики могут содержать либо Def: Регулярная грамматика G эквивалентна
лево-регулярные правила, либо право-регулярные – конечному автомату КА, если L(G)=L(КА).
Teorema GF: Для любой регулярной
но не оба вида одновременно.
грамматики можно построить эквивалентный
Следующая грамматика не является регулярной: конечный автомат.
G=(VT, VN , P, S), VT = a,b, VN =  S, C, Алгоритм построения: (1)
P= Дана регулярная грамматика G = (VN, VT, P, S).
1. S→Ac
Построить КА = (Σ, Q, q0, δ, F), на основе
2. C→bS
3.S→ a данной грамматики.
4.C→b
. 5 7

Эквивалентность регулярных
грамматик и конечных автоматов
Алгоритм построения: (2)
Эквивалентность Элементы автомата определяются так:
Регулярных Грамматик и 1. Входной алфавит: ∑ = VT
2. Множества состояний: Q = VN U { X }, X – новый символ,

Конечных Автоматов который не принадлежит VN , X VN


3. F= { X } финальных состояний автомата.
4. q0 = S (axioma)
5. δ: Множество переходов создается имея в виду тип

Эквивалентность правил грамматики:


a) для всех правил типа A → bC => δ(A, b) = δ(A, b) U {C}
Конечных Автоматов и в графе будет такой переход
Регулярных Грамматик b) для всех правил типа A → b => δ(A, b) = δ(A, b) U {X}
6
в графе будет такой переход 8

2
Sarcini // Задания Sarcini // Задания (rezolvare)
 Грамматика  КА = (Σ , Q, q0, F, δ),
 Să se construiască automatele finite echivalente pentru  G=(VN, VT, P, S),  Σ = VT={0, 1},
următoarea gramatică:  VN={S, A}, VT={0, 1},  Q= VN ={S, A} U { X }={S, A, X},
P={ 1.S → 0S  q0=S,
 Для следующих грамматиках построить 0
2.S → 1A  F = { X },
эквивалентныи КА  δ= P
3.S → 0 S=q0
 G=(VN, VT, P, S), VN={S, A}, VT={0, 1}, 4.A → 0S
1
 δ : δ(S,0)={S} 0 1
P={ 1.S → 0S 5.A → 1A  δ(S, 1)={A }
A
6.A → 0 }  δ(S, 0)={X}
2.S → 1A  порождение слов: 01100  δ(A,0)={S} 0
0
3.S → 0 S → (1) 0S → (2) 01A → (5) 011A  δ(A,1)={A}
 δ(A,0)={X} X
→ (4)0110S → (3) 01100
4.A → 0S  вычисления конфигураций
5.A → 1A (S, 01100) |- (S,1100) |- (A,100) |-
6.A → 0 } |- (A, 00) |- (S,0) |- (X, )
9 11

Sarcini // Задания (rezolvare)


Sarcini // Задания (rezolvare)
 Грамматика  КА = (Σ , Q, q0, F, δ),
 P={ 1.S → 0S
 G=(VN, VT, P, S),  Σ = VT={0, 1},
2.S → 1A
 Q= VN ={S, A} U { X }={S, A, X},
 VN={S, A}, VT={0, 1}, 3.S → 0
P={ 1.S → 0S  q0=S, 0 4.A → 0S 0
F = { X }, S=q0 S
2.S → 1A 
1 5.A → 1A 1
3.S → 0  δ= P 0 1 6.A → 0 } 0 1
4.A → 0S  δ : δ(S,0)={S} A (S, 1101111000010) |— * … |— (X, ) A
5.A → 1A  δ(S, 1)={A } 0
0 порождение слово: 1101111000010 0
0
6.A → 0  δ(S, 0)={X} S → (2) 1A → (5) 11A → (4) 110S → (2) 1101A →
X X
}  δ(A,0)={S} → (5) 11011A → (5) 110111A → (5) 1101111A →
 порождение слов: 01100  δ(A,1)={A} → (4)11011110S → (1) 110111100S → (1)1101111000S →
 вычисления конфигураций  δ(A,0)={X} → (1)11011110000S → (1) 110111100001A →
10
→ (3) 1101111000010 12

3
Эквивалентность конечных автоматов и
регулярных грамматик
Sarcini // Задания
 Să se construiască gramatica regulată echivalentă pentru
Def: Регулярная грамматика G эквивалентна următorul automat finit:
конечному автомату КА, если L(G)=L(КА).
Teorema GF: Для любого конечного автомата можно  Дан КА = (Σ, Q, q0, δ, F), Σ = {a, b, c}, Q = {q0, q1, q2},
Построить эквивалентную регулярную грамматику. F = {q2}, функция перехода δ: δ(q0, a)={q0,q2},
Алгоритм построения: (1)  δ(q0,b)={q0, q1}, δ(q1,b)={q2}, δ(q2,c)={q2, q1}.
Дан конечный автомат КА = (Σ, Q, q0, δ, F). Построить регулярную грамматику
Построить регулярную грамматику G = (VN, VT, P, S).
на основе данного конечного автоматаю
a c
a
q0 b q2
b
q1
b c
13 15

Эквивалентность конечных автоматов и Sarcini // Задания (rezolvare)


регулярных грамматик  G=(VN, VT, P, S), Используем
Алгоритм построения: (2) G = (VN, VT, P, S). вышеизложенный алгоритм:
Элементы грамматики определяются так:  VT = Σ = {a,b,c},
1. VT = Σ  VN = Q = {q0, q1, q2, q3},
2. VN = Q
3. S = q0  S = q0
4. P : Множество правил создается имея в виду тип  Правила P:
переходов автомата: a. 1. q0aq0 b. 8. q1b
a) для всех состояний типа q1 δ(q2, a), a Σ; q1, q2Q 2. q0aq2 9. q2c
в графе будет такой переход 3. q0bq0 10. q0a
 включаем в множество P продукцию q2aq1. 4. q0bq1
b) для всех состояний типа q1 δ(q2, b), b Σ и q1F 5. q1bq2
в графе есть такой переход 6. q2cq1
 включаем в множество P продукцию q2b.
14
7.q2cq2 16

4
Эквивалентность конечных автоматов и
регулярных грамматик
 Для двух слов, принятых конечным автоматом,
доказать что путем вычисления производных
порождение этих слов и регулярной грамматики.
 Конфигурацией (configurația cuvântului )
 (q0, ababbcb ) |— (q0, babbcb) |— (q0, abbcb) |—
(q0, bbcb) |— (q1, bcb) |— (q2, cb) |— (q1, b) |—
(q2, b) |— (q2, )
 Порождение слов (generarea cuvântului)
 q0 aq0 abq0 abaq0 ababq1 ababbq2
ababbcq1  ababbcb
17

Întrebări ?

O zi bună! Și un weekend frumos!

18

Вам также может понравиться