• Nem Talált Eredményt

Kapcsolat a k¨ ornyezetf¨ uggetlen nyelvekkel

In document Nyelvek ´e sautomat ´a k (Pldal 80-85)

7. Veremautomat´ ak 73

7.2. Kapcsolat a k¨ ornyezetf¨ uggetlen nyelvekkel

Ahogy a v´eges automat´ak pontosan a regul´aris nyelvek elfogad´as´ara alkalmasak, a verem-automat´ak a k¨ovetkez˝o, 2. Chomsky-f´ele nyelvoszt´alyhoz kapcsol´odnak. Ennek bizony´ı-t´asa azonban l´enyegesen ¨osszetettebb, mint a kor´abbi esetben. El˝obb azt mutatjuk meg (7.12. t´etel), hogyan lehet egy, a 2. Chomsky-f´ele oszt´alyba tartoz´o (k¨ornyezetf¨uggetlen) nyelvtanb´ol veremautomat´at k´esz´ıteni. Itt a term´eszetes ¨otletet, hogy a levezet´eseket a verem seg´ıts´eg´evel k¨ovess¨uk, nem neh´ez megoldani. A m´asik ir´any bonyolultabb lesz (7.16. t´etel).

7.12. T´etel MindenLk¨ornyezetf¨uggetlen nyelvhez van olyanM veremautomata, melyre L(M) = L.

Bizony´ıt´as. LegyenG= (V,Σ, S, P) egy 2. oszt´alybeli nyelvtan ami gener´alja azL nyel-vet. A7.9. t´etel ´ertelm´eben elegend˝o egyM = (Q,Σ,Γ, q0, Z0, δ) ¨ures veremmel elfogad´o veremautomat´at megadni az Lnyelvhez.

Legyen

• Q={q}, azaz csak egy ´allapot lesz

• Γ =V ∪Σ∪ {Z0, Z1}, aholZ0, Z1 k´et ´uj szimb´olum

• q0 =q

• δ(q, ε, Z0) = (q, SZ1)

• δ(q, ε, A) = {(q, α) : (A→α)∈P} minden A∈V v´altoz´ora

• δ(q, a, a) = (q, ε) minden a∈Σ karakterre

• δ(q, ε, Z1) = {(q, ε)}

Teh´at amikor v´altoz´o van a verem tetej´en, akkor ezt helyettes´ıteni lehet tetsz˝oleges hozz´a tartoz´o szab´aly jobb oldal´aval, sematikusan

Amikor pedig a verem tetej´en az a karakter van, ami a bemeneten ´epp k¨ovetkezik, akkor a veremb˝ol ezt kiszedj¨uk (´es a bemeneten tov´abb l´ep¨unk).

El˝osz¨or megmutatjuk, hogy L(G)⊆L(M). Ehhez vegy¨unk egyx ∈L(G) sz´ot ´es te-kints¨uk egy bal levezet´es´et (4.4. defin´ıci´o). A levezet´esn-edik l´ep´es´eben haszn´alt szab´aly legyen A→γ,

S ⇒ · · · ⇒yAα⇒yγα ⇒. . . ⇒x (7.1)

´

es legyen yγα = yzβ, ahol β a γα els˝o v´altoz´oj´aval kezd˝odik (ha van α-ban v´altoz´o, k¨ul¨onben β =ε), azaz z ∈ Σ. Mivel ez egy bal levezet´es, y nem tartalmaz v´altoz´okat,

´

esβ v´alaszt´asa miattz sem. A 2. oszt´alybeli szab´alyok alkalmaz´asa a tov´abbiakban nem v´altoztatja az yz r´eszt, az x sz´ot fel´ırhatjuk x=yzw alakban (w∈Σ).

Megmutatjuk, hogy ha

S ⇒ · · · ⇒yAα⇒yγα =yzβ (7.2) a fenti jel¨ol´esekkel igaz, akkor a veremautomata konfigur´aci´oira igaz, hogy

(q, x, Z0)⇒ · · · ⇒(q, w, βZ1), (7.3) Ha ezt a fenti ´all´ıt´astxteljes levezet´es´ere alkalmazzuk (ekkorβ =ε, mert m´ar nincsenek v´altoz´ok), akkor eljutunk a (q, ε, Z1) helyzethez, ahonnan egy l´ep´esben ki¨ur´ıthetj¨uk a vermet, ´es ezzel egy elfogad´o sz´am´ıt´ast kapunk.

A (7.3) tulajdons´agot az n szerinti teljes indukci´oval lehet megmutatni, ahol n a levezet´es l´ep´essz´ama.

Han= 1, akkory=ε,A=S, a vizsg´alt levezet´esi l´ep´esS⇒zβ alak´u. AzM verem-automata konfigur´aci´oinak megfelel˝o sorozata (q, x, Z0) ⇒(q, x, SZ1) ⇒ (q, x, zβZ1) ⇒ . . .⇒(q, w, βZ1).

LegyenN >1 ´es tegy¨uk fel, hogy mindenn < N esetben (7.3) igaz. Ekkor az indukci´o miatt

(q, x, Z0)⇒ · · · ⇒(q, zw, AαZ1).

Ebben a helyzetben M helyettes´ıtheti a verem tetej´en lev˝oA v´altoz´ot a γ sorozattal, ´es ez´ert

(q, zw, AαZ1)⇒(q, zw, γαZ1) = (q, zw, zβZ1)⇒ · · · ⇒(q, w, βZ1) Ezzel bel´attuk, hogyL(G)⊆L(M).

A m´asik ir´any bizony´ıt´asa is hasonl´oan t¨ort´enhet. Legyen x ∈ L(M) ´es tekints¨uk a konfigur´aci´ok egy elfogad´o sz´am´ıt´ashoz tartoz´o

(q, x, Z1)⇒ · · · ⇒(q, az, AβZ1)⇒(q, z, γZ1)⇒ · · · ⇒(q, ε, ε) (7.4)

sorozat´at, ahol a (q, az, AβZ1) ⇒ (q, z, γZ1) az n-edik l´ep´es. Ekkor persze x = yaz valamilyen y ∈ Σ sz´ora. A konstru´alt veremautomata olyan, hogy vagy a = ε ´es van olyan A→α szab´aly a nyelvtanban, hogyγ =αβ, vagy A=ε, amikor β =aγ.

Azt fogjuk megmutatni, hogy mindk´et esetben a nyelvtanban az S kezd˝ov´altoz´ob´ol az yaγ sorozat levezethet˝o.

Ennek a bizony´ıt´asa is n szerinti teljes indukci´oval t¨ort´enik. Ha n = 2, akkorx=az (teh´at y = ε), A = S, β = ε ´es kell legyen egy olyan S → α szab´aly a nyelvben, ami megadja a k´ıv´ant levezet´est.

LegyenN >2 ´es tegy¨uk fel, hogy mindenn < N eset´ere tudjuk, hogy az ´all´ıt´as igaz.

Ez azt jelenti, hogy yAβ levezethet˝o az S kezd˝ov´altoz´ob´ol. Ha A= ε, akkor yβ = yaγ, teh´at k´eszen vagyunk. Amikor a veremben t¨ort´enik valami, akkor a = ε, ´es ilyenkor a levezet´est az A→α szab´allyal folytatva egy megfelel˝o levezet´est kapunk.

7.13. Megjegyz´es Amennyiben a nyelvtan gener´alja az ¨ures sz´ot is, akkor nincs sz¨uks´eg a Z0, Z1 szimb´olumokra, verem kezd˝oszimb´olumk´ent haszn´alhatjuk az S kezd˝ov´altoz´ot.

Ezekre ugyanis csak az´ert volt sz¨uks´eg, nehogy ε∈L legyen azonnal.

7.14. Feladat Az al´abbi CF nyelvtanb´ol konstru´aljunk veremautomat´at!

A→ a

Megold´as: A keletkez˝o nem ¨ures ´atmenetek (q, ε, Z0) → (q, AZ1) 7.15. P´elda Vegy¨uk a fenti nyelvtan eset´en az abbaaa sz´o egy levezet´es´et,

A⇒5 AbA⇒1 abA⇒3 abbAA ⇒2 abbaAA⇒1 abbaaA⇒1 abbaaa N´ezz¨uk az ennek megfelel˝o sz´am´ıt´ast az elk´esz´ıtett veremautomat´aban

(q, abbaaa, Z0) ⇒ (q, abbaaa, AZ1)⇒5 (q, abbaaa, AbAZ1)⇒1 (q, abbaaa, abAZ1)⇒ (q, bbaaa, bAZ1)⇒(q, baaa, AZ1)⇒3 (q, baaa, bAAZ1)⇒

(q, aaa, AAZ1)⇒2 (q, aaa, aAAZ1)⇒(q, aa, AAZ1)⇒1

(q, aa, aAZ1)⇒(q, a, AZ1)⇒1 (q, a, aZ1)⇒(q, ε, Z1)⇒(q, ε, ε)

A k¨ornyezetf¨uggetlen nyelvtanok ´es veremautomat´ak k¨oz¨otti m´asik ir´any´u kapcsola-tot szint´en egy konstrukci´oval bizony´ıtjuk, de els˝o r´an´ez´esre itt m´ar az sem teljesen vil´ a-gos, hogyan is csin´aljunk egy veremautomat´ab´ol nyelvtant. Az el˝oz˝o konstrukci´o

” meg-ford´ıt´asa” az´ert nem lehets´eges, mert a nyelvtannak valahogy kezelnie kell azt, hogy a veremautomat´anak t¨obb ´allapota is lehet, nem csak egy.

7.16. T´etel Minden M veremautomata ´altal elfogadott L=L(M) nyelvhez van az L-et gener´al´o k¨ornyezetf¨uggetlen nyelvtan.

Bizony´ıt´as. Tekints¨unk egy ¨ures veremmel elfogad´o M = (Q,Σ,Γ, q0, Z0, δ) veremau-tomat´at, ami az L nyelvet fogadja el (7.9. t´etel). Ehhez fogunk egy megfelel˝o G = (V,Σ, S, P) nyelvtant megadni.

El˝osz¨or alak´ıtsuk ´atM-et ´ugy, hogy megsz¨untetj¨uk azokat az ´atmeneteket, amelyek-ben nem vesz¨unk le a verem tetej´er˝ol. Ezeket helyettes´ıts¨uk azzal, hogy a verem tetej´en l´ev˝o elemet levessz¨uk ´es ut´ana visszatessz¨uk. Form´alisan minden (q0, α)∈δ(q, a, ε) ´ atme-netet cser´elj¨unk le az (q0, αA)∈δ(q, a, A) ´atmenetekre, ahol A v´egigfut Γ ¨osszes elem´en

helyett

Vil´agos, hogy az automata ´altal meghat´arozott nyelv ezzel nem v´altozik.

K´esz´ıts¨unk most el egy nyelvtant ehhez a veremautomat´ahoz.

A nyelvtan v´altoz´oinak halmaza legyen

V ={[qAp] :q, p∈Q, A∈Γ} ∪ {S},

S lesz a kezd˝ov´altoz´o. Egy [qAp] alak´u v´altoz´o annak fog megfelelni, hogy az A ve-remszimb´olum a q ´allapotban ker¨ult a verembe, ´es p´allapot lesz az, amelyikben ez az A (minden, esetleg bel˝ole sz´armaz´o, a hely´ere ker¨ult karakterrel egy¨utt) kiker¨ul a veremb˝ol.

A nyelvtan levezet´esi szab´alyai a k¨ovetkez˝ok:

• minden q∈Q ´allapothoz S →[q0Z0q]

• egy (q0, ε)∈δ(q, a, A) ´atmenethez (aholq, q0 ∈Q, A∈Γ, a∈Σ0) [qAq0]→a

• egy (q0, B1. . . Bk)∈δ(q, a, A) ´atmenethez (q, q0 ∈Q,A, B1, . . . , Bk∈Γ, a∈Σ0) [qAq00]→a[q1B1q2][q2B2q3]. . .[qkBkqk+1]

ahol q2, q3, . . . , qk, qk+1 =q00 ∈Q v´egigfut az ¨osszes lehets´eges ´allapoton ´esq1 =q0.

Ezzel egy olyan nyelvtant adtunk meg, aminek szab´alyai A → α alak´uak, de el˝ o-fordulhat, hogy α = ε (amikor a = ε). Ez a 6.14. t´etel szerint ´atalak´ıthat´o a defin´ıci´o szerint 2. oszt´alyba tartoz´o nyelvtann´a an´elk¨ul, hogy a gener´alt nyelv megv´altozna. ´Igy elegend˝o megmutatni, hogy a megadott G nyelvtan az L(M) nyelvet gener´alja. Ez az al´abbi ´all´ıt´ason m´ulik:

[qAq0]⇒ · · · ⇒x∈Σ akkor ´es csak akkor, ha (q, x, A)⇒ · · · ⇒(q0, ε, ε) (7.5) azaz egy [qAq0] v´altoz´ob´ol a nyelvtanban pontosan akkor tudunk egyxsz´ot levezetni, ha a veremautomat´at azxbemenettel,Averemtartalommalq´allapotban ind´ıtva v´egigolvassa a bemenetet ´es ki¨ur´ıti a vermet.

Vegy¨uk ´eszre, hogy ha ez igaz, akkor mivel x ∈ L(M) azt jelenti, hogy a (q0, x, Z0) helyzetb˝ol egy (q, ε, ε) helyzet el´erhet˝o, ez´ert az elfogad´as ekvivalens azzal, hogy a nyelv-tanban a [q0Z0q] v´altoz´ob´ol az x levezethet˝o. Ez a v´altoz´o pedig egyetlen szab´aly alkal-maz´as´aval megkaphat´o az S kezd˝ov´altoz´ob´ol, teh´at L(M) = L(G).

A (7.5) ´all´ıt´as mindk´et ir´any´at, az el˝oz˝oekhez hasonl´oan, a l´ep´essz´am szerinti teljes indukci´oval lehet igazolni.

Ha a [qAq0] v´altoz´ob´ol az x sz´o n l´ep´esben levezethet˝o, ´es n = 1, akkor ez egy [qAq0] → a szab´allyal t¨ort´enik, ami az´ert r´esze a nyelvtannak, mert ekkor (q, a, A) ⇒ (q0, ε, ε), ´es pont ez az, amit akartunk. Ha n > 1, akkor legyen a levezet´es els˝o l´ep´ese [qAq0]⇒a[q1B1q2][q2B2q3]. . .[qkBkq0]. Ha a jobb oldalon ´all´oi-edik v´altoz´ob´ol a tov´ abbi-akban levezetett sz´otxi ∈Σ jel¨oli, akkor x=ax1x2. . . xk. Az indukci´os feltev´es szerint (qi, xi, Bi)⇒ · · · ⇒(qi+1, ε, ε) teljes¨ul, ha 1 ≤i≤k.

ami ¨osszerakva azt adja, hogy (q, ax1x2. . . xk, A) ⇒ · · · ⇒ (q1, x1x2. . . ck, B1) ⇒ · · · ⇒ (q0, ε, ε)

A (7.5) m´asik ir´any´anak r´eszleteit az olvas´ora b´ızzuk.

7.17. K¨ovetkezm´eny Az Lnyelv akkor ´es csak akkor k¨ornyezetf¨uggetlen, ha van olyan M veremautomata, melyre L(M) =L.

Bizony´ıt´as. A 7.12. ´es 7.16. t´etelek k¨ozvetlen k¨ovetkezm´enye.

In document Nyelvek ´e sautomat ´a k (Pldal 80-85)