• Nem Talált Eredményt

Parikh függvények

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 66-0)

I. NYELVEK 7

3. Környezetfüggetlen nyelvek 32

3.10. Parikh függvények

Az alfejezetben a környezetfüggetlen nyelveket a bennük szereplő különböző betűk számának eloszlása szerint jellemezzük. Megmutatjuk, hogy minden környezetfüggetlen nyelvhez van olyan reguláris nyelv, amelyben a különböző betűk számának eloszlása ugyanaz.

A vizsgálatainkban alapvető szerepet játszanak az olyan n dimenziós vek-torok, amelyek komponensei nemnegatív egész számok. Az alfejezetben vekto-rokon mindig ilyen vektorokat fogunk érteni. Jelölje ezeknek a vektoroknak a halmazát N(n).

AzM ⊆N(n) halmaztlineárisnak nevezzük, ha van olyank ∈N és vannak olyan t0,t1, . . . ,tk vektorok, hogy

M ={t0+

k

X

i=1

niti; n1, . . . , nk ∈N} (3.8)

AzM halmaztféllineárisnak mondjuk, ha véges sok lineáris halmaz egyesítése.

Legyen U = {u1, . . . , un} tetszőleges ábécé. Jelölje |p|ui a p ∈ U szóban az ui ∈ U betű előfordulásainak számát. A ϕ : U → N(n) leképezést Parikh függvénynek nevezzük, ha mindenp∈U szóra

ϕ(p) = (|p|u1, . . . ,|p|un), (3.9) teljesül. Legyen továbbá tetszőleges L⊆U nyelv esetén

ϕ(L) = {ϕ(p); p∈L} (3.10)

3.25. Példa. Az

M ={(r, s, t); r =s vagy s=t, (r, s, t)∈N(3)}

halmaz féllineáris, mert egyesítése annak a két lineáris halmaznak, amelyekre a (3.8) definíció jelölései szerint t0,t1,t2

(0,0,0), (1,1,0), (0,0,1) ill. (0,0,0), (1,0,0), (0,1,1).

Könnyen látható, hogy M = ϕ(L), ahol például L az U = {u, v, w} ábécé feletti (uv)w+u(vw) reguláris kifejezéssel megadott nyelv. De M =ϕ(L1+ L2) is, ahol

L1 ={uiviwj; i, j ∈N} és L2 ={ulvkwk; l, k∈N}.

Megmutatható, hogy L1 és L2, s így a 2.7 Tétel szerint L1 +L2 is környezet-független nyelvek (l. 3.10 feladat).

A következő két tétel mutatja, hogy az előző példa eredményei nem véletlenek.

3.26. Tétel. (Parikh tétel) Ha az L ⊆ U nyelv környezetfüggetlen, akkor ϕ(L) féllineáris.

Bizonyítás Az e nyelv nyilvánvalóan lineáris, ezért elegendő megmutatni, hogy az e /∈ L környezetfüggetlen nyelvek féllineárisak. Ebből ugyanis kö-vetkezik, hogy az L+e nyelvek is féllineárisaik. A 3.1 Lemma alapján az is feltehető, hogy L szigorúan e-mentes. A 3.3 Tétel szerint L-et megadhatjuk Chomsky normálformában. (Ez a feltétel csak amiatt kell, hogy ne szerepel-jenek X −→ X vagy Y −→ e alakú szabályok.) Legyen L = L(G), ahol G = (VN, U, S, H) környezetfüggetlen grammatika. Tekintsük a változóknak egy olyan V ⊆ VN részhalmazát, amelyre S ∈ V. Jelölje LV azt a U feletti

nyelvet, amely azokból a p ∈ U+ szavakból áll, amelyek levezethetők S-ből úgy, hogy a levezetésben szereplő változók V-beliek, s minden V-beli változó szerepel a levezetésben. Mivel VN véges halmaz, ezért véges sok ilyen V rész-halmaz van. Továbbá minden p ∈ U+ szóhoz van ilyen tulajdonságú V 6= ∅ részhalmaz, amelyre p ∈ LV. Tekintsünk ugyanis egy S =⇒G p levezetést, s legyen V a levezetésben szereplő változók halmaza. Ez azt jelenti, hogy L véges sok ilyen LV egyesítése. Ezért a bizonyításhoz elegendő megmutatni azt, hogy ϕ(LV) féllineáris.

Tegyük fel, hogy |V|=m. Jelölje LV,m ⊆LV azoknak a p∈LV szavaknak a halmazát, amelyek megadhatók olyan S =⇒G p levezetéssel, amelyekben LV definíciója szerint csak V-bel változók szerepelnek, továbbá minden ilyen változó a levezetés fájának útjain legfeljebb (m+ 1)-szer. Nyilvánvaló, hogy LV,m véges.

Most minden X ∈ V esetén legyen VX azoknak az P ∈ UXU mondat-formáknak a halmaza, amelyekre van olyan X =⇒G P levezetés, amelyekben csak V-beli változók szerepelnek, s a levezetés fájának útjain minden változó legfeljebb (m+ 1)-szer. Világos, hogy a minden X ∈V változóra a VX halmaz is véges. (Megjegyezzük, hogy VX lehet ∅ is.)

Legyen α : VX →U az a leképezés, amely a VX-beli szavakból törli az X

halmazokat. A (3.8) definíció szerint K féllineáris.

Megmutatjuk, hogy ϕ(LV) = K. Először a K ⊆ ϕ(LV) tartalmazást iga-zoljuk. Legyen t∈K tetszőleges vektor. Ha t=sj valamely 1≤j ≤l esetén, akkor (3.12) szerint van olyan p∈LV,m, hogyϕ(p) =t. Így a K ⊆ϕ(LV) tar-talmazás bizonyításához (3.14) és (3.15) szerint elegendő megmutatni azt, hogy ha tetszőlegest∈K vektorrat∈ϕ(LV), akkor t+ti ∈ϕ(LV) (1 ≤i≤k). Ha t ∈K ∩ϕ(LV), akkor van olyan p∈ LV, amelyre ϕ(p) =t és olyan S −→G p

levezetés, amelyben csak V-beli változók vannak. Így (3.13) szerint léteznek olyan X ∈ V és P ∈ UXU, amelyekre van olyan X =⇒G P levezetés, amelyben csak V-beli változók szerepelnek, s a levezetés fájának minden útján legfeljebb (m + 1)-szer, valamint ϕ(α(P)) = ti. Tekintsük azt a levezetést, amelynek levezetési fáját úgy kapjuk, hogy az S =⇒G plevezetés fájában egy X-szel jelölt csúcsa helyére az X =⇒G P levezetés fáját tesszük. Ha az így le-vezetési fájában minden változó V-beli, s a levezetési fának nincs olyan útja, amelyben valamely változó (m+ 1)-nél többször szerepelne. Ebben az esetben p∈LV,m, ezért van olyan sj ∈ϕ(LV,m) (1 ≤j ≤l), hogy t=sj, azaz t∈K.

Tegyük fel, hogy az F levezetési fa valamely útjának legalábbm+ 2 csúcsa van ugyanazzal a változóval jelölve. Legyenek ennek az útnak c0, c1, . . . , cm+1 csúcsai ugyanazzal az X ∈V változóval jelölve. Az F levezetési fa ch gyökerű részfája legyen Fh (h= 0,1, . . . , m+ 1). F0-ban minden úton legfeljebb m+ 1 alkalommal szerepel ugyanaz a változó. MivelFh+1azFh fa részfája, ezért min-den Fh-ban minden úton legfeljebb m+ 1 csúcs van ugyanazzal a változóval megjelölve. Nyilvánvalóan van olyan 1≤h ≤m, amelyre Fh-ban és Fh+1-ben ugyanazok a változók szerepelnek. Jelölje F0 azt a levezetési fát, amelyet úgy kapunk F-ből, hogy a ch csúcsot Fh+1 részfával helyettesítjük. Másrészt le-gyen F” az a levezetési fa, amelyet úgy származtatunk Fh-ból, hogy töröljük a Fh+1 részfát a gyökere kivételével, azazFh-ban azFh+1 részfát az X változó-val megjelölt egyetlen csúcsból álló részfáváltozó-val helyettesítjük. Akkor van olyan P ∈ UXU és olyan X =⇒G P levezetés, amelynek levezetési fája F”. Így ϕ(α(P)) = ti valamely 1 ≤ i ≤ k esetén. Ha F0 az S =⇒G q levezetés fája, akkor

ϕ(p) = ϕ(q) +ti.

Nyilvánvaló, hogy q ∈ LV. Továbbá F0-nek kevesebb csúcsa van mint F -nek. Ha F0-ben nincs olyan út, amelyben V-beli változó (m+ 1)-nél többször szerepelne, akkor q ∈ LV,m. Ekkor van olyan sj ∈ ϕ(LV,m) (1 ≤ j ≤ l), hogy ϕ(q) = sj, azaz

ϕ(p) = sj+tj ∈K.

Ellenkező esetben ismételjük meg p helyettq-val a fenti eljárást. Véges számú lépésben kapjuk, hogy

Ezzel megmutattuk, hogy ϕ(LV) = K. 2 Legyen L1 és L2 két U = {u1, . . . , un} ábécé feletti nyelv. Azt mondjuk, hogy L1 és L2 betűekvivalensek, ha ϕ(L1) =ϕ(L2), ahol ϕ a Parikh függvény.

Minthogy minden véges nyelv reguláris, ezért a következő tétel a végtelen (nem reguláris) környezetfüggetlen nyelvek esetében érdekes.

3.27. Tétel. Bármely környezetfüggetlen nyelvhez van vele betűekvivalens re-guláris nyelv.

Bizonyítás Legyen L környezetfüggetlen nyelv az U = {u1, . . . , un} ábécé felett. A 3.26 Tétel szerint ϕ(L) féllineáris. Így ϕ(L) véges sok K1, . . . , Kl

lineáris halmaz egyesítése. Tegyük fel, hogy Kj ={tj0 +

kj

X

i=1

nitji ni ∈N, i= 1, . . . , kj}, (j = 1, . . . , l).

Minden ji-re (j = 1, . . . , l, i= 1, . . . , kj)legyen tji = (mji,1, . . . , mji,n) Ha Lj (j = 1, . . . , l) az

um1j0,1. . . umnj0,n(um1 j1,1. . . umnj1,n). . .(u

mjk

j,1

1 . . . u

mjk

j,n

n )

reguláris nyelv, akkor ϕ(Lj) = Kj (j = 1, . . . , l). Amiből következik, hogy az L0 =L1∪ · · · ∪Lk reguláris nyelv betűekvivalens L-lel. 2 A 3.27 Tétel szerint egy U = {u1, . . . , un} ábécé feletti (nem reguláris) környezetfüggetlen nyelv szavaiban a betűket lehet úgy permutálni, hogy a permutálásokkal kapott nyelv reguláris. Megjegyezzük, hogy a 3.27 Tételből azonnal adódik a 3.7 Következmény, vagyis, hogy egyelemű ábécé feletti nyelv akkor és csak akkor környezetfüggetlen, ha reguláris.

3.28. Példa. Az U ={x, y} ábécé feletti

L={xkyk; k ∈N} ∪ {xyxly2l; l ∈N} ∪ {xyx2my2m; m∈N}

nyelv környezetfüggetlen, de nem reguláris. Az L nyelv betűekvivalens az L0 = (xy)+xy(xy2)+xy(x2y2) reguláris nyelvvel.

AzLnyelv környezetfüggetlen, mert generálja aG= ({S, A, B},{x, y}, S, H) 2 típusó grammatika, amelyben a H-beli szabályok:

S −→e, S−→xSy, S −→xyA, S −→xyB A−→xAy2, A−→e, B −→x2By2, B −→e.

A 8.8 Lemma segítségével megmutatható, hogy L nem reguláris. Továbbá ϕ(L) = ϕ(L0) = {t0+kt1; k∈N} ∪ {t1+lt2+mt3; l, m∈N}, ahol

t0 = (0,0), t1 = (1,1), t2 = (1,2),

azaz a két nyelv betűekvivalens. A 3.26 Tétel szerint ϕ(L)féllineáris.

A következő példa mutatja, hogy a arikh tétel) nem fordítható meg.

3.29. Példa. A 3.6 Tétel bizonyításában megmutattuk, hogy az {x, y, z} ábécé feletti L = {xkykzk;k ∈ N} nyelv környezetfüggő, de nem környezetfüggetlen.

Az előző példához hasonlóan a ϕ(L) ={(k, k, k);k∈N} halmaz lineáris, s így féllineáris, mert a

t0 = (0,0,0), t1 = (1,1,1)

vektorok megfelelnek a (3.8) feltételnek. Megjegyezzük, hogy az L nyelv betűek-vivalens az {(xyz)k;k∈N} reguláris nyelvvel.

Feladatok

3.1. Adjunk meg olyan környezetfüggetlen grammatikákat, amelyek generálják az

L1 ={a3nbn; n = 1,2, . . .}, L2 ={ambk; m ≥k ≥0}

és az (L1L2+L2) nyelveket.

3.2. Jelölje |p|a és |p|b a p ∈ {a, b} szóban a ill. b előfordulásainak számát.

Adjunk meg olyan környezetfüggetlen grammatikát, amely tetszőlegeskpozitív egész számra az

Lk ={p∈ {a, b}; |p|a =k|p|b} nyelvet generálja.

3.3. AzU ={u, v, w} ábécé feletti

L={uiviwj; i, j ∈N} ∪ {ulvkwk; l, k∈N} nyelv környezetfüggetlen.

3.4. A véges V ábécé feletti palindromok P(V) nyelve lineáris, s így környe-zetfüggetlen. Adjuk meg a nyelvet környezetfüggetlen kifejezéssel.

3.5. Az egyelemű {x} ábécé feletti L ={xj2;j ≥1} nyelv nem környezetfüg-getlen.

3.6. Jelölje P a prímszámok halmazát. Az egyelemű {x} ábécé feletti L = {xi; i∈P} nyelv nem környezetfüggetlen.

3.7. A p ∈X szót négyzetmentesnek nevezzűk, ha nincs q2 (q ∈X+) alakú részszava. A négyzetmentes szavak nyelvének egy résznyelve akkor és csak akkor környezetfüggetlen, ha véges (s így reguláris). Ha |X| ≤ 2, akkor a négyzetmentes szavak nyelve véges.

4. fejezet

Környezetfüggő nyelvek

A 3.6 Tétel szerint a környezetfüggő nyelvek osztálya bővebb, mint a környe-zetfüggetlen nyelvek osztálya. Mint már említettük ez az állítás a megfelelő grammatikákra nem igaz. Azonban bizonyos környezetfüggetlen nyelvek ge-nerálását egyszerűbbé tehetjük környezetfüggő grammatikák felhasználásával.

Ebben a fejezetben a környezetfüggő nyelvek néhány alapvető tulajdonságát tárgyaljuk.

4.1. Hosszúságot nem csökkentő grammatikák

Egy G = (VN, VT, S, H) grammatika P −→ Q H-beli szabályát hosszúságot csökkentőnek nevezzük, ha |P| > |Q| és hosszúságot nem csökkentőnek ne-vezzük, ha |P| ≤ |Q|. Hasonlóan beszélhetünk hosszúságot növelő ill. nem növelő szabályról is. AG= (VN, VT, S, H)grammatikáthosszúságot nem csök-kentőnek hívjuk, ha minden H-beli szabály jobb oldala legalább olyan hosszú, mint a bal oldala, azaz minden H-beliP −→Q szabályra|P| ≤ |Q|.

A környezetfüggő grammatikák szabályai, az S −→ e szabály kivételével, hosszúságot nem csökkentők. Másrészt igaz a következő lemma.

4.1. Lemma. Minden hosszúságot nem csökkentő grammatikához megadható egy vele ekvivalens környezetfüggő grammatika.

Bizonyítás LegyenG= (VN, VT, S, H)hosszúságot nem csökkentő grammati-ka. A 2.2 Lemma szerint feltehető, hogy Gstandard. (A standard grammatika konstrukciója során hosszúságot nem csökkentő grammatikából hosszúságot nem csökkentő grammatikát kapunk.) Tekintsük azt a G0 = (VN0 , VT, S, H0) grammatikát, amelyben H0-tH-ból a következőképpen kapjuk. MindenH-beli X −→ x (X ∈ VN, x ∈ VT) alakú szabály legyen H0-beli szabály is. (Mivel G standard, ezért a terminálisokat csak ilyen alakú szabályok tartalmazzák.)

72

Továbbá minden H-beli X −→ P (X ∈ VN, P ∈ VN+) alakú szabály is legyen H0-beli szabály. Legyen P −→ Q egy tetszőleges terminálist nem tartalmazó H-beli szabály, amelyre |P| ≥ 2. Akkor P = X1X2. . . Xk és Q = Y1Y2. . . Yn alakban adható meg, ahol X1, X2, . . . , Xk, Y1, Y2, . . . , Yn ∈ VN, (2 ≤ k ≤ n).

Vezessük be a Z1, Z2, . . . Zk ∈/ VN ∪VT új változókat és vegyük a következő szabályokat:

X1X2. . . Xk−→Z1X2. . . Xk, Z1X2. . . Xk −→Z1Z2X3. . . Xk, Z1Z2. . . Zk−1Xk −→Z1Z2. . . Zk−1ZkYk+1. . . Yn,

Z1Z2. . . ZkYk+1. . . Yn −→Y1Z2. . . ZkYk+1. . . Yn, . . . Y1. . . Yk−1ZkYk+1. . . Yn−→Y1. . . Yk−1YkYk+1. . . Yn.

Vegyük be H0-be minden ilyen P −→ Q H-beli szabály helyett az előbbi tí-pusú szabályokat. Továbbá VN0 tartalmazza ezeket az új nemterminálisokat és VN elemeit. Belátható, hogy olyanG0 (standard) környezetfüggő grammatika,

amely ekvivalens G-vel. 2

Az előző lemma azt jelenti, hogy a hosszúság nem csökkentése a környezet-függőséggel egyenértékű tulajdonság. Kivételt csupán az üres szó generálását biztosító S −→e szabály képez. Megmutatható, hogy (2.4) utolsó

L1 ⊂ L0

valódi tartalmazása igaz. Ez az jelenti, hogy a hosszúság nem csökkentése lé-nyeges megszorítást jelent a mondatszerkezetű grammatikákhoz képest. A kör-nyezetfüggő grammatikákkal kapcsolatos problémákat általában jóval nehezebb eldönteni, mint környezetfüggetlen grammatikák esetében, mivel a levezetések szerkezete sokkal bonyolultabb lehet. A hosszúság nem csökkentése azon kevés jó tulajdonságok egyike, amit mindig használhatunk.

4.2. Rekurzív nyelvek

A 3.4 Tétel környezetfüggő nyelvekre is igaz, azaz ezekre a nyelvekre is meg-oldható a szóprobléma.

4.2. Tétel. Minden környezetfüggő nyelv rekurzív.

Bizonyítás LegyenG= (VN, VT, S, H)környezetfüggő grammatika ésp∈VT. A p =e esetben e ∈ L(G) akkor és csak akkor, ha S −→ e∈ H, ami nyilván eldönthető. Feltehetjük tehát, hogy |p|=n ≥1. Tekintsük az olyan

S =P0, P1, . . . , Pk−1, Pk =p

szósorozatokat (VN ∪VT)+-ból, amelyekre

1 =|P0| ≤ |P1| ≤ · · · ≤ |Pk−1| ≤ |Pk|=n.

Mivel VN ∪VT véges halmaz, ezért az összes ilyen sorozat csak véges sok kü-lönböző szót tartalmaz. Ez azt jelenti, hogy az összes olyan sorozatnak száma, amelyekben ismétlés nem fordul elő, véges. E véges sok sorozat mindegyikében megvizsgálható, hogy

Pj =⇒G Pj+1, 0≤j < n

teljesül-e. (Az ismétléseket tartalmazó sorozatokat nem kell figyelembe venni, mert minden ismétlést tartalmazó levezetéshez található ismétlést nem

tartal-mazó levezetés is.) 2

A bizonyításban szereplő eldöntési eljárás természetesen gyakorlati célra nem nagyon alkalmas. Mindenesetre látható belőle a probléma nehézsége, ha a sorozatokra |Pj| ≤ |Pj+1|nem teljesül. Tetszőleges0típusú grammatika esetén bizonyítható, hogy ez a tartalmazási probléma ténylegesen eldönthethetetlen.

A következő tétel szerint a 4.2 Tétel megfordítása nem igaz. Ez azt jelenti, hogy a rekurzív nyelvek osztálya bővebb a környezetfüggő nyelvek osztályánál.

4.3. Tétel. Létezik olyan rekurzív nyelv, amelyik nem környezetfüggő.

Bizonyítás Azt mutatjuk meg, hogy kételemű ábécé felett is van olyan re-kurzív nyelv, amelyik nem környezetfüggő. Legyen a kételemű ábécé {a, b}.

Tekintsük azokat a környezetfüggő grammatikákat, amelyek mindegyikének terminális ábécéje {a, b} és mondatszimbóluma S. Ezen grammatikák nem-terminális ábécéit tekinthetjük ugyanazon megszámlálhatóan végtelen

V ={S, X1, X2, . . .}

halmaz véges részhalmazaiként. (A változók átjelölésével ez mindig elérhe-tő.) Nyilvánvalóan minden{a, b}feletti környezetfüggő nyelv generálható ilyen grammatikával. Egy ilyen grammatikát a szabályok egy

P1 −→Q1, P2 −→Q2, . . . , Pn −→Qn

sorozatával is megadhatunk. A szabályokból ugyanis meg tudjuk határozni a nemterminális ábécét. (Természetesen, ha a szabályokat más sorrendben adjuk meg, akkor is ugyanazt a grammatikát kapjuk.) Minden ilyen G grammatiká-hoz megadunk egy {a, b} feletti pG szót a következő módon:

Legyen

V0 ={a, b,−→,#, S, X1, X2, . . .}.

Definiáljuk a ϕ:V0 →a+b leképezést a

ϕ(a) =ab, ϕ(b) =a2b, ϕ(−→) =a3b, ϕ(#) =a4b, ϕ(S) =a5b, ϕ(Xi) =a5+ib, i= 1,2, . . .

feltételekkel. AϕleképezésV0 bijektív leképezésea+b-re. Jelöljük szinténϕ-vel a ϕmonoid-homomorf kiterjesztését a V0∗ szabad félcsoportra.

Legyen

pG=ϕ(P1 −→Q1#P2 −→Q2#. . .#Pn−→Qn).

Ha pG =pG0, akkor nem nehéz belátni, hogy G-t és G0-t szabályoknak ugyan-azzal a sorozatával adtuk meg, azaz G = G0. Ebből következik, hogy a G grammatikákat a pG szavakkal is megadhatjuk.

Legyen az{a, b}felettiLnyelv azoknak apGszavaknak a halmaza, amelyek-repG ∈/ L(G). Megmutatjuk, hogy azLnyelv rekurzív, de nem környezetfüggő.

A 4.2 Tétel szerint algoritmikusan eldönthető, hogy pG eleme-e az L(G) környezetfüggő nyelvnek. Így az is eldönthető algoritmikusan, hogypG eleme-e L-nek. Ez azt jelenti, hogy Lrekurzív.

Tegyük fel, hogy L környezetfüggő. Akkor van olyan pG-vel megadott G grammatika, amelyre L = L(G). Az L definíciója miatt, ha pG ∈ L(G) =L, akkor pG ∈/ L. Ha pedig pG ∈/ L(G) = L, akkor pG ∈ L. Mindkét esetben ellentmondásra jutottunk. Vagyis L nem környezetfüggő. 2 Az U ábécé feletti L nyelvet (U felett) rekurzíve felsorolhatónak nevezzük, ha van olyan eljárás, amely az összesp∈Lszót valamilyen sorrendben (esetleg ismétlésekkel) előállítja, azaz felsorolja.

Könnyű belátni, hogy minden 0típusú nyelv rekurzíve felsorolható. Ehhez nem kell mást csinálnunk, mint rendre előállítanunk a mondatszimbólumból 1,2, . . . lépésben levezethető összes mondatformát, s ezek közül kiválasztani a terminális szavakat. A 11.3 Következmény szerint a 0 típusú nyelvek osztálya és a véges ábécék feletti rekurzíve felsorolható nyelvek osztálya megegyezik.

Továbbá minden véges ábécé feletti rekurzív nyelv rekurzíve felsorolható.

Nem kell ugyanis mást tennünk, mint rendre előállítani az összes p∈U szót, miközben minden egyes új szó előállítása után alkalmazzuk rá az eldöntési algoritmust, és belevesszük a felsorolásba, ha igen választ kapunk, egyébként elhagyjuk. Ezáltal megadtunk egy felsorolási eljárást, ahol még az ismétléseket is kizártuk.

Megfordítva viszont abból, hogy egy véges ábécé feletti nyelv rekurzíve felsorolható, még nem következik, hogy rekurzív is. Megmutatjuk, hogy a véges ábécé feletti rekurzíve felsorolható nyelvek osztálya bővebb a rekurzív nyelvek osztályánál. Ehhez először bebizonyítjuk a következő állítást.

4.4. Lemma. A véges ábécé felettiL nyelv akkor és csak akkor rekurzív, ha L és L rekurzíve felsorolható.

Bizonyítás Legyen L tetszőleges U véges ábécé feletti nyelv. Ha az L nyelv rekurzív, akkor L is rekurzív, s ezért mind a kettő rekurzíve felsorolható.

Megfordítva, tegyük fel, hogy L és L rekurzíve felsorolhatók. Legyen p ∈ U. Kombináljuk az L és L elemeinek felsorására szolgáló eljárásokat úgy, hogy váltakozva hol az egyikkel, hol a másikkal állítunk elő egy szót, miáltal az U-beli szavaknak egy olyan

p1, p2, . . . , p2n−1, p2n, . . . (n= 1,2, . . .)

felsorolását kapjuk, ahol p2n−1 ∈ L és p2n ∈ L. Mivel L+L = U, ezért a felsorolásban valahol előfordul p. Most már csak azt kell eldönteni, hogy p páratlan vagy páros helyen szerepel-e a sorozatban, s így végeredményben egy eldöntési algoritmust adtunk meg, vagyis L rekurzív. 2 A 4.4 Lemma szerint annak megmutatásához, hogy a véges ábécé feletti rekurzíve felsorolható nyelvek osztálya bővebb a véges ábécé feletti rekurzív nyelvek osztályánál, elegendő egy véges ábécé felett olyan rekurzíve felsorolható nyelvet találni, amelynek komplementere nem rekurzíve felsorolható.

4.5. Tétel. Létezik véges ábécé feletti rekurzíve felsorolható nyelv, amely nem rekurzív.

Bizonyítás Azt mutatjuk meg, hogy az {a} egyelemű ábécé felett van olyan rekurzíve felsorolható nyelv, amelyenek komplementere nem rekurzíve felsorol-ható. A 4.4 Lemma szerint ebből már következik az állítás.

Tegyük fel, hogy minden rekurzíve felsorolhatóL⊆anyelvhez a felsorolási eljárás le van írva valamilyen nyelven. Pontosabban feltételezhetjük, hogy van olyan V véges ábécé, hogy az előbbi eljárások mindegyikét valamely E ∈ V szóval jellemezhetjük. Miután V megszámlálhatóan végtelen, az E szavakat valamilyen

E0, E1, E2, . . .

sorozatba rendezhetjük. Definiáljuk a következő L⊆a nyelvet: ak ∈L akkor és csak akkor, ha az Ek eljárás felsorolja az ak szót.

Először is nyilvánvaló, hogyLnem lehet rekurzíve felsorolható. Ha ugyanis az lenne, akkor volna olyan Ei eljárás a fenti sorozatban, amely pontosan L elemeit sorolja fel. De akkor akárai ∈L, akárai ∈/ L, ellentmondásba kerülünk L definíciójával.

Végül megmutatjuk, hogyLrekurzíve felsorolható. Minden eljárás diszkrét lépésekre bontható, vagyis beszélhetünk az Ek (k-adik eljárás)l-edik lépéséről.

Jelöljük ezt a lépést a (k, l) rendezett párral. Amennyiben a k-adik eljárás az l-edik lépésben befejeződik, akkor ennek az eljárásnak a m-edik lépését l < m esetben úgy értelmezzük, hogy nem csinálunk semmit. Kombináljuk az eljárásokat úgy, hogy a

(0,0),(1,0),(0,1),(2,0),(1,1),(0,2),(3,0),(2,1),(1,2),(0,3), . . .

lépéseket ilyen sorrendben hajtjuk végre egymás után. Ha most a (k, l)-edik lépés éppen az ak szónak Ek által felsorolt nyelvhez való hozzávételét ered-ményezi, akkor ak-t felvesszük L-be. Ezzel megadtunk egy eljárást, amely felsorolja L elemeit, tehát Lvalóban rekurzíve felsorolható. 2

4.3. Kuroda normálforma

Most megadjuk a grammatikák Chomsky normálformájának egy általánosítá-sát. A G= (VN, VT, S, H) grammatikáról azt mondjuk, hogy Kuroda normál-formában van megadva, ha mindenH-beli szabályX −→x, X −→Y, X −→

Y Z, vagy XY −→W Z alakú, ahol X, Y, W, Z ∈VN és x∈VT.

Látható, hogy minden Kuroda normálformában megadott grammatika hosszú-ságot nem csökkentő grammatika. Igaz a Chomsky normálformára vonatkozó 3.3 Tétel hasonló eredmény.

4.6. Tétel. A G= (VN, VT, S, H) hosszúságot nem csökkentő grammatikához van ekvivalens Kuroda normálformában megadott G0 = (VN0, VT, S, H0) gram-matika.

Bizonyítás Legyen G = (VN, VT, S, H) hosszúságot nem csökkentő gramma-tika. A 2.3 Lemma miatt feltehető, hogy Gstandard, azaz a terminálisok csak X −→x(X ∈VN, x∈VT)alakú szabályokban fordulnak elő. Megszerkesztjük VN-ből és H-ból VN0-t és H0-t. Az

X −→x, X −→Y, X −→Y Z, XY −→W Z, X, Y, W, Z ∈VN, x∈VT

alakú szabályok legyenek H0-beli szabályok is. Ha |Q| ≥3, akkor az X −→Q (X ∈VN, Q∈VN+)

alakú H-beli szabályokat, mint azt a 3.3 Tétel bizonyításában a Chomsky nor-málformára való átalakításnál tettük, X −→Y Z alakú szabályokkal helyette-síthetjük, miközben VN-t is kibővítjük új változókkal.

Tekintsük végül az olyan P −→ Q (P, Q∈ VN+) H-beli szabályokat, ame-lyekre |P| ≥2 és |Q| ≥3. Legyen

P =X1X2. . . Xk, Q=Y1Y2. . . Yn,

ahol X1, X2, . . . Xk, Y1, Y2, . . . , Yn ∈ VN, (k ≤ n). Vegyük fel a nemterminá-lisok közé az új Z2, Z3, . . . , Zn−1 változókat és cseréljük ki a P −→ Q alakú szabályokat a következő szabályokkal:

X1X2 −→Y1Z2, Z2X3 −→Y2Z3, . . . , Zk−1Xk −→Yk−1Zk, Zk−→YkZk+1, Zk+1 −→Yk+1Zk+2, . . . , Zn−1 −→Yn−1Yn.

Könnyen belátható, hogy így kapott G0 = (VN0, VT, S, H0) grammatika G-vel

ekvivalens. 2

4.7. Következmény. Ha egy környezetfüggő grammatika nem tartalmazza az S −→ e szabályt, akkor létezik vele ekvivalens Kuroda normálformában meg-adott grammatika.

A Kuroda normálformában megadott grammatika nem környezetfüggő, ha tartalmazXY −→W Z(X, Y, W, Z ∈VN)alakú szabályokat. Ezek a szabályok azonban helyettesíthetők a következő környezetfüggő szabályokkal:

XY −→XY0, XY0 −→X0Y0, X0Y0 −→X0Z, X0Z −→W Z, ahol X0 ésY0 új változók. Eztfinomított Kuroda normálformának is mondjuk.

Kaptuk a 4.7 Következmény alapján az alábbi eredményt.

4.8. Következmény. Ha aGkörnyezetfüggő grammatika nem tartalmazza az S −→e szabályt, akkor van L-lel vele ekvivalens finomított Kuroda normálfor-mában megadott grammatika.

Az XY −→W Z szabályt nem lehet egyszerűen az

XY −→X0Y, X0Y −→X0Z, X0Z −→W Z

szabályokkal helyettesíteni. Ugyanis, ha az eredeti grammatika szabályai pél-dául a következőek:

S −→XY, Y −→ZA, XY −→W Z,

akkor a fenti helyettesítéssel egy olyan grammatikát kapunk, amelyben meg-adható az

S =⇒XY =⇒X0Y =⇒X0ZA =⇒W ZA

levezetés, amely az eredeti grammatikában nem teljesül.

Figyeljük meg, hogy a Kuroda normálforma finomításakor az XY −→W Z alakú szabályt olyan környezetfüggő szabályokkal helyettesítjük, amelyeknél vagy csak bal oldali vagy csak jobb oldali környezet fordul elő, de mindkét vál-tozat szerepel. Ezeket bal [jobb] oldali környezetfüggő szabályoknak nevezzük.

Megmutatható, hogy lehet csak bal [jobb] oldali környezetfüggő szabályokkal, azaz bal [jobb] oldali környezetfüggő grammatikával tetszőleges környezetfüg-gő nyelvet generálni, azonban egy környezetfügkörnyezetfüg-gő grammatikának egyoldalú környezetfüggő grammatikává való átalakítása általában túlságosan bonyolult ahhoz, hogy gyakorlati célra felhasználjuk.

Az egyoldalú környezetfüggő grammatikák viszont használhatók bizonyos környezetfüggetlen nyelvek megadására, ami előnyős lehet ezek gépi feldolgo-zásának meggyorsítására. Az egyoldalú környezetfüggő grammatikákat is nor-málformára hozhatjuk.

4.9. Tétel. Minden bal oldali környezetfüggő grammatikához megadható olyan ekvivalens grammatika, amelynek szabályai a következő alakúak lehetnek:

X −→x, X −→Y, X −→Y Z, XY −→XZ, ahol x terminális jel, X, Y, Z pedig nemterminálisok.

Bizonyítás Hasonlóan járunk el, mint a 4.1 Lemma bizonyításában, ezért a bizonyítást nem részletezzük. Csak annyit jegyzünk meg, hogy egy bal oldali környezetfüggő szabály:

X1X2. . . XkX −→X1X2. . . XkY1Y2. . . Yn

alakú, amelyben csak változók szerepelnek. Az ilyen szabályt helyettesíthetjük az

X1X2 −→X1Z2, Z2X3 −→Z2Z3, . . . , Zk−1Xk −→Zk−1Zk, ZkX −→ZkW1, W1 −→Y1W2, . . . , Wn−1 −→Yn−1Yn,

Z2 −→X2, Zk−1 −→Xk−1, Zk −→Xk

szabályokkal, ahol Z2, . . . , Zk, W1, . . . Wn−1 újonnan bevezetett változók. 2 Természetesen analóg tétel érvényes jobb oldali környezetfüggő grammati-kákra.

4.10. Példa. Megmutatjuk, hogy a VT ={x, y} ábécé feletti L={xkykxk;k ≥1}

nyelv környezetfüggő és nem környezetfüggetlen. Megadunk egy L-t generáló Kuroda normálformában adott grammatikát.

A Bar-Hillel lemma segítségével megmutatható, hogyL nem környezetfüg-getlen. Az Lgenerálható azzal aG= (VN, VT, S, H)hosszúságot nem csökken-tő grammatikával, amelyre VN ={S, A} és

H ={S −→xSAx, S −→xyx, xA−→Ax, yA−→yy}.

A 4.1 Lemma szerintLkörnyezetfüggő. A 4.6 Tétel szerint vanG-vel ekvivalens Kuroda normálformában adott grammatika. Az alábbiakban megszerkesztjük ezt a grammatikát.

Először átalakítjuk a 2.2 Lemma bizonyításában megadott módon standard 1 típusúG0 = (VN, VT, S, H0) g rammatikává. Felvesszük azX, Y /∈VN∪VT új változókat, azaz VN0 =VN ∪ {X, Y} és H0 legyen az

S −→XSAX, S −→XY X, XA−→AX, Y A−→Y Y, X −→x, Y −→y

szabályok halmaza. Utána a 4.6 Tétel bizonyítása szerint járunk el. A 3.3 Tétel bizonyításában alkalmazott eljárással az S −→ XSAX és S −→ XY X szabályokat kicseréljük H0-ben az

S −→XX1, X1 −→SX2, X2 −→AX,

S −→XX1, X1 −→SX2, X2 −→AX,

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 66-0)