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ść StartQ - stan początkowy automatu, ⊥ Γ - stan początkowy stosu, FQ - 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