Potisni automati
7.3 Potisni automati
Druga vaˇzna klasa automata jesu potisni automati ili stog automati. To su automati koji imaju lokalnu memoriju organiziranu u stog. Sljede´ca slika pokazuje potisni automat.
Kod potisnog automata funkcija prijelaza iz stanja u stanje ovisi o stanju u kojiem se automat nalazi, o proˇcitanom znaku s trake, ali i o simbolu koji se nalazi na vrhu stoga.
Definicija 7.11 Deterministiˇcki potisni automat s ε prijelazima je sed- morka M = hK, Σ, Γ, S, ⊥, F, δi, pri ˇcemu je
• K konaˇcan skup stanja automata, • Σ ulazna abeceda, • Γ abeceda stoga, • S ∈ Σ poˇcetno stanje, • ⊥ ∈ Γ poˇcetni simbol stoga, • F ⊆ K skup zavrˇsnih stanja,
7.3. POTISNI AUTOMATI • δ : K × (Σ ∪ {ε}) × Γ → K × Γ ∗ parcijalna funkcija prijelaza takva
da za svaki q ∈ K i Z ∈ Γ postoji δ(σ, q, Z), za svaki σ ∈ Σ ili pak postoji δ(ε, q, Z), ali onda nije definirano δ(σ, q, Z) ni za jedan σ ∈ Σ.
Time je definiran deterministiˇcki potisni automat s ε prijelazima. Definicija 7.12 Nedeterministiˇcki potisni automat ε prijelazima ili samo
potisni automat je sedmorka M = hK, Σ, Γ, S, ⊥, F, δi, pri ˇcemu je: • K je konaˇcan skup stanja automata,
• Σ ulazna abeceda, • Γ abeceda stoga, • S ∈ Σ poˇcetno stanje, • ⊥ ∈ Γ poˇcetni simbol stoga, • F ⊆ K skup zavrˇsnih stanja, • δ : K × Σ ∪ {ε}) × Γ × K × Γ ∗ parcijalna relacija prijelaza takva da za
svaki q ∈ K i Z ∈ Γ postoji δ(σ, q, Z), za svaki σ ∈ Σ ili pak postoji δ(ε, q, Z), ali onda nije definirano δ(σ, q, Z) ni za jedan σ ∈ Σ.
n Primjer 7.12 n Neka je dan jezik L = {a b }. Potisni automat kojemu je K= {q 0 ,q 1 ,q 2 }, S = q 0 ,F= {q 1 }, Γ = {⊥, 0}, Z 0 = ⊥, a relacija prijelaza
δ neka je zadana sljede´com tablicom:
Onda taj PA odluˇcuje o jeziku L. Ovaj primjer nam pokazuje jedan od naˇcina kako potisni automat moˇze
prepoznavati neki jezik. Ova vrsta prepoznavanja naziva se odluˇcivanje zavrˇsnim stanjem. Kod ove vrste prepoznavanja rijeˇc je prihva´cena ako je nakon ˇcitanja rijeˇci (i nakon izvrˇsenja ε prijelaza) automat zavrˇsio u zavrˇsnom stanju. Postoji, medutim, joˇs jedna vrsta prepoznavanja jezika koja se moˇze definirati za potisni automat - odluˇcivanje praznim stogom. Kod ove vrste prepoznavanja nije vaˇzno u kojem je automat stanju stao, ve´c je vaˇzno da je kod zaustavljanja stog automata prazan. Stoga se kod PA
POGLAVLJE 7. MATEMATI ˇ CKA TEORIJA RA ˇ CUNALSTVA 309 koji prepoznaje praznim stogom standardno stavlja F = ∅. Sljede´ci primjer
daje deterministiˇcki automat koji prepoznaje jezik iz prethodnog primjera praznim stogom.
0 ,q 1 ,q 2 }, a S = q 0 . F= ∅, te neka je Γ = {⊥, 0} i neka je Z 0 = ⊥. Sada imamo sljede´cu definiciju:
n Primjer 7.13 n Zadan je jezik L = {a b }. K = {q
Upravo opisano saˇzeto je u sljede´coj definiciji: Definicija 7.13 Neka je L jezik. Kaˇzemo da potisni automat M 1 odluˇcuje
zavrˇsnim stanjem o jeziku L i piˇsemo L(M 1 ), ako automat nakon procesi- ranja svake rijeˇci iz jezika L staje u zavrˇsnom stanju. Kaˇzemo da potisni automat M 2 odluˇcuje praznim stogom o jeziku L i piˇsemo L(M 1 ), ako je stog automata nakon procesiranja svake rijeˇci iz jezika L prazan.
Sada imamo sljede´ci, vrlo zanimljiv teorem: Teorem 7.3 Neka je L jezik. Za jezik L postoji deterministiˇcki potisni
automat M 1 takav da je L = L(M 1 ) ako i samo ako postoji deterministiˇcki
potisni automat M 2 takav da je L = N (M 2 ).
Dokaz. Neka je M 1 PA koji odluˇcuje o jeziku L zavrˇsnim stanjem. Zelimo napraviti PA M ˇ 2 koji odluˇcuje o jeziku L praznim stogom. Pri tome moramo imati na umu dvije stvari. Naravno, osnovno je da taj automat mora isprazniti stog u trenutku kada automat M 1 stane u zavrˇsnom stanju. No, isto tako je vaˇzno da osiguramo da PA M 2 ne isprazni sluˇcajno stog kada mi to ne ˇzelimo, tj. kada M 1 nije stao u zavrˇsnom stanju. Kako bismo onemogu´cili ovo drugo, abecedu stoga PA M 2 proˇsirit ´cemo jednim simbolom u odnosu na abecedu M 1 . Recimo da je to simbol ⊥ 1 . Na samom poˇcetku rada PA M 2 osigurat ´cemo da on zapiˇse na stog znak ⊥ 2 , ˇcime ´cemo kontrolirati da stog ne postane prazan, ve´c da se na njemu uvijek nalazi simbol ⊥ 1 .
Neka je M ®
2 = K ′ ,Σ ′ ,Γ ′ ,q ′ 0 , ⊥, ∅, δ . Kako automat M 2 ne odluˇcuje zavrˇsnim stanjem, odmah moˇzemo definirati
1 = hK, Σ, Γ, q 0 ,
⊥, F, δi i neka je M ′
7.3. POTISNI AUTOMATI
da je F ′ = ∅. Kako ova dva automata trebaju opisivati isti jezik, onda je
jasno da je Σ ′ = Σ. Rekli smo da je Γ ′ =Γ ∪ {⊥ 1 }. Dodat ´cemo joˇs jedno stanje, recimo q ′ 0 , koje ´ce biti poˇcetno, i koje ´ce se ε prijelazom vezati za poˇcetno stanje automata M 1 , dodaju´ci tako simbol
⊥ 1 na poˇcetku rada na stog. Dakle, K ′ =K ∪ {q 0 ′ }.
Na kraju, ostala nam je definicija relacije δ ′ . Kao prvo, u relaciji δ sve po- jave simbola ⊥, bilo u tre´coj, bilo u petoj komponenti, mijenjamo simbolom ⊥ 1 . Nakon toga u δ dodajemo petorku (q ′ 0 , ε, ⊥, q 0 , ⊥ 1 ). Takoder, za svako stanje q
∈ F , te za svaki simbol γ ∈ Γ definiramo da je (q, ε, γ, q, ε) ∈ δ ′ . Isto tako, za svako q
∈ F definiramo da je (q, ε, ⊥ ′ 1 , q, ε) ∈δ , tako da zaista dobijemo prazan stog, odnosno stog u kojem se nalazi samo simbol ⊥.
Obrnuto, neka je M 2 PA koji odluˇcuje o jeziku L praznim stogom. Potrebno je kreirati PA M 1 koji ´ce odluˇcivati o jeziku L zavrˇsnim stanjem. Neka je M 2 =
hK, Σ, Γ, q ′ 0 , ⊥, ∅, δi. Kreirajmo automat M ′ 1 =< K ,Σ , Γ ′ ,q ′ 0 , ⊥, F ′ ,δ ′ >. Konstruiranje ovog PA je joˇs jednostavnije. Naravno,
vrijedi Σ ′ = Σ, Γ ′ = Γ. Dodaje se novo stanje q ′ F i stavlja se K ′ =K ∪ {q ′
f }. Takoder, za svako stanje q ∈ K definira se ε prijelaz (q, ε, ⊥, q ′ F , ⊥). Na taj naˇcin se svako praˇznjenje stoga registrira prilazom u stanje q ′ F . Konstrukcija
automata M 1 zavrˇsava definiranjem skupa F ′ = {q ′ F }.
Time je teorem dokazan. Iz definicija PA, ali i DPA moˇze se vidjeti nekoliko vaˇznih stvari vezanih
uz potisni automat. Potisni se automat standardno definira kao nedetermin- istiˇcki automat u kojem su dozvoljeni ε prijelazi, dok se konaˇcni automat standardno definira kao deterministiˇcki. Razlog tome je sljede´ci teorem.
Teorem 7.4 Neka je L jezik. Za jezik L postoji potisni automat M za koji vrijedi L = N (M ) ako i samo ako je L kontekstno slobodan jezik.
Ovaj teorem ne´cemo dokazivati, kao ˇsto nismo dokazivali ni teorem 7.1. Dokazi oba ova teorema mogu se na´ci u [3] i u [5]. No, dokazat ´cemo teorem sliˇcan onome koji smo dokazivali za regularne jezike u prethodnom poglavlju za kontekstno slobodne jezike:
Teorem 7.5 (Lema o pumpanju) Neka je L kontekstno slobodan jezik. Tada postoji k ∈ N takav da za svaku rijeˇc w ∈ L, takvu da je |w| ≥ k, postoji zapis w : uvxyz, takav da je v 6= ε ili y 6= ε i takav da je za proizvoljan
n n ∈N
0 rijeˇc uv xy z ∈ L. Prije nego ˇsto krenemo na dokazivanje ovog teorema treba definirati
stabla izvoda za rijeˇc w i gramatiku G. Stablo izvoda je stablo u kojem je korijen oznaˇcen sa startnim simbolom S. Nadalje, ako primijenjujemo u
nekom trenutku pravilo A → α, α : σ 1 ...σ n , tada se u stablu kao djeca vrha A javljaju vrhovi σ 1 ,...,σ n . Listovi stabla su terminalni simboli, dok su unutarnji ˇcvorovi stabla izvoda oni simboli koji nisu terminalni.
POGLAVLJE 7. MATEMATI ˇ CKA TEORIJA RA ˇ CUNALSTVA 311 Primjer 7.14 Dan je jezik L koji se sastoji od palindroma nad abecedom
Σ= {a, b, c}. Palindromi su rijeˇci koje su jednake, ˇcitane sprijeda i straga. Gramatika za ovaj jezik je:
S →ε S → aSa S → bSb S → cSc Pogledajmo sada rijeˇc abccba i njeno stablo izvoda:
e Slika 7.9
Dokaz. Neka je jezik L opisan gramatikom G : hV, Σ, R, Si. Ono ˇsto treba dokazati jest da je svaki terminal ˇcija je duljina ve´ca ili jednaka k izvodiv tako da je
S ∗ → uAz ∗
→ ∗ uvAyz → uvxyz.
ˇ Sto se dogada kada je p najve´ci broj znakova na desnoj strani nekog pravila iz gramatike G? Tada stablo koje ima m razina moˇze imati najviˇse
p m listova. Ova se tvrdnja moˇze dokazati indukcijom po m, no ovdje je ne´cemo dokazivati. Zainteresirani ˇcitatelj moˇze sam izvesti ovaj jednostavan
dokaz. Drugim rijeˇcima, ako stablo opisuje izvod rijeˇci koja ima viˇse od p m slova, onda u tom stablu mora postojati put od korijena do terminala ˇcija je duljina ve´ca od m.
Stavimo sada da je m = |V \Σ|, odnosno, neka je m broj slova abecede
V koja nisu terminali. Neka je k = p m , te neka je dana rijeˇc w takva da je |w| > k. Neka je T stablo izvoda rijeˇci w. No, tada u stablu T postoji
bar jedan put od korijena do terminala duljine ve´ce od |V \Σ|, tj. put koji prolazi kroz viˇse od |V \Σ| + 1 ˇcvorova.
7.3. POTISNI AUTOMATI No, kako abeceda ima samo |V \Σ| neterminalnih slova, to na tom putu
moˇze biti najviˇse |V \Σ| razliˇcitih unutarnjih ˇcvorova. Zbog toga na tom putu moraju postojati dva ˇcvora koja imaju istu oznaku. Pri tome treba napomenuti da nijedan od ta dva ˇcvora ne moˇze biti list, jer listovi i unutarnji
ˇcvorovi ne mogu imati iste oznake. Neka ti ˇcvorovi imaju oznaku A. To znaˇci da u izvodu rijeˇci w postoji dio izvoda opisan sljede´com she- mom:
→ ∗ uAz → uvAyz ∗ → uvxyz,
pri ˇcemu barem jedna od rijeˇci v i y mora biti neprazna. Dio izvoda koji zapoˇcinje i zavrˇsava u istom stanju A moˇzemo kontrahi- rati tako da obriˇsemo sve od prve pojave simbola A do njegove druge pojave, ˇcime ´cemo dobiti izvod
→ ∗ uAz → uxz,
dakle izvod rijeˇci uxz. Dakle, uxz ∈ L.
Isto tako, taj se dio izvoda moˇze ponoviti viˇse puta, ˇcime ´ce se dobiti
S n → uAz → uvAyz → ... → uAz → uv Ay z ×→ uv xy z pa je i uv n xy n z ∈ L za svaki n ∈ N.
Korolar 7.1 Svaki je regularni jezik kontekstno slobodan. Obratno ne vri- jedi.
Dokaz. Svaki se konaˇcni automat moˇze prikazati kao potisni automat koji uop´ce ne koristi stog, pa se svaki jezik koji se moˇze prepoznavati pomo´cu konaˇcnog automata moˇze prepoznavati pomo´cu potisnog automata.
U primjeru 7.10 pokazali smo da jezik L = n b {a n } nije regularan. No, u primjeru 7.13 smo pokazali da taj jezik jest kontekstno slobodan. Time je pokazano da kontekstno slobodni jezici nisu nuˇzno regularni.
Pitanje koje se postavlja jest, postoji li jezik koji nije kontekstno slobo- dan? Odgovor na ovo pitanje dan je sljede´cim primjerom.
n n Primjer 7.15 n Neka je zadan jezik L = {a b c }. Pokaˇzite da taj jezik nije kontekstno slobodan.
Naravno, dokaz se provodi pomo´cu leme o pumpanju. Neka je n > k
3 . Tada se na rijeˇc w : a b n c n moˇze primijeniti lema o pumpanju. U tom sluˇcaju mora postojati zapis w : uvxyz takav da je
uv i xy z ∈ L za svaki i ∈ N 0 .
Ako v ili y sadrˇzi razliˇcita slova, onda ´ce se u rijeˇci uv i xy i z za i > 1 imati pojavu slova b ispred slova a ili pak pojavu slova c ispred slova b, a to ne moˇze biti.
POGLAVLJE 7. MATEMATI ˇ CKA TEORIJA RA ˇ CUNALSTVA 313 Dakle, v i y mogu se sastojati samo od jednog simbola. No, u tom
sluˇcaju, u rijeˇci uv i xy i z za i > 1 pove´cat ´cemo broj pojava jednog ili dva razliˇcita slova, dok ´ce broj pojava tre´ceg slova ostati isti, pa rijeˇc viˇse ne´ce pripadati jeziku L.
Dakle, kako se ne moˇze ispoˇstovati lema o pumpanju, zakljuˇcuje se da L nije kontekstno slobodan jezik.
Sljede´ca slika daje klasifikaciju jezika koju smo do sada obradili:
L CFL RL
Slika 7.10
U ovom smo se poglavlju uglavnom bavili nedeterministiˇckim potisnim automatom, dok smo deterministiˇcki potisni automat tek spomenuli. Zaˇsto deterministiˇcki potisni automat ima tako malu ulogu? Zato ˇsto je determi- nistiˇcki potisni automat kao koncept preslab da bi opisao kontekstno slo- bodne jezike, koji su ovdje interesantni.
Iz upravo reˇcenoga moˇze se zakljuˇciti da, za razliku od konaˇcnih au- tomata, nedeterministiˇcki i deterministiˇcki potisni automati ne definiraju istu klasu jezika. I zaista, postoje kontekstno slobodni jezici o kojima se ne moˇze odluˇcivati pomo´cu deterministiˇckog potisnog automata. Klasa jezika o kojoj se moˇze odluˇciti pomo´cu deterministiˇckog potisnog automata ˇsira je od klase regularnih jezika, ali je uˇza od klase kontekstno slobodnih jezika. Ta se klasa naziva klasom deterministiˇckih kontekstno slobodnih jezika. Drugim rijeˇcima, imamo sljede´ce odnose medu klasama jezika:
RL ⊂ DCF L ⊂ CF L.