• Nem Talált Eredményt

Bar-Hillel lemma

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 38-43)

I. NYELVEK 7

3. Környezetfüggetlen nyelvek 32

3.2. Bar-Hillel lemma

A következő lemma alapvető jelentőségű a környezetfüggetlen nyelvek elméleté-ben. A lemmát (a környezetfüggetlen nyelvekre vonatkozó)pumpáló lemmának is szokták nevezni.

3.5. Lemma. (Bar-Hillel lemma) Ha L környezetfüggetlen nyelv U felett, ak-kor van olyan (L-től függő)npozitív egész szám, hogy hap∈Lés|p|> n, akkor p előállítható p =ruvwt (r, t, u, v, w ∈ U) alakban, ahol |uvw| ≤ n, uw 6= e és minden m nemnegatív egész számra rumvwmt∈L.

Bizonyítás Tegyük fel, hogy a G = (VN, VT, S, H) 2 típusú grammatika ge-nerálja az L környezetfüggetlen nyelvet, azazL=L(G). A 3.1 Lemma szerint

feltehetjük, hogyG e-mentes. Sőt azt is feltehetjük, hogyGszigorúane-mentes, mert L pontosan akkor környezetfüggetlen, haL−eis az, s mindkét nyelvhez választhatók ugyanazok a lemmában szereplő k és n pozitív egész számok. A 3.3 Tétel szerint G-t megadhatjuk Chomsky normálformában.

Ha egyp∈Lszónak a levezetése olyan levezetési fával ábrázolható, amely-ben a leghosszabb út j hosszúságú, akkor a Chomsky normálforma miatt

|p| ≤ 2j. Tegyük fel, hogy |VN| = l. Ha |p| > 2l, akkor az S =⇒ p leve-zetés fájában a leghosszabb útnak l-nél hosszabbnak kell lenni. Vegyük ennek az útnak az utolsól+1hosszúságú szakaszát. Van olyanX ∈VN változó, amely ezen a szakaszon legalább kétszer előfordul. Vegyük ennek a nemterminálisnak két ilyen előfordulását. Ezek közül az S mondatszimbólumhoz közelebb eső X-hez tartozó részfa végpontjainak megfelelő szó legyen q(∈VT), a másik X-hez tartozó részfa végpontjainak megfelelő szó pedig legyen v(∈ VT). Ezekre nyilván X =⇒ q ésX =⇒ v teljesül, továbbá q tartalmazza részszóként v-t, azaz q=uvw(u, w∈VT).

Megmutatjuk, hogy uw 6= e. Mivel G-t Chomsky normálformában adtuk meg és X-nek az S =⇒ p levezetésben lévő két előfordulásáról van szó, ezért az X =⇒ uXw levezetés első lépése csakX =⇒Y Z (Y, Z ∈VN) lehet. DeG szigorúan e-mentes, ezértuw 6=e.

Emellett természetesen p = rqt is teljesül valamilyen r, t(∈ VT) szavakra.

Az X változó megválasztása miatt|q| ≤2l+1. MásrésztS =⇒ rXtés X =⇒ uXw is fennáll, ezért tetszőlegesm ≥0 egész számraS =⇒ rumvwmt. Ez azt jelenti, hogy a lemma állítása n = 2l+1 pozitív egész számmal teljesül. 2 A Bar-Hillel lemma azt mondja ki, hogy egy végtelen környezetfüggetlen nyelvben minden elég hosszú szóhoz végtelen sok "hasonló szerkezetű szó" van.

A lemma bizonyításából az is következik, hogy ha egy végesLnyelvet a Chom-sky normálformában megadott G = (VN, VT, S, H) grammatika generálja és

|VN| = l, akkor az L-beli szavak hossza legfeljebb 2l. Ugyanis, ha p ∈ L és

|p| > 2l, akkor a pumpáló lemma szerint L végtelen. A lemma segítségével megmutatjuk a (2.4) Chomsky hierarchiában a második valódi tartalmazás helyességét.

3.6. Tétel. L2 ⊂ L1.

Bizonyítás A tétel igazolásához megadunk egy olyan környezetfüggő nyelvet, amelyik nem környezetfüggetlen.

Megmutatjuk, hogy azU ={a, b, c}ábécé feletti L={ajbjcj;j ∈N}nyelv nem környezetfüggetlen. Indirekt bizonyítást végzünk. Tegyük fel, hogyL kör-nyezetfüggetlen. Akkor vannak olyan k, n pozitív egész számok, hogy minden k-nál hosszabbL-belipszóra, így ap=akbkck szóra is, teljesülnek a Bar-Hillel lemma feltételei. Azaz a p=akbkck szó felírható p=ruvwt (r, t, u, v, w∈ U)

alakban, ahol |uvw| ≤ n, uw 6= e és minden m nemnegatív egész számra rumvwmt∈L. Vizsgáljuk meg, hogyan helyezkednek el a u éswszavak p-ben.

Megállapíthatjuk, hogy ués hasonlóanwsem tartalmazhat különböző betűket, mert akkor az rumvwmt ∈ L (m ≥ 2) szó nem írható ajbjcj alakban. Tehát mind u mindw legfeljebb egy fajta betűt tartalmaz. Ez viszont ellentmondás-hoz vezet, mert akkorm-et növelve rumvwmt ∈Lszavakban legalább egy fajta betű száma nem növekszik.

Most azt mutatjuk meg, hogy az L nyelvet generálja az az 1 típusú G = (VN, U, S, H)grammatika, amelyben VN ={S, X, Y, Z1, Z2} és aH-beli szabá-lyok a következők:

S −→abc, S−→aXbc,

Xb −→XZ1, XZ1 −→Z1Z1, Z1Z1 −→Z1X, Z1X −→bX, bY −→Z2Y, Z2Y −→Z2Z2, Z2Z2 −→Y Z2, Y Z2 −→Y b,

Xc−→Y bcc, aY −→aaX, aY −→aa.

Mivel S −→ abc, ezért abc ∈ L(G). Ezután azt látjuk be, hogy minden j pozitív egész számra

S =⇒GajXbjcj.

Minthogy S −→ aXbc, ezért j = 1 esetben az állítás igaz. Ha valamilyen pozitív egész j-re S=⇒G ajXbjcj, akkor csak az

Xb −→XZ1, XZ1 −→Z1Z1, Z1Z1 −→Z1X, Z1X −→bX

szabályokat alkalmazhatjuk ebben a sorrendben j-szer. Utána csak Xc −→

Y bcc helyettesítést végezhetjük el, majd a

bY −→Z2Y, Z2Y −→Z2Z2, Z2Z2 −→Y Z2, Y Z2 −→Y b helyettesítéseket ebben a sorrendben j-szer. Így

S=⇒G ajY bj+1cj+1

levezetést kapjuk. Ezután két lehetőség között választhatunk. Vagy befejezzük a levezetést az aY −→aa helyettesítéssel:

S =⇒Gaj+1bj+1cj+1. Vagy pedig folytatjuk az aY −→aaX helyettesítéssel:

S =⇒Gaj+1Xbj+1cj+1.

Az S-ből csakis ezek a mondatformák vezethetők le. Ebből már könnyen be-látható, hogy L=L(G), azaz környezetfüggő, s így L2 ⊂ L1. 2

Az előbbi bizonyításban szereplőLnyelvet generálja az egyszerűbb0típusú G0 = (VN0, U, S, H0)is, amelyben VN0 ={S, X, Y}és a H0-beli szabályok:

S−→abc, S −→aXbc, Xb −→bX, bY −→Y b, Xc−→Y bcc, aY −→aaX, aY −→aa.

Ez a grammatika azonban nem környezetfüggő. A 4.1. alfejezetben kapunk majd választ arra, hogy milyen 0 típusú grammatikákhoz van ekvivalens 1 típusú grammatika.

3.7. Következmény. Egyelemű ábécé feletti környezetfüggetlen nyelvek regu-lárisak.

Bizonyítás Legyen az{x}ábécé feletti Lnyelv környezetfüggetlen. Feltehet-jük ,hogy e /∈ L. Ha ugyanis az L nyelv reguláris, akkor az L+e = L+∅ nyelv is az, hiszen reguláris nyelvek összege is reguláris. Mivel minden véges nyelv reguláris, ezért azt is feltehetjük, hogy az L nyelv végtelen.

Legyenek k és n a környezetfüggetlen nyelvekre vonatkozó pumpáló lem-mában szereplő L-től függő pozitív egész számok. A pumpáló lemma szerint minden j > k esetén, ha xj ∈ L, akkor van olyan 1 ≤ m ≤ n, hogy minden

s=0Ls. Tehát elegendő megmutatni, hogy minden 0 ≤ s ≤ t esetén az Ls nyelv reguláris. Az L0 nyelv véges, ezért reguláris.

Minden xj ∈ Ls (s ≥ 1) esetén van olyan l ≥ 0 és 0 ≤ ds ≤ ms−1, hogy j =lms+ds. Adott ds-hez jelöljük js-sel a legkisebb ilyen j kitevőt. Ha

0≤ds,1 < ds,2 <· · ·< ds,r ≤ms−1, és js,1, js,2, . . . , js,r az összes előbbi módon definiált ds ill. js, akkor

Ls =

azaz reguláris, amiből adódik, hogy Lis reguláris. 2 A későbbiekben megmutatjuk, hogy legalább kételemű véges ábécékre a 3.7 Következmény már nem igaz.

A 2.7 Tétel szerint a környezetfüggetlen nyelvek osztálya zárt a reguláris műveletekre. Ez azonban nem igaz a Boole műveletekre.

3.8. Tétel. A környezetfüggetlen nyelvek osztálya nem zárt a metszetre és a komplementerképzésre.

Bizonyítás Legyenek L1 = {akbkcn;k, n ∈ N} és L2 = {akbncn;k, n ∈ N} U ={a, b, c} feletti nyelvek. Megmutatjuk, hogy L1 és L2 környezetfüggetlen.

Legyen VN ={S, X, Y} és

H1 ={S−→XY, X −→aXb, X −→e, Y −→cY, Y −→e}, H2 ={S −→XY, Y −→bY c, Y −→e, X −→Xa, X −→e}.

Nyilvánvaló, hogy a Gi = (VN, U, S, Hj) (i = 1,2) környezetfüggetlen gram-matika generálja az Li nyelvet. Azonban, mint azt a 3.6 Tétel bizonyításában láttuk, az

L1∩L2 ={ajbjcj;j ∈N} nyelv nem környezetfüggetlen.

Ebből már az is következik, hogy a környezetfüggetlen nyelvek osztálya a komplementerképzésre sem zárt. A De Morgan azonosságok szerint ugyanis

L1 ∩L2 =L1∪L2

írható bármely két nyelvre. Amiből látható, hogy ha a környezetfüggetlen nyelvek osztálya zárt volna komplementerképzésre, akkor a metszetre is zárt

lenne, ami az előbbiek miatt lehetetlen. 2

3.9. Tétel. Bármely környezetfüggetlen grammatikáról algoritmikusan eldönt-hető, hogy az általa generált nyelv üres, véges vagy végtelen.

Bizonyítás A 3.1 Lemma szerint elegendőe-mentes környezetfüggetlen gram-matikákat vizsgálni.

Először megmutatjuk, hogyan dönthető el algoritmikusan, hogy egy G = (VN, VT, S, H) környezetfüggetlen grammatika által generált L = L(G) nyelv üres vagy nem. Ha H tartalmazza az S −→ e szabályt, akkor e ∈ L, s így a nyelv nemüres. Ezért a továbbiakban feltehetjük, hogy G szigorúan e-mentes.

A 3.3 Tétel szerint G megadható Chomsky normálformában. Legyen|VN|=l.

Ha egy levezetés fájában van olyan S-ből kiinduló út, amely hossza nagyobb, mintl, akkor ennek az útnak a mentén nem szerepelhet csupa különböző nem-terminális, mint azt a Bar-Hillel lemma bizonyításában már láttuk. Vagyis van olyan X ∈ VN nemterminális, amely legalább kétszer előfordul ennek az útnak a mentén. Tekintsük most X-nek ezen az úton az S-től legtávolabbra eső előfordulását. Vegyük a levezetés fájának azt a részfáját, amelynek ez az X gyökere. Ha ezzel a részfával helyettesítjük azt a részfát, amelynek gyökere

egy S-hez ezen az úton közelebb eső X, akkor az előbbi út hossza az adott két előfordulás közötti távolsággal lerövidül. Másrészt nyilvánvaló, hogy az így nyert fa is egy, az adott grammatikában lehetséges levezetés fája. Tehát a G grammatikában bármely S =⇒ p (p ∈ VT) levezetéshez található olyan S =⇒ q (q∈VT)levezetés, amelynek fája nem tartalmaz l-nél hosszabb utat.

Ezért annak eldöntéséhez, hogy üres-e az L nyelv, elegendő olyan levezetése-ket megvizsgálni, amelynek fájában a leghosszabb út legfeljebb l hosszúságú.

Mindazon fák T halmazát, amelyek eleget tesznek ennek a korlátozásnak a például következő algoritmussal kaphatjuk meg:

Az egyetlen S csúcspontból álló fát felvesszük T-be.

Minden olyan fát felveszünk T-be, amely egyetlen H-beli szabály alkalmazá-sával nyerhető egy már előzőleg a T-be felvett fából, kivéve, ha a leghosszabb útja l-nél hosszabb.

Bármely grammatikához csak véges sok ilyen fa van, így az eljárás véges sok lépésben befejeződik. Most már csak azt kell megvizsgálnunk, hogy van-e T -ben olyan fa, amelynek minden végpontjában terminális jel szerepel. Ha nincs ilyen, akkor az adott grammatikában egyetlen terminális szó sem vezethető le, azaz L=∅.

A Bar-Hillel lemma segítségével el tudjuk dönteni, hogy az L nyelv véges vagy végtelen. A lemmában szereplő k és n pozitív egész számok megadása után csak azt kell eldöntenünk, hogy van-e az L nyelvben k-nál hosszabb, de legfeljebb k+nhosszúságú szó, amilyen szó nyilvánvalóan csak véges sok lehet.

Tegyük fel ugyanis, hogy azLvégtelen, de csakk-nál nem hosszabb vagyk +n-nél hosszabb szavak vannak L-ben. Mivel L végtelen, van olyan p ∈ L, hogy

|p|> k+n. Legyen p a(k+n)-nél hosszabb L-beli szavak közül egy legkisebb hosszúságú szó. A Bar-Hillel lemma szerint p = ruvwt,|uvw| ≤ n, uw 6= e és minden m nemnegatív egész számra rumvwmt ∈ L. Ha m = 0, akkor k < |rvt|< |p| és rvt ∈L. Ez azonban ellentmondás, mivel feltevésünk miatt

|rvt| ≤k. 2

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 38-43)