Documente Academic
Documente Profesional
Documente Cultură
Lfac6 Adnotat PDF
Lfac6 Adnotat PDF
Curs 6
2020-21
4 Automate pushdown
Curs 6
4 Automate pushdown
Intrare: G = (N, T , S, P)
Ieşire: G′ = (N, T , S, P ′ ), L(G′ ) = L(G), P ′ nu conţine reguli de ştergere
(reguli de forma A → ǫ)
N0 = {A|A ∈ N, A → ǫ ∈ P}; i = 0;
do {
i = i + 1;
∗
Ni = Ni−1 ∪ {X |X ∈ N, ∃X → α ∈ P, α ∈ Ni−1 };
} while Ni 6= Ni−1 ;
Nǫ = Ni ;
Intrare: G = (N, T , S, P)
Ieşire: G′ = (N, T , S, P ′ ), L(G′ ) = L(G), P ′ nu conţine reguli de ştergere
(reguli de forma A → ǫ)
N0 = {A|A ∈ N, A → ǫ ∈ P}; i = 0;
do {
i = i + 1;
∗
Ni = Ni−1 ∪ {X |X ∈ N, ∃X → α ∈ P, α ∈ Ni−1 };
} while Ni 6= Ni−1 ;
Nǫ = Ni ;
Are loc:
N0 ⊆ N1 . . . ⊆ Ni ⊆ Ni+1 ⊆ . . . Nǫ ⊆ N
A ∈ Nǫ ⇐⇒ A⇒+ ǫ
LFAC (2020-21) Curs 6 4 / 38
Eliminarea regulilor de ştergere şi redenumirilor din gramatici de tip 2
α = α1 X1 α2 X2 . . . αn Xn αn+1 , Xi ∈ Nǫ
Exemplu
S ′ → S|ǫ
S → aAbC|aAb|B|C
A → aA|aB|a
B → bB|b|C
C → cC|c
Eliminarea redenumirilor (A → B, A, B ∈ N)
Intrare: G = (N, T , S, P)
Ieşire: G′ = (N, T , S, P ′ ), L(G′ ) = L(G), P ′ nu conţine redenumiri
for(A ∈ N){
N0 = {A}; i = 0;
do{
i = i + 1;
Ni = Ni−1 ∪ {C|C ∈ N, ∃B → C ∈ P, B ∈ Ni−1 };
} while Ni 6= Ni−1 ;
NA = Ni ; //NA = {X ∈ N|A ⇒∗ X }
}
P ′ = {X → α ∈ P|α 6∈ N}
for(X → α1 |α2 | . . . |αn ∈ P ′ )
for(A ∈ N && X ∈ NA , X 6= A)
P ′ = P ′ ∪ {A → α1 |α2 | . . . |αn }
LFAC (2020-21) Curs 6 7 / 38
Eliminarea regulilor de ştergere şi redenumirilor din gramatici de tip 2
Exemplu
Curs 6
4 Automate pushdown
Definiţie 1
O gramatică este ı̂n formă normală Chomsky dacă regulile sale au
forma:
A → BC, A → a ( şi eventual S → ǫ) (A, B, C ∈ N şi a ∈ T ).
Teorema 1
Orice limbaj independent de context poate fi generat de o gramatică ı̂n
formă normală Chomsky.
Demonstraţie
Demonstraţie
Demonstraţie
Exemplu
Curs 6
4 Automate pushdown
inductiv pentru j = 1, . . . , n
w ∈ L(G) ⇔ S ∈ V1n
Pentru j = 1:
Vi1 = {A|A ⇒+ ai } = {A|∃A → ai ∈ P}
unde 1 ≤ i ≤ n + 1 − j, 1 ≤ k ≤ j − 1
Sj−1
Vij = k=1 {A|A → BC ∈ P, B ∈ Vik , C ∈ Vi+k j−k }
Notaţie:
Atunci:
pentru 2 ≤ j ≤ n, 1 ≤ i ≤ n + 1 − j :
[
j−1
Vij = (Vik ◦ Vi+k j−k )
k =1
Exemplu
Exemplu
Curs 6
4 Automate pushdown
Automate pushdown
Automate pushdown-definiţie
Definiţie 2
Un automat pushdown este un 7-uplu: M = (Q, Σ, Γ, δ, q0 , z0 , F ):
Q este mulţimea (finită) a stărilor
Σ este alfabetul de intrare
Γ este alfabetul memoriei pushdown (stivei)
q0 ∈ Q este starea iniţială
z0 ∈ Γ este simbolul iniţial din stivă
F ⊆ Q este mulţimea stărilor finale
∗
δ : Q × (Σ ∪ {ǫ}) × Γ → 2Q×Γ
Configuraţie: (q, w, γ) ∈ Q × Σ∗ × Γ∗
Automate pushdown
C1 ⊢ C2 ⊢ . . . ⊢ Cn
Limbajul recunoscut
Exemplu
Exemple
Exemple
Exemple
Exemple
Exemple
Teorema 2
Pentru orice automat pushdown M cu F = ∅, există un automat
pushdown M ′ cu stări finale astfel ca L(M ′ ) = Lǫ (M).
Teorema 3
Pentru orice automat pushdown M cu F 6= ∅, există un automat
pushdown M ′ cu F = ∅ astfel ca Lǫ (M ′ ) = L(M).
Curs 6
4 Automate pushdown
Teorema 4
Pentru orice gramatică G există un automat pushdown M fără stări
finale astfel ı̂ncât Lǫ (M) = L(G)
Teorema 4
Pentru orice gramatică G există un automat pushdown M fără stări
finale astfel ı̂ncât Lǫ (M) = L(G)
Fie G = (N, T , S, P)
Construim M = ({q}, T , N ∪ T , δ, q, S, ∅) unde:
1 δ(q, ǫ, A) = {(q, β)|A → β ∈ P}, ∀A ∈ N
2 δ(q, a, a) = {(q, ǫ)}, ∀a ∈ T
3 δ(q, x, y) = ∅, ı̂n restul cazurilor
w ∈ L(G) ⇔ S ⇒+ w ⇔ (q, w, S) ⊢+ (q, ǫ, ǫ) ⇔ w ∈ Lǫ (M)
M simulează derivările extrem stângi din G
LFAC (2020-21) Curs 6 32 / 38
Legătura dintre automatele pushdown şi limbajele de tip 2
Exemplu
Teorema 5
Pentru orice automat pushdown M există o gramatică G astfel ı̂ncât
L(G) = Lǫ (M)
Fie M = (Q, Σ, Γ, δ, q0 , z0 , ∅)
Construim G = (N, Σ, S, P) astfel:
- N = {[qzp]|p, q ∈ Q, z ∈ Γ} ∪ {S}
- P conţine toate regulile de forma:
S → [q0 z0 q], ∀q ∈ Q
dacă (p, ǫ) ∈ δ(q, a, z), atunci:
[qzp] → a
dacă (p, z1 z2 . . . zm ) ∈ δ(q, a, z), atunci, pentru orice secvenţă de
stări q1 , . . . , qm ∈ Q :
[qzqm ] → a[pz1 q1 ][q1 z2 q2 ] . . . [qm−1 zm qm ]
Are loc: [qzp] ⇒+ w ⇔ (q, w, z) ⊢+ (p, ǫ, ǫ)
LFAC (2020-21) Curs 6 34 / 38
Automate pushdown deterministe
Curs 6
4 Automate pushdown
Definiţie 4
O gramatică G este deterministă dacă:
Orice regulă este de forma A → aα, unde a ∈ T iar α ∈ (N ∪ T )∗
Pentru orice A ∈ N, dacă A → aα , A → bα′ sunt reguli, atunci
a 6= b