Automaty ze stosem

Transkrypt

Automaty ze stosem
12. JĘZYKI BEZKONTEKSTOWE – automaty ze stosem.
Automatem ze stosem (AzS) nazywamy uporządkowaną siódemkę M=(Q,, Γ, , sstart, ⊥, F), gdzie:
 Q jest skończonym zbiorem stanów,
  jest alfabetem symboli wejściowych (terminale),
 Γ jest alfabetem stosu
  : Q  (∪{λ })  Γ  P (Q  Γ*) jest funkcją przejść
 StartQ - stan początkowy automatu,
 ⊥ Γ - stan początkowy stosu,
 FQ - zbiór stanów końcowych automatu.
Opisem chwilowym automatu M=(Q,, Γ, , sstart, ⊥, F) nazywamy każdą trójkę
słowem do wczytania pozostającym na taśmie,
, gdzie S∊Q jest stanem, A∊* jest
jest słowem znajdującym się na stosie.
NP. Dany jest automat ze stosem M=(Q,, Γ, , sstart, ⊥, F) = ( { },{a,b},{⊥,β}, , S, ∅ ), gdzie  jest opisana za pomocą
następujących przejść:
1.
1.
2.
2.
S0
3.
3.
.
Rozważmy słowo A=aabbbb i kolejne opisy chwilowe:
Całe słowo A z taśmy zostało wczytane a stos został opróżniony. Powiemy w takiej sytuacji, że słowo A jest
akceptowane przez automat M poprzez pusty stos.
NP. Dany jest automat ze stosem M=(Q,, Γ, , sstart, ⊥, F) = ( { ,Sk},{a,b},{⊥,β}, ,
, { ,Sk} ), gdzie  jest opisana za
pomocą następujących przejść:
1.
2.
1.
2.
S0
3.
.
Sk
3.
Rozważmy słowo A=ba i kolejne opisy chwilowe:
Całe słowo A z taśmy zostało wczytane a automat znalazł się w jednym ze stanów końcowych. Powiemy w takiej
sytuacji, że słowo A jest akceptowane przez automat M poprzez stan końcowy (stos może nie być opróżniony).
*
Mówimy, że słowo A∊ jest akceptowane przez automat ze stosem
M=(Q,, Γ, , sstart, ⊥, F) przy pustym stosie, gdy istnieje ciąg opisów
chwilowych, że po wczytaniu całego słowa z taśmy stos jest pusty
.
*
Mówimy, że słowo A∊ jest akceptowane przez automat ze stosem
M=(Q,, Γ, , sstart, ⊥, F) przez stan końcowy, gdy istnieje ciąg opisów
chwilowych, że po wczytaniu całego słowa automat znajduje się w stanie Sk∊F
.
17
Twierdzenie 13
Język L jest akceptowany przez automat ze stosem M przez stany końcowe wtedy i tylko wtedy, gdy język L jest akceptowany przez automat
M’ przy pustym stosie.
Rodzinę języków akceptowanych przez automaty ze stosem (przez stany końcowe lub przy pustym stosie) oznaczamy
przez JAZS
Twierdzenie 14
Rodzinę języków akceptowanych przez automaty ze stosem jest równa rodzinie języków bezkontekstowych.
JAZS = JBK
Konstrukcja automatu ze stosem M=(Q,, Γ, , Sstart, ⊥, F)
akceptującego język generowany przez gramatykę G=(V,, P,S)




Q = {q}
M =G
Γ=V
Funkcje przejść są opisane za pomocą następujących ruchów, odpowiadających produkcjom z P:

dla produkcji postaci Y⟶ β,
dla dowolnego c ∈

 Sstart=q
 ⊥= S
 F=∅
NP.
Dana jest gramatyka o produkcji P={ S → XY; X→ aX|aaX|λ; Y→ bb|b }. Konstruujemy automat ze stosem
akceptujący identyczny język, co przedstawiona gramatyka. Funkcja przejśc tego automatu będzie mieć postać:
1. (q, , S) → (q, XY),
7. (q, a, a) → (q, ),
2. (q, , X) → (q, aX),
8. (q, a, a) → (q, ),
3. (q, , X) → (q, aaX),
4. (q, , X) → (q, ),
5. (q, , Y) → (q, bb),
6. (q, , Y) → (q, b),
Konstrukcja gramatyki G=(V,, P,S ) generującej język
akceptowany przez jednostanowy automatu ze stosem M=({q},, Γ, , q, ⊥, ∅)
 V = Γ M
 G =M
 Produkcje gramatyki są postaci:
 Y⟶ cβ dla ruchów automatu
 S=⊥
18