Nyelvek és Automaták



Hasonló dokumentumok
Házi feladatok megoldása. Harmadik típusú nyelvek és véges automaták. Házi feladatok megoldása. VDA-hoz 3NF nyelvtan készítése

Házi feladatok megoldása. Automaták analízise, szintézise és minimalizálása. Házi feladatok megoldása. Házi feladatok megoldása

Házi feladatok megoldása. Veremautomaták. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 12. gyakorlat

Az LR elemző felépítése. Léptetés. Redukálás. Kiegészített grammatika. Mit kell redukálni? Kiegészített grammatika. elemző. elemző.

5. Logaritmus. I. Nulladik ZH-ban láttuk: 125 -öt kapjunk. A 3 5 -nek a 3. hatványa 5, log. x Mennyi a log kifejezés értéke?

Formális nyelvek. Aszalós László, Mihálydeák Tamás. Számítógéptudományi Tanszék. December 6, 2017

Véges automaták, reguláris nyelvek

Környezetfüggetlen nyelvek

4. Legyen Σ = {0, 1}. Adjon meg egy determinisztikus véges automatát, amely azokat a szavakat fogadja el,

Minta feladatsor I. rész

Középiskolás leszek! matematika. 13. feladatsor

Formális nyelvek I/2.

Környezetfüggetlen nyelvek

Formális nyelvek és automaták

Irodalom. Formális nyelvek I. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

1. feladat Oldja meg a valós számok halmazán a következő egyenletet: 3. x log3 2

Chomsky-féle hierarchia

Juhász István Orosz Gyula Paróczay József Szászné Dr. Simon Judit MATEMATIKA 10. Az érthetõ matematika tankönyv feladatainak megoldásai

Exponenciális és logaritmikus egyenletek, egyenletrendszerek, egyenlôtlenségek

FELVÉTELI VIZSGA, július 15.

Országos Középiskolai Tanulmányi Verseny 2010/2011 Matematika I. kategória (SZAKKÖZÉPISKOLA) Az 1. forduló feladatainak megoldása

2014/2015-ös tanév II. féléves tematika

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Feladatok. 6. A CYK algoritmus segítségével döntsük el, hogy aabbcc eleme-e a G = {a, b, c}, {S, A, B, C}, P, S nyelvtan által generált nyelvnek!

Vektortér fogalma vektortér lineáris tér x, y x, y x, y, z x, y x + y) y; 7.)

IX. A TRIGONOMETRIA ALKALMAZÁSA A GEOMETRIÁBAN

Logika és számításelmélet. 10. előadás

Nyelvek és automaták augusztus

Fonya ZH recap szabivános typo lehet, bocs

Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.

2010/2011 es tanév II. féléves tematika

4. Hatványozás, gyökvonás

7. tétel: Elsı- és másodfokú egyenletek és egyenletrendszerek megoldási módszerei

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

MATEMATIKA ÉRETTSÉGI TÍPUSFELADATOK MEGOLDÁSAI KÖZÉPSZINT Exponenciális és Logaritmusos feladatok

Gyakorló feladatsor 9. osztály

A torokgerendás fedélszerkezet erőjátékáról 1. rész

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A 2013/2014. tanévi Országos Középiskolai Tanulmányi Verseny első forduló MATEMATIKA I. KATEGÓRIA (SZAKKÖZÉPISKOLA) Javítási-értékelési útmutató

Heves Megyei Középiskolák Palotás József és Kertész Andor Matematikai Emlékversenye évfolyam (a feladatok megoldása)

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Automaták és formális nyelvek

Formális nyelvek - 9.

f (ξ i ) (x i x i 1 )

Lineáris programozás

Lineáris egyenletrendszerek

Házi feladatok megoldása. Nyelvek felismerése. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 5. gyakorlat

GAZDASÁGI MATEMATIKA I.

A VI. FEKETE MIHÁLY EMLÉKVERSENY

Óravázlatok: Matematika 2. Tartományintegrálok

Irodalom. Formális nyelvek I/1. Véges automaták és reguláris nyelvek. A formális nyelvek egy alkalmazása. Polygon, 2004.

A Riemann-integrál intervallumon I.

Automaták mint elfogadók (akceptorok)

II. A számtani és mértani közép közötti összefüggés

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

11. évfolyam feladatsorának megoldásai

a b a leghosszabb. A lapátlók által meghatározott háromszögben ezzel szemben lesz a

Vektorok. Vektoron irányított szakaszt értünk.

Gyökvonás. Hatvány, gyök, logaritmus áttekintés

Formális nyelvek és automaták

6. előadás A reguláris nyelvek jellemzése 2.

PÉLDA: Négyezer-hatszázöt Jel Szám

ZH feladatok megoldásai

Numerikus módszerek 2.

PÉLDA: Négyezer-hatszázöt Jel Szám

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

KOVÁCS BÉLA, MATEMATIKA I.

A digitális számítás elmélete

6. előadás A reguláris nyelvek jellemzése 2.

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Végeredmények, emelt szintû feladatok részletes megoldása

Néhány szó a mátrixokról

A vasbeton vázszerkezet, mint a villámvédelmi rendszer része

4. előadás Determinisztikus véges automaták

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Határozzuk meg, hogy a következő függvényeknek van-e és hol zérushelye, továbbá helyi szélsőértéke és abszolút szélsőértéke (

M. 2. Döntsük el, hogy a következő két szám közül melyik a nagyobb:

9. Exponenciális és logaritmusos egyenletek, egyenlőtlenségek

Chomsky-féle hierarchia

Egy látószög - feladat

V. Koordinátageometria

Néhány egyszerű tétel kontytetőre

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

MATEMATIKA ÉRETTSÉGI október 25. KÖZÉPSZINT I.

MATEMATIKA FELADATLAP a 6. évfolyamosok számára

Programtervezési ismeretek

0.1 Deníció. Egy (X, A, µ) téren értelmezett mérhet függvényekb l álló valamely (f α ) α egyenletesen integrálhatónak mondunk, ha

Formális nyelvek és gépek (definíciós és tétel lista - 09/10/2)

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Ellenállás mérés hídmódszerrel

1144 PROGRAMOZÁSMÓDSZERTAN, PROGRAMOZÁSI NYELVEK

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

1. megold s: A keresett háromjegyű szám egyik számjegye a 3-as, a két ismeretlen számjegyet jelölje a és b. A feltétel szerint

Formális nyelvek és automaták vizsgához statisztikailag igazolt várható vizsgakérdések

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

MATEMATIKA FELADATLAP a 8. évfolyamosok számára

Az integrálszámítás néhány alkalmazása

Atomataelmélet: A Rabin Scott-automata

Átírás:

Budpesti Műszki és Gzdságtudományi Egyetem dr. Friedl Ktlin Nyelvek és Automták Óri jegyzet, 200. Szerkesztette: Horváth Ádám Mészégető Blázs

Előszó A jelen jegyzet elsősorbn Budpesti Műszki és Gzdságtudományi Egyetem (BME) mesterképzéses mérnökinformtikus hllgtói számár készült. A Nyelvek és Automták tntárgy képzés egy kivétellel összes szkirányán kötelező, ezért reményeink szerint sok diáktársunk segítségére lehet jegyzet. A Szerkesztők mguk is tárgy hllgtói voltk 200/20-es tnév első félévében, ezért jelenlegi, első kidás ezen félév elődási lpján íródott. Felépítésében, szerkesztettségében, kidolgozottságbn, szó- és ábrhsználtábn ngy mértékben épít z ott leírtkr és elhngzottkr. A legngyobb igyekezetünk ellenére előfordulht, hogy kedves Olvsó hibát tlál Jegyzetben. Minden hibjelzést szívesen fogdunk, kérjük ez esetben küldje el nekünk mesz86@gmil.com címre! Külön köszönet tntárgy elődójánk, dr. Friedl Ktlinnk, ki készségesen válszolt kérdéseinkre, ezzel is segítve munkánkt. Köszönjük, hogy lektorálás munkáját is elválllt. A jelen jegyzet jelentős része szellemi termék. A Szerkesztők kérése szerzői jog tekintetében következő. A Jegyzet szbdon felhsználhtó, másolhtó, terjeszthető, de kizárólg ingyenesen! Kérjük minden esetben jelölje meg forrást, tüntesse föl z Elődó és Szerkesztők nevét! Sikeres felkészülést kívánunk: Szerkesztők. 2

Trtlomjegyzék. Reguláris nyelvek és véges utomták 4.. Definíciók........................................ 4.2. Véges utomták.................................... 5.3. Hiányos véges utomták............................... 6.4. Nemdeterminisztikus véges utomták........................ 9.5. Megkülönböztethetőség, ekvivlenci osztályok................... 3.6. Reguláris kifejezések.................................. 9 2. Nyelvtnok 22 2.. Nyelvtnok....................................... 22 2.2. Reguláris nyelvtnok.................................. 24 3. CF nyelvek és veremutomták 28 3.. Veremutomták.................................... 29 3.2. CF nyelvek átlkítás................................. 33 3.3. CF nyelvek tuljdonsági............................... 38 4. Turing-gépek 43 4.. Alpfoglmk...................................... 43 4.2. Speciális Turing-gépek................................. 44 4.3. Rekurzív és Rekurzívn felsorolhtó nyelvek..................... 47 4.4. Műveletek R és RE nyelvekkel............................. 48 4.5. Az L ε és z L nyelv.................................. 49 4.6. Nyelvi tuldonságok és nyelvosztályok........................ 5 4.7. A Dominó problém.................................. 52 4.8. Post megfeleltetés problémáj............................. 53 4.9. CF nyelvtnokkl kpcsoltos eldönthetetlenségi eredmények........... 54 4.0. Felsorolós Turing-gépek................................ 56 4.. Nemdeterminisztikus Turing-gépek.......................... 58 5. Bonyolultságelmélet 6 5.. A számítás költsége................................... 6 5.2. Nyelvosztályok..................................... 62 5.3. Az. Chomsky osztály................................. 67 5.4. Kolmogorov-bonyolultság............................... 68 3

. fejezet Reguláris nyelvek és véges utomták.. Definíciók Abc: Egy véges, nem üres hlmz. Jele: Σ Szó: Σ elemeiből képzett véges hosszú sorozt. Például: Σ = {0, }, kkor szvk lehetnek: 00, 0, ε (üres szó) Az i hosszú szvk hlmzát így jelöljük: Σ i. Például: Σ 0 = {ε} Az összes Σ feletti szó jelölése: Σ Nyelv: L Σ Példák nyelvekre: L = L 2 = {ε} L 3 = páros sok -t trtlmzó szvk. Σ = Σ i i=0.. Feldt. Mekkor memóri szükséges nnk eldöntéséhez, hogy egy dott szó beltrtozik nyelvbe z lábbi nyelvek esetén? Minden szót csk egyszer olvsunk be. Σ = {0, }; L = Nullávl kezdődő szvk. Σ = {0, }; L 2 = Nullár végződő szvk. Σ = {0, }; L 3 = Azok szvk, melyekben z utolsó előtti krkter null. Σ = {0, }; L 4 = Páros sok egyest trtlmzó szvk. Σ = {(, )}; L 5 = A helyes zárójelezések... Megoldás. L és L 2 esetén elegendő bit, mert csk z első illetve z utolsó számjegyet kell nyilvántrtnunk. L 3 esetén két bit elegendő, mert z utolsó és z utolsó előtti számjegyre vn szükségünk. L 4 esetén ismét elég egyetlen bit, melyet átbillentünk minden egyes beolvsáskor. L 5 esetén figyelnünk kell zárójelezés mélységét. Egyrészt minden kinyitott zárójelet be kell zárnunk másrészt zárójelezés mélysége nem mehet null lá. Például egy rossz zárójelezés: ) (. Így összesen tehát nyitó-csukó tárolásához elegendő bit kell plusz még egy bit. 4

.2. VÉGES AUTOMATÁK 5.2. Véges utomták Definíció (Véges utomt). M = (Q, Σ, δ, q 0, F ), hol: Q z utomt állpotink hlmz. Véges, nem üres hlmz. Σ z utomt bc-je. Véges, nem üres hlmz. δ z állpotátmeneti függvény. Q Σ Q q 0 kezdőállpot, q 0 Q F z elfogdó állpotok hlmz, F Q Számítás: A w = 2... n Σ szó esetén r 0 r... r n Q egy számítás, h: r 0 = q 0 és r i = δ(r i, i ), i =... n esetén. M elfogdj w szót: h w-hez trtozó számítás esetén r n F. M áltl elfogdott nyelv: zoknk szvknk hlmz, miket M elfogd. Jele: L(M)..2. Feldt. Adjuk meg zt z utomtát, mely nullár végződő szvkt trtlmzó nyelvet fogdj el! Σ = {0, }..2. Megoldás. Q = {A, B} Σ = {0, } δ(a, 0) = B δ(a, ) = A δ(b, 0) = B δ(b, ) = A q 0 = A F = {B} Az állpotátmeneti függvény táblázttl is megdhtó: 0 A B A B B A Az utomtát irányított gráffl is ábrázolhtjuk. A csomópontok z állpotokt, z élek pedig átmeneti függvényt jelölik. A kezdő állpotot egy bemenő nyílll, z elfogdó állpotokt dupl körvonlll illusztráljuk. A 0 B 0.3. Feldt. Adjuk meg zt z utomtát, mely páros sok null és pártln sok egyest trtlmzó szvkt fogdj el! Σ = {0, }.

6. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK.3. Megoldás. Az utomt z lábbi: Páros Páros Páros Pártln 0 0 0 0 Pártln Pártln Páros Pártln.4. Feldt. Mely szvkt fogdj el z lábbi utomt? Σ = {0, }..4. Megoldás. Az egyes állpotok jelentése: A: nincs benne egyes 0 0 A B C 0, B: vn benne egyes, és végén páros számú null vn C: vn benne egyes, és végén pártln számú null vn Ebből B z elfogdó állpot, ezért z utomt zokt szvkt fogdj el, melyekben vn egyes, és végén páros számú null vn..3. Hiányos véges utomták Definíció. Hiányos véges utomt esetén z állpotátmeneti függvény (δ) nincs mindenhol definiálv... Péld. Az lábbi hiányos véges utomt zokt szvkt fogdj el, melyek 0 sorozttl kezdődnek, Σ = {0, }. 0, 0 A B C.. Tétel. Minden hiányos véges utomt kiegészíthető teljes véges utomtává úgy, hogy z elfogdott nyelv nem változik... Bizonyítás. Vegyünk fel egy új állpotot, és minden hiányzó átmenetet kössünk be ebbe z új állpotb. Az új állpotból bármely bemenet htásár mrdjunk z új állpotbn. Az így kpott utomt egy olyn teljes véges utomt mely éppen ugynzt nyelvet fogdj el, mint melyikből kiindultunk..2. Péld. A 0 sorozttl keződő szvkt elfogdó utomtát például következőképpen egészíthetjük ki:

.3. HIÁNYOS VÉGES AUTOMATÁK 7 0, 0 A B C 0 D 0, Definíció. L nyelv reguláris, h létezik olyn M véges utomt, hogy L(M) = L..2. Tétel. L és L 2 reguláris, kkor L L 2 L L 2 L L 2 is reguláris..2. Bizonyítás. Konstrukcióvl. Legyenek M és M 2 z egyes nyelveket elfogdó utomták: M = (Q, Σ, δ, q, F ) M 2 = (Q 2, Σ 2, δ 2, q 2, F 2 ) Hozzunk létre egy olyn M = (Q, Σ, δ, q 0, F ) utomtát, mely éppen két nyelv unióját, metszetét, illetve különbségét fogdj el! Ekkor M utomt: Σ = Σ Σ 2. Előfordulht, hogy Σ-r nézve M és M 2 hiányos. Ekkor egészítsük ki őket korábbi tétel lpján, hogy teljesek legyenek! Az új állpothlmz legyen z előzőek Descrtes-szorzt: Q = Q Q 2. Az új állpotátmeneti függvényt lkítsuk úgy, hogy z egyes koordináták mentén mozogjunk z egyes utomták állpotátmeneti függvénye szerint: δ((q, q ), ) = (δ (q, ), δ 2 (q, )) Az új kezdőállpot: q 0 = (q, q 2 ) Az elfogdó állpotok hlmz: Únió esetén: F = {(q, q ) : (q F ) (q F 2 )} Metszet esetén: F = {(q, q ) : (q F ) (q F 2 )} Különbség esetén: F = {(q, q ) : (q F ) (q / F 2 )} Az így létrehozott M utomt éppen megfelelő w szvkt fogdj el, mert h w L i, kkor M megfelelő állpotánk i-edik koordinátáj elfogdó z M i utomtábn, és minden w szó esetén hozzátrtozó M-beli számítás i. kooridnátáj egy számítás z M i utomtábn..3. Tétel. Σ és z üres nyelv reguláris.

8. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK.3. Bizonyítás. Egy-egy utomtávl bizonyítjuk tételt. Az lábbi utomt mindent elfogd: Σ Az lábbi utomt semmit sem fogd el: Σ.4. Tétel. H L nyelv reguláris, kkor L nyelv is reguláris..4. Bizonyítás. Az.3 és z.2 tételek egyszerű következménye: L = Σ L reguláris. Megjegyzés: Közvetlenül is létrehozhtunk L-t elfogdó utomtát, h L utomtájábn z elfogdó és nem elfogdó állpotokt felcseréljük..5. Feldt. Hozzunk létre olyn utomtát, mely z lábbi L nyelvet fogdj el! Σ = {, b} L = {w Σ : w első és utolsó krktere megegyezik, w hossz }.5. Megoldás. Legyen L = L L b következőképpen: L : L : {w Σ : w első és utolsó krktere =, w hossz } L b : {w Σ : w első és utolsó krktere = b, w hossz } b A B C b b D, b L b : b b X Y Z b T, b

.4. NEMDETERMINISZTIKUS VÉGES AUTOMATÁK 9 A korábbi konstrukció lpján előállíthtjuk két utomt únióját, zonbn sok olyn állpot lesz, melyet kezdőállpotból nem érhetünk el. Érdemes ezért kiinduló állpotból végigkövetni z elérhető állpotokt és így létrehozni z úniónk megfelelő utomtát. A végeredmény tehát: b AX BT CT b b DY b DZ b.4. Nemdeterminisztikus véges utomták Definíció (Nemdeterminisztikus véges utomt). A nemdeterminisztikus véges utomták esetén egy bemenet htásár több állpotb is léphetünk és kár bemenet nélkül is átléphetünk egyik állpotból egy másikb. Formálisn: M = (Q, Σ, δ, q 0, F ) gép esetén Q, Σ, q 0 és F jelentése változtln, zonbn z átmeneti függvény ezúttl: δ(q, ) Q, hol q Q és Σ {ε}. Számítás: r 0 = q 0 és r... r k, hol r i δ(r i, ε) δ(r i, j ), h z i-edik lépésig j -ig olvstuk szót, és r k -ig elolvstuk z egész szót. M elfogdj w szót: h vn olyn számítás, melyre r k F..3. Péld. A következő nemdeteminisztikus véges utomt 0-re végződő szvkt fogdj el: 0, 0 A B C

0. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK Ugyenez determinisztikus véges utomtávl: 0 00 0 0 0 0 0-0 0 0 0.5. Tétel. Az L nyelvhez létezik nemdeterminisztikus véges utomt L nyelv reguláris..5. Bizonyítás. Külön bizonyítjuk két irányt. iránybn: L reguláris L-hez determinisztikus véges utomt L-hez nemdeterminisztikus véges utomt, mert véges utomt egyben nemdeterminisztikus is. iránybn: Legyen z L-hez trtozó nemdeterminisztikus véges utomt M = (Q, Σ, δ, q 0, F )! Ehhez hozzunk létre olyn M = (Q, Σ, δ, q 0, F ) véges utomtát, hogy L(M ) = L(M)! Először tegyük fel, hogy nincs δ(q, ε) típusú átmenet. Ekkor M : Q = {R : R Q} Σ = Σ δ (R, ) = A konstrukció helyességének indoklás: r R q 0 = {q 0 } δ(r, ) F = {R : R F } H w L(M), kkor r 0, r... r k számítás, hogy r k F. R = δ ({r 0 }, ) r R R 2 = δ (R, 2 ) δ(r, 2 ) r 2 R 2. r k R k R k F Tehát h M utomt elfogdj w-t, kkor z M is. H w L(M ), kkor szóhoz trtozó R 0, R... R k számítás esetén R k F

.4. NEMDETERMINISZTIKUS VÉGES AUTOMATÁK k: r k R k, hogy r k F k : r k R k, melyre r k δ(r k, k ) k 2: r k 2 R k 2, melyből nemdeterminisztikus utomtábn z k, k lépésekkel r k -b juthtunk.. 0: r 0 R 0 = {q 0 }, melyre nemdeterminisztikus utomtábn z, 2... k lépésekkel r k -b juthtunk. Tehát összességében r 0 = q 0, r,..., r k számítás M-ben w szór, hogy r k F, zz h M elfogdj w szót, kkor M is. Most nézzük meg hogyn módosul konstrukció, h δ(q, ε) típusú átmeneteket is trtlmz M! Ehhez vezessük be z lábbi jelölést: E(R) = {q Q : R-ből q-b el lehet jutni csk ε éleken} R Ekkor fenti konstrukció következőképpen módosul: δ (R, ) = E(δ(r, )) r R q 0 = E({q 0 }) Az előző konstrukcióhoz hsonlón igzolhtó z új konstrukció helyessége is..4. Péld. A fenti konstrukcióvl állítsuk elő 0 végződésű szvkt elfogdó determinisztikus utomtát! Σ = {0, }. Nemdeterminisztikus utomt: 0, 0 A B C Determinisztikus utomt: 0 0 A AB AC 0.6. Feldt. Milyen nyelvet fogd el z lábbi utomt? Készítsük el z ugynezt nyelvet elfogdó determinisztikus utomtát! Σ = {0, }. 0, 0, 0, ε A B C D

2. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK.6. Megoldás. L(M) : Vn benne 0 vgy. 0 A AB 0 C AC 0 AB CD 0 AD AC D 0 0 A konstrukcióból kpott determinisztikus utomt jelen esetben egyszerűsíthető z elfogdó állpotok összevonásávl. Az ε állpotok segítségével egyszerűen létrehozhtjuk zt z utomtát, mely két nyelv únióját fogdj el. Legyen L és L 2 két nyelv. Vlmint z őket elfogdó utomták rendre M és M 2. Ekkor két nyelv únióját z lábbi utomt fogdj el: ε M ε M 2.7. Feldt. Az előző konstrukció segítségével djuk meg zt determinisztikus utomtát, mely z lábbi nyelvek únióját fogdj el! Σ = {}. L : páros sok -ból álló szvk. L 2 : háromml oszthtó drb -ból álló szvk..7. Megoldás. Az L nyelvhez trtózó M utomt: A B Az L 2 nyelvhez trtózó M 2 utomt: C D E Az úniót elfogdó nemdeterminisztikus utomt:

.5. MEGKÜLÖNBÖZTETHETŐSÉG, EKVIVALENCIA OSZTÁLYOK 3 ε A B X ε C D E Az előző utomt determinizálv: XAC BD AE BC AC BE AD Vegyük észre, hogy z XAC állpot összevonhtó z AC -vel..5. Megkülönböztethetőség, ekvivlenci osztályok Definíció. Nyelvek konktenáltján zt nyelvet értjük, melynek mindzok szvk elemei, melyeket szét lehet vágni két részre úgy, hogy z első rész z első nyelv eleme, második rész másodiké. Formálisn: L L 2 = {w w 2 : w L, w 2 L 2 }.6. Tétel. L és L 2 reguláris, kkor L L 2 is reguláris..6. Bizonyítás. Mivel L és L 2 reguláris, léteznie kell olyn M és M 2 utomtáknk, melyekre: L(M ) = L és L(M 2 ) = L 2. Hozzuk lére L L 2 nyelvet elfogdó utomtát következőképpen: M elfogdó állpotiból induljon egy-egy ε átmenet M 2 kezdőállpotáb. Az utomt kezdőállpot legyen zonos M kezdőállpotávl. Az utomt elfogdó állpoti legyenek M 2 elfogdó állpoti. ε M M 2 ε Definíció. Az L nyelv trnzitív lezártj: z L nyelv szviból null vgy több drbot egymás után konktenálunk. Formálisn: L = {w w 2... w k, w i L, k 0}.7. Tétel. H L reguláris, kkor L is reguláris.

4. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK.7. Bizonyítás. Az lábbi utomt L nyelv trnzitív lezártját fogdj el, h L(M) = L. ε ε M ε.5. Péld. Néhány péld trnzitív lezártr: L : 0-re végződő szvk, Σ = {0, } L : {ε} L L : pártln sok egyest trtlmzó szvk, Σ = {0, } L : {ε} { Egyest trtlmzó szvk. } Definíció. H L Σ egy nyelv és x Σ, kkor: L/x = {y Σ, xy L}.6. Péld. Néhány péld z L/x jelölés jelentésére. Legyen Ekkor: L : 0-gyel kezdődő szvk! L 2 : Páros sok egyest trtlmzó szvk! L /0 = Σ L /0 = L 2 /0 = L 2 L 2 /00 = L 2 Minden nyelvre: L/ε = L Definíció. H x, y Σ, kkor x és y z L nyelvvel megkülönböztethetetlen, h L/x = L/y. megkülönböztethető, h L/x L/y, zz z Σ, hogy (xz L és yz / L) vgy (xz / L és yz L). H x és y megkülönböztethető L-el és L reguláris, vlmint M(L) = L, kkor M utomtábn kezdőállpotból x és y szvk htásár biztosn különböző állpotokb jutunk. y q 0 x

.5. MEGKÜLÖNBÖZTETHETŐSÉG, EKVIVALENCIA OSZTÁLYOK 5 Következmény: H t drb páronként megkülönböztethető szó L-hez és L(M) = L, kkor M-nek leglább t állpot vn..7. Péld. Legyen L 0-re végződő szvkból álló nyelv: x = 0 és x 2 = szvkt z = megkülönbözteti egymástól. x 3 = 0-et z 2 = ε különbözteti meg x -től és x 2 -től..8. Péld. Legyen L = {ww : w Σ }, vgyis mindent kétszer mond nyelv. Ekkor bármely két k hosszú szó megkülönböztethető egymástól (sját mguk segítségével). Mivel ez minden k-r teljesül, ezért nem létezhet nyelvhez véges utomt, vgyis L nem reguláris. Figyeljük meg, hogy megkülönböztethetetlenség egy olyn reláció két szó között, mely: szimmetrikus, hiszen h z egyik szó megkülönböztethetetlen másiktól, kkor másik is z egyiktől reflexív, mivel minden szó megkülönböztethetetlen sját mgától trnzitív, mi definíció következménye A fenti tuljdonságok mitt megkülönböztethetetlenség egy ekvivlencireláció, mely szvkt ekvivlenciosztályokb osztj, úgy hogy z egyes osztályokb trtozó szvk mind páronként megkülönböztethetetlenek egymástól. A következőképpen beláthtjuk, hogy minden véges utomt esetén z utomt áltl elfogdott nyelv szvi legfeljebb Q ekvivlenci osztályb sorolhtók. Vegyük z lábbi L q részhlmzit nyelvnek: L q = {x Σ : x q állpotbn ér véget} Minden ilyen L q vlmely ekvivlenciosztály részhlmzát képezi. Ekvivlens állpotok: p és q állpot ekvivlens, h y Σ esetén p-ből y szó beolvsásávl pontosn kkor érkezünk elfogdó állpotb, h q-ból is. Az állpotok közötti ekvivlenci szintén ekvivlencireláció, így z utomt állpotit ekvivlenciosztályokr osztj... Algoritmus (Ekvivlenci osztályok meghtározás). Az lgoritmus teljes véges determinisztikus utomtából indul ki. Az állpotok hlmzát lépésenként fogjuk felosztni egyre kisebb hlmzokr. Először osszuk fel A = F és A 2 = Q F hlmzokr. Ezután minden lépésben vizsgáljuk meg z eddigi hlmzinkbn lévő állpotok viselkedését minden Σ krkterre. H z illető állpothlmz elemei nem zonosn viselkednek, zz vn olyn krkter, melynek htásár z egyik elemből más hlmzb jutunk, mint másikból, kkor vágjuk szét eszerint hlmzt. Az lgoritmusnk kkor vn vége, h vlmely lépésben már semelyik hlmzt sem kellett tovább osztni. Az lgoritmus biztosn véget ér, hiszen véges sok állpotunk vn. A kilkult A, A 2... A k állpothlmzok z utomt állpotink ekvivlenci osztályi. A kpott osztályon definiálhtunk egy utomtát úgy, hogy z állpotátmenetek éppen zok legyenek, mint z állpothlmzok közötti állpotátmenetek. Ez z utomt ugynzt nyelvet fogdj el, mint z eredeti..8. Tétel. Az. lgoritmussl kpott utomt minimális számú állpotot trtlmz. (A teljes véges determinisztikus utomtákt tekintve.).8. Bizonyítás. Vegyük z x, y Σ megkülönböztethetetlen szvkt (L/x = L/y), melyek z M utomtábn kezdőállpotból rendre p és q állpotb visznek. M-ben ekkor p és q ekvivlens, hiszen ellenkező esetben létezne olyn folyttás x-nek és y-nk, mivel meg lehetne őket különböztetni. Az lgoritmus szerint létrejövő utomtábn ekkor p és q biztosn ugynbb

6. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK z új állpotb kerül. Tehát bármely két ekvivlens szóhoz trtozó állpot is ekvivlens lesz. Így szvkon definiált ekvivlenci osztályok megfelelnek z állpotokon definiált ekvivlenci osztályoknk. Az utomtánk leglább nnyi állpot kell, hogy legyen, mint hány ekvivlenci osztály vn szvkr nézve. Mivel z állpotok ekvivlenci osztályiból ugynnnyi vn, mint szvk ekvivlenci osztályiból, így z utomt állpotink szám minimális..8. Feldt. A lgoritmus hsználtávl minimlizáljuk korábbi utomtánkt, mely 0-re végződő szvkt trtlmzó nyelvet fogdj el. 0 0 0 0 00 0 0 S 0 0 0 0.8. Megoldás. Először két állpothlmzunk lesz: A = {S, A, 00, 0,, B}, A 2 = {0}. A minden eleme esetén 0 htásár A -ben mrdunk, míg htásár S, és B esetén A -be, A, 00 és 0 esetén A 2 -be jutunk. A állpotot felosztjuk A = {S,, B}, A 3 = {A, 00, 0} állpotokr. (A 2 -t nem kell vizsgálni, mivel eleve csk egy állpotot trtlmz, így nem oszthtó tovább.) Az így kilkult A, A 2 és A 3 állpotok z ábécé minden elemére egységesen viselkednek, így ezt már nem tudjuk tovább felosztni. A végeredmény z lábbi: 0 0 S, B, 0 0 0 A, 00, 0.2. Algoritmus (Tábláztos módszer minimlizálásr). Az lábbi módszer kkor hsznos, h fenti minimlizáló lgoritmust implementálni krjuk. Tekintsük z előző feldtbn megdtott utomtát. A következő tábláztbn z egyes elemek zt muttják meg, hogy z illető sornk és oszlopnk megfelelő állpotokt leglább mekkor hosszúságú szvk különböztetik meg. Mivel táblázt z főátlór szimmetrikus és főátló elemeinek sincs értelme, tekinksük eleve csk z lsó háromszöget:

.5. MEGKÜLÖNBÖZTETHETŐSÉG, EKVIVALENCIA OSZTÁLYOK 7 S A B 00 0 0 S A B 00 0 0. Első lépésben írjunk nullát minden olyn párhoz, melyek közül z egyik állpot elfogdó, másik nem. Ugynis ezeket már null hosszú szvk is megkülönböztetik. S A B 00 0 0 0 0 0 0 0 0 S A B 00 0 0 2. Ezután z i-edik lépésben vizsgáljuk meg táblázt üres elemeit, hogy megfelelő állpotpárból egy krkter htásár nemüres mezőbe jutunk-e z ábécé egyes elemeivel. H igen, írjunk i-t z dott mezőbe. Jelen esetben például 00 S pár esetén 0 htásár 00 A mezőbe, míg htásár 0 B mezőbe jutunk, melyek közül z utóbbi nemüres, ezért 00 S mezőbe egy -est kell írnunk. A teljes első menet után táblázt állpot: S A B 00 0 0 0 0 0 0 0 0 S A B 00 0 0 3. Az lgoritmus véget ér, h vlmelyik menetben nem töltöttünk ki új mezőt. Jelen esetben z lgoritmus z első menet után véget ér, így fenti táblázt egyben végeredmény is. Ezután minden üresen mrdt mező egy-egy ekvivlens állpotpárt jelképez. A tábláztos módszer segítségével z lgoritmus lépésszám is megbecsülhető: O( Q 2 Σ Q ) = O( Q 3 Σ ) A Q 2 -es tg felső becslés táblázt méretére, míg Σ z egyes próbálkozások számát jelöli. Az Q -s tg menetek mximális szám, hiszen bármely állpotot, legfeljebb ennyiszer vághtunk szét. Megjegyezzük, hogy optimális esetben z lgoritmus lépésszám lehet O( Q 2 Σ ) is. Mivel z lgoritmus minden esetben minimális állpotszámú utomtát hozz létre, z lgoritmus eredménye független kiindulási utomtától és cskis nyelvtől függ. Definíció. A fenti minimlizáló lgoritmussl létrehozott utomt minimálutomt.

8. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK.9. Lemm (Pumpálási lemm). Minden L reguláris nyelvhez létezik p pumpálási hossz, hogy x L és x p esetén létezik olyn x = uvw felosztás, mire: uv p v uv k w L, k 0 Ez tehát zt jelenti, hogy szó középső része pumpálhtó. Fontos zonbn megjegyezni, hogy kár z is lehetséges, hogy z illető reguláris nyelv egyáltlán nem is trtlmz n-hosszú vgy hosszbb szvkt, tehát nem minden reguláris nyelvben vnnk pumpálhtó szvk..9. Bizonyítás. Mivel L reguláris, biztosn létezik hozzá teljes determinisztikus véges utomt. Legyen p egy ilyen utomt állpotink szám. Tekintsünk most egy x leglább p hosszú szóhoz trtozó számítást. A számítás során leglább p élen keresztül mentünk, ezért leglább p+ állpotot érintettünk. Mivel z utomtánknk ennél kevesebb állpot vn, biztosn létezik egy olyn állpot, mit leglább kétszer érintünk. Legyen z első olyn állpot q, mit másodszor is érintünk. Legyen u z z élsorozt, mely kiindulási állpotból q első érintéséig trt, v legyen q első és második érintése közötti élsorozt, míg w többi él. Az u és v együttes hossz biztosn kisebb vgy egyenlő p hiszen ellenkező esetben már korábbn is lett voln ismétlődő állpot. Mivel z uvw szó kiindulási állpotból elfogdób visz, és v szksz tuldonképpen egy hurok z uv k w szvk is kiindulási állpotból elfogdób visznek. v u q w.9. Feldt. Mutssuk meg, hogy z L = {0 i i, i 0} nyelv nem reguláris! L szövegesen foglmzv z nyelv, mely zokt szvkt trtlmzz, melyekben vlhány drb 0, mjd ugynennyi vn..9. Megoldás. Indirekt úton bizonyítunk. Tegyük fel, hogy L reguláris, és p pumpálási hossz. A 0 p p szó nyilván benne vn L-ben és hossz ngyobb, mint p. Ennek szónk bármilyen uvw felbontásábn, hol z uv hossz p-nél nem ngyobb és v nem üres, v szó cskis nullákból áll. A v szót pumpálv így biztosn kikerülünk nyelvből, vgyis z indirekt megközelítés ellentmondásr vezetett..0. Feldt. Mutssuk meg, hogy z L = {Ugynnnyi nullát és egyet trtlmzó szvk} nyelv nem reguláris!.0. Megoldás. Az 0 n n szó szintén benne vn nyelvben így z előző bizonyítás itt is megfelelő. Másik módszer: legyen z előző feldtbn bemuttott nyelv L, vlmint legyen L 2 = {0 i j, i 0, j 0}, vgyis z nyelv, hol melynek szvibn 0-k megelőzik z -eseket. Ekkor: L L 2 = L Könnyen megmutthtó, hogy L 2 reguláris. És h L reguláris lenne, kkor L -nek is regulárisnk kellene lennie, ezért L nem lehet reguláris.

.6. REGULÁRIS KIFEJEZÉSEK 9.. Feldt. Mutssuk meg, hogy z L = Visszfelé is ugynz nyelv nem reguláris... Megoldás. Indirekt úton bizonyítunk. Tegyük fel, hogy L reguláris, és n pumpálási hossz. Legyen x szó következő: x = }.{{.. } 0 }.{{.. } L n n Az x n nyilván teljesül, továbbá ennek szónk bármilyen uvw felbontásábn, hol z uv hossz n-nél nem ngyobb és v nem üres, v szó cskis egyesekből áll. A v szót pumpálv így biztosn kikerülünk nyelvből, vgyis z indirekt megközelítés ellentmondásr vezetett..2. Feldt. Mutssuk meg, hogy z lábbi nyelv megfelelő szvi pumpálhtók, de nyelv nem reguláris: L = { i b j c j : i, j 0} {b j c k : j, k 0}.2. Megoldás. H vesszük megfelelő hosszúságú szvit, kkor zokt lemmánk megfelelő szbályok szerint fel tudjuk úgy bontni három részre, hogy középső rész csk -kt, vgy csk b-ket trtlmzzon. Ekkor középső rész pumpálhtó lesz. Másrészt b i és b j szvk minden esetben megkülönböztethetőek nyelvvel h i j, ezért végtelen sok olyn szó vn, mely L nyelvvel megkülönböztethető, tehát L nem reguláris..6. Reguláris kifejezések Definíció (Reguláris kifejezés). H Σ egy ábécé, kkor, ε és Σ reguláris kifejezés. H r és r 2 reguláris kifejezés, kkor: r + r 2 r r 2 r is reguláris kifejezések. Nézzük meg mit jelent reguláris kifejezések definíciój nyelvekkel leírv: Reguláris kifejezés Nyelv r = L = r = ε L = {ε} r = L = {} r = r + r 2 L = L L2 r = r r 2 L = L L 2 r = r L = L.. táblázt. Reguláris kifejezések definíciój..9. Péld. Néhány péld reguláris kifejezések és nyelvek közötti kpcsoltr. Reguláris kifejezés Nyelv ( + b) -ból és b-ből álló szvk 0 0 drb egyest trtlmzó szvk (0 + ) (0 + ) leglább egy drb egyest trtlmzó szvk ε + 0(0 + ) 0 + (0 + ) + 0 + zon szvk, melyekben z első krkter zonos z utolsóvl.2. táblázt. Példák reguláris kifejezésekre.

20. FEJEZET. REGULÁRIS NYELVEK ÉS VÉGES AUTOMATÁK Reguláris kifejezések tuljdonsági: r + = r r + ε = r ε-t generálj r rε = r r = = ε ( + ε) = ( + ε)( + ε) =.0. Tétel. L nyelv leírhtó reguláris kifejezéssel L reguláris..0. Bizonyítás. A két irányt külön bizonyítjuk. iránybn: z, {ε} és {} reguláris nyelvek, vlmint z únió, konktenálás és trnzitív lezárás nem vezet ki reguláris nyelvek köréből, ezért L reguláris. iránybn: Legyen M z L-hez trtozó utomt. Definiáljuk következő nyelveket minden p, q Q-r: L(p, q) = {x Σ : p-ből indulv x q -b visz.} Ekkor: L = L(q 0, q) q F Így elegendő lenne z L(p, q) típusú nyelvekhez reguláris kifejezést tlálni. Vezessük be ehhez következő segédnyelveket: L(p, q, t) ={x Σ : p-ből indulv x q -b visz úgy, hogy közbenső állpotok z {... t} hlmzból kerülnek ki.} A definíció szerint h Q = {... n}, kkor L(p, q) = L(p, q, n), mivel így minden állpot meg vn engedve közbenső állpotnk. Vegyük most szemügyre z L(p, q, 0) nyelvet. H M-ben vn p és q között él, kkor p és q közötti éleken tlálhtó betűk lesznek nyelv elemei, vlmint h p = q, kkor ε is. Így tehát L(p, q, 0) nyelvhez tláltunk reguláris kifejezést. Tegyük most fel, hogy L(p, q, t )-re már tlátunk reguláris kifejezést (legyen ez r(p, q, t )), és mutssuk meg, hogy ekkor L(p, q, t)-re is tlálhtó. A p állpotból most úgy kell q-b jutnunk, hogy ehhez z {... t} hlmz állpotit hsználhtjuk közbenső állpotnk. Ezt megtehetjük úgy, hogy z {... t } hlmz állpotit hsználhtjuk közbenső állpotnk, vgy megtehetjük úgy is, hogy p-ből t- be megyünk {... t } állpotok segítségével, itt tetszőlegesen sok (kár null) hurkot teszünk meg ugynezen közbülső állpotokon át, mjd t-ből q-b megyünk szintén z {... t } állpotok segítségével. Azz: r(p, q, t) = r(p, q, t ) + r(p, t, t )r(t, t, t ) r(t, q, t )

.6. REGULÁRIS KIFEJEZÉSEK 2 Megyjegyzés: z iménti lgoritmus bbn z esetben is működik, h z utomt nem determinisztikus..3. Feldt. Adjuk meg z lábbi utomtávl leírt nyelvhez trtozó reguláris kifejezést!, b b 2.3. Megoldás. Nézzük először z r(p, q, 0) típusú kifejezéseket: Hsználv z előző bizonyításbn leírt képletet: r(p,, 0) r(p, 2, 0) p = + ε b p = 2 + b + ε r(,, ) = r(,, 0) + r(,, 0)r(,, 0) r(,, 0) = ( + ε) + ( + ε)( + ε) ( + ε) = r(, 2, ) = r(, 2, 0) + r(,, 0)r(,, 0) r(, 2, 0) = b + ( + ε)( + ε) b = b + b = b És így tovább, t = -re reguláris kifejezések: t = 2-re reguláris kifejezések: r(p,, ) r(p, 2, ) p = b p = 2 + b + ε r(p,, 2) r(p, 2, 2) p = b( + b) p = 2 ( + b) Az L-hez trtozó reguláris kifejezés r(, 2, 2), zz: b( + b).

2. fejezet Nyelvtnok 2.. Nyelvtnok Definíció (Nyelvtn). G = (V, Σ, S, P ), hol: V változók hlmz, egy véges nem üres hlmz Σ z ábécé, egy véges nem üres hlmz S V kezdő szimbólum P levezetési (produkciós) szbályok hlmz, egy véges nem üres hlmz A levezetési szbályokt következőképpen dhtjuk meg: P : α β α : (V Σ) V (V Σ) β : (V Σ) A levezetési szbály bl oldlán tehát mindenképpen áll leglább egy változó, mi mellett lehetnek további változók és z ábécé elemei, míg jobb oldlán tetszőlegesen állhtnk változók és z ábécé elemei. Definíció (Levezetés). Egy olyn S γ γ 2 γ n, hol: γ i = δ αδ 2 γ i+ = δ βδ 2 (α β) P δ, δ 2 (V Σ) Tehát egy levezetés során null vgy több levezetési szbályt lklmzunk egymás után. Definíció (Generált nyelv). H G egy nyelvtn, kkor: L(G) = {w Σ : S γ γ 2 w} Tehát generált nyelv mindzon szvkból áll, melyek S-ből levezethetőek. 2.. Feldt. Htározzuk meg L(G)-t, h G = ({S}, {, b}, S, P ), hol: P = {(S S), (S bs), (S ε)} Rövidebben ezt így is írhtjuk: S S bs ε 22

2.. NYELVTANOK 23 2.. Megoldás. Mivel szbályok ismételgetésével bármely szót kirkhtjuk: L(G) = {, b} 2.2. Feldt. Htározzuk meg L(G)-t, h G = ({S}, {, b}, S, P ), P = {S Sb ε}! 2.2. Megoldás. A generált nyelv minden elemében csk z összes után lehet b továbbá z -k és b-k szám zonos, ezért: L(G) = { n b n : n 0} A nyelvtn megdását tovább rövidíthetjük úgy, h csk levezetési szbályokt djuk meg, ezáltl: V levezetési szbályokbn tlálhtó összes ngybetű Σ levezetési szbályokbn tlálhtó összes kisbetű S z elsőként felírt szbály bl oldl 2.. Péld. Tekintsük z lábbi szbályokkl megdott nyelvtnt: S SBC } {{ } bc }{{} 2 CB BC (3) bb bb (4) bc bc (5) cc cc (6) Figyeljük meg levezetési szbályok lklmzásánk z lábbi sorrendjét (z láhúzott rész jelöli következőként lklmzott szbály bl oldlát): S SBC SBCBC 2 bcbcbc 5 bcbcbc 3 bcbbcc Láthtó, hogy szbályok lklmzás közben elkdtunk, vgyis szbályokt levezetés során nem lehet minden esetben tetszőlegesen lklmzni. Könnyen megmutthtó, hogy minden { i b i c i : i } típusú szó része G áltl leírt nyelvnek: S 2 γ... γ2 n+ 3 3 3 3 b CBCB... CB } {{ } } {{ } γ k γk+... n+ bb n C n+ 4 4 γ m n n 4 4 γ m+... n+ b n+ C n+ 5 n+ b n+ cc n 6 6 6 6 γ x γx+... n+ b n+ c n+ Beláthtó z is, hogy vlójábbn z ilyen típusú szvkkl teljes generált nyelvet lefedtük. 2.3. Feldt. Adjuk meg plindromok, zz visszfelé olvsv is ugynzt dó szvk nyelvtnát! (Σ = {, b}) 2.3. Megoldás. Egy lehetséges megoldás: S S bsb b ε Triviálisn igz, hogy z így generált nyelvben nem lehet olyn szó, mely nem plindrom. Azt is könnyű látni, hogy minden 0 és hosszú plindrom része generált nyelvnek. Mivel minden ennél hosszbb plindrom olyn, hogy z első és utolsó krktere zonos, kettő között pedig egy plindrom áll, generált nyelv minden plindromot trtlmz. 2.4. Feldt. Σ = {, b}, L = { Az -k szám zonos b-k számávl }. Adjunk olyn G nyelvtnt, mire L(G) = L. 2.4. Megoldás. Egy lehetséges megoldás: S SbS bss ε Minden esetben, mikor vlmelyik szbályt lklmzzuk, ugynnnyi -t rkunk szób, mint hány b-t, ezért biztosn nem generálunk olyn szót, mely nem trtozik nyelvbe.

24 2. FEJEZET. NYELVTANOK Bármely olyn w L esetén hol w < 3 igz, hogy G generálj, mert minden ilyen szót megkphtunk h megfelelő S-eket ε-nl helyettesítjük. A három vgy több krkterből álló szvk pedig következők lkúk lehetnek: w b vgy bw vgy w bbw vgy bw w b, hol w és w is L-bel szó. H z SbS illetve bss szbályokbn z utolsó S-t ε-nl helyettesítjük, kkor megkpjuk z első két típusb trtozó szvkt, h pedig nyelv egy w szvávl, kkor második két típusb trtozókt. Nyelvtnok osztályozás: A 2. táblázt bemuttj nyelvtnok Chomsky-féle osztályozását. Osztály Elnevezés Megkötések 3. osztály Reguláris Csk A B és A lkú szbályok lehetnek, illetve lehet S ε is, h S kezdőszimbólum és S semelyik szbály jobb oldlán nem szerepel Csk A α lkú szbályok lehetnek, hol α (V Σ) 2. osztály Környezet független (CF), α ε, illetve lehet S ε is, h S kezdőszimbólum és S semelyik szbály jobb oldlán nem szerepel Csk βaγ βαγ lkú szbályok lehetnek, hol α, β, γ (V Σ). osztály Környezet függő (CS), α ε, illetve lehet S ε is, h S kezdőszimbólum és S semelyik szbály jobb oldlán nem szerepel 0. osztály - - 2.. táblázt. Nyelvtnok osztályozás. Nyelvek osztályozás: Az L nyelv i-edik osztályú, h hozzá i-edik osztályú nyelvtn. Az i-edik osztályú nyelvek hlmzát L i -vel jelöljük. A definíció következménye: L 3 L 2 L L 0. 2.5. Feldt. Adjunk 3. osztályú nyelvtnt z {, b} nyelvre! 2.5. Megoldás. Egy lehetséges megoldás: 2.2. Reguláris nyelvtnok S ε A ba b A A ba b 2.. Tétel. L nyelvhez létezik 3. osztályú nyelvtn L reguláris. 2.. Bizonyítás. A két irányt külön bizonyítjuk: iránybn: Legyen M = (Q, Σ, δ, q 0, F ) z L nyelvet elfogdó utomt Az utomt lpján hozzunk létre egy olyn G = (V, Σ, S, P } nyelvtnt, hogy L(G) = L(M) = L legyen. Ehhez legyen V = Q, q állpothoz trtozó változót jelölje A q, S = q 0, vlmint z utomt minden δ(q, ) = p átmenetéhez vegyünk fel egy A q A p szbályt P -be. Ezen kívül vegyünk még fel minden δ(q, ) = p, p F átmenethez egy A q szbályt. Mivel reguláris nyelv levezetése esetén mindig csk egy nem behelyettesített változónk lehet, z ktuális behelyettesítetlen változónk megmuttj, hogy z utomt szerint, éppen melyik állpotbn lennénk. Már csk zt z esetet nem kezeltük, h q 0 F vgyis h ε L.

2.2. REGULÁRIS NYELVTANOK 25 Ehhez vegyük fel z S ε szbályt. Ez szbály megsértheti 3. osztályú nyelvtnok kritériumát, h vlmely másik szbálybn szerepel z S jobb oldlon, zz h q 0 -b megy átmenet M-ben. Ennek kezeléséhez még konstrukció lklmzás előtt vegyünk fel M-be egy extr q 0 állpotot. Minden q 0-bn végződő átmenetet töröljünk és vegyünk fel helyette egy ugynolyn, de q 0 -ben végződőt, vlmint minden q 0-ból induló átmenethez vegyünk fel egy ugynolyn, de q 0 -ből indulót. Az így keletkezett módosított utomtábn már nincs q 0 -bn végetérő átmenet így fenti konstrukció lklmzhtó rá, és z elfogdott nyelvet sem módosítottuk. iránybn: Legyen G = (V, Σ, S, P } z L nyelvet generáló nyelvtn. A nyelvtn lpján hozzunk létre egy M utomtát L-hez. Legyen Q = V {E}, hol E egy extr elfogdó állpot, továbbá legyen q 0 = S. Minden A B lkú szbályhoz vegyünk fel egy A-ból B- be menő krkterrel kiváltott átmentet, és minden A lkúhoz egy A-ból E-be menő krkterrel kiváltottt. H vn S ε szbály P -ben, kkor S állpot legyen elfogdó. Könnyen beláthtó, hogy L(G) = L(M). Megjegyzés: z így konstruált M utomt nem feltétlenül determinisztikus. 2.6. Feldt. Az iménti bizonyításbn hsznált konstrukció segítségével készítsünk utomtát z lábbi nyelvtnnl megdott nyelvhez: 2.6. Megoldás. A megoldás z lábbi: S B S A bb b A S bc B C bs C B ba b b b E b b A korábbn definiált reguláris nyelvtnokt szokták jobb-reguláris nyelvtnoknk is hívni, mivel z A B lkú kifejezésekben jobb oldlon vn változó. Ennek mintájár definiálhtunk bl-reguláris nyelvtnokt is. Definíció (Bl-reguláris nyelvtn). Olyn nyelvtn, mely esetén P -ben csk A B és A lkú szbályok lehetnek, illetve lehet S ε is, h S kezdőszimbólum és S semelyik szbály jobb oldlán nem szerepel. Beláthtó, hogy bl-reguláris nyelvtnok ugynúgy reguláris nyelveket generálják. A következő módon hozhtunk létre utomtát egy bl-reguláris nyelvtnból: Q = V q 0 (tehát q 0 egy új állpot) A C

26 2. FEJEZET. NYELVTANOK Minden A B lkú szbályhoz vegyünk fel egy B-ből A-b muttó -vl kiváltott átmenetet Minden A lkú szbályhoz vegyünk fel egy q 0 -ból A-b muttó -vl kiváltott átmenetet F = {S} 2.7. Feldt. Az lábbi bl-reguláris nyelvből hozzunk létre utomtát, mjd z utomt lpján konstruáljunk jobb-reguláris nyelvtnt: 2.7. Megoldás. Az utomt: A Bb b B B A b b q 0 B Ez lpján jobb-reguláris nyelvtn: S B ba b B B ba b Vegyük észre, hogy semelyik levezetés során sem lehet z A változót kiküszöbölni, ezért z A-t trtlmzó szbályokt elhgyhtjuk: S B b B B b Összegzés: H tehát L egy reguláris nyelv, kkor megdhtjuk nyelvtnnl, reguláris kifejezéssel vgy véges utomtávl. H z feldtunk, hogy eldöntsük hogy L üres-e, kkor véges utomt esetén kezdőállpotból indulv vlmilyen bejárássl ellenőrizhetjük, hogy eljuthtunk-e elfogdó állpotb, h pedig reguláris kifejezéssel vgy nyelvtnnl vn megdv, kkor átlkíthtjuk ezeket utomtává. H két reguláris nyelv zonosságát kell megállpítnunk, kkor hozzájuk trtozó utomtákt minimlizálhtjuk, mjd h z így kpott utomták izomorfk, kkor két nyelv is zonos. Vegyük észre, hogy ez egy ngyon speciális izomorfi vizsgált, mivel kezdő állpotokt megfeleltethetjük egymásnk és z állpotátmenetek segítenek további állpotok zonosításábn. H kérdés z, hogy z L nyelv véges-e, kkor pumpálási lemm felhsználásávl válszolhtunk. H L minimálutomtájánk n állpot vn és tlálunk egy leglább ekkor szót, kkor biztosn vn pumpálhtó szó is. A következő tétel egy reguláris nyelv végtelenségére d szükséges és elégséges feltételt. Megjegyzés: minden véges nyelv reguláris, tehát h egy nyelv nem reguláris, kkor mindenképpen végtelen sok eleme vn. 2.2. Tétel. Legyen L reguláris nyelv és n hozzá trtozó minimálutomt állpotink szám. L végtelen h létezik w L szó, hogy n w 2n.

2.2. REGULÁRIS NYELVTANOK 27 2.2. Bizonyítás. A két irányt külön bizonyítjuk: iránybn: w pumpálhtó L = iránybn: w L : w n. H w 2n, kkor megtláltuk keresett szót, h nem, kkor viszont pumpáljuk w -t úgy, hogy pumpálhtó részt 0-szor vesszük. Mivel pumpálhtó rész legfeljebb n hosszú, ezért pumpálás során legfeljebb n-nel csökkenhet w hossz. H ezután egy 2n-nél hosszbb szót kptunk, kkor tovább csökkenthetjük hosszát további pumpálássl. Minden lépésben csk n-nel csökkenhet hossz, ezért nem fogjuk átugrni z n-től 2n-ig trtó sávot.

3. fejezet CF nyelvek és veremutomták Definíció. Környezetfüggetlen (Context Free) nyelveknek zokt nyelveket nevezzük, melyekhez létezik 2. oszályú nyelvtn. Az ilyen nyelvtnok szbályi környezetfüggetlen változóhelyettesítéseket trtlmznk. 3.. Péld. Az lábbi CF nyelv z egyszerű ritmetiki kifejezéseket írj le: S S + S S } {{ } } {{ S} (S) }{{} }{{} 2 3 4 Egy lehetséges levezetés: S S + S 4 + S 2 + S S 4 + S 4 + A levezetéshez levezetési fát is megdhtunk következőképpen: Gyökér elem: A kezdő szimbólum Belső csúcsok: Változók Belső csúcs gyerekei: A változó helyettesítése Levelek: Σ elemei illetve lehet ε is. S S + S S S A levezetési fából könnyen kiolvshtjuk levezetett szót, ehhez csupán blról jobbr hldv kell f leveleit végigjárnunk. Az is könnyen láthtó, hogy bármely levezetés egyértelműen megdj hozzá trtozó levezetési fát. Figyeljük meg, hogy ez visszfele nem igz, vgyis egy levezetési fához többféle levezetés is trtozht. Az lábbi levezetés eltér korábbitól, mégis ugynzt fát dj: S S + S 2 S + S S 4 S + S 4 S + 4 + Definíció (Bl levezetés). Egy CF nyelvtn olyn levezetése, mely során minden esetben legelső változót helyettesítjük be. 28

3.. VEREMAUTOMATÁK 29 Definíció (Jobb levezetés). Egy CF nyelvtn olyn levezetése, mely során minden esetben legutolsó változót helyettesítjük be. Figyeljük meg, hogy reguláris nyelvtnok esetén levezetési f egy olyn bináris f lesz, melynek minden levele szülő csúcs bl oldlán vn. Reguláris nyelvek esetén bl levezetés megegyezik jobb levezetéssel. 3.. Veremutomták Definíció. A veremutomt egy olyn utomt, mely bemenet folymtos olvsás mellett egy vermet (LIFO tuljdonságú tárolót) is hsznál. Minden lépésben olvsht bemenetről null vgy egy krktert és emellett kiveheti veremből tetején lévő szimbólumot, vlmint írht verem tetejére tetszőleges (véges) számú szimbólumot. Fontos, hogy csk verem tetején lévő szimbólumot olvshtj. Formálisn: M = (Q, Σ, Γ, q 0, Z 0, F, δ), hol: Q z állpotok hlmz, egy véges, nem üres hlmz. Σ bemenet ábécéje, egy véges, nem üres hlmz. Γ verem ábécéje vgyis lehetséges veremszimbólumok hlmz, egy véges, nem üres hlmz. q 0 kezdőállpot (q 0 Q) Z 0 kezdetben verem tetején lévő szimbólum (Z 0 Γ) F z elfogdó állpotok hlmz (F Q) δ z állpotátmeneti függvény: (q,, A) {(q, α) : q Q, α Γ } Értelmezése: z utomt q Q állpotbn vn, verem tetejéről z A Γ {ε} szimbólumot olvss. A függvény értéke (q, α) párokból álló hlmz, hol q z új állpot, α verem tetejére írndó szimbólumsorozt. A kiolvsott szimbólumot z olvsáskor z utomt egyúttl el is távolítj verem tetejéről. H A = ε, kkor z utomt nem olvs (és távolít el) verem tetejéről. Számítás: Veremutomták esetén is definiálhtjuk számítás foglmát. H z utomt bemenete w: w = w w 2... w m, w Σ, w i Σ {ε} kkor r 0 = q 0, r, r 2... r m, r i Q egy számítás, és z ktuális veremállpotok s 0 = {Z 0 }, s... s m, s i Γ, s i = At i, A Γ {ε}, t i Γ h (r i+, t i+ ) δ(r i, w i+, A), s i+ = t i+ t i. Ekkor M elfogdj w szót, h vn olyn számítás, melyre r w F. L(M) = {w Σ : M elfogdj w-t}

30 3. FEJEZET. CF NYELVEK ÉS VEREMAUTOMATÁK 3.2. Péld. A következő utomt z L = {0 n n : n } nyelvet fogdj el: (q 0, 0, Z 0 ) (q, 0Z 0 ) (q, 0, ε) (q, 0) (q,, 0) (q 2, ε) (q 2,, 0) (q 2, ε) (q 2, ε, Z 0 ) (q 3, Z 0 ) F = {q 3 } A veremutomtákt is lehet gráffl ábrázolni: 0, ε 0, 0 ε 0, Z 0 0Z 0, 0 ε ε, Z 0 Z 0 q 0 q q 2 q 3 Definíció (Determinisztikus veremutomt). Olyn veremutomt, melyre: q Q, Σ ε, A Γ {ε} esetén δ(q,, A) H δ(q, ε, ε), kkor (, A) (ε, ε) esetén δ(q,, A) = H δ(q, ε, A), kkor Σ esetén δ(q,, A) = H δ(q,, ε), kkor A Γ esetén δ(q,, A) = 3.. Tétel. Vn olyn L nyelv, melyhez létezik M veremutomt, hogy L = L(M), de nem létezik ilyen determinisztikus veremutomt. 3.. Bizonyítás. A tételt nem bizonyítjuk, de megjegyezzük, hogy plindromok nyelve egy ilyen nyelv. Definíció (Üres veremmel elfogdó veremutomt). Olyn M = (Q, Σ, Γ, q 0, Z 0, δ) veremutomt, hol z elfogdó állpotok hlmzát (F ) nem djuk meg. Az utomt kkor fogd el egy szót, h végigolvsás után verem üres lesz. (Még Z 0 sincs benne). 3.2. Tétel. L nyelvhez veremutomt L-hez üres veremmel elfogdó veremutomt. 3.2. Bizonyítás. A két irányt külön bizonyítjuk. iránybn: legyen z L-et elfogdó veremutomt M = (Q, Σ, Γ, q 0, Z 0, F, δ). Hozzunk létre ebből egy L-et üres veremmel elfogdó M = (Q, Σ, Γ, q 0, Z 0, δ ) utomtát: Q = Q {q 0, q ε} tehát q 0 és q ε új állpotok, és q 0 Γ = Γ {Z} tehát Z egy új veremszimbólum z új kezdőállpot. Z 0 = Z 0 δ legyen δ kiterjesztése z lábbi új állpotátmenetekkel: δ (q 0, ε, Z 0) = (q 0, Z 0 Z) δ (q, ε, A) = (q ε, ε), minden q F és minden A Γ esetén δ (q ε, ε, A) = (q ε, ε), minden A Γ -re Vgyis q ε vermet kiürítő állpot.

3.. VEREMAUTOMATÁK 3 A konstrukció helyes, mert minden w L(M) esetén M-nek vn olyn számítás, mivel F -beli állpotb kerülünk, onnn pedig át tudunk menni kiürítő állpotb. Ezen kívül z extr Z szimbólum csk kiürítő állpotbn tűnhet el, hov csk F -beli állpotokból juthtunk. iránybn: legyen z L-et üres veremmel elfogdó veremutomt M = (Q, Σ, Γ, q 0, Z 0, δ). Hozzunk létre ebből egy L-et elfogdó M = (Q, Σ, Γ, q 0, Z 0, F, δ ) veremutomtát: Q = Q {q 0, q F } tehát q 0 és q F új állpotok, és q 0 z új kezdőállpot Γ = Γ {Z 0 } tehát Z 0 egy új veremszimbólum. F = {q F } δ legyen δ kiterjesztése z lábbi új állpotátmenetekkel: δ (q 0, ε, Z 0 ) = (q 0, Z 0 Z 0 ) δ (q, ε, Z 0 ) = (q F, Z 0 ) minden q Q esetén A kostrukció helyessége z előző irányú bizonyításhoz hsonlón könnyen beláthtó. 3.3. Tétel. L-hez létezik M veremutomt, melyre L(M) = L L-hez 2. osztályú nyelvtn. 3.3. Bizonyítás. A két irányt külön bizonyítjuk. iránybn 3.4 konstrukció dj megoldást. iránybn 3.6 konstrukció dj megoldást. 3.4. Konstrukció. Legyen G = (V, Σ, S, P ) z 2. osztályú nyelvtn, melyhez z M = (Q, Σ, Γ, q 0, Z 0, δ) üres veremmel elfogdó veremutomtát krjuk létrehozni. H már létrehoztunk egy üres veremmel elfogdó utomtát, kkor korábbn tárgylt módszerrel könnyen átlkíthtjuk hgyományos veremutomtává. Q = {q}, zz csk egy állpotunk lesz. Γ = V Σ {Z 0, Z }, tehát Z 0 és Z új veremszimbólumok. q 0 = q Az állpotátmenetek legyen következők: δ(q, ε, Z 0 ) = (q, SZ ) Minden A V esetén: δ(q, ε, A) = {(q, α) : A α P } Minden Σ esetén: δ(q,, ) = (q, ε) δ(q, ε, Z ) = (q, ε) Tehát minden válozó esetén beírjuk helyettesítését verembe, h pedig z olvsott krkter zonos verem tetejével, mindkettőt eldobjuk. és

32 3. FEJEZET. CF NYELVEK ÉS VEREMAUTOMATÁK Alterntív lehetőségként kezdőszimbólumnk válszthtjuk közvetlenül S-t és kkor nincs szükség z első és z utolsó szbályr. 3.5. Állítás. A 3.4 konstrukció áltl előállított veremutomt pontosn z L nyelv szvit fogdj el. 3.5. Bizonyítás. Először megmuttjuk, hogy h x L(G), kkor x L(M). Legyen x L(G), tekintsük egy bl levezetését, melyben z n. lépésben egy A γ szbályt hsználtunk: yaα yγα... x Legyen yγα = yzβ, hol β z α első változójávl keződik, legyen továbbá x = yzw. Mivel ez egy bl levezetés, y nem trtlmz változókt, és mivel β első eleme z α első változój ezért z sem trtlmz változókt. Mivel y és z nem trtlmz változókt közvetlenül meg fog jelenni x-ben. Teljes indukcióvl megmutthtó, hogy M-re mindig igz, hogy x-szel elindítv mikor bemenet hátrlévő része w, kkor verem trtlm βz. Ez lpján levezetés utolsó lépése esetén β = ε (mivel ekkor már nincsenek változók) és ezért verem trtlm ekkor Z. A bizonyítás másik iránybn hsonlóképpen teljes indukcióvl működik. 3.6. Konstrukció. Legyen M = (Q, Σ, Γ, q 0, Z 0, δ) üres veremmel elfogdó veremutomt, melyhez G = (V, Σ, S, P ) CF nyelvtnt krjuk létrehozni. Először lkítsuk át M-et úgy, hogy megszüntetjük zokt z átmeneteket, melyekben nem veszünk le verem tetejéről. Ezeket helyettesítsük zzl, hogy verem tetején lévő elemet levesszük és után vissztesszük. Világos, hogy z utomt áltl meghtározott nyelv nem változik. Formálisn: (q, α) δ(q,, ε) helyett: (q, αa) δ(q,, A), A Γ helyett: Ez után írjuk fel változókt: V = {[qap] : q, p Q, A Γ} {S}. Minden változót (z S kivételével) ezzel hármssl jelölünk. Itt q jelöli zt z állpotot, melyben A verem tetejére kerül, illetve p zt z állpotot, melyben A és z összes felette lévő kikerül veremből. Szbályok legyenek következők: S [q 0 Z 0 q], q Q A (q, ε) δ(q,, A) típusú átmenetekhez: [qaq ] hol q, q Q, A Γ, Σ {ε} A (q, B... B k ) δ(q,, A) típusú átmenetekhez: [qaq ] [q B q 2 ][q 2 B 2 q 3 ]... [q k B k q k+ ], hol q = q, q k+ = q, q 2, q 3,..., q k Q-r. 3.7. Állítás. A 3.6 konstrukció áltl előállított nyelvtn z M veremutomt áltl elfogdott nyelvet generálj. 3.7. Bizonyítás. Ehhez először megmuttjuk, hogy [qaq ] változóból pontosn kkor tudjuk x Σ -ot levezetni, h M utomtábn x bemenettel és A veremtrtlomml q állpotb jutunk, úgy hogy verem üressé válik és végigolvstuk x-et. H ez igz lenne, kkor z S [qz 0 q] szbályok mitt S-ből pontosn kkor lehetne x-et levezetni mikor M elfogdj x-et. A fenti állítás bizonyítás z egyik iránybn: teljes indukcióvl, x beolvsott szó(részlet) hossz szerint. x = esetén: konstrukció következménye.

3.2. CF NYELVEK ÁTALAKÍTÁSA 33 x > esetén: [qaq ] [q B q 2 ][q 2 B 2 q 3 ]... [q k B k q k+ ], q = q k+, ekkor B -ből levezethető bemenet x része,... B k x k. A bizonyítás másik iránybn hsonlóképpen, teljes indukcióvl lehetséges. 3.3. Péld. Az lábbi CF nyelvtnból konstruáljunk veremutomtát! δ elemei következők: (q, ε, Z 0 ) (q, AZ ) A }{{} }{{} A baa } {{ } AAb } {{ } AbA } {{ } 2 3 4 5 (q, ε, A) {(q, ), (q, A), (q, baa), (q, AAb), (q, AbA)} (q,, ) (q, ε) (q, b, b) (q, ε) (q, ε, Z ) (q, ε) Figyeljük meg fenti nyelvtn esetén z bb szó lábbi levezetését: A 5 AbA ba 3 bbaa 2 bbaa bba bb Nézzük hogyn juthtunk üres vermes állpotb z utomtábn ugynerre bemenetre: (q, bb, Z 0 ) (q, bb, AZ ) 5 (q, bb, AbAZ ) (q, bb, baz ) (q, bb, baz ) (q, b, AZ ) 3 (q, b, baaz ) (q,, AAZ ) 2 (q,, AAZ ) (q,, AAZ ) (q,, AZ ) (q,, AZ ) (q,, Z ) (q, ε, Z ) 3.2. CF nyelvek átlkítás 3.8. Tétel. H G nyelvtn szbályi A α lkúk és A ε is megengedett, kkor G 2. osztályú nyelvtn, hogy: L(G) = L(G ). 3.. Algoritmus. Elenyésző változóknk nevezzük zokt változókt, melyekből ε levezethető. A következő módon vezetjük be z elenyésző változók hlmzát: N 0 = {A V : (A ε) P }. N i+ = {A V : A α : α N i } Világos, hogy N 0 N V. Ilyenkor i, melyre z lgoritmus leáll, zz N i = N i+. Ekkor h A α szbály G-ben, kkor G -ben is, és mellé új szbályokt veszünk föl: α elenyésző változóit z összes lehetséges módon ε-nl helyettesítjük. Végül pedig elhgyjuk G -ből z A ε és A A formátumú szbályokt. Megjegyzés: Amennyiben ε L(G) teljesül z eredeti nyelvre, kkor G -ben fölveszünk egy új kezdőszimbólumot: S és két új szbályt: S ε S, többi szbálybn S változtln.

34 3. FEJEZET. CF NYELVEK ÉS VEREMAUTOMATÁK n lépés 3.9. Állítás. H G-ben levezethető x Σ, kkor G { }} { -ben is (x ε). Vgyis: G-ben: A x, m lépés kkor G { }} { -ben: A x. 3.9. Bizonyítás. Teljes indukcióvl, G-beli levezetés lépéseinek szám szerint. n = lépés esetén: G : A x, G : A x mindig teljesül. n > lépés esetén: A α = X... X k, hol X i = x i Σ vgy X i x i Σ. Ekkor G -ben: H x i ε, kkor rendben. H x i = ε, kkor X i kihgyv: A X... X i X i+... X k. Másik irány hsonlón bizonyíthtó. 3.. Feldt. Legyen G nyelvtn z lábbi: S ABCD A CD AC B Cb C ε Alkítsuk szbályos 2. osztálybeli nyelvtnná! D bd ε 3.. Megoldás. Először írjuk fel z elenyésző változók hlmzát! N 0 = {C, D} N = {C, D, A} N 2 = {C, D, A} Mivel N = N 2, z lgoritmus megállt. Továbbá S nem elenyésző változó, ezért ε nincs benne nyelvben. A meglévő szbályokt egészítsük ki újkkl, hol z elenyésző változókt helyettesítjük ε-nl minden lehetséges módon. Ekkor G : S ABCD BCD BD BC B ABD ABC AB A CD C D AC B Cb b C D bd b Definíció. Egyszeres szbály: A B és B V 3.2. Algoritmus. Adott G (CF nyelvtn), cél z egyszeres szbályok kiküszöbölése. Ehhez készítsünk egy irányított gráfot, melyben minden nyelvtnbeli változóhoz vegyünk fel egy csúcsot. Minden A B egyszeres nyelvtni szbályhoz vegyünk fel egy A-ból B-be muttó irányított élt. Jelöljük U(A)-vl zokt csúcsokt, melyek gráfbn A-ból irányított úton (tetszőleges) bejárássl elérhetők. H B U(A) és B β P, kkor A β P is legyen szbály G -ben, viszont z egyszeres szbályokt kihgyjuk. Ekkor L(G) = L(G ) teljesül.

3.2. CF NYELVEK ÁTALAKÍTÁSA 35 3.2. Feldt. Vegyük z előző feldt megoldását. S ABCD BCD BD BC B ABD ABC AB A CD C D AC B Cb b C D bd b Távolítsuk el belőle z egyszeres szbályokt! 3.2. Megoldás. Rjzoljuk fel gráfot: S A B C D S ABCD BCD BD BC C helyett D helyett {}}{ { }} { A CD bd b AC B Cb b C D bd b B helyett { }} { Cb b ABD ABC AB Problém: Adott G nyelvtn és w Σ szó. Kérdés, hogy nyelvtn generálj-e szót, zz w? L(G). Megoldás: H G nyelvtn reguláris, kkor elkészítjük hozzá megfelelő véges determinisztikus utomtát, innen pedig már könnyen ellenőrizhető, hogy nyelv generálj-e szót H G környezet független nyelvtn, kkor hhoz tudunk verem utomtát készíteni, viszont determinisztikus utomtát már nem mindig, így sokféle számítás mitt nem egyszerű z ellenőrzés. Emitt célszerű nyelvtnnl tovább dolgozni. Kétféle módszerrel dolgozhtunk: összes lehetőség kipróbálás elágzás és korlátozás módszerrel dinmikus progrmozás Nézzük meg z elágzás és korlátozás módszert! A dinmikus progrmozássl 3.3 lgoritmus fogllkozik. Tegyük fel, hogy kezdő S változónkt α, α 2... α n szvkkl helyettesíthetjük. Vizsgáljuk most szó elejét. H például α = β, α 3 = bγ és szó z krkterrel keződik kkor levezetés α 3 ágát nem folyttjuk. α S α 2 α 3

36 3. FEJEZET. CF NYELVEK ÉS VEREMAUTOMATÁK A továbbikbn feltesszük, hogy nincsenek egyszeres szbályok. Ekkor kétféle szbály lehet: A α, α 2 A Mivel minden lépésben nő változók vgy krkterek ( Σ) szám, ezért nem csökkenő nyelvtnnk hívjuk. Fontos megjegyezni, hogy w levezetésében lépések szám legfeljebb 2 w lehet, vgyis z eljárás véges. Htékonynk zonbn nem mondhtó, mert z elágzás mitt exponenciális lépésszámú. Definíció. Egy CF nyelvtn Chomsky-féle normálformájú (CNF), h szbályi lkúk. A A BC 3.0. Tétel. Minden G CF nyelvtnhoz lehet készíteni G nyelvtnt, hogy G CNF és L(G ) = L(G) {ε}. 3.0. Bizonyítás. Konstrukcióvl bizonyítjuk.. G-ben megszüntetjük z egyszeres szbályokt vlmint h vn benne S ε, kkor zt töröljük. Ez után lehetséges szbályok: A A α, α 2 2. Minden Σ krkterhez, mi vlmelyik szbály leglább 2 hosszúságú jobb oldlán fordul elő, fölveszünk egy új változót: X. Fölveszünk továbbá egy új szbályt: X, illetve X -vl helyettesítjük -t, hol nem egyedüli krkter egy szbály jobb oldlán. 3. Az előző lépés után h egy szbály jobb oldl leglább kettő hosszú, kkor cskis változókból állht. Jelöljük ezt így: A B B 2... B k (B i V, k 3). Ezek helyett vezessük be z lábbi szbályokt: A B C C B 2 C 2. C k 2 B k B k C,..., C k 2 új változók. 3.4. Péld. Alkítsuk át következő CF nyelvtnt CNF formár: S S bsb c!. S c X SX X b SX b X X b b