• Nem Talált Eredményt

Kuroda normálforma

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 78-82)

I. NYELVEK 7

4. Környezetfüggő nyelvek 72

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, ill. az

S−→XY1, Y1 −→Y X

szabályokkal és kiegészítjük VN0-t az X1, X2, Y1 ∈/ VN0 ∪ VT új változókkal.

Ilyen módon eljutunk a változók VN00 és a szabályok H00 halmazához. A G00 = (VN00, VT, S, H00)grammatika ekvivalens G0-vel, ígyG-vel is, és Kuroda normál-formában van megadva. (Ha lenne olyan szabály is, amelynek bal oldala ket-tőnél nagyobb hosszúságú, akkor ezekre a 4.6 Tétel bizonyításában megadott eljárást alkalmaznánk.)

AzL={xkykxk;k≥0}környezetfüggő nyelv generálható azzal a gramma-tikával, amelyetG-ből úgy kapunk, hogy felvesszük a szabályok közé azS −→e szabályt. Ez azt jelenti, hogy generálható azzal a grammatikával is, amelyet G00-ből kapunk azS −→e szabály felvételével.

Feladatok

4.1. Tetszőleges U ábécé feletti rekurzív nyelvek Boole algebrát alkotnak a szokásos halmazelméleti műveletekre.

4.2. Tetszőleges U ábécé feletti rekurzív nyelvek nyelvalgebrát alkotnak, azaz zártak a reguláris műveletekre.

5. fejezet

Mondatszerkezetű nyelvek

A 11.3 Következményben megmutatjuk, hogy a mondatszerkezetű nyelvek osz-tálya megegyezik a rekurzíve felsorolható nyelvek osztályával. Jelölje Lr a rekurzív nyelvek osztályát. A 4.3 és a 4.5 Tételek szerint

L1 ⊂ Lr ⊂ L0.

A 4.5 Tétel bizonyítása szerint van olyan rekurzíve felsorolható nyelv, amelynek komplementere nem rekurzíve felsorolható. Ebből következik, hogy a mondat-szerkezetű nyelvek osztálya nem zárt a komplementerképzésre.

In document ALGEBRAI NYELV- ÉS KÓDELMÉLET (Pldal 78-82)