You are on page 1of 240

Formlis Nyelvek s Automatk

Dmsi, Pl Falucskai, Jnos Horvth, Gza Mecsei, Zoltn Nagy, Benedek

Formlis Nyelvek s Automatk

Dmsi, Pl Falucskai, Jnos Horvth, Gza Mecsei, Zoltn Nagy, Benedek Lektorlta: Vaszil, Gyrgy Szerzi jog 2011 Dr. Dmsi Pl, Falucskai Jnos (Nyregyhzi Fiskola), Dr. Horvth Gza, Mecsei Zoltn, Dr. Nagy Benedek (Debreceni Egyetem), A tananyag a szerzk nevnek feltntetse mellett nem kereskedelmi cllal szabadon msolhat, terjeszthet, megjelentethet s eladhat, de nem mdosthat.

Tartalom
1. Bevezets ................................................................................................................. 2 2. Formlis nyelvek ....................................................................................................... 6 2.1. bc, sz, formlis nyelv, szabad monoid, szabad flcsoport ................................. 6 2.2. Nyelvmveletek .............................................................................................. 8 3. Formlis rendszer s nhny fbb tpusa ...................................................................... 11 3.1. Markov-fle norml algoritmus ........................................................................ 15 3.2. Generatv nyelvtan, Chomsky-fle nyelvosztlyok ............................................... 21 3.2.1. Chomsky-fle nyelvosztlyok ................................................................ 24 3.2.2. A Chomsky hierarchia ......................................................................... 31 3.3. L-rendszerek ................................................................................................ 35 3.4. Problmakrk .............................................................................................. 37 3.4.1. Normlformk (Normlalakok) .............................................................. 37 3.4.2. Levezetsek szerkezete ........................................................................ 38 3.4.3. A szproblma s a szintaktikai elemzs ................................................. 38 3.4.4. Nyelvosztlyok s automataosztlyok kapcsolata ....................................... 39 3.4.5. Nyelvosztlyok tulajdonsgai ................................................................ 39 3.4.6. Specilis alosztlyok ........................................................................... 39 4. A vges automatk elmletnek alapjai ........................................................................ 40 4.1. Az automata fogalma s fbb tpusai ................................................................ 40 4.1.1. Mealy automata .................................................................................. 40 4.1.2. Moore automata ................................................................................. 41 4.1.3. Kimenjel nlkli automata .................................................................. 41 4.1.4. Inicilis automata ................................................................................ 42 4.1.5. Parcilis s teljesen definilt automata .................................................... 42 4.1.6. Nemdeterminisztikus s determinisztikus automata .................................... 42 4.1.7. Sztochasztikus automata ....................................................................... 43 4.1.8. Rabin-Scott automata .......................................................................... 43 4.2. Az automatk megadsa ................................................................................. 45 4.2.1. Vges automatk megadsa Cayley tblzattal .......................................... 45 4.2.2. Vges automatk megadsa grfokkal ..................................................... 47 4.3. Az automata, mint algebrai struktra: rszautomata, homomorfizmus, izomorfizmus, kompatibilis osztlyozs ................................................................... 49 4.3.1. Mealy automata, mint algebrai struktra .................................................. 49 4.3.2. Moore automata, mint algebrai struktra ................................................. 51 4.3.3. Kimenjel nlkli automata, mint algebrai struktra .................................. 53 4.4. Az automatk ltal induklt lekpezsek ............................................................ 53 4.5. Reduklt automata. Vges determinisztikus automatk minimalizlsa ..................... 58 4.5.1. Aufenkamp-Hohn-fle minimalizcis algoritmus ..................................... 58 4.5.2. Kiegszts az Aufenkamp-Hohn minimalizcis algoritmushoz ................... 59 4.5.3. Aufenkamp-Hohn fle minimalizcis algoritmus Moore-automatkhoz adaptlt vltozata ......................................................................................... 65 4.5.4. Kiegszts az Aufenkamp-Hohn-fle minimalizcis algoritmus Mooreautomatkhoz adaptlt vltozathoz ................................................................ 65 4.5.5. Minimalizcis algoritmus kimenjel nlkli automatkra ........................... 69 4.5.6. Kiegszts a minimalizcis algoritmus kimenjel nlkli automatkra ismertetett vltozathoz ................................................................................ 70 4.6. Automatk ekvivalencija, Gill ttele ................................................................ 70 4.7. Automatk analzise s szintzise ..................................................................... 72 4.8. Egyb vges automatk .................................................................................. 72 4.8.1. Irnythat automatk .......................................................................... 72 4.8.2. Automata tbb kezdllapottal .............................................................. 73 4.8.3. tltszbets felismer automata ........................................................... 73 4.9. Irodalmi megjegyzsek ................................................................................... 74 5. Regulris nyelvek .................................................................................................... 75 5.1. Normlformk a regulris nyelvtanokhoz ........................................................... 75

iii

Formlis Nyelvek s Automatk 5.2. Regulris kifejezsek ..................................................................................... 77 5.2.1. Regulris kifejezsek ekvivalencija ....................................................... 79 5.2.2. A kifejezsfa ...................................................................................... 81 5.2.3. Uni-normlforma regulris kifejezsekhez .............................................. 81 5.3. Egyszer szintaxis grfok ............................................................................... 82 5.4. Vges elfogad automatk (Rabin-Scott automatk) ............................................. 83 5.4.1. Vges determinisztikus s nemdeterminisztikus automatk ekvivalencija...... 87 5.4.2. Vges determinisztikus elfogad automatk minimalizlsa ......................... 92 5.4.3. Vges automatk s regulris nyelvtanok ekvivalencija ............................. 96 5.5. Nyelvek ellltsa automatkban ................................................................... 103 5.6. Vges automatk analzise ............................................................................. 106 5.7. Vges automatk szintzise ........................................................................... 110 5.8. Vges automatk ltal induklhat lekpezsek ................................................. 113 5.9. Szproblma ............................................................................................... 115 5.10. Itercis lemma regulris nyelvekre ............................................................... 116 5.11. Zrtsgi tulajdonsgok ................................................................................ 117 5.12. Irodalmi megjegyzsek ............................................................................... 121 Lineris nyelvek .................................................................................................... 123 6.1. Normlforma .............................................................................................. 123 6.2. 2-fej (vges llapot) automata ..................................................................... 129 6.3. A szproblma megoldsa ............................................................................. 133 6.4. A lineris nyelvek tulajdonsgai ..................................................................... 136 6.4.1. Itercis lemma ................................................................................ 136 6.4.2. Zrtsgi tulajdonsgok ....................................................................... 137 6.5. Irodalmi megjegyzsek ................................................................................. 138 Krnyezetfggetlen nyelvek ..................................................................................... 140 7.1. Programnyelvek szintaktikjnak lersa .......................................................... 140 7.1.1. A BNF megadsi md ....................................................................... 140 7.1.2. A COBOL-szer megadsi md ........................................................... 141 7.1.3. A szintaxis grf ................................................................................ 141 7.1.4. A Hibrid megadsi md ..................................................................... 142 7.2. Levezetsi fa .............................................................................................. 142 7.2.1. Tbbalaksg ................................................................................... 143 7.3. Normlformk a krnyezetfggetlen nyelvtanokhoz ........................................... 144 7.3.1. Chomsky-fle normlalak ................................................................... 144 7.3.2. Greibach normlforma ....................................................................... 148 7.4. A Bar-Hillel lemma ..................................................................................... 151 7.5. Veremautomatk .......................................................................................... 156 7.6. Zrtsgi tulajdonsgok .................................................................................. 174 7.7. A szproblma megoldsa - szintaktikai elemzs ............................................... 175 7.7.1. A CYK algoritmus ............................................................................ 176 7.7.2. Az Earley-fle algoritmus ................................................................... 182 7.8. Irodalmi megjegyzsek ................................................................................. 188 Krnyezetfgg nyelvek .......................................................................................... 190 8.1. Szhossznemcskkent (monoton) nyelvtanok .................................................. 190 8.2. Normlformk a krnyezetfgg nyelvtanokhoz, a monoton s a krnyezetfgg nyelvtanok ekvivalencija ................................................................................... 190 8.3. Permutcis nyelvek .................................................................................... 196 8.4. Levezetsi grfok, levezetsi fk a krnyezetfgg nyelvtanokhoz ......................... 197 8.4.1. Legbaloldalibb levezets s tfogalmazsa ............................................. 200 8.5. rnyk-veremautomata ................................................................................. 200 8.6. Linerisan korltozott automata ...................................................................... 202 8.7. A krnyezetfgg nyelvek tulajdonsgai .......................................................... 203 8.7.1. A szproblma ................................................................................. 203 8.7.2. Zrtsgi tulajdonsgok ....................................................................... 204 8.8. Nvekv krnyezetfgg nyelvek ................................................................... 205 8.9. Irodalmi megjegyzsek ................................................................................. 205 Rekurzvan felsorolhat nyelvek s Turing-gpek ......................................................... 206 iv

6.

7.

8.

9.

Formlis Nyelvek s Automatk 9.1. A Turing-gp .............................................................................................. 9.2. A Turing-gpek megllsi problmja s az algoritmikusan eldnthetetlen feladatosztlyok kapcsolata .................................................................................. 9.2.1. Univerzlis Turing-gp ....................................................................... 9.3. A szproblma - rekurzv s rekurzvan felsorolhat nyelvek ............................... 9.3.1. Bonyolultsgi osztlyok ...................................................................... 9.4. Normlformk a mondatszerkezet nyelvtanokhoz ............................................. 9.4.1. Rvsz-fle normlalak ...................................................................... 9.4.2. Geffert-fle normlformk .................................................................. 9.5. Zrtsgi tulajdonsgok .................................................................................. 9.6. Irodalmi megjegyzsek ................................................................................. 10. Nyelvtanrendszerek (Grammatikarendszerek) ............................................................. 10.1. Nyelvtanok kooperatv elosztott rendszerei CD nyelvtanrendszerek ................... 10.2. Nyelvtanok prhuzamos kommunikl rendszerei PC nyelvtanrendszerek ........... 10.3. Irodalmi megjegyzsek ............................................................................... 11. Irodalomjegyzk ................................................................................................... 206 215 216 218 220 222 223 223 224 225 226 226 228 230 231

Colophon

A tananyag a TMOP-4.1.2-08/1/A-2009-0046 szm Kelet-magyarorszgi Informatika Tananyag Trhz projekt keretben kszlt. A tananyagfejleszts az Eurpai Uni tmogatsval s az Eurpai Szocilis Alap trsfinanszrozsval valsult meg.

1. fejezet - Bevezets
Az algoritmikus szemllet kialakulsra nagy hatssal volt az 1900-ban Prizsban rendezett els matematikai vilgkongresszus, ahol is tbbek kztt elhangzott David Hilbert hres eladsa, melynek hatsra tg teret kapott az absztrakt gondolkodsmd szleskr alkalmazsa. Hilbert mg gy vlte, hogy ltezik olyan univerzlis mdszer, melynek segtsgvel minden matematikai krds igaz vagy hamis volta eldnthet. A modern elmleti szmtstudomny egyik fontos fogalma a formlis rendszer, melynek bevezetse Axel Thue (ejtsd: tyu) nevhez fzdik, aki az 1910-es vek elejn kezdte tanulmnyozni az adatsorozatokkal megadott utastsok tulajdonsgainak vizsglatt. A fejldsnek e tren is jabb lkst adtak a fiatal Kurt Gdel felfedezsei, aki a 20-as, illetve 30as vekben kimutatta, hogy ltezik olyan preczen megfogalmazhat matematikai llts, melynek sem igaz, sem hamis volta nem bizonythat. Ez a korszakalkot felfedezs alapjaiban rengette meg a matematikt. Ezutn mr senki sem lehetett biztos abban, hogy egy tetszlegesen kivlasztott matematikai llts igaz vagy hamis voltnak eldntse lehetsges. Erre csattans plda volt az ugyancsak ifj Jurij V. Matijaszevics esete, aki a 70-es vek elejn kimutatta Hilbert mr emltett hres eladsban szerepl egyik krdsrl, hogy eldnthetetlen. (Hilbert 10. problmja.) A 30-as vek msodik felben egy msik fiatal ris, Alan Turing (ejtsd: tyuring) vizsglataival prhuzamosan, Alonzo Church (ejtsd: csrcs) kapott hasonl mdon meglep eredmnyt. Nevezetesen, hogy nem ltezik univerzlis feladatmegold mdszer. A gpies bizonytsok vizsglata elvezetett az automatk matematikai elmletnek 50-es vekre kialakult megalapozshoz, az idegen szvegek gpi fordtsnak vizsglata pedig ugyancsak az 50es vekben a formlis rendszerek egy fontos tpusa, a formlis nyelvek matematikai elmletnek kezdeteihez. Ezen a terleten Noam Chomsky (ejtsd: csomszki) alapvet felfedezsei jelentettek nagy lpseket. Vgl, de nem utolssorban meg kell emltennk, hogy az automatk matematikai elmletnek megalapozsban nagy szerepet jtszott a plyafutsnak nagy rszt az Egyeslt llamokban tlt magyar szrmazs nagy tuds, Neumann Jnos, aki John von Neumann nven szerte a vilgon mint a szmtstudomny atyja ismeretes. 1960-ban bekvetkezett korai halla sajnos megakadlyozta abban, hogy az e tren (is) vgzett ttr kutatsait teljeskren megalapozza. Mr Neumann Jnos is ltta, hogy a bonyolultsg s az azzal kapcsolatos krdsek nagy szerepet fognak jtszani a szmtstudomnyban. Valban, a szmtgpek 60-as vektl bekvetkezett szleskr elterjedsvel mind az elmleti, mind pedig a gyakorlati szakemberek azt tapasztaltk, hogy bizonyos krdseket mg a legmodernebb szmtstechnikai eszkzk felhasznlsval sem kpesek kezelni. Ezek a problmk nemcsak elmleti, hanem nagyon fontos gyakorlati feladatokkal kapcsolatban is fellptek. Hamarosan kiderlt, hogy ez a gond nem fog megolddni a szmtgpek rohamos fejldsvel sem, mivel valsznleg elvi akadlyokrl van sz. A krdses feladatok tl bonyolultnak ltszanak ahhoz hogy kezelni tudjuk ket. A 70-es vek elejn ezen krdsek kezelsre Stephen A. Cook (ejtsd: kuk), Richard M. Karp s Leonid A. Levin egy j elmlet megalapozst kezdemnyeztk. Megszletett az algoritmusok bonyolultsgelmlete. Az eltelt tbb mint 30 v alatt azonban sajnos ez az elmlet nem adott vlaszt a feltett leggetbb krdsekre. Ezek kzl is a legfontosabb, az gynevezett P = NP? problma, melynek megoldsa vlaszt adna arra a nagyon fontos krdsre, hogy egyes, a gyakorlatban is lpten-nyomon felmerl feladatokhoz ltezik-e hatkony megold algoritmus. Ez a tbb mint 30 ves nagy krds valsznleg mg sokig megoldatlan marad. A bonyolultsgelmlet ltal felvetett problmk a 80-as vek kzepre-vgre elvezettek egy j terlet, az gynevezett kooperatv rendszerek megszletshez. Kezdetben csak arrl volt sz, hogy olyan szmtstechnikai eszkzk szlettek, melyek egyes feladatok egyidej, prhuzamos vgrehajtsra voltak kpesek. Ma mr a kooperatv rendszerek szleskren elterjedtek s mind elmleti, mind pedig gyakorlati szempontbl egyre nagyobb teret kapnak olyan berendezsek s mdszerek, amik eddig 2

Bevezets nem, vagy csak csekly mrtkben voltak hasznlatosak. Taln ezen az ton haladva fogunk eredmnyt elrni a mg mindig megkzelthetetlennek ltsz problmk kezelsben. A formlis nyelvek s automatk elmlete kivl eszkznek bizonyult ezen krdsek absztrakt szint vizsglatban. Jelen jegyzet clja ezen elmlet legalapvetbb krdseinek megismertetse. Az ismertetett mdszerek ma mr lpten-nyomon hasznlatosak nemcsak elmleti problmk vizsglatban, hanem egyes gyakorlati szmtstechnikai feladatok megoldsban is. A formlis nyelvek s automatk elmlete nemcsak olyan kzenfekv terleteken nyert alkalmazst, mint a szmtgpes nyelvszet, illetve a fordtprogramok terlete, hanem ezen keresztl a programozsi nyelvek, opercis rendszerek tmakrben is. Pldul a sztringalgoritmusokon keresztl keresalgoritmusokban, bioinformatikban, mintaillesztsben, adatbnyszatban stb. is alkalmazzk. A biolgiailag motivlt szmtsok, a DNS s membrn szmtsok formlis modelljei szintn ersen ktdnek a formlis nyelvek s automatk klasszikus elmlethez. A kpfeldolgozsban, adatsrtsben, rendszermodellezsben szintn felhasznlhatjuk az itt tanultakat. Helyenknt nagy figyelmet fordtunk annak igazolsra is, hogy bizonyos struktrk s mdszerek nem lteznek, illetve nem lehetsgesek. Ez a fradtsg a gyakorlati szmtstechnikai szakember szmra feleslegesnek tnik. Jelen jegyzet szerzi, akik egyike tbb mint msfl vtizedig gyakorlati szmtstechnikai szakemberknt dolgozott, mskpp gondoljk. Ha ismerjk a leggyakoribb szmtstechnikai zskutckat, akkor knnyebben ki tudjuk kerlni azokat. Ha nem, akkor gy jrhatunk mint ahogy a jegyzet nevezett szerzje is jrt nem egy esetben: esetleg olyat prblunk keresni, amirl mr kiderlt, hogy nincs. Jelen jegyzet elmleti fejezeteit Dmsi Pl (pl. Automataelmlet) s Nagy Benedek (pl. Lineris nyelvek, Krnyezetfgg nyelvek, Nyelvtanrendszerek) rtk (a tbbi fejezetet egyttesen). A feladatok dnt tbbsgt s az animcikat Falucskai Jnos, Horvth Gza s Mecsei Zoltn ksztettk. A feladatok, pldk s defincik vgt a jellel jelljk. A bizonytsok vgt pedig -el zrjuk. A jegyzet egyes fbb fejezeteinek felptse a kvetkez sszefoglal segtsgvel is kvethet:

Nyelvosztly

Nyelvtan

Normlformk Automataosztly

Szproblma

Zrtsgi tulajdonsgok

Egyb

Regulris nyelvek Chomsky 3. tpus pl: egsz szmok halmaza Alosztlyok: - vges nyelvek - unimentes nyelvek

- jobb-lineris : - gyenge [75]: AuB AaB Au Aa - bal-lineris: AB ABu A Au - ers [76]: A,BN AaB uT* Aa aT A,BN

vges automatk: determinisztikusan, - nemdeterminisztikus lineris idben zrt a regulris- s ressztmenetes [83] megoldhat a halmazmveletekre - nemdeterminisztikus [83] - determinisztikus parcilis [83] - determinisztikus teljesen definilt [83] Minimlis determinisztikus automata: Myhill-Nerode ttel [105] Kapcsold terlet: Automataelmlet

alternatv lers: - regulris kifejezs - szintaxis grf pumpl lemma [116]

Bevezets

4 nemdeterminisztikus veremautomata - res veremmel [158] - vgllapottal - resveremmel s vgllapottal - llapotnlkli (res veremmel) [161]

Lineris nyelvek pl: palindrmk nyelve Alosztlyok: - Determinisztikus automatval: 2detLin detLin - Fix fok lineris: k-fok lineris bal-, ill. jobb-lineris [129] Kiterjeszts: - metalineris nyelvek

AuBv Au A,BN u,vT*

- gyenge [123]: AaB ABa Aa AB A - ers [123]: AaB ABa Aa

- nemdeterminisztikus 2-fej - determinisztikusan pumpl lemma vges automatk ngyzetes - zrt az unikpzsre - nemdeterminsztikus algoritmus - nem zrt a egyforduls veremautomatk [164] - nemdeterminisztikonkatenci, (determinisztikus verzik kusan Kleene csillag, alosztlyokat definilnak) lineris metszet, komplementerkpzs mveletekre

Krnyezetfggetlen Ap Chomsky 2. tpus AN pl: Zrjelek nyelve [160] p( NT )* Alosztlyok: - determinisztikus CF [164] - szmllnyelvek Kiterjeszts: pl. CD s PC rendszerek

- Chomsky: ABC Aa - Greibach: Aaq A,B,CN aT qN*

- CYK, Earley algoritmusok -zrt: determinisztikus regulris mveletekre kbs (uni, konkatenci, idben Kleene-csillag) - nemdeterminiszti- -nem zrt: kusan metszetre s lineris idben komplementerre (Greibach NF)

pumpl lemma (Bar-Hillel lemma) Levezetsi fa fogalma Legbaloldalibb levezets [143] alternatv lers: BNF, szintaxis grf

Nyelvosztly

Nyelvtan

Normlformk

Automataosztly

Szproblma

Zrtsgi tulajdonsgok

Egyb

nemdeterminisztikus rnykveremautomata [200] nemdeterminisztikus linerisan korltolt automata

Krnyezetfgg Chomsky 1. tpus pl: prmszmhossz szavak nyelve [203] Alternatv definci: Monoton Alosztlyok: - Permutcis - Nvekv krnyezetfgg

megoldhat (PSPACE-teljes, nincs hatkony algoritmus)

zrt a regulris s a halmaz-mveletekre is: konkatenci, Kleene csillag uni, metszet, komplementer

ressz lemma Pumpl lemma nincs. Levezetsi grf, levezetsi fa s legbaloldalibb levezets ltalnostsa.

Bevezets

5 Turing gp - determinisztikus [208] - nemdeterminisztikus (egyb vltozatok: tbb szalagos [209], csak egyirnyba vgtelen szalag) univerzlis Turing gp kapcsold terlet: kiszmthatsg s bonyolultsgelmlet, a Neumann-fle szmtgp elmleti modellje algoritmikusan nem megoldhat (megllsi problma) Rvsz: ABAC ABCB ABC AB Aa ABB Penttonen [222] ABAC ABC Aa A Geffert, pl: Sp AB CD Sp ABC

pAqprq p,q(NT)* AN r(NT)+ kivve S, de ekkor S nem szerepelhet egyetlen szably jobb oldaln sem monoton: uv |u ||v | kivve S a fenti felttellel zrt a regulris mveletekre: konkatenci, Kleene csillag, uni. zrt a metszet kpzsre nem zrt a komplementer kpzsre

Kuroda [190]: ABCD ABC AB, Aa Rvsz [195]: ABAC ABCB ABC AB, Aa Penttonen [195]: ABAC ABC Aa

Rekurzvan felsorolhat (van olyan algoritmus, amivel a nyelv sszes szava felsorolhat.) Chomsky 0. tpus Alosztly: Rekurzv [219] (Egy nyelv rekurzv, ha L s L komplementere is rekurzvan felsorolhat.)

generatv nyelvtan

trhely ttel [223], Markov algoritmus

2. fejezet - Formlis nyelvek


2.1. bc, sz, formlis nyelv, szabad monoid, szabad flcsoport
Szimblumok tetszleges nemres, vges halmazt bcnek nevezzk, s V-vel jelljk. A V elemeit az bc betinek mondjuk. Jellje V+ (ejtsd: vplusz) a V-beli betkbl felrhat p=a1a2ak (a1,,ak V ) alak vges hosszsg sorozatok, az gynevezett V feletti nem res szavak halmazt. Egy p sz hosszt | p | al (ejtsd p hossza) jelljk s rajta a p-beli betk szmt rtjk (esetleges tbbszri elfordulssal egytt). gy ha p=a1a2ak (a1,,ak V ), akkor | p | = k.

2.1. plda - Sz hossza


Legyen a V bc kt betje a s b. Ekkor bab V+ s | bab | = 3 (s nem 2, mert a b bet ktszer is elfordul, s a tbbszri elfordulst figyelembe kell venni.) Szoks beszlni az gynevezett resszrl is, ami egy matematikai absztrakci, ugyanis olyan szt jelent, melynek egyetlen betje sincs, vagyis az egyetlen bett sem tartalmaz betsorozatot. Specilisan, jellje a tovbbiakban az resszt. Itt jegyezzk meg hogy br az automataelmleti szakirodalomban az -t (is) szoks az ressz jellsre hasznlni, ebben a jegyzetben mi vgig a jelet fogjuk hasznlni. Teht | | = 0. A V+{ } halmazt a V feletti (sszes) szavak halmaznak hvjuk, s V*-al (ejtsd vcsillag) jelljk. Specilisan, ha valamely a V-re V = { a} azaz V egyelem halmaz, s egyetlen eleme egy bizonyos a bet, akkor gyakran runk { a } * helyett a*-ot, illetve { a}+ helyett a+t. Valamely V*-beli p=a1am s q=b1bn (a1,,am,b1,,bn V) szavakat pontosan akkor tekintjk egyenlknek, ha m = n s minden i = 1,,n-re ai = bi. Ezt a tnyt ki szoks gy is fejezni, hogy V*ban csak grafikus (betrl - betre megegyez) egyenlsgek lteznek. A V bc feletti szavak egy tetszleges L halmazt a V bcbl alkotott (formlis) nyelvnek nevezzk, vagyis a V * halmaz rszhalmazait V feletti formlis nyelveknek, vagy rviden V feletti nyelveknek, vagy csak egyszeren nyelveknek hvjuk. Valamely L V * nyelvet resnek, vgesnek vagy vgtelennek hvunk ha az L (mint halmaz) res, vges, illetve vgtelen. Azt a nyelvet, amelynek egyetlen szava sincs, res nyelvnek nevezzk. Jells: . Nem tvesztend ssze a { } nyelvvel, amely egyedl az resszt tartalmazza. Az gy definilt nyelvfogalom tl ltalnos, magban foglalja mind a mestersges, mind a termszetes (rott) nyelvek sszessgt. A krds viszont az, hogyan lehet tnylegesen megadni egy konkrt nyelvet. Az egyszer tulajdonsgokkal rendelkez nyelveket mris megadhatjuk a halmazok megadsnak klnbz mdjai szerint. Legyen pldul a vges bcnk mindssze kt elem: V={0,1}. Ekkor az L1 = { }, L2 = { 1, 10, 0010, 111}, L3 = { 1i | i prm } halmazok mindegyike egy-egy nyelv a fenti definci rtelmben. Szksgnk van azonban olyan eszkzkre, amelyekkel a fentieknl lnyegesen sszetettebb nyelveket is definilhatunk. Ebbl a clbl vezetjk be a generatv nyelvtan fogalmt. Teht a tovbbiakban olyan nyelveket fogunk csak vizsglni, melyek vges sok adat segtsgvel specilis mdon, az gynevezett generatv nyelvtanokkal megadhatk. Megjegyezzk azt is, hogy az ltalunk hasznlt szfogalom nem esik egybe a termszetes nyelvek szfogalmval, hisz egy 6

Formlis nyelvek termszetes nyelvet gy szoks tekinteni, mint az adott nyelv sszes mondatainak halmazt. De tekinthetnk egy termszetes nyelvet gy is mint a nyelv sszes vges hossz szvegeinek halmazt. A szkzt s egyb rsjeleket is felvve az bcbe, az ltalunk definilt szfogalom amellett, hogy magban foglalja a szoksos szfogalmat, magban foglalja mind a mondat fogalmt, mind pedig a tetszleges vges hosszsg szveg fogalmt is.

2.2. plda - Szavak egyenlsge


Legyen V = { 1, 2, + }. Ekkor (V*- ban !) fennll, hogy 1+12, mivel az 1+1 sz nem egyezik meg "betrl - betre", azaz grafikusan a 2 szval.

2.3. plda - Vges s vgtelen nyelvek


Legyen V = { 0,1,,9}. A (magyar) trtnelmi dtumok { 1514, 1526, 1606, 1711, 1849, } halmaza ekkor egy V feletti vges nyelv. A (tzes szmrendszerbeli) pros szmok halmaza egy V feletti vgtelen nyelv. Temszetesen az res halmaz is egy V feletti (res) nyelv. Ugyancsak V feletti (vges) nyelv az egy elem { } halmaz is. A V* halmazon (s a V+ halmazon is) szoks bevezetni egy (nagyon egyszer tulajdonsg) mveletet, melyet szorzsnak neveznk. A p = a1 am s q = b1 bn ( a1, , am, b1, , bn V ) szavak szorzatn a pq = a1 a2 am b1 b2 bn szt rtjk. Kt V*- beli (vagy kt V+- beli) szt teht gy szorzunk ssze, hogy e szavakat (megfelel sorrendben) egyms mell (utn) rjuk. E mveletet konkatencinak vagy sszefzsnek is szoks hvni. Termszetesen ez a szorzsfajta ltalban nem kommutatv, azaz ltalban nem teljesl minden p, q V* prra a pq = qp egyenlsg. Amennyiben p = p1 pk ( V* k = 1,2, ) tovbb p1

= p2 = = pk = q gy alkalmazni fogjuk a p = qk jellst, s ezesetben p- t a q sz k-adik hatvnynak is nevezzk. Teht a q sz k- adik hatvnyn az nmagval vett k- szoros konkatencijt rtjk. Tovbb megllapodunk abban, hogy minden sz nulladik hatvnya az ressz (jelekben: q V* :q0= .) Rviden gy is mondhatjuk, hogy egy sz k- adik hatvnya nem ms mint k- szoros ismtldse (belertve a nullaszoros ismtldst is).

2.4. plda - Szavak konkatencija


Legyen ismt V = { ab}. Ekkor az abba V*- beli sz baba V*- beli szval val szorzata abbababa lesz (ami persze nem egyezik meg a babaabba szval. A szorzs teht valban, ltalban nem kommutatv). Igaz tovbb (definci szerint), hogy baba=(ba)2.

2.5. plda - Szavak konkatencija egyelem bc felett


Legyen most V = { a}, azaz lljon bcnk egyetlen betbl. Mutassuk meg hogy ebben a kivteles esetben a szorzs kommutatv. A V*-ban ezen szorzs mveletre nzve a ressz egysgelem lesz, hisz minden p V*-ra p = p = p (annak megfelelen, hogy ha egy sz - belertve az resszt is - el vagy mg nem runk egyetlen bett sem, azaz az resszt "rjuk", akkor marad az eredeti sz). Nyilvnval tovbb, hogy minden p,q V* prra | pq | = | p | + | q | . Az elbbiekben definilt szorzs mveletvel elltott V* halmazt a V ltal generlt egysgelemes szabad flcsoportnak, ms nven V feletti egysgelemes szabad flcsoportnak, vagy rviden, V feletti szabad monoidnak hvjuk, s r ugyancsak a V* jellst hasznljuk. Hasonlan, a szorzs mveletvel elltott V+ halmazt a V ltal generlt szabad flcsoportnak, ms nven V feletti szabad flcsoportnak hvjuk, s r ugyancsak a V+ jellst hasznljuk. (V* teht egyidejleg jelli az sszes V feletti szavak halmazt s a V feletti szabad monoidot, mg V+ az sszes V feletti nem res szavak halmazt s a V feletti szabad flcsoportot. Amennyiben teht algebrai struktraknt tekintnk a V*-ra ( V+-ra), akkor a konkatenci az alaprtelmezett mvelet az elemei kzt.) 7

Formlis nyelvek Nyilvnval, hogy V+ zrt marad a szorzs, azaz az sszefzes mveletre, hisz kt nem resszt egyms utn rva, azaz sszefzve, nem kaphatunk resszt. Legyen p s q tetszleges kt sz V*-ban. Azt mondjuk, hogy p kezdszelete (prefixe) q-nak, ha van olyan r V*, hogy q = pr. Pontosabban, ha q = pr mellett | p | = k akkor a p szt a q sz k hosszsg kezdszeletnek nevezzk (ekkor, ha 0 < k < | q | , akkor p a q valdi kezdszelete). Hasonlan, ha van olyan s V* sz, hogy q = sp, akkor azt mondjuk hogy p a q-nak vgzdse (szuffixe) s ha |p| = m akkor m hosszsg vgzdsrl beszlnk (ekkor ha p s p q akkor p valdi vgzdse a q-nak). Vgl, a p V* szt a q V* sz rszszavnak mondjuk, ha van olyan r, s V*, hogy q = rps. Amennyiben p qp , valdi rsz-szrl beszlnk. Teht, egy sz nmagtl klnbz nemres kezdszeleteit, vgzdseit, illetve rszszavait valdi kezdszeletnek, valdi vgzdsnek, illetve valdi rszsznak hvjuk. Egy p V+ sz utols betjre hasznlni fogjuk a p jellst.

2.6. plda - Sz rszszava


Legyen V = { a, b}, p = abbababa. Ekkor p-nek 4 hosszsg kezd szelete abba, 4 hosszsg vgzdse pedig baba lesz. Ugyanekkor p-nek pldul a bab sz (valdi) rsz-szava. Vgl, p = a (abbababa utols betje).

2.2. Nyelvmveletek
Kt nyelv kztt akkor rtelmezhetnk valamilyen mveletet, ha ugyanazon V bc felett vannak rtelmezve. (Ha ez nem teljesl, akkor elszr a nyelveket kell tdefinilni formlisan egy kzs bc, pl. a kt bc unija felettire.) Formlis nyelvekre, mint szhalmazokra kzvetlenl rtelmezhetk a halmazelmleti alapmveletek: uni (egyests, sszeads): L1 L2 = { p | pL1 vagy pL2}, metszet: L1 L2 = { p | pL1 s pL2}, klnbsg: L1 L2 = { p | pL1 s p L2}, komplementer: = V* L1.

Amint ltjuk a komplementerkpzsnl nagyon fontos az alaphalmaz, vagyis az bc ismerete, hiszen pl. az L = { ab, aa, ba, bb } nyelv komplementere telejsen ms, ha L- et a V = { a, b}, vagy a V ' = { a, b, c } bc felettinek definiltuk. Ennek megfelelen a tovbbiakban is mindig gy tekintnk egy nyelvre, mint egy adott V bc feletti nyelvre (akkor is ha ezt a tmrsg kedvrt nem rjuk oda). A nyelveken a halmazmveleteken kvl a konkatencit s az itercit alapmveleteknek tekintjk: Kt nyelv konkatencijn a kvetkez nyelvet rtjk: L1 L2 = { pq | p L1 s q L2}. Szoksos mdon a konkatenci jelt sokszor elhagyjuk, pl. L1 L2. Legyen i = 1, 2, . Ekkor egy L nyelv i-edik hatvnyn a nyelv i-szer egyms utni, nmagval val konkatencijt rtjk. Jells: Li. Megllapods szerint L0 = { }. A konkatenci lezrst (Kleene itercit) (ejtsd: klni) az Az elz Kleene-csillag mvelet mellett szoks mg az is. A ktfle iterci kztt az L0 = { } jelenthet klnbget: A definil egyenlsgek alajn belthat, hogy L+ = L* pontosan akkor, ha L. Tovbb L+ = L* { } pontosan akkor, ha L. Mejegyzs. Mivel a V bc mint halmaz egyben tekinthet egy formlis nyelvnek is, a korbbi V* s a V+ jells ppen egybeesik a most definilt iterci mveletek V-re val alkalmazsnak eredmnyvel. 8 sszefggssel rtelmezzk. iterci, a Kleene-plusz hasznlata

Formlis nyelvek Legyen V bc rgztett, ekkor igazak az albbi sszefggsek (tetszleges L1, L2, L3 V* esetn): L1 L2 = L2 L1 (az uni kommutatv), ( L1 L2 ) L3 = L1( L2 L3 ) (az uni asszociatv), L1 L1 = L1 (az uni idempotens), L1 L2 = L2 L1 (a metszet kommutatv), ( L1 L2 ) L3 = L1 ( L2 L3 ) (a metszet asszociatv), L1 L1 = L1 (a metszet idempotens), ( L1 L2 ) L3 = L1 ( L2 L3 ) (a konkatenci asszociatv), = L1 (a komplementerkpzs involcis tulajdonsga),

L1 = L1 = , L1 { } = { } L1 = L1 (a konkatenci egysgeleme a { } nyelv), L1 = L1 = L1 (az uni egysgeleme az nyelv), L1 V* = V* L1 = L1 (a metszet egysgeleme a V* univerzlis nyelv), L1+ = L1 L1* = L1* L1, L1* = L1+ { }, (L1* ) * = L1* (az iterci idempotens tulajdonsga), ( L1+ ) + = L1+ (a + mvelet idempotens tulajdonsga), ( L1* ) + = ( L1+ ) * = L1*. Az uni, metszet, illetve konkatenci asszociativitsa miatt ltalban nem is szoktuk zrjelekkel jelezni a mveleti sorrendjket, gy egyszeren pl. L1 L2 L3 alakot hasznlunk. Tovbbi zrjeleket hagyhatunk el megtartva az egyrtelm jelentst a kvetekez precedencia relci bevezetsvel. Az egyargumentum mveletek (komplementer, (Kleene-)csillag s (Kleene-)plusz) precedencija nagyobb, mint a ktargumentumak. A szorzs (konkatenci) precedencija nagyobb, mint az uni s metszet mveletek. Legyen adva kt vges bc, V1 s V2. A V1*-nak a V2*-ba val h lekpezst homomorfizmusnak nevezzk, ha: injektv, vagyis az rtelmezsi tartomny minden egyes elemhez az rtkkszletnek pontosan egy eleme van hozzrendelve, s mvelettart, azaz h ( p q ) = h ( p ) h ( q ), tetszleges p, q V1*-ra. A fenti kt tulajdonsgbl rgtn kvetkezik, hogy az ressz kpe az ressz lesz, ugyanis h ( p ) = h ( p ) = h ( p ) h ( ) minden p V1* szra. Egy homomorf lekpezst - mentesnek neveznk, ha h ( p ) = esetn p = .

2.7. plda - Nyelvmveletek - Gyakorl feladat


Legyen V = { a, b, c}, L1 = { a, c, bb, aba}, L2 = { a, abba, baba, caba, abbaba, babaabba}. Adjuk meg az L1 L2, L1 L2, L1 L2, L1 L1 halmazokat. 9

Formlis nyelvek

2.8. plda - Nyelvek konkatencija


Adjunk pldt olyan L1 s L2 V bc feletti nyelvekre, amelyekre L1 L2 = L2 L1. Keressnk nem trivilis megoldst is. Trivilis megoldsok: L1 = , L1 = { } vagy a szimmetria miatt L2-re teljesl az elz esetek egyike. L1 = L2. V bc egyelem. Az egyik nyelvben benne szerepel , a msik nyelv pedig a V* (univerzlis nyelv). Egy nem trivilis megolds: legyen V = { a, b}, L1 = { , a}, L2 pedig legyen azon V feletti szavak halmaza, amelyekben pontosan egy b szerepel. Ekkor L1 L2 = L2 L1 = L2.

2.9. plda - Nyelvek szmossga - Gyakorl feladat


Adottak L1 s L2 vges nyelvek V bc felett, hogy | L1 | = n, | L2 | = m. Mennyi lehet a szmossga az L1 L2, L1 L2, L1 L2 nyelvmveletekkel elll nyelveknek? Adjunk meg als fels korltot, s pldkat.

2.10. plda - Formlis nyelvek, nyelvmveletek 1.feladat


Igazoljuk vagy cfoljuk, hogy (L1 L2 )* = L1* L2* ! Megolds: Az llts hamis. Vegyk a kvetkez ellenpldt: Legyen L1 = { a} s L2 = { b}, ekkor ( L1 L2 )* az akrhny a-t s b-t tartalmaz szavak halmaza, mg L1* L2* a csupa a-t s csupa bt tartalmaz szavak nyelve lesz.

2.11. plda - Formlis nyelvek, nyelvmveletek 2.feladat


Mivel egyenl L2, ha L = { an bn|n >0 } ? Megolds: L2 = { an bn am bm | n, m > 0}.

10

3. fejezet - Formlis rendszer s nhny fbb tpusa


Formlis rendszernek (vagy trsi rendszernek) neveznk minden olyan W = ( V, H ) prt, amelyben V egy bc, H pedig a V* V* direkt szorzat egy vges rszhalmaza. A H elemeit helyettestsi szablyoknak hvjuk s ha ( p , q )H, akkor a pq (ejtsd: p nyl q) jellst hasznljuk.

3.1. plda - trsi rendszer


W = ( { a, b , d, e, , f, k, l , , s, v , z }, { aked le, leves fzelk } ). Legyen r, s V*. Akkor mondjuk, hogy r - bl az s kzvetlenl (vagy egy lpsben) levezethet Wben, jelekben: r W s, vagy ha nem vezet flrertshez, W elhagysval r s, ha lteznek olyan p ', p, p '' , qV* szavak, hogy r = p ' pp '', s = p ' qp '' s pqH. (Termszetesen megengedett, hogy akr a p ', akr a p '', vagy akr mindkett az ressz legyen.) Szemlletesen, r W s azt jelenti, hogy az s sz megkaphat az r szbl gy, hogy r-ben valamely H-beli szably baloldaln ll p rsz-sz helybe az e szably jobboldaln ll q szt rjuk (lsd bra).

Azt mondjuk, hogy a p - bl a q levezethet W-ben, jelekben p W* q, vagy ha nem vezet flrertshez, W elhagysval: p * q ha lteznek olyan p0 , p1, , pk V* szavak, hogy p0 = p , pk = q s pi W pi+1 ( i = 0, , k-1 ). Emellett, amint szoksos, megllapodunk abban, hogy minden pV* szra p W* p fennll. Hasznlni fogjuk mg a p W+ q jellst is abban az esetben, ha azt akarjuk hangslyozni, hogy lteznek olyan p0 , p1, , pk V* szavak, hogy p0 = p , pk = q s pi W pi+1 ( i = 0, , k-1 ). Vilgos, hogy a kt jells p = q esetn kap eltr rtelmet.

3.2. plda - Levezets trsi rendszerben


Tekintsk a fenti pldban megadott formlis rendszert s a babakedves szt. Ekkor a babakedves bableves babfzelk levezets alkalmazsval ltjuk, hogy pldul a W-beli babakedves szbl a bableves kzvetlenl levezethet, a babfzelk pedig levezethet. Amennyiben olyan formlis rendszereket tekintnk, melyekben a helyettestsi szablyok szimmetrikusak, eljutunk az asszociatv kalkulus fogalmhoz. Ha teht valamely asszociatv kalkulus esetn egy p sz helyettesthet q - val, akkor a q sz is helyettesthet p - vel. Emiatt nem is helyettestsi szablyokrl, hanem megengedett cserkrl szoks beszlni. Tovbb, ha egy p szbl egy q sz levezethet az asszociatv kalkulusban, akkor azt mondjuk hogy p ekvivalens q - val. 11

Formlis rendszer s nhny fbb tpusa Legyen W = ( { a, c , k, m, , u, s, t , y }, { acs - , ka - kus } ). Asszociatv kalkulus esetn a szablyok bal s jobboldalt helyett - - el (ktjellel) szoks elvlasztani, ezzel is hangslyozva, hogy a szablyok szimmetrikusak. Pldnknl maradva, az acs helyettesthet az - val s az is helyettesthet acs - csal. Ugyangy, a ka helyettesthet kus - sal s a kus a ka - val. Tekintsk a m acska m ka mkus levezetst. Ekkor a macska ekvivalens W-ben a mkus - sal. Ehhez W* helyett W - t, vagy ha nem okoz flrertst, akkor egyszeren (az ekvivalencia egyik szoksos jelt,) -t szoks hasznlni, azaz macska mkus. Vizsgljuk meg most ezt az -t mint relcit. Ez az relci reflexv, azaz minden V*-beli p szra p p. Pldul, macska macska. Az szimmetrikus, azaz minden V*-beli p, q szprra p q akkor s csak akkor, ha q p. Pldul, macska mkus kvetkezmnye mkus macska s viszont. Ugyangy, pldnkban kutya macska kvetkezmnye macska kutya s viszont. Az tranzitv, azaz minden V*-beli p, q, r sz-hrmasra p q s q r esetn p r. Pldnkban macska mka s mka mkus miatt macska mkus. (De ugyangy igaz, hogy macska mkus s mkus mka miatt macska mka. ) 1. Megjegyzs. a reflexv s tranzitv tulajdonsg kzvetlenl kvetkezik a levezethetsg defincijbl. A szimmetria a szablyok szimmetrikus volta miatt, tovbb a tranzitivits miatt ll fenn, melynek igazolst az olvasra bzzuk.) Emlkeztet. Egy M halmaz nmagval val Descartes szorzatnak (jelekben: M M - nek) rszhalmazait M feletti binris relcinak, vagy rviden, relcinak szoks nevezni. Specilisan, M M vges rszhalmazait vges relciknak is szoks hvni ( M felett). Felhasznlva az elz pldnkban trgyaltakat, vegyk szre, hogy ha egy adott W = ( V, H ) formlis rendszerbeli kzvetlen levezethetsget mint a V* halmaz feletti (vges) binris relcit tekintjk, gy a belle szrmaztathat levezethetsg nem ms mint a kzvetlen levezethetsg reflexv s tranzitv lezrsa, vagyis az a legszkebb reflexv s tranzitv relci, melynek a tekintett levezethetsg rszrelcija. Asszociatv kalkulus esetn, mint pldnkban mr emltettk, ez a levezethetsg (mint relci) ekvivalencia relci lesz, ugyanis a reflexv s tranzitv tulajdonsg mellett a szimmetrikus tulajdonsggal is rendelkezni fog. Emiatt szoks egy W = ( V, H ) asszociatv kalkulusban ekvivalensnek hvni a p, q V* szavakat, ha p * q azaz ha p q. Akkor mondjuk, hogy a W = ( V, H ) asszociatv kalkulusban a szproblma algoritmikusan megoldhat, ha ltezik olyan algoritmus, melynek segtsgvel tetszleges p, q prra eldnthet, hogy p s q ekvivalens-e (azaz p q fennll-e) s ha igen, akkor az algoritmus egy p p1 p2 pn-1 q levezetst is szolgltat. Ezen fogalomnak azrt van klns jelentsge, mert kimutathat, hogy nem minden asszociatv kalkulusban oldhat meg a szproblma algoritmikusan (ami egyttal azt is igazolja, hogy nincs olyan univerzlis mdszer, ami minden matematikai problmt kpes megoldani). Ksbb mg vissza fogunk trni erre az eldnthetsgi krdsre. Egy W = ( V, H ) formlis rendszert generatv rendszernek neveznk, ha ki van tntetve V* egy nem res s vges rszhalmaza, amelyet W aximarendszernek neveznk (s r tbbnyire az Ax jellst hasznljuk). Egy ilyen W generatv rendszert W = ( V, Ax , H ) alakban szoks megadni (aholis V az bc, Ax az aximk, H pedig a szablyok nem res s vges halmaza). W - hez hozzrendelnk egy Lg ( W ) halmazt az Lg ( W ) = { p V* | s Ax : s W* p } defincival, s ezt a halmazt a W generatv rendszer ltal generlt nyelvnek hvjuk. Lg ( W ) teht tartalmazza mindazon V*-beli szavakat, melyek legalbb az egyik aximbl levezethetk. Egy W = ( V, Ax , H ) generatv rendszert gy is szoks interpretlni (azaz rtelmezni), hogy V bizonyos fogalmak rendszere, Ax az aximarendszer (vagyis az alapigazsgok, vagy igaznak tartott alapvet lltsok gyjtemnye), V* elemei a V fogalomkrben megfogalmazhat (rtelmes vagy rtelmetlen) formlis mondatok halmaza, H a W-ben megengedett elemi bizonytsi lpsek halmaza, p p1 pn q a q formlis mondat p - bl val bizonytsa, Lg ( W ) pedig a V fogalomkrben megfogalmazhat s az Ax aximarendszerbl W-ben bebizonythat formlis mondatok (kijelentsek) halmaza. Analg mdon, tekinthetjk az sszes olyan szavak halmazt is, melyekbl az aximk kzl legalbb az egyik levezethet. Ebben az esetben W - t (a generatv rendszer elnevezs helyett) analitikus rendszernek, az La ( W ) = { p V* | s Ax : p W* s } halmazt pedig a W analitikus rendszer ltal 12

Formlis rendszer s nhny fbb tpusa acceptlt, vagy ms szval, a W analitikus rendszer ltal elfogadott nyelvnek, vagy mg mskpp a W analitikus rendszer ltal felismert nyelvnek hvjuk. Az analitikus rendszer ltal elfogadott nyelvet a ksbbiekben fogjuk interpretlni (azaz rtelmezni).

3.3. plda - Generatv rendszer


Vegyk a W = ( { 1, 2, +, = }, { 1 + 1 = 2 }, { =+ 1 = 1 + } ) generatv rendszert. Fogalmaink az 1, 2 termszetes szmok, tovbb az sszeads s az egyenlsg (jele). Egyetlen aximnk van, 1 + 1 = 2. Az 1 + 1 + 1 + 1 = 1 + 1 + 2 kijelents (vagy "ttel"-nek is lehetne mondani) bebizonythat Wben. Ime a "bizonyts:" (Egyetlen) aximnk 1 + 1 = 2. Ebbl indulunk ki : 1 + 1 = 2 1 + 1 + 1 = 1 + 2 1 + 1 + 1 + 1 = 1 + 1 + 2.

3.4. plda - Analitikus rendszer


Tekintsk a W = ( { <, >, 0, 1, 2, 3, 4, 5, 6 , 7, 8, 9 }, { < 0 >, < 5 > }, { 000, 100, 200, 30 0, 400, 500, 600, 700 , 800, 90 0, 055, 155, 255, 355, 455, 55 5, 655, 755, 855 , 955 } ) analitikus rendszert. Az olvasra bzzuk annak igazolst, hogy L a ( W ) pp az ttel oszthat, < a1 a n > ( a 1, , a n{ 0, , 9 } ) alakban megadott nemnegatv egszek halmaza. W teht "felismeri" az 5 - tel oszthat nemnegatv egszeket. Egy W = ( V, Ax , H ) generatv rendszert szemi-Thue rendszernek (ejtsd: tyu) neveznk (az angol semi[ejtsd:szemi] = flig-, fl sz alapjn), ha ki van tntetve V* egy olyan F rszhalmaza, melyre Ax F. Egy ilyen szemi-Thue rendszert W = ( V, Ax , H, F ) alakban adunk meg, ahol F a formulk halmaza, s a W - nek a generatv rendszerhez hasonl rtelmezse esetn mondhatjuk mg azt is, hogy F az igaz (vagy igaznak tartott) lltsok (kijelentsek, mondatok, ttelek) halmaza (lsd bra).

Kpezznk egy szemi-Thue rendszert oly mdon, hogy a 3.3. Plda (Generatv rendszer)-beli generatv rendszert kiegsztjk formulkkal. Ezzel sszhangban tekintsk a kvetkez pldt.

3.5. plda - Szemi-Thue rendszer


W = ( { 1, 2, +, = }, { 1 + 1 = 2 }, { =+ 1 = 1 + }, { 1 + 1 = 2, 1 + 1 + 1 + 1 = 2 + 2, 1 + 1 ( + 1 ) n = ( 1 + ) n + 2 , n = 1, 2, } ). Amint szoksos, ( + 1 ) n itt azt jelenti, hogy + 1 n-szer van rva. Pldul: ( + 1 ) 3 = + 1 + 1 + 1. Hasonlan, ( 1 + )n jelentse az, hogy 1 + van n - szer rva. Pldul: ( 1 + ) 2 = 1 + 1 + . A nyilvnvalan igaz 1 + 1 + 1 + 1 = 2 + 2 sszefggs a pldabeli szemi-Thue rendszerben nem bizonythat. Mint mr 13

Formlis rendszer s nhny fbb tpusa a bevezetsben elmondtuk, ezen a jtkos pldn bemutatott problma a matematika egyes nehezebb fejezeteiben is fennll. Nevezetesen, vannak preczen megfogalmazhat, de nem bizonythat s nem is cfolhat matematikai kijelentsek. Legyen W = ( V, Ax , H, F ) tetszleges szemi-Thue rendszer, s jellje Ax * p rviden azt a tnyt, hogy ltezik olyan p0Ax, melyre p0 * p. Ezt a jellst hasznlva L( W ) = { p V* | Ax * p } s W-ben absztrakt mdon az F halmaz mint elmlet ( = igaz vagy igaznak tartott lltsok halmaza, rendszere, vagy gyjtemnye) axiomatizlsnak tipikus krdsei a kvetkezkpp fogalmazhatk meg: a.) teljes-e az elmlet, vagyis az Ax aximarendszerbl minden igaz llts bebizonythat-e. Jellssel: fennll-e az F Lg ( W ) tartalmazs; b.) ellentmondsmentes (azaz helyes)-e az elmlet, vagyis igaz-e, hogy az aximarendszerbl nem vezethet le egyidejleg igaz s hamis llts is. Kpletben: igaz-e, hogy akrhogy is adjuk meg a p F s q F prokat, Ax * p mellett Ax * q nem llhat fenn egyidejleg. (Vegyk szre, hogy ha Ax * q s q F, akkor felhasznlva Ax * q jelentst, lenne olyan p0Ax, hogy p0 * q, ami Ax F s p0 * p0 miatt azt is jelenten, hogy p0 F s q F mellett Ax * p0 s Ax * q. Az ellentmondsmentessg felttele teht tulajdonkpp azt jelenti, hogy hamis kijelents nem vezethet le az aximarendszerbl.) c.) kategrikus (= konzekvens)-e az elmlet, vagyis az Ax aximarendszerbl minden igaz llts, de csakis az igaz lltsok bebizonythatk-e. Jellssel: F = Lg ( W ) fennll-e; (Vegyk szre, hogy egy elmlet pont akkor konzekvens, ha egyidejleg teljes s helyes is.) d.) minimlis-e az elmlet, azaz igaz-e, hogy egyik axima sem bizonythat be a msikbl. Kpletben: igaz-e, hogy ha p, qAx s p * q, akkor szksgkpp p = q.

3.6. plda - Elmlet teljessge, ellentmondsmentessge


Az elz pldabeli "elmletnket" vizsglva megllapthatjuk, hogy nem teljes, mert az F = { 1 + 1 = 2, 1 + 1 + 1 + 1 = 2 + 2, 1 + 1 ( + 1 ) n = ( 1 + ) n + 2 , n = 1, 2, } elmlet nem minden kijelentse bizonythat W-ben (pl. az 1 + 1 + 1 + 1 = 2 + 2 nem). Emiatt "elmletnk" nem is kategrikus. Mivel "hamisnak tartott", azaz F - en kvli llts 1 + 1 = 2 - bl (egyetlen aximnkbl) nem vezethet le ( ugyanis minden belle levezethet "llts" vagy maga az 1 + 1 = 2 lesz, vagy 1 + 1 ( + 1 ) n = ( 1 + ) n + 2 alak lesz, ahol n tetszleges termszetes szm), "elmletnk" ellentmondsmentes. Vgl, lvn csak egyetlen aximnk, "elmletnk" nyilvnvalan minimlis. Vgl megjegyezzk, hogy lehetett volna a formlis rendszer s a belle szrmaztatott klnfle specilis formlis rendszer tpusok fogalmnak kialaktsakor a kzvetlen levezethetsget s a levezethetsget mskpp is definilni. Erre az egyik legnevezetesebb plda a Post-fle norml rendszer. A Post-fle norml rendszer (hasonlkpp a generatv rendszerhez) egy olyan V bcbl, Ax aximarendszerbl s H helyettestsi szablyokbl felpl W = ( V, Ax , H ) hrmas ( Ax itt is nem res s vges rszhalmaza V*-nak, tovbb H ezesetben is nem res s vges rszhalmaza V* V*nak), melyben H elemei paaq alakak, aholis aV egy olyan bet, mely sem p-ben, sem q-ban nem fordul el. Akkor mondjuk, hogy a V*-beli p1 szbl a V*-beli q1 sz kzvetlenl levezethet (jelekben, mint korbban : p1 W q1, vagy ha nem vezet flrertshez, egyszeren csak p1 q1 ), ha tallhat olyan V-beli a bet, tovbb tallhatk olyan ( V { a } )*-beli p, q, r szavak, hogy p1 = pr , q1 = rq, s paaqH. Ezenkvl, mint korbban, azt mondjuk, hogy p - bl a q levezethet W-ben, jelekben: p W* q, vagy ha nem vezet frertshez, W elhagysval: p * q ha lteznek olyan p0 , p1, , pk V* szavak, hogy p0 = p , pk = q s pi W pi+1 ( i = 0, , k-1 ). Emellett, amint szoksos, itt is megllapodunk abban, hogy minden pV* szra p W* p fennll. (Msknt mondva, a levezethetsg mint V* feletti relci, ezesetben is reflexv s tranzitv lezrsa a kzvetlen levezethetsgnek.) Ugyangy mint a generatv rendszer esetn, a Post-fle norml rendszerhez is szoks tekinteni az Lg ( W ) = { p V* | s Ax : s W* p } halmazt, amit a W Post-fle norml rendszer ltal generlt nyelvnek hvunk. Termszetesen mint a generatv rendszerbl "kpzett" analitikus rendszer esetn, itt is lehet tekinteni az La ( W ) = { p V* | s Ax : p W* s } halmazt mint a W ltal elfogadott nyelvet. (Emlkeztetl: 14

Formlis rendszer s nhny fbb tpusa szerkezetileg a generatv rendszer ugyanaz mint az analitikus rendszer, csak a hozzjuk rendelt nyelvek szerkezete ms.) A Post-fle norml rendszer fogalmnak kis mdostsval jutunk el a Post-fle tag (tag [ejtsd: teg] = toldalk, vmit vmihez hozzfz eszkz vge) rendszer fogalmhoz. A Post-fle tag rendszer egy olyan W = ( V, s , H ) hrmas, ahol V egy bc, H helyettestsi szablyok egy halmaza (azaz V* V* egy nem res s vges rszhalmaza), s pedig egy tetszleges, rgztett eleme V*-nak. Erre az s elemre a startsz elnevezs hasznlatos. Akkor mondjuk, hogy a V*-beli p szbl az ugyancsak V*beli q sz kzvetlenl (vagy egy lpsben) levezethet W-ben, jelekben: p W q, vagy ha nem vezet flrertshez, W elhagysval p q, ha lteznek olyan p1 , q1, r V* szavak, hogy p = p1 r, q = rq1 s ( p1 , q1 )H. (Termszetesen megengedett, hogy az r az ressz legyen.) A levezethetsgre (is) ugyanazt a jellst hasznljuk mint korbban, tovbb a levezethetsg mint V* feletti relci, ezesetben is reflexv s tranzitv lezrsa a kzvetlen levezethetsgnek. Ugyancsak sszhangban az elzekkel, a W ltal generlt nyelv: Lg ( W ) = { p V* | s W* p. } Definilhatjuk a W ltal elfogadott nyelvet is: La ( W ) = { p V* | p W* s}.

3.1. Markov-fle norml algoritmus


Az algoritmus intiutv fogalmt krlbell a kvetkezkpp szoks megfogalmazni: A fegyelmezett, egyrtelmen elrt elemi lpsekbl egyrtelmen felpthet olyan feladatmegolds modellje, melynek eredmnye vgrehajtjtl fggetlenl ugyanazon feladatokra akrhnyszor is megismtelve ugyanazon eredmnyt szolgltatja. Segtsgvel egy adott feladatosztly minden feladata vges szm lpsben megoldhat. (A legltalnosabb rtelemben termszetesen egy algoritmus brmilyen emberi vagy nem emberi tevkenysgre vonatkozhat, nemcsak matematikai avagy szmtstechnikai feladatok megoldsra.) Fontos tulajdonsgai kz tartozik teht a fggetlensg, ami azt jelenti, hogy ugyanazon feladatra ugyanaz az eredmnye fggetlenl attl hogy ki (vagy mi) a vgrehajtja, az egyrtelmsg, ami azt jelenti, hogy ugyanazon feladatra akrhnyszor is alkalmazzuk az algoritmust, mindig ugyanazt az eredmnyt szolgltatja, az elemi lpsekre bonthatsg, ahol persze ezen elemi lpsek, tovbb ezen lpsek sorrendje is egyrtelmen meg van hatrozva, valamint a vgessg, vagyis az, hogy a feladatosztly minden egyes feladatra mindig vges sok lpsben befejezdik. Amennyiben a vges lpsben trtn befejezds kvetelmnytl eltekintnk, az eljrs fogalmhoz jutunk. Ezen s ehhez hasonl intiutv megfogalmazsok utn szlettek meg a 30-as vek msodik feltl a klnfle matematikailag is precz algoritmusfogalmak (tulajdonkppen szigoran tekintve eljrsfogalmak), melyek kzs rdekessge, hogy ekvivalensek. Ez azt jelenti, hogy ha egy algoritmust az egyik algoritmusfogalom segtsgvel megadtuk, akkor ugyanez az algoritmus a msik algoritmusfogalom segtsgvel is megadhat. Ezen fogalmak egyike a Markov-fle norml algoritmus. Egy W = ( V, H ) formlis rendszert (Markov-fle) norml algoritmusnak neveznk, ha H rendezett halmaz s ki van tntetve benne egy H1 rszhalmaz (megengedve, hogy esetleg H1 = , azaz res halmaz legyen). A H1 elemeit zrhelyettestseknek hvjuk s p q H1 esetn hasznlni fogjuk a p. q jellst is. Egy ilyen norml algoritmust W = ( V, H , H1 ) alakban adunk meg, ahol a H = { p1 q1, , p mq m } megads, azaz H elemeinek felsorolsa felttelezsnk szerint egyben a H - beli rendezst is mutatja. Legyen p V * . Azt mondjuk, hogy a p szra a W = ( V, H , H1 ) algoritmus alkalmazhat, ha van olyan 1 s m kztti i ( 1 i m ) index s olyan p ', p '' V * szpr, hogy p = p ' pi p '' . Legyen i a legkisebb ilyen index s vlasszuk meg a p sz p ' kezdszelett gy, hogy pi a p ' pi szban rsz-szknt csak egyszer forduljon el. Rendeljk hozz p - hez a q = p ' qi p '' szt s ezt a hozzrendelst jelljk a kvetkezkppen: legyen p W q ha pi qi H 1 s legyen p W . q ha pi qi H 1 . E hozzrendelst, mely a formlis rendszer fogalmnl bevezetett kzvetlen levezethetsg fogalmnak a H - beli rendezst is figyelembe vev mdostsa, elemi helyettestsnek szoks nevezni. (Az elemi helyettests nem tvesztend ssze a helyettestssel, azaz a helyettestsi szablyok halmaznak egy elemvel.) p W . q esetn elemi zrhelyettestsrl beszlnk. Ha zrhelyettestst hajtottunk vgre az algoritmus megll, egybknt az algoritmus helyettest lpse jra lefut az imnt kapott szra. Az algoritmus teht mindaddig fut, amg vagy zrhelyettests be nem kvetkezik, vagy nincs alkalmazhat helyettestsi szablya. Itt trnk ki arra, hogy a Markov15

Formlis rendszer s nhny fbb tpusa fle norml algoritmus a sz eredeti rtelmben nem algoritmus, hanem eljrs, mivel - ahogy majd pldt is mutatunk r- nem felttlenl fejezdik be, teht a vgessg felttele nem teljesl.

3.7. plda - Elemi helyettests


Vegyk a W = ( { a, b , e, i, k , o, r, s , t, , z } , { szobakerti , babszob }, { szobakerti } ) norml algoritmust s a bababtor szt. Az i = 2, hiszen a msodik szably alkalmazhat r. Vigyzni kell viszont, hisz a bab sz rsz-szknt ktszer is elfordul. p ' theht nem ba lesz (mert ekkor p ' p1 = babab, aminek els hrom s utols hrom betje is a bab szt alkotja ). gy p ' = , azaz az ressz. Ennek megfelelen a bababtor W szobabtor W. kertibtor levezetshez jutunk. Itt a bababtor W szobabtor egy elemi helyettests, szobabtor W . kertibtor pedig egy elemi zrhelyettests. Igaz, hogy a szobabtor szban is benne van a bab rsz-sz, de mindig az els olyan szablyt kell alkalmazni, amit lehet. Emiatt a szobabtor sz utn a kertibtor sz kvetkezik, nem a szoszobtor. Azt mondjuk, hogy a pV * szbl kiindulva egy qV * sz eleme a W algoritmus levezetsi lncnak, ha teljeslnek az albbi felttelek: q = p, vagy (i) W alkalmazhat p - re s (ii) lteznek olyan r0, , rk V * szavak, hogy r0 = p, rk = q, ri W ri+1 ( i = 0, , k-1 ), ahol az r0 W W rk-1 lnc nem tartalmaz zrhelyettestst. Azt mondjuk, hogy a pV * szra egy qV * sz a W algoritmus eredmnye (jelekben: p W* q ), ha q eleme a W p - bl indul ( p = r0, , rk = q ) levezetsi lncnak s vagy rk-1 W . rk, vagy pedig rk-1 W rk, s W az rk ( = q ) szra mr nem alkalmazhat. Emellett megllapods, hogy ha W a p szra nem alkalmazhat, akkor p W* p . Ha p W* q, akkor szoks mondani, hogy q a p szval megadott adatsorozaton a W norml algoritmussal vgrehajtott szmts eredmnye. Eszerint, egy W = ( V, H , H1 ) norml algoritmus esetn egy pV * (input) szra a kvetkez esetek llhatnak fenn: (I) W a p - re nem alkalmazhat. Ekkor a W - vel p - n vgzett szmts eredmnynek magt a p adatot tekintik. (II) p - bl kiindulva ltezik zrhelyettestssel vegzd (azaz p W r1, r1 W r2, , rk-2 W rk-1, rk-1 W . rk alak), vagy tovbb nem folytathat helyettestsi lnc. (Ez utbbi azt jelenti teht, hogy a p W r1, r1 W r2, , rk-1 W rk lncban rk - ra W mr nem alkalmazhat.) Ekkor a p adaton a W - vel vgzett szmts eredmnye az rk = q sz. (III) p - bl olyan helyettestsi lnc indul ki, mely soha nem fejezdik be. Ilyenkor azt mondjuk, hogy W a p - re nem ll meg, W a p adatbl eredmnyt nem szolgltat.

3.8. plda - Unris szmok sszeadsa


Tekintsk a W = ( { 1, + }, { 1 ++ 1, + + +, + }, { + } ) norml algoritmust (ahol az resszt jelli). Ekkor 1 + 1 + 1 + 1 W + 11 + 1 + 1 W + 1 + 11 + 1 W + + 111 + 1 W + + 11 + 11 W + + 1 + 111 W + + + 1111 W + + 1111 W + 1111 W . 1111 . Vegyk szre, hogy ltalban is, 1 m + 1 n W* 1m + n , vagyis a pldabeli algoritmus az "egyes szmrendszerben" val "sszeads" algoritmusa. Ahny 1 - est "adunk ssze", annyi 1 - esbl ll sorozatot kapunk a vgn zrhelyettestssel. Nincs alkalmazhat szablya az algoritmusnak pldul a 11 szra. Ekkor eredmnynek a korbbi defincival sszhangban magt a 11 - t tekintjk.

16

Formlis rendszer s nhny fbb tpusa

3.9. plda - Vgtelen helyettestsi lnc


Egsztsk ki az elbbi pldt az 111 szabllyal, mghozz gy, hogy ez legyen az els szablyunk. Az gy kapott jabb W = ( { 1, + }, { 111, 1 ++ 1, + + +, + }, { + } ) algoritmus mr nem fog befejezdni az 1 + 1 + 1 + 1 szra (s sok ms szra sem): 1 + 1 + 1 + 1 W 11 + 1 + 1 + 1 W 111 + 1 + 1 + 1 W 1111 + 1 + 1 + 1 W 11111 + 1 + 1 + 1 A mdostott algoritmus teht az 1 + 1 + 1 + 1 szra nem ll meg, eredmnyt nem szolgltat.

3.10. plda - Unris szmok szorzsa


Adjon meg olyan Markov algoritmust, amely az 1m*1n bemenetre 1mn kimenettel ll meg! Megolds: W=({1,*,a,b},H,H1), ahol H a kvetkez: 1. *11a*1, 2. *1a, 3. 1a a1b, 4. ba ab, 5. b1 1b, 6. a1 a, 7. abb, 8. b 1. H1=.

3.11. plda - Feladat - Legnagyobb kzs oszt ellltsa


Legyen W = ( { a , b, c, d , e, & }, { ac ca, a & a c & , a & & d , d a , c e , e a, & }, ) (azaz H1 ebben a feladatban is res halmaz) norml algoritmus. Bizonytsuk be, hogy tetszleges i, j pozitv egsz szmprra a i & a j W a k, ahol k a legnagyobb kzs osztja i - nek s j - nek.

3.12. plda - Binris sz rendezse


Adjon meg olyan Markov algoritmust, amely egy bemen binris sz esetn annyi 1-est, majd annyi 0-st r, amennyi a bemen szban van! Pldul: 001011011 bemenetre 111110000 szt adja eredmnyl. Megolds: Egyik lehetsges megolds a kvetkez: W=({0,1},{01 10}, ). Az algoritmus a buborkrendezst valstja meg. Ugyanez a plda hrom szmjegy esetn: W=({0,1,2},{01 10, 02 20, 12 21}, ).

17

Formlis rendszer s nhny fbb tpusa

3.13. plda - Binris sz tkrzse


Adjon meg olyan Markov algoritmust, amely egy bemen binris sz tkrkpt adja eredmnyl! Pldul: 0110011 bemenetre 1100110 vgeredmnyt ad. Megolds: Egy lehetsges algoritmus a kvetkez: W=({0,1,X,Y,U,V,Z},H,H1), ahol H elemei: 1. Y0 0Y, 2. Y1 1Y, 3. YZ, 4. UZZ0, 5. VZZ1, 6. U0 0U, 7. U1 1U, 8. V0 0V, 9. V1 1V, 10. X0XU, 11. X1XV, 12. XZ, 13. XY. H1={XZ}. Az algoritmus a kvetkezkppen mkdik: 1. A bemen sz elejre rja XY-t. 2. Y-t elvisszk a sz vgre s trjuk Z-re. 3. Ha az X utni els szmjegy 1, akkor V-t runk helyette. 4. Ha az X utni els szmjegy 0, akkor U-t runk helyette. 5. U-t vagy V-t elvisszk a sz vgre. 6. Ha a Z el U kerl, akkor 0-t runk Z utn, s ha van mg szm X s Z kzt, akkor vissza a 3-as pontra. 7. Ha a Z el V kerl, akkor 1-t runk Z utn, s ha van mg szm X s Z kzt, akkor vissza a 3-as pontra. 8. XZ trlse.

18

Formlis rendszer s nhny fbb tpusa

3.14. plda - Binris sz megegyez vgeinek trlse


Adjon meg olyan Markov algoritmust, amely egy bemen binris sz els s utols karaktert addig trli, ameddig azok megegyeznek! Pldul: 10110001 esetn a kimenet 1100. Megolds: Egy algoritmus lehet ez: W=({0,1,X,Y,U,V,W},H,H1), ahol H elemei: 1. 0YY0, 2. 1Y Y1, 3. 0WW0, 4. 1WW1, 5. XY0X, 6. XY1X, 7. XW0 0, 8. XW1 1, 9. U0 0U, 10. U1 1U, 11. V0 0V, 12. V1 1V, 13. 0UY, 14. 1UW1, 15. 1VY, 16. 0VW0, 17. X1X1W, 18. X0X0U, 19. X H1={XW0 0, XW1 1 }. Az algoritmus a kvetkezkppen mkdik: 1. A bemen sz elejre r egy X-et. 2. Ha az els szmjegy 0, akkor U-t runk utna. 3. Ha az els szmjegy 1, akkor V-t runk utna. 4. U-t vagy V-t elvisszk a sz vgre. 5. Ha az utols jegy 0 s U kerlt mell, vagy ha 1 s V, akkor ezek helyre Y-t runk. 6. Ha az utols jegy 1 s U kerlt mell, vagy ha 0 s V, akkor ezek helyre W-t runk s visszarjuk az utols jegyet. 7. Y-t vagy W-t az elejre visszk. 8. Ha az X utn Y kerl, akkor az Y-t s az els szmjegyet trljk, s vissza a 2. lpsre. 9. Ha az X utn W kerl akkor trljk XW-t s megllunk.

3.15. plda - Binris szm nvelse 1-gyel


Adjon meg olyan Markov algoritmust, amely egy bemen binris szm esetn eggyel nagyobb binris szmot szolgltat eredmnyl! Megolds: W=({0,1,X,Y},H,H1), ahol H elemei: 1. X1 1X, 2. X0 0X, 3. XY, 4. 0Y 1, 5. 1YY0, 6. Y 1, 7. 1X1. H1={0Y 1, Y 1}. Az algoritmus mkdse: 1. A sz elejre X-et runk. 2. X-et a sz vgre visszk s Y-ra cserljk. 3. Y eltt 0 van, 1-esre rjuk s ksz vagyunk. 4. Y eltt 1 van, 0-ra rjuk s Y-t runk el. Vissza a 3-as pontra. 5. Ha Y eltt nincs semmi, akkor 1-esre rjuk t.

19

Formlis rendszer s nhny fbb tpusa

3.16. plda - Unris szm binris alakja


Adjon meg olyan Markov algoritmust, amely 1n bemenetre az n szm binris alakjt adja eredmnyl! Megolds:W=({0,1,X,Y},H,H1), ahol H elemei: 1. 0Y 1, 2. 1YY0, 3. Y 1, 4. X1YX, 5. X, 6. 0X H1={X} Az algoritmus lpsei: 1. Az 1-esek el 0X-et r. 2. X1-et YX-re cserli. 3. Y eltti binris szmot nveli eggyel s Y-t trli. 4. Ha van X utn 1-es vissza 2-es pontra. 5. Trli X-et.

3.17. plda - Binris szm cskkentse 1-gyel


Adjon meg olyan Markov algoritmust, amely egy bemen binris szm esetn eggyel kisebb binris szmot ad eredmnyl! Megolds: W=({0,1,X,Y},H,H1), ahol H elemei: 1. X1 1X, 2. X0 0X, 3. XY, 4. 1Y 0, 5. 0YY1, 6. Y, 7. X, s a zrhelyettests: H1={Y}. Az algoritmus mkdse: 1. A sz elejre X-et runk. 2. X-et a sz vgre visszk s Y-ra cserljk. 3. Y eltt 1 van, 0-ra rjuk s ksz vagyunk. 4. Y eltt 0 van, 1-re rjuk, s Y-t runk el. 5. Ha Y eltt nincs semmi, akkor trljk Y-t, s ksz vagyunk.

20

Formlis rendszer s nhny fbb tpusa

3.18. plda - Binris szm unris alakja


Adjon meg olyan Markov algoritmust, amely egy bemen binris szm unris alakjt adja vissza! Megolds:W=({0,1,X,Y,Z,V},H,H1), ahol H elemei: 1. X1 1X, 2. X0 0X, 3. XY, 4. 1Y 0Y1, 5. 0YZ1V1, 6. 0ZZ1, 7. 1Z, 8. Z, 9. VY, 10. Y, 11. X, s H1={Y } zrhelyettests. Az algoritmus lpsei: 1. A sz el X-et r. 2. X-et a vgre viszi s Y-ra cserli. 3. Y eltti binris szmot cskkenti, utni unrist nveli eggyel. 4. Ha van Y eltt szmjegy, akkor vissza 2-ra. 5. Trli Y-t. (A feladatot gy is meg lehetett volna oldani, hogy a binris szbl balrl jobbra haladva trlnk egy elemet, majd egy elszeparl szimblum utn lv 1-eseket duplzzuk, s a trlt elemtl fggen vagy adunk hozz egyet vagy nem, amg a binris szm el nem fogy.) Amint lttuk a formlis rendszereket algoritusok megadsra is hasznlhatjuk, ha egyrtelmen megadjuk hogy adott lpsben melyik szablyt s hol kell alkalmazni. Ezzel szemben a generatv rendszerek teljesen nemdeterminisztikusak, ltalban nem csak az telejsl, hogy tbb alkalmazhat szably kzl vlasztunk, de az alkalmazs helye is lehet tbbfle. A kvetkez fejezetben a generatv rendszerekbl szrmaztatott generatv nyelvtan fogalmt ismertetjk, mely e jegyzet egyik legfontosabb kzponti fogalma.

3.2. Generatv nyelvtan, Chomsky-fle nyelvosztlyok


Egy W=(V, Ax, H) generatv rendszerbl gy kapunk generatv nyelvtant, ha a V bct felbontjuk kzs elemet nem tartalmaz nem res (s V vgessge miatt vges) N s T rszhalmazokra ( V=NT, NT=, N, T), az Ax pedig egyetlen, egybets, N- beli (ltalban S- el jellt) elembl ll, s minden H- beli szably baloldala legalbb egy N- beli bett tartalmaz. Formlisan teht a generatv grammatika (vagy generatv nyelvan) defincija: 1. Definci. A G=(N, T, S, H) rendezett ngyest generatv nyelvtannak (vagy generatv grammatiknak) nevezzk, ha N s T diszjunkt vges bck, SN, H(NT)*N(NT)*(NT)*. Az N elemeit nemterminlis jeleknek vagy vltoz szimblumoknak nevezzk, s ltalban nagybetkkel (S, A, B, C, ) jelljk. A T elemeit terminlis jeleknek, vagy konstansoknak nevezzk, s ltalban kisbetkkel (a, b, c, ) jelljk. A H elemeit kpez (p, q) rendezett prokat (mint korbban is) helyettestsi szablyoknak nevezzk, s ltalban p q alakban rjuk. Az S egy kitntetett nemterminlis jel, amely a G nyelvtanban a generls kiindul vagy kezd eleme, msnven mondatszimbluma (startszava). Most definiljuk, hogy hogyan lltunk el egy nyelvet egy generatv nyelvtan segtsgvel, elszr most is (kzvetlen) levezethetsget kell definilnunk, ez tulajdonkppen megegyezik a generatv rendszerekben meghatrozott azonos fogalmakkal: 2. Definci. Egy G generatv nyelvtanban az r(NT)* szbl egy lpsben, vagy kzvetlenl levezethet a t(NT)* sz, ha van olyan pq helyettestsi szably a H- ban s p1, p2(NT)* gy, hogy r=p1pp2 s t=p1qp2. Jells: rGt, vagy ha egyrtelmen meghatrozhat a G, akkor rt. Egy G generatv nyelvtanban az r szbl levezethet a t sz, ha van olyan r0, r1, , rn vges szsorozat a (NT)*- ban, amelyre teljesl, hogy r0=r, rn=t s riri+1 (i=0, 1, , n-1). Ezt a relcit r*t- vel jelljk. Megegyezs szerint minden r(NT)* szra r*r teljesl. 21

Formlis rendszer s nhny fbb tpusa A G=(N, T, S, H) generatv nyelvtan ltal generlt nyelven a T*- beli szavak kvetkez halmazt rtjk: L(G)={w|S*w, wT*}. gy is mondhattuk volna, hogy L(G)=Lg(G)T*, ahol Lg(G) a G mint generatv rendszer, pontosabban a (V, {S}, H) generatv rendszer ltal generlt nyelvet jelli. (Teht vigyzat: Nem tvesztend ssze a G generatv nyelvtan s a G mint generatv rendszer ltal generlt nyelv, hiszen L(G)Lg(G), vagyis a kt nyelv nem esik egybe: SLg(G), de SL(G) !) Lg(G) elemeit, vagyis azon (NT) feletti szavakat amelyek az S modatszimblumbl levezethetek, mondatformknak, N* elemeit nemterminlis szavaknak, T* elemeit pedig terminlis szavaknak, vagy a nyelvtani analgia miatt mondatoknak is hvjuk. Egy adott nyelvtan esetn a levezets sorn mondatformk szereplenek, gy a levezetett terminlis szt sokszor egyszeren csak levezetett sznak fogjuk hvni (amennyiben ez nem zavar). Chomsky nyelvszknt a termszetes nyelvek lerst szerette volna elrni generatv nyelvtanok segtsgvel, gy a fogalom megfelel annak, hogy a vltozk a nyelvi fogalmak (ige, fnv, stb.), a konstansok pedig a sztri szavak elemeinek absztrakcii. Habr a termszetes nyelvek teljes formlis lersa ilyen formn a mai napig nem szletett meg, a generatv nyelvtanok szerepe igen fontoss vlt a mestersges nyelvek, gy a szmtgpek fejldsvel, pl. a programnyelvek formlis lersakor. Els pldnkban kezdetleges szmtgpes nyelvszeti lerssal prblkozunk.

3.19. plda - Generatv nyelvtan termszetes nyelv "lersra"


Legyen G=(N, T, S, H), ahol N={S, (ige), (fnv), (mellknv)}, T={ magyar bc beti }, H={S (ige), (ige) (fnv)(ige), (fnv) (mellknv)(fnv), (mellknv) az (mellknv), (ige) tanul, (fnv) dik, (mellknv) engedelmes}. Tekintsk a kvetkez levezetst. S(ige)(fnv)(ige)(mellknv)(fnv)(ige)az (mellknv)(fnv)(ige) az engedelmes (fnv)(ige)az engedelmes dik (ige)az engedelmes dik tanul. Ugyangy levezethet "nyelvtanunkkal" pldul: az az engedelmes dik tanul, stb. A generatv nyelvtan persze nemcsak nyelvtani elemzsre alkalmas eszkz. Mint a kvetkez (M. Soittola -tl, illetve M. Penttonen-tl szrmaz) pldk is mutatjk, segtsgvel el tudjuk lltani az sszes ngyzetszmot, illetve a prmszmokat.

3.20. plda - Unris ngyzetszmok


G=({S, X, Y, Z, X1, X2, Y1, Y2}, {a}, S, {S a, S aXX2Z, X2Z aa, Xa aa, Ya aa, X2Z Y1YXZ, XX1 X1YX, YX1 Y1YX, XY1 X1Y, YY1 Y1Y, aX1 aXXYX2, X2Y XY2, Y2Y YY2, Y2X YX2}. Az sszes ngyzetszmot a kvetkezkpp llthatjuk el: Elszr bizonytsuk be hogy a generlt terminlis szavak hossza eleme lesz az 1, 1+3, 1+3+5, , 1+3++(2n-1), sorozatnak: Csoportostsuk a szablyokat az albbi mdon. (1) Sa, S aXX2Z, (2) X2Z aa, (3) Xa aa, Ya aa, (4) X2Z Y1YXZ, 22

Formlis rendszer s nhny fbb tpusa (5) XX1 X1YX, YX1 Y1YX, (6) XY1 X1Y, YY1 Y1Y, (7) aX1 aXXYX2, (8) X2Y XY2, Y2Y YY2, Y2X YX2. A tovbbiakban (1)-(8) a megfelel csoport valamelyik szablyt jelli. (1) (mely a mondatszimblumbl kiindul szablyokat mutatja) az a s aXX2Z szavak valamelyikt eredmnyezi. Tekintsnk a pi=aXqiX2Z, qi{X, Y}* szbl terminlis szavakhoz vezet levezetseket. Elszr csak (2) vagy (4) alkalmazhat. Ha (2) kerlt alkalmazsra, akkor a folytats egyedli mdja (3) alkalmazsa egsz addig, mg egy 1+3+|qi| hossz terminlis szt nem kapunk. (Mivel a terminlis bc egy betbl ll, minden sz meg van hatrozva a hossza ltal.) Ha (4) kerl alkalmazsra, az aXqiY1YXZ szt kapjuk. A folytats egyedli mdja az "1" index balra lptetse (5)- el s (6) egsz addig, amg (7) alkalmazhatv vlik. (7) alkalmazsa utn egy aXXYX2q'iYYXZ szhoz jutunk, ahol q'i- t gy kapjuk qi- bl, hogy X minden elfordulsakor Y- t runk. A "2" index jobbra lptetsnek egyedli lehetsge a (8), mely a Pi+1=aXQi+1X2Z, Qi+1=XYQ'iYY szavakhoz vezet. (Megjegyezzk, hogy (8) eleget tesz a "2" index jobbra lptetsi kvetelmnynek, hisz X2X XX2 nem szksges, mivel nem fordul el kt egymst kvet X.) Egy, a kiindul pi szavunkkal megegyez formj szhoz jutottunk, s kezddhet egy j ciklus (2) vagy (4) alkalmazsval. Kvetkezskpp, |qi+1|=|qi|+qi[X]+5, ahol qi[X] jelli az X bet elfordulsainak szmt qi- ben. Mivel vilgos, hogy qi+1[X]=qi[X]+2, kapjuk, hogy a generlt terminlis szavak hosszai elemei az 1, 1+3, 1+3+5, , 1+3++(2n-1), sorozatnak. Msrszt knnyen igazolhat, s kzismert, hogy n2=1+3++(2n-1)(n=1, 2, ). gy L(G)={an |n=1, 2, }.
2

3.21. plda - Unris prmszmok


G=({S, A, B, C, D, E, X1, X2, X3, YA, YB, Y1, Y2, Y3, Y4, Y5, Y6, Y7, Y8, Y9}, {a}, S, {S a2, S a3, S a5, S a7, S Y1A6X3, Y1 Y1A2, Y1A3 X1A3X2, iAX2A DY2YiE, iDY2 DY2i, X1DY2 X1BY3, Y3i iY3, Y3YiE YiY3E, Y3Ei iY3E, Y3EX3 Y4CX3, iY4 Y4i, YiY4 iX2, (i{A, B}), X1B X1Y5, Y5B BY5, Y5X2A Y6X2A, BY6 Y6A, XY6 X1A, CX3 Y7X3, CY7 Y7A, BAjX2Y7 Y8Aj+1X2, (j{0, 1, 2}), A4X2Y7 Y8A4X2, AY8 Y8A, BY8 Y8A, X1Y8 X1A, X2X3 Y9a, AY9 Y9a, X1Y9 aa}). Igazolhat hogy L(G)={ap|p -prmszm}. Az sszes prmszmot a kvetkezkpp llthatjuk el: Csoportostsuk a szablyokat a kvetkez mdon. (1) S a2, S a3, S a5, S a7, (2) S Y1A6X3, Y1 Y1A2, Y1A3 X1A3X2, (3) iAX2A DY2YiE, iDY2 DY2i, X1DY2 X1BY3, Y3i iY3, Y3YiE YiY3E, Y3Ei iY3E, Y3EX3 Y4CX3, iY4 Y4i, YiY4 iX2, i{A, B}, (4) X1B X1Y5, Y5B BY5, Y5X2A Y6X2A, BY6 Y6A, XY6 X1A, (5) CX3 Y7X3, CY7 Y7A, BAjX2Y7 Y8Aj+1X2, A4X2Y7 Y8A4X2, AY8 Y8A, BY8 Y8A, X1Y8 X1A, j{0, 1, 2} (6) X2X3 Y9a, AY9 Y9a, X1Y9 aa. Az (1)- beli szablyok generljk minden 10 alatti prm n- re az an alak terminlis szavakat. A (2)beli szablyok generljk minden 9- nl nem kisebb n- re az X1A3X2An-6X3 alak szavakat. A (3)(5) szablyok tesztelik, hogy n oszthat-e 3- al, s ha nem, akkor eljutunk az X1A4X2An-7X3 szhoz. Ezutn kvetkezik a 4- el oszthatsg tesztje. Negatv eredmny esetn X2 egyet lp jobbra. A pozitv 23

Formlis rendszer s nhny fbb tpusa vlasz olyan levezetst eredmnyez, mely nem vezet terminlis szhoz. Ha az oszthatsgi teszt eredmnytelen, eljutunk az X1An-3X2X3 szhoz, s (6) vlik alkalmazhatv, mely elvezet an- hez. A rszletesebb bizonytst mellzzk. A generatv nyelvtan dulis fogalma az analitikus nyelvtan, amit a generatv nyelvtanhoz hasonlan, G=(N, T, S, H) alakban adunk meg, benne N a vltoz(szimblumo)k, vagy mg ms nven, a nemterminlisok halmaza, T a konstansok vagy terminlisok halmaza, S a mondatszimblum, H pedig (mint korbban) a szablyok halmaza. E fogalomnl is hasznljuk a V=NT jellst , N* elemeit nemterminlis szavaknak, T* elemeit pedig terminlis szavaknak, vagy a nyelvtani analgia miatt mondatoknak hvjuk (ugyangy mint a generatv nyelvtannl). Szemben a generatv nyelvtannal, itt azt ttelezzk fel, hogy minden H- beli szably jobboldala legalbb egy N- beli bett tartalmaz. A G analitikus nyelvtan ltal acceptlt, vagy elfogadott, vagy mg ms nven, felismert nyelven a T*- beli szavak kvetkez halmazt rtjk: L(G)={wT*|wG*S}. Itt is mondhattuk volna, hogy L(G)=La(G)T*, ahol La(G) a G mint analitikus rendszer, pontosabban az (NT, {S}, H) analitikus rendszer ltal felismert nyelvet jelli. (Teht vigyzat: Hasonlan a generatv vltozatokhoz, nem tvesztend ssze a G analitikus nyelvtan s a G mint analitikus rendszer ltal felismert nyelv, hiszen L(G)La(G), vagyis a kt nyelv soha nem esik egybe!) rvnyes a kvetkez ttel, melynek bizonytst az olvasra bzzuk. 1. Ttel. Tekintsnk egy tetszleges G=(N, T, S, H) tetszleges generatv (analitikus) nyelvtant. Alkossuk meg hozz az sszes olyan q p szablyok H ' halmazt, melyekre p qH. Ekkor a G '=(N, T, S, H ') analitikus (generatv) nyelvtanra L(G ')=L(G).

3.22. plda - Gyakorl feladat


Az 1. Ttel. felhasznlsval, tovbb az elz kt plda segtsgvel ksztsnk analitikus 2 nyelvtanokat, melyek ltal felismert nyelvek L(G)={an |n=1, 2, }, illetve L(G)={ap|p - prmszm }. A 1. Ttel. alapjn minden (generatv vagy analitikus) nyelvtan befoglalhat egy vele ekvivalens dulis nyelvtannal alkotott prba. (Nevezetesen, minden generatv nyelvtanhoz tartozik egy vele ekvivalens analitikus nyelvtan, s megfordtva, minden analitikus nyelvtanhoz tartozik egy vele ekvivalens generatv nyelvtan.) A tovbbiakban a "nyelvtan" elnevezst fenntartjuk a "generatv nyelvtan" elnevezs rvidtsre. Nyelvtan alatt teht mindig generatv nyelvtant fogunk rteni (mg analitikus nyelvtan esetn mindig kitesszk az "analitikus" jelzt).

3.2.1. Chomsky-fle nyelvosztlyok


A nyelvtan s az ltala generlt nyelv defincija szerint minden nyelvtanhoz egy egyrtelmen meghatrozott nyelv tartozik, de megfordtva, egy nyelvet nem csak egy nyelvtannal generlhatunk. Kt nyelvtant (gyengn) ekvivalensnek neveznk, ha ugyanazt a nyelvet generljk, vagy az ltaluk generlt nyelv legfeljebb az resszban tr el. Teht, formlisan, G1 s G2 (gyengn) ekvivalens, ha L(G1){}=L(G2){}. Az ekvivalencia fogalmnak ismeretben kzenfekvnek ltszik a klnbz nyelvtanokat bizonyos formai tulajdonsgok alapjn osztlyokba sorolni. Az osztlyozs alapjt a helyettestsi szablyok alakjra vonatkoz megszortsok kpezik abban a hierarchiban, amelyet az elmlet egyik megalapozja, N. Chomsky vezetett be, s amelyet albb ismertetnk. 3. Definci. A G=(N, T, S, H)- t i-tpus nyelvtannak (i=0,1,2,3) nevezzk, ha az albbi megszortsok kzl az i- edik teljesl: (0) Mondatszerkezet nyelvtan, (Phrase-structure). A generatv nyelvtan korbban mr ismertetett ltalnos defincijnl feltettk, hogy H olyan (NT)*- beli prokbl ll, melyek els eleme (azaz a szably baloldala) tartalmaz legalbb egy nemterminlist. H- ra ebben az esetben (azaz i=0 esetn) ezen kvl nem rovunk ki kln felttelt. 24

Formlis rendszer s nhny fbb tpusa (1a) Szhossznemcskkent, vagy monoton nyelvtan, (Monotone). Minden H- beli p q szablyra |p| |q| teljesl, vagy S alak, de ez esetben, vagyis S H elfordulsa esetn S nem lp fel egyetlen H- beli szably jobboldaln sem. (1) Krnyezetfgg nyelvtan, (Context-Sensitive). Minden H- beli szably vagy p1Ap2 p1qp2 alak, aholis p1, p2(NT)*, AN, q(NT)+, (emlkeztetl: (NT)+=(NT)*{}) vagy pedig S alak. Utbbi esetben, azaz S H elfordulsa esetn S nem lp fel egyetlen H- beli szably jobboldaln sem. (2) Krnyezetfggetlen nyelvtan, (Context-Free). Minden H- beli szably Ap alak, aholis AN, p(NT)*. (2.5) Lineris nyelvtan, (Linear). Minden H- beli szably A uBv vagy Au alak, ahol A, BN, u, vT*. (3) Regulris nyelvtan, (Regular). Minden H- beli szably vagy A uB, vagy pedig A u alak, ahol A, BN, uT*. A 0-tpus nyelvtanokat mondatszerkezet nyelvtanoknak is szoks nevezni, utalva azok nyelvszeti eredetre. Az 1a-tpusnl a monoton, illetve szhossznemcskkent nv nmagrt beszl, itt a levezets sorn nem cskkenhet a mondatforma hossza (az egyedli S lehetsges levezetst kivve). Az 1-tpusakat krnyezetfggnek nevezzk, az elnevezs itt arra mutat, hogy egy szably egyetlen A nemterminlis helybe egy nem ressznak a berst jelenti, de csak akkor ha a nemterminlis kzvetlen krnyezete egy adott p1, p2 szpr. (Termszetesen megengedett az is, hogy p1, p2 brmelyike, vagy akr mind a kett res legyen.) res szavat csakis a mondatszimblum helybe tehetnk, s azt is csak egy levezets legels lpsben teszi lehetv az 1-tpus nyelvtan. Ezt biztostjuk azon megszortssal, hogy ha egy 1-tpus nyelvtanban egy p1Ap2 p1qp2 szablyban q= csak gy lehessen, ha A=S, p1=p2= (azaz S szablyrl van sz). S hogy egy levezets sorn az S helybe csak az els lpsben lehessen resszt tenni (a tbbi nemterminlisra ez a lehetsg is ki van zrva), az S szably elfordulsa esetn kizrjuk annak lehetsgt, hogy S szablyok jobboldaln szerepeljen. Utalva arra, hogy a 2-tpus nyelvtanok esetn egy szably baloldaln ll nemterminlis brmilyen krnyezetben helyettesthet a szably jobboldaln ll szval, ezesetben krnyezetfggetlen nyelvtanokrl beszlnk. Ez nem ll szemben a krnyezetfggssel, hiszen ott az ressz, mint krnyezet is megengedett, mint ltni fogjuk inkbb arrl van sz, hogy a krnyezetfggetlen nyelvtanok a krnyezetfggknek specilis esetei. Ha egy 2-tpus nyelvtan minden szablya legfeljebb egy nemterminlist tartalmaz a jobb oldaln, akkor eljutunk a lineris grammatika fogalmhoz. A lineris nyelvtanok, mint ltni fogjuk, a hierarchiban a 2- s a 3-tpus kztt helyezkednek el. Ha egy lineris nyelvtanban specilisan az sszes A uBv alak szablyban v=, akkor 3-tpus nyelvtanhoz jutunk, amik a jobb-lineris nyelvtan elnevezst innen kaptk. Hasonl mdon, ha az sszes A uBv alak szablyban u=, akkor bal-lineris nyelvtanokrl beszlnk. 4. Definci. Egy nyelvrl azt mondjuk, hogy mondatszerkezet (RE) / monoton / krnyezetfgg (CS) / krnyezetfggetlen (CF) / lineris (LIN) / jobblineris / ballineris / regulris (REG), ha mondatszerkezet / monoton / krnyezetfgg / krnyezetfggetlen / lineris / jobblineris / ballineris / regulris nyelvtannal generlhat. Tovbb az i=0, 1, 2, 3 rtkek esetn azt mondjuk, hogy egy nyelv i-tpus, ha van olyan i-tpus nyelvtan, amely azt generlja. Egyszeren bizonythatk a kvetkez ttelek. 2. Ttel. Minden G i-tpus (i=0,1,2,3) nyelvtanhoz ltezik egy vele ekvivalens G ' i-tpus nyelvtan, amelynek szablyai jobb oldaln a mondatszimblum nem lp fel. Bizonyts. Valban, ha G=(N, T, S, H) i-tpus nyelvtan, akkor egy ilyen G ' nyelvtant megadhatunk G '=(N{S '}, T, S ', H ') alakban, ahol S 'N s H '=H{S ' p|S pH}. 3. Ttel. Ha az L nyelv i-tpus, akkor L{} is. Bizonyts. Legyen G=(N, T, S, H) egy i-tpus nyelvtan melyre L=L(G) s melyben az elz ttel rtelmben a mondatszimblum nem fordul el egyik szably jobboldaln sem. Ha L tartalmazza az 25

Formlis rendszer s nhny fbb tpusa resszt, L{}=L i-tpus volta automatikusan teljesl. Ha nem tartalmazza, akkor tekintsnk egy G ' nyelvtant, ahol G '=(N, T, S, H ') s H '=H{S }. Ekkor a G ' i-tpus nyelvtan generlja L{}-t.

3.23. plda - Grammatikk fbb tpusai 1. plda


Az albbi szablyok hnyas tpus grammatika elemei lehetnek, ha a kisbetk terminlist, a nagybetk nemterminlist jellnek? AB 3-as tpus: ez a szably XxY alak, A=XN s x=T*, s Y=BN. 2-es tpus: Xp alak, X=AN, p=BV*. 1-es tpus: P1PP2 P1QP2 alak, ahol P1=P2=V*, P=AN, Q=BV+. 0-s tpus, ahol a szablyokra nincs megkts azon tl, hogy minden szably baloldala tartalmaz nemterminlist. (ha nemcsak a 0,1,2,3 tpusokat vizsgljuk, akkor lineris s monoton is) ABC 2-es tpus Xp alak, X=AN, s p=BCV*. 1-es tpus: P1PP2 P1QP2 alak, ahol P1=P2=V*, P=AN, Q=BCV+. 0-s tpus, ahol a szablyokra nincs megkts azon tl, hogy minden szably baloldala tartalmaz nemterminlist. XYXaB 1-es tpus, P1PP2 P1QP2 alak, ahol P1=XV*, P=YN, Q=aBV+, P2=V*. 0-s tpus, ahol a szablyokra nincs megkts azon tl, hogy minden szably baloldala tartalmaz nemterminlist. ABCACB 0-s tpus lehet csak, ahol a szablyokra nincs megkts azon tl, hogy minden szably baloldala tartalmaz nemterminlist. (egybknt, ha nemcsak a 0,1,2,3 tpusokat tekintjk, akkor monoton is) A 3-as tpus: ez a szably Xx alak, A=XN s x=T*. 2-es tpus: Xp alak, X=AN, p=V*. 0-s tpus, ahol a szablyokra nincs megkts azon tl, hogy minden szably baloldala tartalmaz nemterminlist. (ha nemcsak a 0,1,2,3 tpusokat tekintjk, akkor lineris is. Ha A=S (azaz A a mondatszimblum), akkor egyb felttelek teljeslse mellett szerepelhet 1-tpus, vagy monoton nyelvtanban is).

3.24. plda - Grammatikk fbb tpusai 2. plda


Milyen tpus a G=({S, A, B},{x, y}, S, H) grammatika, ahol H szablyai: SAB, ABSB, ABB, BxAy, B, Bx, By. Megolds: SAB; ABSB; ABB; BxAy megfelel a 0-s, 1-es s 2-es tpus grammatika kvetelmnyeinek, de a 3-asnak nem. Bx; By megfelel a 0-s, 1-es 2-es s 3-as grammatika kvetelmnyeinek. B pedig a 0-s 2-es s 3-as grammatika kvetelmnyeinek. Teht a grammatiknk minden szablya megfelel a 0-s s 2-es tpus grammatika kvetelmnyeinek is. Ilyenkor azt szoktk nzni, hogy melyik a legnagyobb index, amelyhez tartoz kvetelmnyeinek a teljes szablyhalmaz eleget tesz. Ez alapjn a nyelvtanunk 2-es tpus. 26

Formlis rendszer s nhny fbb tpusa

3.25. plda - Grammatikk fbb tpusai 3. plda


Milyen tpus a kvetkez grammatika? G=({S, A, B},{a}, S, H), ahol H szablyai a kvetkezk: SABa, ABAaBB, Baaa, SAS, AASABS. Megolds: SABa (0-s, 1-es, 2-es) ABAaBB (0-s, 1-es) Baaa (0-s, 1-es, 2-es, 3-as) SAS (0-s, 1-es, 2-es) AASABS (0-s, 1-es) Grammatiknk eleget tesz a 0-s s az 1-es tpus kvetelmnyeinek, ezrt a grammatiknk 1-es tpus lesz.

3.26. plda - Grammatikk fbb tpusai 4. plda


Hnyas tpus a kvetkez grammatika? G=({ S, A, B }, { a, b, c }, S, H), ahol H szablyai a kvetkezk: SABc, AaB, ABc, BaAc, Bbc. Adjuk meg az sszes hatbets szt a grammatika ltal generlt nyelvben! Megolds: Az sszes szably eleget tesz a 0-s, 1-es s a 2-es tpus kvetelmnyeinek, ezrt 2-es tpus a grammatika. Most hatrozzuk meg a hatbets szavakat! Elszr is azt kell megllaptsuk, hogy a grammatika szablyai kzl a baloldal mindenhol rvidebb, mint a jobboldal, vagyis egy szbl sehol sem kapunk rvidebbet (st, mindig szigoran hosszabb mondatformt kapunk), teht a levezetseket elg hatbets szavakig nzni, s azok kzl azok lesznek a grammatika ltal generlt nyelvben, melyek csak terminlist tartalmaznak. A levezets els lpse mindenkppen az SABc lesz. Az A helyre vagy Bc vagy aB kerlhet csak. Mindkt esetben lesz egy ngybets szavunk, melyben lesz kt terminlis s kt B nemterminlis. B helyre csak bc kerlhet, mert klnben gy kapunk hatbets szt, hogy mg marad benne nemterminlis. Ezrt a levezetseink a kvetkezk lesznek: S ABc aBBc abcBc abcbcc, S ABc BcBc bccBc bccbcc. Termszetesen van mg ezen kvl tbb levezets is, de az csak a nemterminlisok helyettestsnek sorrendjben tr el.

3.27. plda - Grammatikk fbb tpusai 5. plda


Milyen tpus a G=({S, A, B}, {0, 1}, S, {S AB, A 0B1, 0B011, 1B11BS, S})? Megolds: A 0B011 s 1B11BS alak szablyok miatt csak 1- s 0-tpus lehet. Az S szably miatt lehetne 1-tpus a nyelvtan, ha S nem szerepelne egyik szably jobboldaln sem, de mivel 1B11BS szablyra ez nem teljesl, a nyelvtan 0-tpus.

27

Formlis rendszer s nhny fbb tpusa

3.28. plda - Grammatikk fbb tpusai 6. plda


Hnyas tpus a kvetkez grammatika? G=({S},{x, y, +, *, ), (}, S, H), ahol H szablyai a kvetkezk: SS+S, SS*S, S (S), Sx, Sy. Adjunk meg az y*(x+y) sz egy levezetst! Megolds: SS+S; SS*S; S (S) lehetnek 0-s, 1-es s 2-es tpus szablyok. Sx; Sy pedig 0-s, 1-es, 2-es s 3-as tpus szablyok, vagyis minden szably eleget tesz a 0-s 1-es s a 2-es tpus kvetelmnyeinek, teht a grammatika 2-es tpus lesz. Az y*(x+y) sz egyik levezetse a kvetkez: S S*S y*S y*(S) y*(S+S) y*(x+S) y*(x+y)

3.29. plda - Grammatikk fbb tpusai 7. plda


Adott a G=({S,A,B,C },{a,b } ,S, H) nyelvtan, ahol H szablyai: SaS, SbaA, A aA, AbaaB, B aB, B b, B baaaC, C aC, C a. Milyen tpus? Adjuk meg az aabaabaaabaaaa sz levezetst! Megolds: A nyelvtan szablyait megnzve, lthatjuk, hogy az sszes szably eleget tesz a 0-s, 1-es, 2-es s 3-as tpus nyelvtanok kvetelmnyeinek, teht a nyelvtan 3-as tpus. A generls az els kt szably valamelyikvel kezddhet. Mivel a keresett sz a-val kezddik, ezrt az 1. szablyt kell hasznlnunk elszr. Az els szably n-szeri (n tetszleges nem-negatv egsz) alkalmazsval anS-et kapunk. Ahhoz, hogy az S szimblum eltnjn a mondatformbl a msodik szably hasznlatra van szksg. Ennek alkalmazsa utn anbaA-hoz jutunk. Ezutn olyan A-bl kiindul szablyt kell keresni, ahol a kvetkezik a nyl utn. Ezrt a 3. szably m-szeri alaklmazsval anbaamA-t kapunk. Majd a negyedik szabllyal: anbaambaaB-t. Ezutn hrom alkalmazhat szably van. Az tdik k-szori alkalmazsa az anbaambaaakB alakhoz vezet. Ekkor a levezets befejezhet a B b szabllyal: anba ambaaakb. Alternatvaknt a B baaaC szabllyal folytathat a levezets: anbaambaaakbaaaC. Ekkor a C aC j-szeri alkalmazsa az anbaambaa akbaaa ajC formhoz vezet, a levezets ekkor az utols szabllyal fejezhet be: anbaambaaakbaaaaja eredmnnyel. A levezetseket grf segtsgvel is szemlltethetjk. Ebben az esetben az aabaabaaabaaaa szlevezetst a kvetkez fa reprezentlja:

28

Formlis rendszer s nhny fbb tpusa

29

Formlis rendszer s nhny fbb tpusa

3.30. plda - Grammatikk fbb tpusai 8. plda


Adott a G=({ S,A,B }, { a,b }, S, H ) nyelvtan, ahol H={Sa A, A Sa, A a, S bB, B Sb, B b, S a, S b }. Milyen tpus? Mely nyelvet generlja? Adjuk meg az abbabba sz levezetst fa alakban! Megolds: Amint ltjuk a szablyok kzt van jobb-, illetve bal-lineris alak is, ezrt a megadott grammatika nem regulris. Az viszont minden szablyra teljesl, hogy a nyl utn legfeljebb egy nemterminlis bet szerepel. Teht a nyelvtan lineris. A nyelvtan szablyait csoportokban vizsglhatjuk. Az els szably alkalmazsa utn a msodik vagy harmadik szablyt is fel kell hasznlnunk a levezetsben. Az els utn a harmadik szabllyal a levezets befejezdik, az S szimblum helyre aa kerl gy a levezetsben. Az els s a msodik szablyok az eredeti S-t aSa-val helyettestik. Hasonlan a kvetkez hrom szably az S szimblumot a bSb, illetve a bb szavakkal helyettestheti. Ezek alapjn knnyen belthat, hogy a generlt sz az elejrl olvasva ppen ugyanaz, mint a vgrl visszafel olvasva. Az is ltszik, hogy az {a,b} bc felett minden ilyen szt elllt a nyelvtanunk. Az utols kt szably a pratlan hosszsg ilyen tulajdonsg szavak levezetsnek befejezesben jtszik szerepet. Ezt a nyelvet egybknt a ktbets bc feletti palindrom nyelvnek nevezzk. Az bra az abbabba sz levezetsi fjt mutatja.

30

Formlis rendszer s nhny fbb tpusa

3.31. plda - Grammatikk fbb tpusai 9. plda


Legyen adott G=({S, A,B,C },{a,b }, S, H) generatv nyelvtan, ahol H={ SSS, S AB, SAC, S SB, Aa, B b}. Milyen tpus ez a nyelvtan? Mely nyelvet generlja? Adjuk meg az abaababbaaabbb sz levezetsi fjt! Megolds: A nyelvtan krnyezetfggetlen. Az utols kt szably alapjn az A, illetve a B szimblumok az a s b terminlisoknak felelnek meg. A msodik, illetve a harmadik s negyedik szablyok hasznlata egy-egy A s B szimblumot vezet be, mgpedig gy, hogy az A a B eltt szerepel. A nyelv minden szavban megegyezik teht az a s b betk szma. Msrszt az is igaz, hogy a nyelv egy szavnak minden kezdszeletben legalbb annyi a van, mint ahny b. (Ez a nyelv egybknt a ktbets bc fltti Dyck-nyelv, vagyis a zrjelek nyelve. Zrjelei: a a nyit; b pedig a zr zrjeleket jelenti.) Az bra mutatja az abaababbaaabbb sz levezetsi fjt.

3.2.2. A Chomsky hierarchia


Definci szerint azonnal lthat, hogy minden 3-tpus nyelvtan egyben lineris, s minden lineris nyelvtan egyben 2-tpus is, valamint minden 1-tpus nyelvtan monoton s minden monoton nyelvtan egyben 0-tpus is. Az is nyilvnval, hogy minden 2-tpus, lineris vagy 3-tpus nyelvtan egyben 0-tpus is. Nzzk meg az 1-tpus s a 2-tpus nyelvtanok kztti kapcsolatot. 31

Formlis rendszer s nhny fbb tpusa 4. Ttel. (ressz-lemma). Minden krnyezetfggetlen G grammatikhoz megadhat olyan G ' krnyezetfggetlen nyelvtan, hogy L(G)=L(G ') (azaz az ltaluk generlt nyelv ugyanaz), s ha L(G), akkor a G '- beli szablyok jobboldaln nem fordul el. Ha viszont L(G), akkor az egyetlen G '- beli szably aminek jobboldala az ressz S ', ahol S ' a G ' mondatszimblumt jelli. Ezesetben, azaz L(G ') fennllsa esetn viszont S ' (azaz a G ' mondatszimbluma) nem fordulhat el egyetlen G 'beli szably jobboldaln sem. Ennek megfelelen, taht G ' nemcsak krnyezetfggetlen, de egyben a krnyezetfgg defincinak is eleget tesz. Bizonyts. Legyen G=(N, T, S, H) 2-tpus nyelvtan. Megszerkesztnk hozz egy G1=(N, T, S, H1) grammatikt a kvetkez mdon. Definiljuk az Ui halmazokat (i=0,1,...) a kvetkez mdon: elszr az U1={A|A H}, majd az Ui+1=Ui{A|A pH, pUi*}, i 1 halmazokat. Mivel U1U2UiN, s N vges, azrt ltezik olyan k, hogy Uk=Uk+1. Az Ui (i=1, 2, ) halmazok konstrukcija alapjn ekkor lthat, hogy minden m pozitv egszre Uk=Uk+m. Jelljk ezt U- val, teht U=Uk. Erre az U- ra ekkor A* akkor s csak akkor ha AU (AN), azaz L(G) akkor s csak akkor ha SU. Tekintsk most azt a G1=(N, T, S, H1) grammatikt, amelyre A p1H1 pontosan akkor, ha p1 s van olyan A pH, hogy p1=p, vagy p1 ellltht p- bl gy, hogy p- bl U- beli elemet vagy elemeket hagyunk el. p- bl teht egy ilyen p1 szt gy szrmaztatunk, hogy alkalmas U- beli (nem felttlen egymstl pronknt klnbz) A1, , Am nemterminlis betkre s (NT)*- beli q1, qm+1 szavakra p=q1A1qmAmqm+1 mellett p1=q1qm+1 fennlljon. Ekkor nyilvnval, hogy L(G1)L(G){}. De megfordtva, L(G){}L(G1) is fennll, hisz ha S*p s p, akkor fennll pL(G ') is, mivel a p- nek egy G- beli levezetse esetn minden A alak szably alkalmazsa helyett vehetjk a megfelel H1- beli szablyokat. gy azt kaptuk, hogy L(G){}=L(G1). Ha teht L(G), akkor G '- knt G1- et vlaszthatjuk. Ha pedig L(G), akkor egy j S ' (NT) szimblumot vlasztva vegyk a G '=(N{S '}, T, S ', H1{S ' S, S ' }) nyelvtant, mely ezesetben nyilvnvalan eleget tesz a ttelbeli tulajdonsgoknak, gy a ttel bizonytst nyert. Lthatjuk teht, hogy a krnyezetfggetlen nyelvek generlhatak olyan (krnyezetfgg) nyelvtanokkal, melyekben minden szably bal oldalnak hossza egy. A fenti ttelnk alapjn knnyen lthat, a Chomsky-fle nyelvosztlyok albbi hierarchija: REGLINCFCSRE. Ez a hierarchia valjban lesebb, de ezt a ksbbiekben az adott nyelvosztlyok vizsglatakor fogjuk bizonytani. A jegyzet sorn e hirarchia nyelvosztlyait is sorra vesszk, s klnbz fontos tulajdonsgaikat viszgljuk, ezeket a problmakrket ismertetjk a Problmakrk alfejezetben.

32

Formlis rendszer s nhny fbb tpusa

3.32. plda - ressz-lemma 1. feladat


G=({S, A, B},{x, y}, S, H), ahol H a kvetkez szablyokbl ll: SAB, ABSB, ABB, BxAy, B, Bx, By. Elszr nzzk meg, hogy az ressz benne van-e a G ltal generlt nyelvben! U1:={B} - azok a nemterminlisok, amelyekbl kzvetlenl megkaphat. U2:={A,B} - azok a nemterminlisok, amelyekbl U1*-beli szavak kzvetlenl megkaphatak! U3:={S, A, B} - azok a nemterminlisok, amelyekbl U2*-beli szavak kzvetlenl megkaphatak. Mivel U3 a nyelvtan sszes nemterminlist tartalmazza, ezrt U:=U3=U4=U5=... Teht U-beli nemterminlisokbl kaphat meg az ressz. Mivel SU, ezrt az ressz benne van a G ltal generlt nyelvben. Ksztsk el a G'=({S', S, A, B},{x, y}, S', H') grammatikt, ahol H' a kvetkez szablyokbl ll: I. S'S, S'. Ez a kt szably azrt kerlt be a H' szablyai kz, mert L(G), ezrt L(G')nek is teljeslnie kell! II. Most vegyk azokat a H-beli szablyokat, amelyekben nem a szerepel a jobboldalon. Ezek a kvetkezk: SAB, ABSB, ABB, BxAy, Bx, By. III. s vegyk mg azokat a szablyokat, amelyek H-ban nem szerepeltek, s amelyeket gy kapunk, hogy H-beli szablyok jobb oldalrl az sszes lehetsges mdon elhagyjuk U halmaz nemterminlisait, figyelve azonban arra, hogy a jobb oldalon ne maradjon magban: SA, SB, ABS, ASB, AB, AS, Bxy.

3.33. plda - ressz-lemma 2. feladat


Ksztsen a kvetkez grammatikval ekvivalens 1-es tpus grammatikt! G=({S, A, B, C, D}, {a, b}, S,H), ahol H szablyai: SAB, ACB, ASS, Aa, B, CD, D , Db. Megolds: U={S,A,B,C,D} S U, ezrt L(G), vagyis j kezdszimblumot kell bevezetni. G'=({S',S, A, B, C, D}, {a, b}, S', H'), ahol H' szablyai: I. S'S s S', mert L(G) II. SAB, ACB, CD, ASS, A a, D b lesznek azok a szablyok H-bl melyekben nem van a jobboldalon. III.SA, SB, AC, AB, A S lesznek az j szablyok, amelyeket H-beli szablyok jobb oldalrl U-beli nemterminlisok elhagysval kapunk. Ez a grammatika ekvivalens a G grammatikval, de mr 1-es tpus.

33

Formlis rendszer s nhny fbb tpusa

3.34. plda - ressz-lemma 3. feladat


Kszblje ki a trl szablyokat a G=({S, A, B}, {a, b}, S,H) grammatikbl! H={S, SAB, ASAB, Aa, BS, Bb}. Megolds: A feladat az ressz-lemma alkalmazsval oldhat meg: U={S, B} SU, ezrt L(G), vagyis j kezdszimblumot kell bevezetni. G'=({S',S, A, B}, {a, b}, S', H'), ahol H' szablyai: I. S'S s S', mert L(G). II. SAB, ASAB, Aa, BS, B b lesznek azok a szablyok H-bl, amelyekben nem van a jobboldalon. III. SA, ASA, AAB lesznek az j szablyok, amelyeket H-beli szablyok jobb oldalrl U-beli nemterminlisok elhagysval kapunk. (Az AA alak szablyt nyugodtan elhagyhatjuk, mivel levezets szempontjbl nincs hatsa.)

3.35. plda - ressz-lemma 4. feladat


Kszblje ki a trl szablyokat a G=({S, A, B, C, D, E},{a, d}, S,H) grammatikbl! H={SSA, SBS, Aa, BCDE, CDddE, Cd, C, DE, Dd, E}. Megolds: A feladat az ressz-lemma alkalmazsval oldhat meg: U={B, C, D, E} SU, ezrt L(G), vagyis nem kell j kezdszimblumot bevezetni. G'=({S, A, B, C, D, E}, {a, d}, S, H'}), ahol H' szablyai: I. Azok a szablyok H-bl melyekben a jobboldal nem : SSA, SBS, Aa, BCDE, CDddE, Cd, DE, Dd II. Az j szablyok, melyeket U-beli nemterminlisok elhagysval kapunk: BCD, BCE, BDE, BC, BD, BE, CddE, CDdd, Cdd (SS alak szablynak nincs jelentsge.)

34

Formlis rendszer s nhny fbb tpusa

3.36. plda - ressz-lemma 5. feladat


Hozza a G=({S, A, B, C}, {a, b}, S,H) grammatikt 1-es tpusra! H={SASC, SBA, BACB, BAA, CbB, A, Aa, Bba}. Megolds: U={S, A, B} SU, ezrt L(G), vagyis j kezdszimblumot kell bevezetni. G'=({S',S, A, B, C}, {a, b}, S', H'), ahol H' szablyai: I. S'S s S', mert L(G). II. SASC, SBA, BACB, BAA, CbB, Aa, Bba lesznek azok a szablyok H-bl amelyekben nem a jobboldal. III. SAC, SSC, SC, SA, SB, BCB, BAC, BC, BA, Cb lesznek az j szablyok, amelyeket U-beli nemterminlisok elhagysval kapunk.

3.3. L-rendszerek
A Markov-fle norml algoritmus esetn minden lehetsges lpsben egyrtelmen meg volt fogalmazva, hogy melyik szablyt s hol kell alkalmazni (illetve, ha kiszmoltuk a megoldst, s nem folytatdik a szmts). Ezzel szemben a generatv nyelvtanoknl sem az hogy melyik szablyt (tbb alkalmazhat is lehet egyszerre), sem az hogy hol (egy adott szably az aktulis mondatforma tbb helyn is alkalmazhat lehet ugyanakkor) kell alkalmazni nincs egyrtelmen megadva, vagyis a nyelvtanok nemdeterminisztikusak. Viszont minden eddigi korbban ismertetett rendszerre teljeslt, hogy minden idpillanatban pontosan egy szablyt pontosan egy helyen alkalmaztunk, vagyis az eddig trgyalt rendszerek szekvencilis mkdsek. Ebben a fejezetben egy olyan modellt vizsglunk meg, amely alapveten prhuzamos. Aristid Lindenmayer (1925-1989), a Fasori Gimnziumba (Budapesti Evanglikus Gimnzium) jrt, hasonlan tbb magyar Nobel-djashoz (pl. Wigner Jen), vagy Neumann Jnoshoz. Ksbb Hollandiban tevkenyked biolgusknt elszr bizonyos algafajok nvekedsi mintzatainak lersra alkalmazott formlis rendszereket, majd ezeket a matematikai eszkzket magasabb szint nvnyek fraktlszerkezetnek lersra alkalmaztk. 5. Definci. Egy L-rendszer (Lindenmayer-system, L-system) egy prhuzamos tr rendszer LS=(T, s, H), ahol T egy vges bc, sT* (axima), H pedig ar alak (aT, rT*) tr szablyok halmaza. Az alap L-rendszerekben minden aT bethz pontosan egy tr szably (esetleg aa alak) ltezik. Egy levezetsi lpsben az adott mondatforma/sz (axima) minden betjt helyettestjk a megadott trsi szablyok alapjn, gy ltrehozva a kvetkez mondatformt/szt. Az LS rendszer ltal generlt nyelv tartalmazza az sszes olyan szt (belertve az aximt is) amely vges sok lpsben generlhat az aximbl.

3.37. plda - Fibonacci szavak


Legyen ({a, b}, a, {a b, b ba}) L-rendszer. Ekkor knnyen ellenrizhet, hogy az ezzel a rendszerrel generlt nyelv els nhny szava: a, b, ba, bab, babba, babbabab, Ez a Fibonacci szavak nyelve. Figyeljk meg, hogy az egymst kvet szavak hosszai ppen a Fibonacci szmok (az f(0)=1, f(1)=1, f(i)=f(i-1)+f(i-2), (i>1- re) rekurzv kplettel definilt sorozat). Msrszt a szavak felptse is hasonlt a szmsorozatot elllt kplet alkalmazsra: w(0)=a, w(1)=b, w(i)=w(i-1)w(i-2) . 35

Formlis rendszer s nhny fbb tpusa

3.38. plda - Fraktlgenerls L-rendszerrel


A Cantor-halmaz egyike a jl ismert fraktloknak, ennek egy ellltsa trtnhet a kvetkez Lrendszer segtsgvel: ({0,1}, 1, {1101, 0 000}). A generls folyamata: 1, 101, 101000101, 101000101000000000101000101 jobban kvethet a kvetkez kpen, ahol 1 jelzi a szakaszokat, 0 pedig azok hinyt:

A levezetst a vgtelensgig folytatva (hatrsetben) megkapjuk a Cantor ltal definilt fraktlt. Nvnyek formjt, hasonlan, nhny egyszer tr szabllyal tudjuk kdolni, valsznleg a termszet is hasonlkppen kdolja a kifejlett nvny felptst a nvny gnllomnyban. A kvetkezkben egy egyszer ilyen jelleg pldt mutatunk.

36

Formlis rendszer s nhny fbb tpusa

3.39. plda - Ktdimenzis rajz L-rendszerrel


({ },,H), ahol a H szablyhalmaz elemei:

A generls els nhny lpse:

Termszetesen rengeteg vltozata van az L-rendszereknek, itt csak a legalapvetbb vltozatot ismertettk rviden.

3.4. Problmakrk
Az albbiakban ttekintjk, hogy a jegyzetben a klnbz tpus nyelvekkel kapcsolatban mi is rdekel minket. ltalban adott nyelvosztlyra illusztratv pldt is adunk, valamint bizonytjuk a Chomsky-fle hierarchia szigorsgt. Egyes nyelvosztlyok tulajdonsgai ersen klnbzhetnek egymstl. Ebben a jegyzetben ltalban a kvetkez tulajdonsgokat fogjuk vizsglni.

3.4.1. Normlformk (Normlalakok)


A monoton s a 0-tpus nyelvtanokban a terminlis szimblumokat is trhatjuk, itt a terminlis s nemterminlis szimblumoknak a megklnbztetse inkbb csak azrt fontos, hogy lssuk, kszen vagyunk-e a levezetssel (csak terminlisokbl ll az aktulis modatforma), vagy van benne nemterminlis, ahol mg szablyt kell alkalmaznunk ha be akarjuk fejezni a levezetst (az ms krds, hogy nem felttlenl lehet befejezeni minden levezetst). A tovbbiakban beltjuk, hogy minden nyelvtannal van olyan ekvivalens, amiben terminlis szimblumokat nem runk t, vagyis a terminlis szimblumok tnyleg terminlisak, vglegesen ott maradnak a levezetsben, mg a vltozkat termszetesen t kell rnunk egy terminl levezets sorn. Azt mondjuk, hogy egy nyelvtan (terminlis) normlis alakban van, ha a helyettestsi szablyokban terminlis jelek csak Aa ( AN, aT) alak szablyokban fordulnak el. 5. Ttel. Minden G=(N, T, S, H) nyelvtanhoz megadhat egy vele ekvivalens G '=(N ', T, S, H ') nyelvtan gy, hogy az ltaluk generlt nyelvek megegyeznek: L(G)=L(G '), tovbb minden H '37

Formlis rendszer s nhny fbb tpusa beli szably, amely terminlis jelet tartalmaz, A a alak, ahol AN, aT. Emellett G ' nyelvtan ugyanolyan tpus, mint G, kivve, ha G regulris, vagy lineris. Bizonyts. Minden egyes aT terminlis jelhez vezessnk be j DaN nemterminlist, s legyen N '=N{Da|aT}. A H '- beli szablyokat adjuk meg gy, hogy a H szablyaiban minden nem Aa ( AN, aT) alak szablyban az a terminlis helyre a megfelel Da vltozt rjuk. Ezenkvl a H '- beli szablyok kz mg felvesszk az Da a alak j szablyokat (minden aT esetn). Az gy kapott H ' nyilvn rendelkezik a kvnt tulajdonsggal. Az ekvivalencia bizonytshoz elszr megmutatjuk, hogy L(G)L(G '). Legyen w=a1a2akL(G). Ekkor a G ' nyelvtanban levezethet a megfelel D1D2Dk nemterminlis sz, s az Da a szablyok segtsgvel ebbl a w- t megkaphatjuk. Ha tovbb L(G), akkor a G- ben a megfelel szablyok alkalmazsval ugyancsak megkapjuk - t. Most lssuk be, hogy L(G ')L(G). Legyen h:(N 'T)* (NT)* homomorf lekpezs a kvetkez mdon rtelmezve: - h(Da)=a, (minden aT esetn) illetve - h(r)=r, r(NT). Ekkor brmely kt p, q(N 'T)* szra a pG 'q relcibl kvetkezik, hogy vagy h(p)=h(q), vagy h(p)Gh(q). Ha ugyanis a G nyelvtanban a p- bl a q gy addik, hogy valamelyik Da a szablyt alkalmazzuk, akkor h(p)=h(q). Ha pedig H '- nek egy olyan szablyt alkalmazzuk, amelyet egy Hbeli szablybl nyertnk, akkor nyilvn h(p)Gh(q). Teht mindkt esetben pG 'q relcibl a h(p)Gh(q) kvetkezik. Legyen most pL(G '), akkor SGp, mert S=h(S)G 'h(p)=p, amivel a ttelt bebizonytottuk. A tovbbiakban klnbz tpus nyelvtanokhoz ennl jval ersebb megktseket tartalmaz normlformkat is fogunk bemutatni. Az egyik fontos krds az lesz, hogy mennyi korltozst tehetnk adott nyelvtanosztly szablyaira, ahhoz, hogy tovbbra is generlhassuk a nyelvosztly resszmentes nyelveit, azaz minden adott tpus nyelvtannal legyen ekvivalens amire a korltozs fennll.

3.4.2. Levezetsek szerkezete


Mivel a levezets kzponti fogalom egy nyelvtan ltal generlt nyelv ellltsban, rdemes megvizsglnunk a lehetsges levezetsek szerkezett. A levezetseket grfokkal fogjuk brzolni, a levezetsi grf alakja (pl. fa) nemcsak szemlletes, de elmleti s gyakorlati fontossggal is br. Mindez szorosan sszefgg a kvetkezkben ismertetend szproblmval is.

3.4.3. A szproblma s a szintaktikai elemzs


Ha adott egy nyelv (pl. nyelvtan segtsgvel definilva), akkor annak eldntst, hogy egy adott w sz benne van-e a (generlt) nyelvben, az adott nyelvhez (nyeltanhoz) tartoz szproblmnak hvjuk. ltalban nemcsak egy konkrt nyelv rdekel minket, hanem az hogy adott nyelvosztly esetn hogyan oldhat meg (illetve megoldhat-e egyltaln) a szproblma. Ezt eldnteni, illetve erre hatkony algoritmust megadni rdekes s fontos rsze a formlis nyelvek elmletnek. Ha nem csak igen/nem vlaszt vrunk el, hanem igen vlasz esetn azt is hogy egy lehetsges levezetst is megadjon az algoritmus, akkor szintaktikai elemzsrl beszlnk. A mestersges intelligenciban szoksos mdon llapottr grffal szemlltethetjk az sszes lehetsges levezetst egy adott nyelvtanban: a gykr cscs cmkje az S mondatszimblum, s brmely cscsbl gy szrmaztathatjuk annak "utdait", hogy a cscs cmkjben lev mondatformra valamely levezetsi szablyt alkalmazzuk valamely alkalmas helyen. Ilyenkor grafikusan irnytott lt hzunk az adott cscsbl abba amelyben, mint cmke, az j mondatforma tallhat. Mivel brmely (vges) mondatforma esetn csak vges sok szably s vges sok helyen alkalmazhat, 38

Formlis rendszer s nhny fbb tpusa gy felsorolhatjuk az sszes olyan mondatformt, amaly ltrejhet a mr meglev mondatformkbl egy lpsben. Ez alapjn a grf alapjn kereshetnk vlaszt a formlis nyelvek elmletnek egyik legfontosabb problmjra, a szproblmra: Ezt a problmt a kvetkez formban is megfogalmazhatjuk: egy adott L nyelv s egy adott w sz esetn milyen felttelek mellett dnthet el algoritmikusan az, hogy wL relci teljesl-e vagy sem. Knny szrevenni, hogy vgtelen nyelvek esetn a grfnak vgtelen sok levl eleme van, st azok mlysge (vagyis a legrvidebb, a gykrcscsbl indul s az adott levlcscshoz tart irnyott t, vagyis a legrvidebb levezets, hossza) sem korltos. A szproblma eldntse ezeknek a levlelemeknek az egyenknti megvizsglst jelenten, ami ltalban algoritmikusan nem megoldhat. Azonban specilis esetekben, pldul a sz hosszt nem cskkent nyelvtanok (monoton nyelvtanok) esetn a levezetsi grfoknak csak egy vges rszgrfjt kell a vizsglatunkba bevonni, ami garantlja a problma algoritmikus eldnthetsgt.

3.4.4. Nyelvosztlyok s automataosztlyok kapcsolata


Egyik kzponti feladatunk a klnbz nyelvosztlyok elfogadsra alkalmas automataosztlyok feltrkpezse, vagyis, hogy adott nyelvosztlyba tartoz nyelveket milyen automatkkal lehet elfogadni. Nhny nyelvosztly esetn egyb specilis, alternatv, a nyelvosztlynak megfelel lerst is fogunk adni a benne szerepl nyelvekre.

3.4.5. Nyelvosztlyok tulajdonsgai


Az, hogy egy adott formlis nyelv milyen nyelvosztlyba tartozik, nem dnthet el minden egyes nyelv esetn knnyen. Nhny nyelvosztly esetn segtsget jelenthet, ha olyan tulajdonsgot tudunk, ami a nyelvosztly minden egyes nyelvre teljesl. Ha sikerl bizonytani, hogy az adott nyelvre ez a tulajdonsg nem teljesl, akkor nem tartozhat az adott nyelvcsaldhoz. Egy adott nyelvosztly tulajdonsgait vizsglva rdekes informcit hordoznak a zrtsgi tulajdonsgok. Azt mondjuk, hogy egy nyelvosztly zrt egy nyelvmveletre nzve, vagyis a mvelet nem vezet ki az adott nyelvosztlybl, ha brmely a nyelvosztlyhoz tartoz (ugyanazon bc felett rtelmezett) nyelvekre a mveletet elvgezve az gy ltrejtt (j) nyelv ugyancsak az adott nyelvcsaldhoz tartozik. Ha vannak olyan nyelvei az adott nyelvosztlynak, amikre a ltrejv nyelv mr nem eleme az adott osztlynak, akkor a nyelvosztly nem zrt az adott mveletre nzve, gy is mondhatjuk, hogy az adott mvelet kivezet az adott nyelvosztlybl. Fontos krds, hogy egy adott nyelvosztly zrt-e egyes nyelvmveletekre nzve. Minden nyelvosztlynl fogjuk vizsglni a konkatenci, Kleene-csillag, uni, metszet s komplementerkpzs mveleteket.

3.4.6. Specilis alosztlyok


Tbb fontos nyelvosztly esetn specilis alosztlyokat is be fogunk mutatni, amelyek ltalban specilisan megszortott nyelvtanokkal generlhatak, vagy specilisan megszortott automatkkal fogadtathatak el.

39

4. fejezet - A vges automatk elmletnek alapjai


Ebben a fejezetben a vges automatk elmletbe nyjtunk betekintst.

4.1. Az automata fogalma s fbb tpusai


Automatn egy olyan absztrakt rendszert fogunk rteni, mely egy diszkrtnek kpzelt idskla idpillanataiban rkezett ingerek hatsra ezen idpillanatokban vlasszal reagl, mikzben bels llapott megadott szablyok szerint vltoztatja a kls ingerek hatsra. Az ingerekre adott vlasz fgg mind az ingerektl mind pedig a pillanatnyi bels llapottl. Ebben az rtelemben teht nemcsak a gpek, hanem brmifle l vagy lettelen objektumok tekinthetk automatnak, ha ezen sma szerint vizsgljuk ket, azaz ilyenfajta mkdst tulajdontunk nekik.

4.1. plda - Automatk


A legklnbzbb ltez vagy nem ltez dolgok tekinthetk automatnak. Automatnak tekinthet a laksunk ajtaja, ablaka. Bizonyos rtelemben automatnak tekinthet a kedvenc macsknk, a szmtgpnk, vagy a lakscsengnk is. Vizsglhatjuk a fnknket is mint automatt, hisz minden bizonnyal klnflekpp reagl arra, hogy az elvrsainak megfelelen cseleksznk-e vagy sem. (s az is valszn, hogy ezek a dolgok a fnk llapott is befolysoljk.) De automatnak tekinthet az inkk esistene, aki imdsgra esvel, kromkodsra szrazsggal reagl. Azon automatkat amelyek egy inputszhoz egy output szt rendelnek a mkdsk folyamn, talaktknak, transzduszereknek is szoks nevezni. A kvetkezkben fleg ilyenekkel fogunk foglalkozni, szemben a ksbbi rszekben eltrbe kerl elfogad automatkkal.

4.1.1. Mealy automata


Az absztrakt automatk egyik nevezetes tpusa a Mealy (ejtsd: mli) automata. Mealy automatn fogunk rteni egy A=(Q, T, V, d, f) tst, aholis Q a (bels) llapotok nem res halmaza, T a bemen jelek nem res halmaza, V a kimenjelek nem res halmaza, d:QT Q az tmeneti fggvny s f:QT V a kimeneti fggvny. gy kpzeljk, hogy a Mealy automata diszkrt idskla mentn mkdik, s annak minden egyes idpillanatban egy-egy jl meghatrozott llapotban van. Ha valamely idpillanatban egy A=(Q, T, V, d, f) Mealy automata egy qQ llapotban az aT bemen jelet kapja, akkor ugyanezen idpillanatban a f(q, a) kimenjellel reagl, majd a kvetkez idpillanatra tmegy a d(q, a) llapotba.

40

A vges automatk elmletnek alapjai

4.1.2. Moore automata


Amennyiben az A=(Q, T, V, d, f) Mealy-automathoz ltezik olyan g:Q V fggvny, hogy tetszleges qQ llapota s aT bemen jele esetn teljesl a f(q, a)=g(d(q, a)) egyenlsg, akkor Moore-automatrl beszlnk. A Moore-automatt A=(Q, T, V, d, g) alakban szoks megadni, ahol g:Q V a Moore-automata jelfggvnye. Tetszleges qQ llapot esetn azt mondjuk, hogy g(q) a qQ llapotjele.

A Moore automata a diszkrt idskla minden egyes idpillanatban egy-egy jl meghatrozott qQ llapotban van (amikor az llapotjele g(q)). Ha egy adott idpillanatban ezen qQ llapotban az aT bemen jelet kapja, akkor a kvetkez idpillanatban d(q, a) lesz az llapota, s llapotjele pedig g(d(q, a)) lesz. Ily mdon a Moore-automata egy adott idpillanatban kapott bemen jel hatsra a kvetkez idpillanatra tmegy ezen bemen jel s a bels llapota ltal egyrtelmen meghatrozott llapotba, s ezzel egyidejleg kiadja az j llapot ltal egyrtelmen meghatrozott llapotjelet. Kpletesen szlva, amg a Mealy-automata az olyan embert is modellezheti, aki elszr cselekszik, azutn gondolkodik, addig a Moore-automata az olyan embert modellezi, aki elszr gondolkodik azutn cselekszik.

4.1.3. Kimenjel nlkli automata


A Moore-fle automata a Mealy-fle automata specilis eseteknt addik. A Moore-fle automata tovbbi specializlsval jutunk el a kimenjel nlkli automata fogalmhoz a kvetkez mdon. Amennyiben egy A=(Q, T, V, d, g) Moore-automatra Q=V s g:QQ egy identikus lekpezs (azaz minden qQ- ra g(q)=q), akkor a kimenjel nlkli automata fogalmhoz jutunk. Figyelembe vve azt a tnyt, hogy a Moore-automatt egy olyan A=(Q, T, V, d, f) Mealy-automatbl szrmaztatjuk, melyhez tallhat olyan g:QV fggvny, hogy egy tetszleges qQ, aT pr esetn f(q, a)=g(d(q, a)), tovbb figyelembe vve, hogy a kimenjel nlkli automata olyan Moore-automata, melynek a jelfggvnye identikus lekpezs, azt is mondhatjuk, hogy a kimenjel nlkli automata egy olyan A=(Q, T, V, d, f) Mealy-automata, melyre Q=V s d=f. Ezen okok miatt a kimenjel nlkli automatt A=(Q, T, d) alakban szoks megadni.

41

A vges automatk elmletnek alapjai Egy A=(Q, T, d) kimenjel nlkli automata esetn a T bemen jelhalmaz miden aT eleme egy olyan a:Q Q egy vltozs mveletnek (vagyis Q nmagba trtn lekpezsnek) is tekinthet, mely az llapothalmaz tetszleges qQ elemhez az a(q)=d(q, a) elemt rendeli. Univerzlis algebrai kifejezssel lve teht a kimenjel nlkli automatk unoidok, vagy ms szval unris algebrk. Ez az egyszer felismers lehetv teszi szmunkra a modern algebra mdszereinek automataelmleti alkalmazst. Amint lttuk, a Moore-fle automata specilis Mealy-automataknt definilhat. Ksbb ltni fogjuk, hogy ez a specializci ltszlagos, ugyanis informci talakts szempontjbl a kt fogalom ekvivalens. (Az informci talaktsn azt rtjk, hogy az automata tetszleges bemen informci hatsra valamilyen "kimen" informcival reagl.) Nevezetesen, absztrakt szempontbl a Mealy s a Moore-fle automatk ekvivalensek egymssal abban az rtelemben, hogy mr a specilisabb Moore-automatkkal elllthatk azok az informci talaktsok, amelyek Mealy automatkkal megvalsthatk. Teht a Moore-automata ebbl a szempontbl csak ltszlag specilisabb a Mealyautomatnl. Ksbb ltni fogjuk azt is, hogy az elmlet kiptsnl sok esetben elegend kimenjel nlkli automatkra szortkozni. Az emltett hrom automata tpus mindegyike esetn szoks vges automatrl beszlni, ha az llapothalmaz, a bemen jelhalmaz, s a kimen jelhalmaz vgesek. Szoks vges llapot automatrl vagy Q- vges automatrl beszlni, ha az llapothalmaz vges. Hasonl rtelemben beszlnk vges bemenet vagy T- vges, illetve vges kimenet vagy V- vges automatrl, valamint (Q, T)-, (Q, V)-, illetve (T, V)- vges automatrl.

4.1.4. Inicilis automata


Amennyiben az emltett automata-tpusok valamelyiknl kijellnk egy q0 inicilis-, vagy ms nven kezdllapotot, s felttelezzk, hogy az automata mkdsnek van egy kezd idpontja, amikor az automata ebben az llapotban van, akkor inicilis automatrl beszlnk. Az inicilis Mealyfle automatt A=(Q, T, V, q0, d, f) alakban, az inicilis Moore-fle automatt A=(Q, T, V, q0, d, g) alakban, illetve az inicilis kimenjel nlkli automatt A=(Q, T, q0, d) alakban szoks megadni, ahol mindhrom esetben q0 az inicilis llapotot jelli. Az emltett automatknak szoks beszlni az albbi ltalnostsairl is.

4.1.5. Parcilis s teljesen definilt automata


Ha az tmeneti, illetve kimeneti fggvny lehet parcilis is, azaz nem teljesen definilt, akkor parcilis automatrl van sz. Teljesen definilt fggvnyrtkek esetn idnknt szoks teljesen definilt automatrl is beszlni.

4.2. plda - Parcilis automata


Az ajt szigor rtelemben egy parcilis kimenjel nlkli automatnak tekinthet. Bemen jelei a csuks s a nyits, s ennek megfelelen kt llapota van, nevezetesen csukott s nyitott llapot. Csukott llapotbl nyitssal lehet nyitott llapotba hozni, nyitott llapotbl pedig csukssal lehet csukott llapotba hozni. De az ajt valban parcilis automata, hisz nyitott ajtt kinyitni, vagy csukott ajtt becsukni nem lehetsges.

4.1.6. Nemdeterminisztikus s determinisztikus automata


Amennyiben az tmeneti s a kimeneti fggvnyek (illetve Moore-automata esetn az tmeneti s a jelfggvnyek) nem egyrtelmen definiltak, nemdeterminisztikus automatrl van sz. Ekkor valjban ezek nem is tekinthetek fggvnynek a hagyomnyos rtelemben. Ahhoz, hogy 42

A vges automatk elmletnek alapjai matematikai rtelemben mgis fggvnyekkel dolgozzunk gy tekintjk ket, mintha nem az llapot-, illetve a kimen jelhalmazba kpeznnek, hanem ezen halmazok sszes rszhalmazainak halmazaiba. Egy nemdeterminisztikus A=(Q, T, V, d, f) Mealy-automata esetn teht az tmeneti fggvny d:QT2Q, a kimeneti fggvny pedig f:QT2V alak, ahol 2Q, illetve 2V az llapothalmaz, illetve a kimen jelhalmaz rszhalmazainak halmazt jelli. rtelemszeren, egy nemdeterminisztikus A=(Q, T, V, d, g) Moore-automata esetn az tmeneti fggvny d:QT2Q, a jelfggvny g:Q 2V alak, mg egy nemdeterminisztikus kimenjel nlkli A=(Q, T, d) automatnl az tmeneti fggvny formja d:QT2Q.

4.3. plda - Nemdeterminisztikus automata


Nemdeterminisztikus kimenjel nlkli automatnak tekinthet a dobkocka, melynek egyetlen bemen jele a feldobs. Ezen bemen jel, azaz a feldobs hatsra a dobkocka a hat lehetsges llapotbl tmehet a hat lehetsges llapot brmelyikbe annak megfelelen, hogy a feldobs utn ppen melyik lapjra esik. Tovbbi vltozata a nemdeterminisztikus automatknak, ha megengedjk, hogy az automata bemen jel nlkl is llapotot vltson: d:Q(T{}) 2Q. Ezeket szoks ressztmenetes (nemdeterminisztikus) automatknak is nevezni. A nemdeterminisztikus automata ellentteknt beszlnk determinisztikus automatrl is. Determinisztikus automata esetn teht a szban forg fggvnyertkek mindig pontosan egy (parcilis automata esetn maximum egy) meghatrozott rtket vesznek fel. (A nemdeterminisztikus terminolgival pedig a fggvnyek rtkkszlete csak egyelem, illetve maximum egyelem rszhalmazokat tartalmaz.) Determinisztikus automatknl nem fordulhat el ressztmenet. Ha pldul egy nemdeterminisztikus A=(Q, T, V, d, f) Mealy-automata esetn a d(q, a) fggvnyrtk a Q- nak egy hat elem rszhalmaza, f(q, a) pedig a V egy kt elem rszhalmaza, akkor az A Mealyautomata a q llapotbl az a bemen jel hatsra ezen hat elem rszhalmaz brmelyik elembe tmehet, s kimenjelknt pedig az emltett kt elem halmaz bremlyik elemt kiadhatja. S tekintettel arra, hogy egy halmaznak az res halmaz is rszhalmaza, az is elfordulhat, hogy valamely qQ llapotra s aT bemen jelre d(q, a), vagy ppen f(q, a) rtke az res halmaz. Ha d(q, a) az res halmaz, ez annak felel meg, hogy erre az llapota s bemen jelre nincs rtelmezve egyetlen llapot sem amibe tmenet trtnhet, ha pedig f(q, a) az res halmaz, akkor ez azt jelenti, hogy erre az llapota s bemen jelre nincs rtelmezve egyetlen kimenjel sem. Ezek szerint a parcilis automata olyan nemdeterminisztikus automatnak tekinthet, ahol a megfelel fggvnyrtkek vagy egy elem halmazokat, vagy pedig az res halmazt szolgltatjk, a teljesen definilt determinisztikus automata pedig egy olyan nemdeterminisztikus automata, ahol ezek a fggvnyrtkek mindig egy elem halmazok.

4.1.7. Sztochasztikus automata


Fontos ltalnosts a valsznsgi vagy sztochasztikus automata, mikoris egy P((r, b)|(q, a)) feltteles valsznsg adja meg, hogy mi a valsznsge annak, hogy az automata a r llapotba megy t s a b kimenjelet adja ki azon felttel mellett, hogy mikzben a q llapotban volt, az a bemen jelet kapta. Teht egy valsznsgi automata A=(Q, T, V, P) alakban adhat meg, ahol Q az llapotok nem res halmata, T a bemen jelek nem res halmaza, V a kimenjelek nem res halmaza, P pedig az emltett feltteles valsznsg.

4.1.8. Rabin-Scott automata


Az automatk egy fontos osztlyt kpezik a Rabin-Scott fle automatk (ejtsd rabinszkott), melyeket felismer vagy elfogad automatknak is hvnak. A Rabin-Scott fle automata egy A=(Q, T, q0, d, F) ts, ahol Q a nem res llapothalmaz, q0Q a kezdllapot, T a nem res bemen jelhalmaz, d:QT Q az tmeneti fggvny, FQ pedig a vgllapotok nem res halmaza. ( q0F megengedett, azaz elfordulhat, hogy a kezdllapot egyttal vgllapot is.) 43

A vges automatk elmletnek alapjai A bemen jelekbl felpl vges hosszsg lncokat bemen szavaknak hvjuk. Bemen sznak tekintjk a resszt is, mely nem tartalmaz egyetlen bett sem. Egy Rabin-Scott automata a resszt definci szerint akkor ismeri fel, ha q0F. Egy nem res, a1, , an (nem felttlenl klnbz) bemen jelekbl ll a1an bemen sz esetn akkor mondjuk, hogy a tekintett A=(Q, T, q0, d, F) Rabin-Scott fle automata felismeri, ha alkalmas q1, , qn llapotaira q1=d(q0, a1), , qn=d(qn-1, an) teljeslse mellett qnF.

Az A Rabin-Scott automata ltal felismert L(A) nyelvnek hvjuk mindazon bemen szavak halmazt, melyeket az automata felismer. rtelmezhetjk a nemdeterminisztikus felismer automatt is. Ekkor az automata ltal elfogadott nyelv alatt azon w szavak halmazt rtjk, amelyekre az automatnak van olyan lehetsges llapotlnca, amely a kezdallapotbl indul s vgllapottal vgzdik, valamint az tmenetek bemen jeleit sszeolvasva ppen a w szt kapjuk. Itt jegyezzk meg, hogy az tmenetfggvnyt szoks a d helyett a grg betvel is jellni.

4.4. plda - Rabin-Scott automata mkds kzben

A vges elfogad automatkra a kvetkez rszben, a regulris nyelvek kapcsn mg visszatrnk. 44

A vges automatk elmletnek alapjai

4.2. Az automatk megadsa


Egy automatt akkor tekintnk adottnak, ha a hozz tartoz halmazok s fggvnyek adottak. Egy automatt teht gy lehet megadni, hogy megadjuk a hozz tartoz halmazokat s fggvnyeket. Ezen halmazok s fggvnyek minden olyan tpus megadsa lehetsges, ami a halmazok s fggvnyek megadsnl szoksos.

4.2.1. Vges automatk megadsa Cayley tblzattal


Vges halmazok s fggvnyek megadsnl szoksos a mvelettblval trtn megads. Automatk mvelettbls megadst automatk Cayley tblzatnak (ejtsd: kjli) is hvjuk Cayley francia matematikus emlkre s tiszteletre, aki vges csoportok mvelettblinak lersra vezette be ezt a tblzatos mdszert.

4.2.1.1. Vges Mealy-automata Cayley tblja


A tblzat bal fels sarkba rjuk az automata nevt, els sorban felsoroljuk az llapotait, els oszlopban pedig a bemen jeleit. A tblzat (i+1)- edik sorban s (j+1)- edik oszlopban szerepel egy kt dimenzis vektor, melynek els tagja azt mondja meg hogy az automata a j- edik llapotbl az i- edik bemen jel hatsra melyik llapotba megy t, a msik tagja pedig azt mutatja, hogy a jedik llapot az i- edik bemen jel hatsra milyen kimenjelet ad ki.

4.2.1.2. Vges Moore-automata Cayley tblja


A tblzat bal fels sarkba rjuk az automata nevt, els sorban felsoroljuk az llapotait, els oszlopban pedig a bemen jeleit. Minden llapot fl berjuk az llapotjelt. gy az els sor kt rszsorra oszlik. A tblzat (i+1)- edik sorban s (j+1)- edik oszlopban szerepel az az llapot, amibe az automata a j- edik llapotbl az i- edik bemen jel hatsra tmegy.

45

A vges automatk elmletnek alapjai

4.2.1.3. Vges kimenjel nlkli automata Cayley tblja


A tblzat bal fels sarkba rjuk az automata nevt, els sorban felsoroljuk az llapotait, els oszlopban pedig a bemen jeleit. (Ezesetben az llapotjel maga az llapot, gy nem kell az els sorban lev llapotok fl rni az llapotjelet mint az elz esetben.) Itt is a tblzat (i+1)- edik sorban s (j+1)- edik oszlopban szerepel az az llapot, amibe az automata a j- edik llapotbl az i- edik bemen jel hatsra tmegy.

4.5. plda - A cseng, mint automata


Vegynk egy villamos csengt. a1 s a2 jelljk azon helyzeteket, mikoris nyomjuk vagy nem nyomjuk a csengt. A cseng kezdetben az q0 kezdllapotban van, ami annak felel meg, hogy nem cseng. Az a1 jel hatsra, vagyis a cseng megnyomsra tmegy a cseng a q0 llapotbl a q1 llapotba. Megszaktva a cseng nyomst, vagyis az a2 jel hatsra a cseng tmegy nem cseng, azaz az q0 llapotba. Lersunkat tblzatba foglalva jutunk el a cseng kvetkez absztrakt modelljhez: A a1 a2 q0 q1 q0 q1 q1 q0

A tblzat mutatja, hogy mely jel hatsra mely llapotbl mely llapotba megy t az automata. Pldul a 3. sor 3. oszlopban lev q0 azt jelenti, hogy a2 hatsra a q1 llapotbl az q0 llapotba megy t az automata. Tblzatos megadsnl inicilis automata esetn rendszerint az els oszlop jelzi a kezdllapot oszlopt (azaz annak megadst, hogy klnfle bemen jelek hatsra a kezdllapotbl mely llapotokba megy t az automata). Megjegyezzk, hogy nmely feladatoknl clszer a tblzatos megadsban a sorok s oszlopok szerepeinek felcserlse, vagyis ekkor az oszlopok a bemenjeleket (illetve a - t, ha az 46

A vges automatk elmletnek alapjai automata bemenjel nlkl is llapotot vlthat), mg a sorok az automata llapotait reprezentljk. Mindenkppen clszer jelezni a tblzat bal fels sarkban, hogy a bemenjelek, illetve az llapotok hol tallhatak. Elfogad automatk esetn a vgllapotokat is meg kell jellni, pl. bekeretezssel. A biztonsg kedvrt a kezdllapotot kln is jelezhetjk, pl. egy nyilacskval. Parcilis automata esetn a tblzat nhny helye resen maradhat, amit jellhet. Itt jegyezzk meg, hogy nem-determinisztikus automatk esetn a tblzat celli az llapotok-, illetve a kimenjelek halmaznak rszhalmazait tatralmazzk.

4.2.2. Vges automatk megadsa grfokkal


Vges automatk megadsnak egy msik szoksos mdja a cmkzett irnytott grffal trtn megads.

4.2.2.1. Vges Mealy-automata megadsa grffal


A grf minden egyes cscsa meg van cmkzve egy llapottal, a cscsokbl kivezet minden irnytott l (mely hurokl is lehet) pedig meg van cmkzve egy kt dimenzis vektorral. Ezen vektor els komponense egy bemen jel, a msodik pedig egy kimenjel. Determinisztikus esetben minden cscsbl pont annyi l vezet ki, ahny bemen jel van s az lek, valamint azok cmki adjk meg, hogy egy adott llapotbl egy adott bemen jel hatsra az automata milyen kimenjellel reagl s melyik llapotba megy t. Nevezetesen, a bemenjeleket az lek cmkinek els komponense, a kimenjeleket az lek cmkinek msodik komponense, az llapot tmeneteket pedig az lek kezd- s vgcscsainak cmki adjk meg. Egy l kezdcscsban lv llapot az l cmke els (bemen jel) komponense hatsra pp abba az llapotba megy t, mellyel az l vgcscsa van megcmkzve.

4.2.2.2. Vges Moore-automata megadsa grffal


A grf minden egyes cscsa meg van cmkzve egy kt dimenzis vektorral, melynek els komponense egy llapot, a msodik komponense pedig ezen llapot llapotjele. A cscsokbl kivezet minden irnytott l (mely hurokl is lehet) meg van cmkzve egy bemen jellel. (Determinisztikus esetben itt is) minden cscsbl pont annyi l vezet ki, ahny bemen jel van s az lek, valamint azok cmki adjk meg, hogy egy adott llapotbl egy adott bemen jel hatsra az automata melyik llapotba megy t. Nevezetesen, a bemenjeleket az lek cmki, az llapot tmeneteket s az llapotjeleket pedig az lek kezd- s vgcscsainak cmki adjk meg. Egy l kezd cscsban lv cmke els (llapot) komponense az l cmke (bemen jel) hatsra pp abba az llapotba megy t, ami az l vgcscsban lev cmke els (llapot) komponense. Az tmenet utni llapotjel pedig az l vgcscsban lev cmke msodik (kimenjel) komponense. 47

A vges automatk elmletnek alapjai

4.2.2.3. Vges kimenjel nlkli automata megadsa grffal


Csaknem olyan szerkezet grffal trtnik a megads mint a Moore-automata esetn. Az egyedli lnyeges klnbsg, hogy a cscsok itt az llapotokkal vannak megcmkzve (s nem kt dimenzis vektorokkal mint a Moore-automata esetn). Teht a grf minden egyes cscsa meg van cmkzve egy llapottal, a cscsokbl kivezet minden irnytott l (mely hurokl is lehet) pedig meg van cmkzve egy bemen jellel. Most is igaz a (teljesen definilt) determinisztikus esetre, hogy minden cscsbl pont annyi l vezet ki, ahny bemen jel van s az lek, valamint azok cmki adjk meg, hogy egy adott llapotbl egy adott bemen jel hatsra az automata melyik llapotba megy t. Nevezetesen, a bemenjeleket az lek cmki, az llapot tmeneteket pedig az lek kezd- s vgcscsainak cmki adjk meg. Egy l kezdcscsban lv llapot cmke az l cmke (bemen jel) hatsra pp abba az llapotba megy t, ami az l vgcscsban lev llapot cmke rtke.

Itt jegyezzk meg, hogy elfogad automata esetn szoks a vgllapotokat pl. dupla krrel rajzolni, mg a kezdllapot jellsre szoks az adott llapotba egy plusz bemen nyilat rajzolni.

48

A vges automatk elmletnek alapjai

4.3. Az automata, mint algebrai struktra: rszautomata, homomorfizmus, izomorfizmus, kompatibilis osztlyozs
Az absztrakt automatkat vizsglhatjuk algebrai struktrknt is. Mint ahogy beszlni szoktunk algebrai struktrk rsz-struktrirl, homomorfizmusairl, izomorfizmusairl, ugyangy szoks beszlni ezekrl automatk esetn is. Elszr Mealy-fle automatkra fogjuk megadni a megfelel rszautomata-, homomorfizmus- s izomorfizmus-fogalmakat.

4.3.1. Mealy automata, mint algebrai struktra


Egy A=(Q, T, V, d, f) Mealy-automata rszautomatja alatt rtjk azt az A '=(Q ', T ', V ', d ', f ') Mealyautomatt, melyre Q 'Q, T 'T, V 'V s d '=d|Q 'T ', illetve f '=f|Q 'T '. (Szavakban, d ' a d restrikcija, azaz megszortsa Q 'T '- re, f ' pedig az f restrikcija, azaz megszortsa Q 'T '- re.) Msknt mondva, d ' s f ' gy van definilva, hogy alakjuk d ':Q 'T ' Q ', illetve f ':Q 'T ' V ', s teljesl minden qQ ', aT ' pr esetn a d '(q, a)=d(q, a), illetve az f '(q, a)=f(q, a) egyenlsg. Amint ltjuk, a d s az f nem minden Q 'T '- re vett restrikcija alkalmas a rszautomata tmeneti, illetve kimeneti fggvnynek. Kell mg az is, hogy a tekintett d ' restrikci a Q '- be, illetve hogy a tekintett f ' restrikci a V '- be kpezzen. Azt a tnyt, hogy az A ' automata rszautomatja az A automatnak, idnknt A 'Aval jelljk. Amennyiben az Q 'Q, T 'T, V 'V tartalmazsok valamelyike valdi tartalmazs, azaz Q 'Q, T 'T, V 'V legalbb egyike fennll, gy azt is mondjuk, hogy A ' valdi rszautomatja A- nak, s ezt A 'Aval is jelljk. Ha Q 'Q s T=T ', V=V ', akkor az A '- t az A (valdi vagy nem valdi) llapot-, vagy Qrszautomatjnak hvjuk (jelekben: A 'QA). Ha T 'T s Q=Q ', V '=V, akkor A ' bemen jel rszautomatja vagy T- rszautomatja (jelekben: A 'TA), ha pedig V 'V, tovbb Q '=Q, T '=T, akkor az A ' kimenjel rszautomatja, vagy V- rszautomatja A- nak (jelekben: A 'VA). Hasonl rtelemben beszlnk (Q, T)-, (Q, V)-, (T, V)- rszautomatkrl. Tovbbi specilis automata-tpus az inicilis rszautomata, mely ugyancsak definilhat az emltett rszautomata-tpusok brmelyikre. Akkor mondjuk, hogy egy A inicilis automatnak egy A ' inicilis automata inicilis rszautomatja, ha mindamellett, hogy A ' az A- nak rszautomatja, az is teljesl, hogy az A ' kezdllapota pp az A kezdllapota lesz. Hasonl rtelemben mint a korbbiakban, beszlnk inicilis Q- rszautomatrl, inicilis T- rszautomatrl, inicilis Vrszautomatrl, illetve inicilis (Q, T)-, (Q, V)-, (T, V)- rszautomatrl. Minden esetben teht a megfelel rszautomata-tulajdonsg mellett mg azt is elvrjuk, hogy a megfelel rszautomata-tpus kezdllapota pp az t tartalmaz automata kezdllapota legyen. 49

A vges automatk elmletnek alapjai Azt mondjuk, hogy az A '=(Q ', T ', V ', d ', f ') Mealy-automata homomorf kpe az A=(Q, T, V, d, f) Mealy-automatnak (jelekben AA '), ha megadhat olyan szrjektv (azaz "ra" tpus, vagy ms nven rkpez) 1:Q Q ', 2:T T ', 3:V V ' lekpezsekbl ll =(1, 2, 3) lekpezs-hrmas, hogy teljeslnek r az gynevezett mvelettart tulajdonsgok. Ms szval, kpletben kifejeve, tetszleges qQ, aT pr esetn 1(d(q, a))=d '(1(q), 2(a)), illetve 3(f(q, a))=f '(1(q), 2(a)). Vilgos, hogy a homomorfia mint relci reflexv ( AA) s tranzitv ( AA ', A 'A ''AA ''). Mint ahogy beszlnk specilis rszautomatkrl, ugyangy beszlnk specilis homomorfizmusokrl. Azt mondjuk, hogy az A '=(Q ', T ', V ', d ', f ') Mealy-automata llapothomomorf kpe vagy Q- homomorf kpe az A=(Q, T, V, d, f) Mealy-automatnak (jelekben AQA '), ha az elbb definilt 1, 2, 3 lekpezs-hrmasban a 2 s a 3 vlaszthat identikus lekpezsnek. Ezen felttel mellett teht az elbbi egyenlsgeink tetszleges qQ, aT pr esetn a kvetkez alakak lesznek: 1(d(q, a))=d '(1(q), a), illetve f(q, a)=f '(1(q), a). Ebben az rtelemben beszlnk teht 1:Q Q ' Qhomomorfizmusrl. Ilyenkor nem egy lekpezes-hrmas, hanem egyetlen 1 lekpezs kpviseli az llapothomomorfizmust (mert eltekintnk az identikus 2:T T ' s 3:V V ' lekpezsek szerepeltetstl). Hasonl rtelemben beszlnk 2:T T ' bemenjel-, vagy T- homomorfizmusrl, 3:Y Y ' kimenjel-, vagy Y- homomorfizmusrl, illetve '={1, 2} (Q, T)- homomorfizmusrl (ahol 1:Q Q ', 2:T T '), ''={1, 3} (Q, V)- homomorfizmusrl (ahol 1:Q Q ', 3:V V '), valamint '''={2, 3} (T, V)- homomorfizmusrl (ahol 2:T T ', 3:V V '). Tovbbi specilis homomorfizmus tpus az inicilis homomorfizmus, mely ugyancsak definilhat az emltett specilis homomorfizmus-tpusok (inicilis Q- homomorfizmus, inicilis T- homomorfizmus, stb.) brmelyikre is. Akkor mondjuk, hogy egy A inicilis automatnak egy A ' inicilis automata inicilis homomorf kpe (inicilis Q- homomorf kpe, inicilis T- homomorf kpe, stb.), ha mindamellett, hogy A ' a A- nak homomorf kpe, az is teljesl, hogy az A ' kezdllapota pp az A kezdllapotnak homomorf kpe ( Q- homomorf kpe, T- homomorf kpe, stb.) lesz. Hasonl rtelemben beszlnk teht inicilis Q- homomorfizmusrl, inicilis T- homomorfizmusrl, inicilis V- homomorfizmusrl, illetve inicilis (Q, T)-, (Q, V)-, (T, V)- homomorfizmusrl. (Minden esetben a megfelel homomorfia-tulajdonsg mellett mg azt is elvrjuk, hogy a homomorf kp kezdllapota pp a rkpez automata kezdllapota legyen.) Amennyiben a homomorfizmus olyan, hogy az sszes szerepl rkpezsek bijekcik (azaz klcsnsen egyrtelm rkpezsek), akkor izomorfizmusrl beszlnk. gy minden egyes specilis homomorfizmus-tpusnak van egy megfelel izomorfizmus-tpusa ( Q- izomorfizmus, inicilis Qizomorfizmus, stb.). Nyilvnval, hogy ha egy A Mealy-automatnak egy A ' Mealy-automata izomorf kpe (kpletben AA '), s a =(1, 2, 3) lekpezs-hrmas az A izomorfizmusa A '- re, akkor a -1=(1-1, 2-1, 3-1) lekpezs-hrmas az A ' izomorfizmusa lesz A- ra. Az izomorfizmus teht mint relci, szimmetrikus. Mindamellett mint a homomorfizmus ltalban (s az izomorfizmus a homomorfizmusnak specilis fajtja), az izomorfizmus mint relci reflexv s tranzitv. Az izomorfizmus mint relci teht ekvivalencia relci, hisz reflexv, szimmetrikus s tranzitv. (Ugyanez termszetesen vonatkozik az sszes specilis izomorfizmus-tpusokra is.) Az absztrakt algebrai vizsglatoknl az egymssal izomorf struktrkat azonosnak szoktk tekinteni. Ez az gynevezett izomorfia elv. Ezt az elvet automataelmleti vizsglatoknl sok esetben csak rszlegesen szoksos elfogadni a vizsglatok sajtossgai miatt. Most rszletesebben foglalkozunk mg a Q- homomorfizmusokkal s a velk kapcsolatban ll kompatibilis osztlyozsokkal. Legyen A=(Q, T, V, d, f) tetszleges Mealy-automata s legyen tetszleges ekvivalencia relci a Q llapothalmazon. Ismeretes, hogy minden ekvivalencia relci egyrtelmen indukl egy osztlyozst azon a halmazon, amin a relci rtelmezve van. Nevezetesen, pontosan az egymssal relciban lv elemek fognak egy osztlyba soroldni. gy a relci is induklja a Q halmaz egy C osztlyozst: a p s q llapotokat akkor s csak akkor soroljuk egy osztlyba, ha egymssal relciban vannak, azaz pq fennll. A q elem ltal reprezentlt (vagyis 50

A vges automatk elmletnek alapjai a q elemet tartalmaz) osztlyt C[q]- val jelljk. Jellje az osztlyok halmazt, azaz legyen

={C[q]|qQ}. Egy ilyen C osztlyozst kompatibilis osztlyozsnak neveznk, ha a hozz tartoz relci kongruencia relci, vagyis ha - ra teljesl az a kvetelmny, hogy minden p, qQ prra pq- nek tetszleges aT esetn kvetkezmnye lesz d(p, a)d(q, a) s f(p, a)=f(q, a). Tegyk fel most, hogy a Q halmaz C osztlyozsa pont egy kompatibilis osztlyozs. Ekkor teht minden p, qQ prra pq- nek tetszleges aT esetn kvetkezmnye lesz d(p, a)d(q, a) s f(p, a)=f(q, a). Msknt fogalmazva, felttelezzk, hogy ha valamely p, qQ pr a C osztlyozs szerint egy s ugyanazon C osztlyba esik, akkor tetszleges aT bemen jel esetn d(p, a) s d(q, a) is egy osztlyba fognak esni, tovbb f(p, a)=f(q, a) is fennll. Ily mdon definilhat a kvetkez automata: AC=( , T , V, , ),

ahol minden qQ, aT prra (C([q], a)=C[d(q, a)], (C([q], a)=f(q, a). Belthat, hogy ez az automata jl definilt s rvnyes a kvetkez: AQAC, aholis a megfelel Q- homomorfizmushoz gy jutunk, hogy minden llapot llapothomomorf kpeknt az t tartalmaz osztly addik. Ms szval, egy automata faktorautomati az automatnak mindig Q- homomorf kpei. A kvetkez ttel azt mondja ki, hogy megfordtva, az A- homomorf kpek mindig megszerkeszthetek faktorautomataknt. Ez a ttel az algebrban jl ismert ltalnos Homomorfia Ttel Mealy-automatkra vonatkoz specilis esete. 6. Ttel. (ltalnos Homomorfia Ttel Mealy-Automatkra Vonatkoz Specilis Esete) Tegyk fel, hogy az A=(Q, T, V, d, f) Mealy-automata az A '=(Q ', T ', V ', d ', f ') Mealy-automatra valamely llapothomomorfizmussal lekpezhet, s tekinsk a Q llapothalmaznak azt a C osztlyozst, amelynl brmely kt p, qQ llapot akkor s csak akkor van egy osztlyban, ha a tekintett llapothomomorfizmus szerinti kpk ugyanaz. Ekkor a Q llapothalmaz ezen C osztlyozsa kompatibilis, s a hozz tartoz AC faktorautomata Q- izomorf lesz az A ' automatval. Kpletben, A 'Q A()A/CQ A '(C[q] (q)).

4.3.2. Moore automata, mint algebrai struktra


Most Moore-fle automatkra fogjuk megadni a megfelel rszautomata-, homomorfizmus-, s izomorfizmus-fogalmakat. Ekkor egy A=(Q, T, V, d, g) Moore-automata valamely rszautomatja alatt rtnk egy olyan A '=(Q ', T ', V ', d ', g ') Moore-automatt, melyre Q 'Q, T 'T, V 'V mellett d '=d|Q 'V ' s g '=g|Q ' teljesl. Ms szval tetszleges qQ ', aT' pr esetn d '(q, a)=d(q, a) s g '(q)=g(q). Felmerl a krds, hogy ha egy Moore-automatt Mealy-fle automatnak tekintnk, s vesszk ezen Mealy-automata egy (Mealy-automatknl trgyalt rtelemben tekintett) rszautomatjt, vajon ez a rszautomata tekinthet lesz-e ugyancsak Moore-fle automatnak, illetve rszautomata lesz-e abban az rtelemben is, ahogy azt a Moore-automatk esetn definiltuk. A vlaszunk az, hogy a kt rtelemben vett rszautomata fogalom (Moore automatknl) egybeesik. Legyen ugyanis f:QT V az a lekpezs, melyre a tekintett Moore-automata, tetszleges qQ ', aT ' pr esetn eleget tesz a f(q, a)=g(d(q, a)) sszefggsnek. Tegyk fel, hogy az ezen f fggvnnyel definilt, A- bl nyert B=(Q, T, V, d, f) Mealy-automatnak a B '=(Q ', T ', V ', d ', f ') Mealy-automata rszautomatja. Ekkor d '=d|Q 'T ' s f '=f|Q 'T '. Ily mdon tetszleges qQ ', aT ' prra d '(q, a)=d(q, a) s f '(q, a)=f(q, a). Viszont f(q, a)=g(d(q, a)), f '(q, a)=f(q, a), valamint d '(q, a)=d(q, a) miatt ekkor f '(q, a)=g(d '(q, a)). Vagyis definilhatjuk az A ''=(Q ', T ', V, d ', g) Moore-automatt, mely nyilvnvalan (Q, T)- rszautomatja lesz A- nak abban az rtelemben, ahogy azt a Moore-automatknl definiltuk. Termszetesen az is igaz, hogy V tetszleges olyan V ''V rszhalmazra, melyre {g '(a)|qQ '}V '', a g ''=g|Q '' felttelnek eleget tev A '''=(Q ', T ', V '', d ', g '') Moore-automata a A automatnak Moore-fle rszautomatja lesz a Moore-automatknl tekintett rtelemben. gy valban, ez a kt rszautomatafogalom Moore-automatknl egybeesik. 51

A vges automatk elmletnek alapjai A Mealy-automatkra definilt specilis rszautomata-fogalmak termszetes mdon definilhatk Moore-fle automatkra, s az ltalnos Moore-fle rszautomata fogalomnl trgyaltakhoz hasonl szrevteleket nyernk, ha a Moore-automatkat specilis Mealy-automatknak tekintve vesszk ezen Mealy-automatk megfelel specilis ( Q-, T-, V-, (Q, T)-, (Q, V)-, (T, V)-) rszautomatit. Ugyanez rvnyben marad az inicilis Moore-automatk inicilis rszautomatira is s azok tovbbi specilis (inicilis Q- rszautomata, inicilis T- rszautomata, stb.) eseteire is. Egy A=(Q, T, V, d, g) Moore-automata valamely A '=(Q ', T ', V ', d ', g ') Moore-automatra trtn (ltalnos) Moore-homomorfizmusa alatt egy olyan =(1, 2, 3) szrjektv lekpezsekbl ll lekpezs-hrmast rtnk, melynek tagjai 1:Q Q ', 2:T T ', 3:V V ' formjak, s teljeslnek rjuk minden qQ, aT pr esetn a 1(d(q, a))=d '(1(q), 2(a)), illetve a 3(g(q))=g '(1(q)) sszefggs. Igazolhat, hogy a Moore-fle homomorfizmus specilis esete a Mealy-fle automatkra rtelmezett homomorfizmusnak abban az rtelemben, hogy ha szerepl Moore-automatkat specilis Mealy-automatknak tekintjk, akkor az elbb definilt Moore-fle homomorfizmus egy Mealyfle automatkra definilt homomorfizmust fog szolgltatni. De az is igaz, hogy lehetsges pldt adni olyan Moore-automatra, melyet ha Mealy-automatnak tekintnk, a Mealy-automatknl vett rtelemben homomorfan lekpezhet lesz egy olyan Mealy-automatra, mely nem tekinthet Mooreautomatnak (lsd albbi pldban).

4.6. plda - Mealy s Moore automatk homomorfizmusa


Legyen adva egy A=({p, q}, {a, b}, {x, y}, d, g) Moore-automata, melyre d(p, a)=d(q, a)=p, d(p, b)=d(q, b)=q s g(p)=x, g(q)=y. Ezt a Moore-automatt Mealy-automatnak tekintve nyerjk a B=({p, q}, {a, b}, {x, y}, d, g) Mealy-automatt, melyre f(p, a)=f(q, a)=x, f(p, b)=f(q, b)=y. Nyilvnvalan fennll minden q '{p, q}, a '{a, b} prra a f(q ', a ')=g(d(q ', a ')) sszefggs. Most vegyk a B '=({r}, {a, b}, {x, y}, d ', f ') Mealy-automatt, melyre d '(r, a)=d '(r, b)=r fennllsa mellett f '(r, a)=x, f '(r, b)=y. Azonnal ltszik, hogy a (p)=(q)=r sszefggssel definilt :{p, q}{r} lekpezs a B egy Q- homomorfizmusa lesz B '- re. De d '(r, a)=d '(r, b)=r s f '(r, a)f '(r, b) mellett az is ltszik, hogy nincs olyan g ':{r} {x, y} lekpezs, melyre f '(r, a ')=g '(d '(r, a ')) fennllna minden a '{a, b} mellett. B ' teht nem Moore-automata. Ugyangy mint a Mealy-automatknl, itt is tekinthetnk klnfle specilis Moore-fle Q-, T-, V-, (Q, T)-, (Q, V)-, (T, V)- homomorfizmus tpusokat, tovbb tekinthetjk mind az ltalnos Moorefle homomorfizmus-fogalom, mind pedig a specilis Moore-fle homomorfizmus-tpusok inicilis vltozatait inicilis Moore-automatkra. Ugyangy, mint az ltalnos esetben, ezekben az esetekben is lehet pldt adni arra, hogy (Moore-automatk esetn) a Moore-fle specilis homomorfizmusfogalmak (Moore-fle Q-, T-, V-, (Q, T)-, (Q, V)-, (T, V)- homomorfizmus s ezek inicilis vltozatai) is valdi specilis esetei a Mealy-fle vltozatoknak. Vgl megjegyezzk, hogy ha a szerepl lekpezsek bijektvek (vagy ha egy ilyen lekpezs van akkor ha a szerepl lekpezs bijektv), akkor Moore-fle izomorfizmusrl, illetve annak megfelel specilis tpusairl beszlnk. Izomorfizmusok esetn viszont a kt fle (Mealy-fle, illetve Moore-fle) izomorfizmus-fogalmak egybeesnek. Hasonlan mint Mealy-automatk esetn, kimondhat az algebrban jl ismert ltalnos Homomorfia Ttel Moore-automatkra vonatkoz specilis esete. 7. Ttel. (ltalnos Homomorfia Ttel Moore-Automatkra Vonatkoz Specilis Esete) Tegyk fel, hogy az A=(Q, T, V, d, g) Moore-automata az A '=(Q ', T ', V ', d ', g ') Moore-automatra valamely Moore-fle llapothomomorfizmussal lekpezhet, s tekinsk a Q llapothalmaznak azt a C osztlyozst, amelynl brmely kt p, qQ llapot akkor s csak akkor van egy osztlyban, ha a tekintett Moore-fle llapothomomorfizmus szerinti kpk ugyanaz. Ekkor az Q llapothalmaz ezen C osztlyozsa kompatibilis, s a hozz tartoz AC faktorautomata Q- izomorf lesz az A ' automatval. Kpletben, 52

A vges automatk elmletnek alapjai A 'QA()A/CQA '(C[q] (q)).

4.3.3. Kimenjel nlkli automata, mint algebrai struktra


Htramaradt mg a megfelel rszautomata-, homomorfizmus-, s izomorfizmus-fogalmak kimenjel nlkli automatkra trtn definilsa. Termszetesen az is igaz, hogy nmi megszortssal (a kimen jelhalmazokra vonatkoz sszefggsek figyelmen kvl hagysval) a homomorfizmus, izomorfizmus s annak egyes specilis tpusai definilhatk kimenjel nlkli automatkra is. gy pldul az A=(Q, T, d) kimenjel nlkli automatnak rszautomatja az A '=(Q ', T ', d ') kimenjel nlkli automata, ha Q 'Q, T 'T, valamint d '=d|Q 'T '. Tovbb az A=(Q, T, d) kimenjel nlkli automatnak homomorf kpe az A '=(Q ', T ', d ') kimenjel nlkli automata, ha alkalmas 1:Q Q ', 2:T T ' alak, szrjektv lekpezsekbl ll =(1, 2) lekpezs-prra minden qQ, aT esetn 1(d(q, a))=d '(1(q), 2(a)) fennll. Az algebrban jl ismert ltalnos Homomorfia Ttel kimenjel nlkli automatkra vonatkoz specilis esete formailag csaknem egybeesik a Mealy-fle automatkra vonatkoz specilis esettel. 8. Ttel. (ltalnos Homomorfia Ttel Kimen Jel Nlkli Automatkra Vonatkoz Specilis Esete) Tegyk fel, hogy az A=(Q, T, d) kimenjel nlkli automata az A '=(Q ', T ', d ') kimenjel nlkli automatra valamely llapothomomorfizmussal lekpezhet, s tekinsk a Q llapothalmaznak azt a C osztlyozst, amelynl brmely kt p, qQ llapot akkor s csak akkor van egy osztlyban, ha a tekintett llapothomomorfizmus szerinti kpk ugyanaz. Ekkor a Q llapothalmaz ezen C osztlyozsa kompatibilis, s a hozz tartoz AC faktorautomata Q- izomorf lesz az A ' automatval. Kpletben, A 'QA()A/CQA '(C[q] (q)). Az elmlet tovbbi kiptsnl elssorban Mealy-automatkra szortkozunk. gy ha mst nem mondunk, a jegyzetnek ebben a rszben automata alatt mindig Mealy-fle automatt fogunk rteni, azaz a Mealy-automatk esetn a "Mealy" jelzt sok esetben elhagyjuk.

4.4. Az automatk ltal induklt lekpezsek


A korbban nem res s vges halmazokra definilt nhny fogalmat a tovbbiakban tetszleges halmazokra is rtelmezni fogjuk. gy valamely (vges vagy vgtelen) V halmaz elemeibl alkotott vges lncot V- beli sznak, V elemeit pedig idnknt betknek hvjuk. Ha V az res halmaz, technikai okokbl (ahogy a Kleene itarci defincijbl is kitnik) V* egy olyan egy elem halmazt jell, melynek egyetlen eleme az ressz: teht *={}. Nemcsak vges, hanem vgtelen V halmazokra is (s az res halmazra is) rvnyes lesz, hogy a V*- beli sszes szavak a konkatencira (egyms mell rsra) nzve - mint mveletre - monoidot, azaz egysgelemes szabad flcsoportot fognak alkotni. Ugyancsak igaz, nemcsak vges hanem vgtelen V halmazokra is, hogy a V+- beli sszes szavak a konkatencira (egyms mell rsra) nzve - mint mveletre - szabad flcsoportot fognak alkotni. (Ha V az res halmaz, akkor a V feletti sszes nem res szavak V+ halmaza is nyilvn res halmaz. Mrpedig egy flcsoportrl fel szoks ttelezni, hogy legalbb egy eleme van, azaz az res halmazt nem szoks flcsoportnak tekinteni. gy V+- t nem tekintjk flcsoportnak ha V res halmaz.) Egy pV* sz hosszt - akkor is ha V nem vges - |p|- el jelljk, s mint korbban, a szt alkot betk szmt rtjk alatta (multiplicitsokkal egytt). A V halmaz szmossgt is (akr vges, akr nem, akr res akr nem) |V|- el jelljk. Vgl, ha p nem res, mint korbban, p jelli a p utols betjt. Legyen A=(Q, T, V, d, f) tetszleges Mealy-automata. A d:QT Q s a f:QT V fggvnyek rtelmezst kiterjesztjk QT*- ra a kvetkez defincival: Legyenek d:QT* Q+, f:QT* V* gy definilva, hogy tetszleges qQ s a1, , anT esetn lljanak fenn a d(q, a1an)=q1qn s a 53

A vges automatk elmletnek alapjai f(q, a1an)=b1bn sszefggsek, ahol q1=d(q, a1), , qn=d(qn-1, an), illetve b1=f(q, a1), , bn=f(qn-1, an). Emellett legyen d(q, )=q, f(q, )=. Ez a formlis definci annak az interpretcinak felel meg, hogy brmely qQ llapotbl indulva az A automata egy bemen jelsorozatnak egy kimen jelsorozatot feleltet meg (az automata "szekvencilis gp"). Nevezetesen, az automata az res bemen szra res kimen szval reagl.

Valamely T halmaz feletti T* szabad monoidot egy V halmaz feletti V* szabad monoidba lekpez :T* V* lekpezst alfabetikus lekpezsnek hvunk. A bemen szavak a bemen informci, a kimen szavak pedig a kimen informci hordozi. Az automata az informci talaktst alfabetikus lekpezsek segtsgvel realizlja. gy a fenti a1a2an szhoz az automata a fenti b1b2bn szt rendeli hozz. Specilisan, az ressznak minden llapot az resszt felelteti meg, hisz definciink rtelmben tetszleges qQ llapotra f(q, )=. A tovbbiakban egy A=(Q, T, V, d, f) Mealy-automata minden egyes qQ llapothoz hozzrendeljk a q, A(w)=f(q, w), wT* sszefggssel definilt q, * * A:T V lekpezst, melyet a qQ llapot ltal induklt lekpezsnek is fogunk hvni. Ha nem ll fenn a flrerts veszlye, q, A helyett a legtbbszr csak q- t runk. Inicilis A=(Q, T, V, q0, d, f) Mealy-automata esetn a q0 kezdllapottal induklt q0 lekpezst az A inicilis automata ltal induklt lekpezsnek, vagy rviden az A automata lekpezsnek is mondjuk s idnknt A- val jelljk. A kvetkez ttel George N. Raneytl (ejtsd: rni) szrmazik. 9. Ttel. (Raney ttele) Egy :T* V* alfabetikus lekpezs akkor s csak akkor automata lekpezs, ha eleget tesz a kvetkez kt felttelnek: (i) hossztart, azaz tetszleges wT*- ra |w|=|(w)|, (ii) kezdszelet tart (kezdszeletet kezdszeletbe visz t), azaz minden w, vT*- hoz ltezik olyan uV*, hogy (wv)=(w)u. Bizonyts. A szksgessg nyilvnval a kiterjesztett tmeneti s kimeneti fggvnyek tulajdonsgai miatt. Valban, legyen A=(Q, T, V, d, f) tetszleges Mealy-automata, s legyen qQ tetszleges llapota. Legyen wT* tetszleges. Ha w=, azaz w az ressz, akkor f(q, )= a defincink szerint, azaz a q()=f(q, ) s a f(q, )= sszefggsek miatt ekkor q()=, amibl |q()|=|| nyilvnvalan kvetkezik. q teht az resszra teljesti a hossztart tulajdonsgot. Most legyen wT* nem ressz, azaz legyen valamely a1, , anT bemen jelekre w=a1an. Ekkor, amint a d s f fggvnyek kiterjesztsnl lttuk, alkalmas q1, , qnQ llapotokra q1=d(q, a1), q2=d(q1, a2), , qn=d(qn-1, an) teljeslse mellett f(q, a1an)=f(q, a1)f(q1, a2)f(qn-1, an). Vagyis, bevezetve a b1=f(q, a1), b2=f(q1, a2), , bn=f(qn-1, an) jellseket, q(a1an)=f(q, a1an)=b1bn. Ebbl nyilvnval, hogy |a1an| =|b1bn|=n, vagyis |w|=|q(w)|, azaz w minden T*- beli (res vagy nem res) szra hossztart. Az ressz T*- nak s V*- nak egysgeleme, azaz tetszleges vT*, wV* esetn v=v=v, illetve w=w=w. Legyen most vT* tetszleges sz. Ekkor azt kapjuk, hogy q(v)=q(v)=q(v). Vagyis a kezdszelet tart tulajdonsg teljeslni fog ha az ressz a kezdszelet, a vgszelet pedig maga a 54

A vges automatk elmletnek alapjai tekintett sz. (rjunk u- t a q(v) helybe a q(v)=q(v) egyenlsg jobboldaln.) Hasonlan kapjuk tetszleges wT*- ra a q(w)=q(w)=q(w) levezetst. Teht a kezdszelet tart tulajdonsg akkor is teljeslni fog, ha a sz kezdszeletnek magt a szt tekintjk, vgszeletnek pedig az resszt. (rjunk u- t a helybe a q(w)=q(w) egyenlsg jobboldaln.) Most vlasszuk meg a w, vT* prt gy, hogy egyikk se legyen res. Ekkor valamely a1, , ak, ak+1, , anT bemen jelekre w=a1ak, v=ak+1an. Vezessk be rendre a q1=d(q, a1), q2=d(q1, a2), , qn=d(qn-1, an) s a b1=f(q, a1), b2=f(q1, a2), , bn=f(qn-1, an) jellseket. Ekkor q(wv)=f(q, wv)=f(q, a1an)=f(q, a1)f(q1, a2)f(qk-1, ak)f(qk+1, ak+1)f(qn-1, an)=b1bkbk+1bn s q(w)=f(q, w)=f(q, a1ak)=f(q, a1)f(q1, a2)f(qk-1, ak)=b1bk fennllnak. Ebbl viszont q(wv)=q(w)bk+1bn, vagyis az u=bk+1bn vlasztssal kapjuk, hogy alkalmas uV*- ra q(wv)=q(w)u ebben az esetben is fennll. q teht valban kezdszelet tart. Az elegendsghez legyen :T* V* tetszleges hossz- s kezdszelet-tart alfabetikus lekpezs. Ekkor minden w, vT* prhoz lesz olyan uV*, hogy (wv)=(w)u. Rgztett wT* esetn jellje w azt a w:T* V* alfabetikus lekpezst, melyre tetszleges vT* esetn a (wv)=(w)w(v) egyenlsg fog teljeslni. Elszr mutassuk meg, hogy a tetszlegesen vlasztott wT*- hoz tekintett w alfabetikus lekpezs is automata lekpezs. Valban, hossztart volta miatt |wv|=|(wv)| s |w|=|(w)|. Msrszt (wv)=(w)w(v) miatt |(w)w(v)|=|(wv)|, azaz |w| +|v|=(|wv|=|(w)w(v)|=)|(w)|+|w(v)|. Ebbl |w|=|(w)| rtelmben |v|=|w(v)|, azaz w hossztart. Mutassuk meg, hogy kezdszelet tart is. Legyen v, zT* tetszleges. Ekkor (wvz)=(w)w(vz) s (wvz)=(wv)wv(z)=(w)w(v)wv(z) is teljeslni fognak a kezdszelet tart volta miatt. gy (w)w(vz)=(w)w(v)wv(z) is teljesl. m szabad monoidban a szavak egyenlsge betrl-betre val egyenlsget jelent, azaz a legutbb kapott egyenlsgnkbl w(vz)=w(v)wv(z) is kvetkezik. Ms szval, tetszleges v, zT*- hoz ltezik olyan u(=wv(z))V*, hogy w(vz)=w(v)u teljesl. Teht w is kezdszelet tart. Azt kaptuk teht, hogy tetszleges wT* esetn w is automata lekpezs. Tetszleges wT* esetn a w automata lekpezst a tovbbiakban a lekpezs llapotnak fogjuk hvni. Legyen Q={w|wT*} s definiljuk az A=(Q, T, V, , d, f) Mealy-automatt gy, hogy minden wQ, aT esetn d(w, a)=wa, f(w, a)=w(a). A ttelhez azt kell mg megmutatni, hogy A automata a lekpezst induklja. Mivel az ressz az egyetlen olyan sz, melynek hossza nulla, a hossztart volta miatt ()=. gy tekintettel arra, hogy az ressz mint bemen sz hatsra egy Mealy-automata kimen szknt definci szerint az resszt adja ki, f(, )=()(=) teljeslni fog. Most legyen w=a1an egy nem res bemen sz, ahol a1, , anT tetszleges bemen jelek. Az A automata defincija rtelmben, valamint amiatt, hogy tetszleges uT* szra u=u fennll, d(, w)=d(, a1an)=a1a1a2a1an=a1a1a2a1an. Ekkor azonban, ugyancsak az A automata defincija alapjn A=f(,w)=f(,a1an)=f(,a1)f(a1,a2)f(a1an-1,an)=(a1)a1(a2)a1an-1(an)= =(a1)a1(a2)a1an-1(an)=()(a1)a1(a2)a1an-1(an)=(a1)a1(a2)a1an-1(an)= =(a1a2)a1a2(a3)a1an-1(an)==(a1an)=(a1an)=(w). Viszont pp ezt kellett bizonytani. Nyilvnval, hogy ha egy automata lekpezs egy vges inicilis automatval induklhat, akkor ennek az automata lekpezsnek legfeljebb annyi llapota lehet mint az t indukl vges automatnak. Msrszt az is vilgos, hogy a Raney ttelnek bizonytsban szerepl A automata vges, ha a bemen s kimen jelhalmazok vgessge mellett a tekintett automata lekpezs vges llapot. gy a kvetkez lltshoz jutunk. 1. Kvetkezmny. Egy vges halmaz feletti monoidot egy vges halmaz feletti monoidba kpez automata lekpezs akkor s csakis akkor induklhat vges automatban, ha llapotainak szma vges. 2. Megjegyzs. Egy :T* V* automata lekpezs induklhat a kvetkez Mealy-automatval is: A=(T*, T, V, , d, f), ahol tetszleges wT*, aT prra d(w, a)=wa, f(w, a)=(wa) (ahol (wa) a (wa) utols betjt jelli). 55

A vges automatk elmletnek alapjai Az A automatt a automata lekpezshez tartoz als automatnak, az A automatt pedig a automata lekpezshez tartoz fels automatnak hvjuk. Vilgos, hogy a fels automata mindig vgtelen llapot. Egy inicilis automatt inicilisan sszefggnek hvunk, ha a kezdllapotbl minden llapotba visz t bemen sz. Kpletben, az A=(Q, T, V, q0, d, f) inicilis Mealy automata inicilisan sszefgg, ha minden qQ llapothoz ltezik olyan wT* bemen sz, hogy d(q0, w)=q, azaz a q0 llapotbl indulva a w szt feldolgozva az automata a q llapotba jut. (Megjegyezzk, hogy w= vlasztssal ez a kezdllapotra mindig fennll.) Nyilvnval, hogy egy automata lekpezshez tartoz als s fels automatk inicilisan sszefggek. Bizonyts nlkl megemltjk a kvetkez ttelt. 10. Ttel. Ha A tetszleges olyan inicilisan sszefgg automata, amely a lekpezst induklja, akkor az A automata az A fels automatnak llapothomomorf kpe, s ugyanekkor az A als automata pedig A- nak llapothomomorf kpe. 3. Megjegyzs. Egy automata lekpezs ellltsnl felhasznlt automatk kzl a hozz tartoz als automata a lehet leggazdasgosabb, a hozz tartoz fels automata pedig a lehet leggazdasgtalanabb. gy az optimlis ellltsnl a automata lekpezshez tartoz als automatt kell ellltani. Ez gy azonban csupn elmleti eredmny, mivel adott w, vT* prra ltalban nehz ellenrizni, hogy fennll-e a w=v egyenlsg. 11. Ttel. Tetszleges T halmazra T* sszes nmagba trtn automata lekpezseinek KT halmaza a lekpezsek szoksos szorzsra nzve monoidot, azaz egysgelemes flcsoportot alkot. 4. Megjegyzs. Egy A=(Q, T, V, q0, d, f) ltal induklt lekpezsnek a B=(Q ', T ', V ', q'0, d ', f ') automata ltal induklt lekpezssel val szorzsa rtelmezhet, ha VT '. Ezt a szorzat-lekpezst a B automata induklja, ha B '=(QQ ', T, V ', (q0, q'0), d '', f '') alak, ahol tetszleges (q, q ')QQ ', aT prra d ''((q, q '), a)=(d(q, a), d '(q ', f(q, a)) s f ''((q, q '), a)=f '(q ', f(q, a)). A B ' automatt az A automata B automatval trtn soros kapcsolsnak vagy szuperpozcijnak hvjuk. 12. Ttel. Egy T halmaz feletti T* monoid sszes nmagba trtn, vges automatk ltal induklhat lekpezseinek LT halmaza a lekpezsek szoksos szorzsra nzve rszflcsoportot alkot a KT flcsoportban. 13. Ttel. Tetszleges T halmazra az T* sszes nmagba trtn bijektv automata lekpezseinek AT halmaza a lekpezsek szoksos szorzsra nzve rszcsoportot alkot a KT flcsoportban. 14. Ttel. Egy T halmaz feletti T* monoid sszes nmagba trtn, vges automatk ltal induklhat bijektv lekpezseinek GT halmaza a lekpezsek szoksos szorzsra nzve rszcsoportot alkot a KT flcsoportban s az AT csoportban. Egy S flcsoport genertorrendszern rtjk S- beli elemek egy H rszhalmazt, ha S minden eleme elll H- beli elemek szorzataknt. H minimlis genertorrendszere, vagy ms nven bzisa S- nek, ha amellett hogy S- nek genertorrendszere, tetszleges hH mellett H{h} mr nem genertorrendszere S- nek. Hasonlan, egy G csoport genertorrendszern rtjk G- beli elemek egy H rszhalmazt, ha G minden eleme elll olyan szorzatknt, melynek minden tnyezje vagy egy H- beli elem, vagy pedig egy H- beli elem inverze. Ugyangy mint flcsoportok esetn, H minimlis genertorrendszere, vagy ms nven bzisa G- nek, ha amellett hogy G- nek genertorrendszere, tetszleges hH mellett H{h} mr nem genertorrendszere G- nek. (Az itt szerepl S s G betk az angol group (=csoport), illetve semi-group szavak kezdbeti, a generatv nyelvtanoknl szerepl S, illetve G- vel val azonossguk csak a vletlen mve!) Nem nehz beltni, hogy ha T egy egyelem halmaz vagy T az res halmaz, akkor KT, LT, AT, GT mindegyike egy elem. gy ebben az esetben mindegyiknek nmaga a bzisa. Ha T legalbb kt elem, akkor rvnyes a kvetkez llts. 15. Ttel. Egy legalbb kt elem T halmaz esetn KT- nek s LT- nek nincs bzisa. 56

A vges automatk elmletnek alapjai Nyitott krds, hogy van-e bzisa AT- nek, illetve GT- nek egy legalbb kt elem T halmaz esetn. Vgl megjegyezzk, hogy Moore-automata esetn az tmeneti s jelfggvnyek kiterjesztse hasonlkpp trtnik mint Mealy-automata esetn. Legyen A=(Q, T, V, d, g) tetszleges Mooreautomata. A d:QT Q s a g:Q V fggvnyek rtelmezst kiterjesztjk QT*- ra, illetve Q+ra a kvetkez defincival: Legyenek d:QT* Q+, g:Q* V* gy definilva, hogy tetszleges qQ s a1, , anT esetn lljanak fenn a d(q, a1an)=q1qn s a g(q1qn)=b1bn sszefggsek, ahol q1=d(q, a1), , qn=d(qn-1, an), illetve b1=g(q1), , bn=g(qn). Emellett legyen d(q, )=q, g()=. Ekkor a q llapot ltal induklt q lekpezsre q()=g()=, illetve tetszleges a1, , anT- re q(a1an)=g(q1qn), aholis q1=d(q, a1), q2=d(q1, a2), , qn=d(qn-1, an). Ksbb ltni fogjuk, hogy minden inicilis Mealy-automatval induklhat automata lekpezs induklhat inicilis Moore-automatval is. St az is igaz, hogy ha egy automata lekpezs vges inicilis Mealy automatval induklhat, akkor induklhat vges inicilis Moore-automatval is. gy a fejezetben trgyaltak Moore-automatkra ugyangy rvnyben maradnak. Az tmeneti fggvny termszetesen kiterjeszthet kimenjel nlkli automata esetn is. Nevezetesen, ugyangy mint Moore-automata esetn, egy A=(Q, T, d) tetszleges kimenjel nlkli automatra a d:QT Q fggvny rtelmezst gy terjesztjk ki QT*- ra, hogy d:QT* Q+- t a kvetkezkpp definiljuk: Legyen d:QT* Q+ gy definilva, hogy tetszleges qQ s a1, , anT esetn lljanak fenn a d(q, a1an)=q1qn sszefggsek, ahol q1=d(q, a1), , qn=d(qn-1, an). Emellett legyen d(q, )=q. Ekkor a q llapot ltal induklt q lekpezsre q()=, illetve tetszleges a1, , anT- re q(a1an)=q1qn, aholis q1=d(q, a1), q2=d(q1, a2), , qn=d(qn-1, an). Mint korbban megjegyeztk, egy A=(Q, T, d) kimenjel nlkli automatt szoks olyan A=(Q, T, V, d, f) Mealy-automatnak tekinteni, ahol V=Q s f=d. Ez a kiterjesztett tmeneti s kimeneti fggvnyekre csak korltozottan rvnyes. Nevezetesen, ha wT* nem res, akkor a kiterjesztett kimeneti fggvnyt is gy rtelmezzk, hogy f(q, w)=d(q, w), qQ. Az ressz esetn viszont a kiterjesztett tmeneti s kimeneti fggvnyeket ebben az esetben (teht egy A=(Q, T, Q, d, f) Mealy automatnak tekintett A=(Q, T, d) kimenjel nlkli automatk esetn) gy definiljuk, hogy d(q, )=q s f(q, )= minden qQ- ra. Ekkor egy A=(Q, T, d) kimenjel nlkli automata esetn egy qQ llapot ltal induklt q lekpezs alatt rtjk azt a q:Q* Q* lekpezst, melyre tetszleges wT* esetn q(w)=d(q, w), ha w, q(w)=, ha w=. A kimenjel nlkli automatk ltal induklt automata lekpezsek specilis automata lekpezsek, s nem minden (Mealy- vagy Moore-fle automatval induklhat) automata lekpezs induklhat vges automatval.

4.7. plda - Automatalekpezsek


Legyen A=({q0, q}, {a, b}, {a, b}, q0, d, f) egy inicilis Mealy-automata, ahol d(q0, a)=d(q, a)=q0, d(q0, b)=d(q, b)=q, f(q0, a)=f(q, a)=f(q0, b)=a, f(q, b)=b. Ekkor q0(aababb)=aaaaab, amihez akrhogy is szerkesztnk meg egy inicilis kimenjel nlkli B=(Q ', T, p0, d ') automatt, p0(aababb)aaaaab fog teljeslni. Teht valban, nem minden automata lekpezs induklhat kimenjel nlkli automatval. 57

A vges automatk elmletnek alapjai

4.5. Reduklt automata. Vges determinisztikus automatk minimalizlsa


Az elz fejezetben lttuk, hogy tetszleges automata alfabetikus lekpezsek egy sokasgt induklja. (Minden llapot indukl egy alfabetikus lekpezst, melyek kzl egyesek egybeeshetnek.) Jellje FA={q|qQ} egy A=(Q, T, V, d, f) ltal induklt lekpezsek sokasgt. Egy ilyen sokasgot az A automata ltal induklt lekpezsek csaldjnak is fogunk hvni. Elfordulhat, hogy p, qQ, pq s mgis p=q. Most azzal a krdssel foglalkozunk, hogy ha egy F lekpezs csaldhoz sikerl mr olyan A automatt tallnunk, melyre FA=F teljesl, hogyan tudjuk helyettesteni A- t egy ugyanilyen tulajdonsg, de minimlis llapotszm A0 automatval. (Termszetesen ennek a dolognak akkor van igazn rtelme, ha az llapothalmaz vges.) Definiljunk egy A=(Q, T, V, d, f) Mealy-automata llapothalmazn egy A relcit: qApq=p (azaz qQpf(q, w)=f(p, w) minden w bemen szra). Knnyen belthat, hogy az gy definilt A relci kongruencia, s radsul a A- hoz tartoz CA kompatibilis osztlyozs maximlis abban az rtelemben, hogy minden ms kompatibilis osztlyozs CA- nak finomtsa. Ezesetben CA- t az A automathoz tartoz maximlis kompatibilis osztlyozsnak is hvjuk, az AA faktorautomatt pedig az A -hoz tartoz reduklt automatnak mondjuk. ltalban, egy A=(Q, T, V, d, f) Mealy-automatt redukltnak neveznk, ha tetszleges p, qQ pr esetn pAqp=q. Ehhez kt fontos megjegyzsnk van: 5. Megjegyzs. 1. Egy automathoz tartoz reduklt automata a legkisebb llapotszmmal (illetve vgtelen automatk esetn a legkisebb szmossg llapothalmazzal) br olyan automata, amely ugyanazt a lekpezs csaldot lltja el, mint az illet automata. 2. Egy automata akkor s csak akkor reduklt, ha Q- izomorf sajt magval. Egy A automata minimalizlsn az A- hoz tartoz A0 reduklt automata megszerkesztst rtjk. Ebben a vonatkozsban az A0 reduklt automatt minimlisnak hvjuk. A kvetkez, vges automatk minimalizlsra szolgl algoritmus D. D. Aufenkamp s F. E. Hohn nevhez fzdik.

4.5.1. Aufenkamp-Hohn-fle minimalizcis algoritmus


Egy vges A=(Q, T, V, d, f) automata esetn az A0 reduklt automathoz gy jutunk el, hogy a p, qQ:(pAqwT*:f(p, w)=f(q, w)) (azaz minden p, qQ pr esetn pAq akkor s csak akkor, ha f(p, w)=f(q, w) brmely wT* esetn fennll) relcihoz tartoz CA osztlyozst osztlyozsok egy C1, C2, sorozatn keresztl szerkesztjk meg, melyeket a kvetkezkpp definilunk: (i)p, qQ:(C1[p]=C1[q]aT:f(p, a)=f(q, a)) (azaz minden p, qQ prra a C1 osztlyozs szerint p s q akkor s csak akkor esnek egy osztlyba, ha ugyanazon bemen jelre ugyanazon kimenjellel reaglnak); (ii) ha i 1Ci+1[p]=Ci+1[q]Ci[p]=Ci[q]aT:Ci[d(p, a)]=Ci[d(q, a)]. (Azaz ha i 1, gy a Ci+1 osztlyozs szerint p s q akkor s csak akkor esnek egy osztlyba, ha egyrszt mr Ci szerint is egy osztlyba esnek, msrszt pedig minden bemen jel hatsra egy s ugyanazon Ci szerinti osztlyba mennek t.) Elszr megszerkesztjk a Q llapothalmaz C1 szerinti osztlyait, mikoris pontosan akkor tartozik kt llapot egy osztlyba, amikor minden egyes bemen jel hatsra ugyanazt a kimenjelet adjk 58

A vges automatk elmletnek alapjai ki. (Lsd (i).) Ezutn minden egyes m>1- re megszerkesztjk a Cm szerinti osztlyokat egszen addig, mg Cm=Cm+1 teljesl. Ltni fogjuk, hogy ilyen m ltezik, s nagysga legfeljebb |Q|-1. Igazolni fogjuk, hogy ez a Cm osztlyozs pp a Q maximlis kompatibilis osztlyozsa. Ezutn a reduklt automata megszerkesztse van csak htra, melynek szerkezete ACm=(Cm, T, V, dCm, fCm), ahol minden Cm[q]Cm, aT- re dCm(Cm[q], a)=Cm[d(q, a)], illetve fCm(Cm[q], a)=f(q, a). Specilisan, ha az eredeti automata inicilis volt, s a kezd llapota q0 volt, akkor a reduklt automata is vlaszthat inicilisnak, spedig gy, hogy a kezdllapott Cm[q0]- nak vlasztjuk.

4.5.2. Kiegszts az Aufenkamp-Hohn minimalizcis algoritmushoz


Ha a clunk nem az automathoz tartoz (reduklt) minimlis llapotszm automata, hanem csupn a q0- t indukl minimlis inicilis automata meghatrozsa, akkor ehhez az A=(Q, T, V, q0, d, f) minimalizland automata helyett annak a kezdllapotbl elrhet llapotok ltal meghatrozott, azaz a Q '={d(q0, w)|wT*} llapothalmazzal rendelkez A '=(Q ', T, V, q0, d ', f ') inicilisan sszefgg llapot-rszautomatjt minimalizljuk. (Emlkeztetl: a d(q0, w)Q+ sz utols betjt jelenti.) A q0- bl el nem rhet llapotok ugyanis nem jtszanak szerepet a q0 lekpezs induklsban (az sszes q0- bl elrhet llapot viszont igen). Mivel A vgessge miatt ekkor a kezdllapotbl csak azok az llapotok rhetk el, melyek legfeljebb |Q|-1 hosszsg szavakkal elrhetk, a Q llapothalmaz Q ' rszhalmaza algoritmikusan meghatrozhat. Erre a kvetkez mdszer knlkozik: Legyen elszr Q0={q0}. Ezutn minden i 1- re legyen Qi+1={q|q 'Qi, aT:d(q ', a)=q}. Ha valamely i 1- re elrjk, hogy Qi=Qi+1, akkor Q '=Qi. Nyilvn az ilyen i- re i |Q|-1 teljesl. Most meg fogjuk mutatni, hogy az algoritmus s a kiegszt megjegyzsnk korrekt. rvnyesek a kvetkez megllaptsok: 1. Segdttel. Tetszleges p, qQ prra s i 1 termszetes szmra Ci[p]=Ci[q] akkor s csak akkor ll fenn, ha minden i- nl nem hosszabb wT* bemen szra f(p, w)=f(q, w). Bizonyts. Elszr azt igazoljuk, hogy tetszleges p, qQ prra s i 1 termszetes szmra Ci[p]=Ci[q]- nek kvetkezmnye, hogy minden i- nl nem hosszabb wX* bemen szra f(p, w)=f(q, w). lltsunkat teljes indukcival fogjuk igazolni. Ha i=1, akkor egy i- nl nem hosszabb sz vagy az ressz, vagy a bemen jelhalmaz egy eleme. Az resszra f(p)= minden pQ pr esetn fennll, teht f(p, )=f(q, )(=) akkor is igaz, ha specilisan C1[p]=C1[q] valamely p, qQ- ra. Amennyiben viszont aT s C1[p]=C1[q], akkor f(p, a)=f(q, a) is teljeslni fog sszhangban a C1 osztlyozs defincijval. Tegyk fel most, hogy valamely i 1- re igaz az llts. Mutassuk meg, hogy ekkor i+1- re is igaz. Elszr szrevesszk, hogy minden olyan p, qQ prra, melyre Ci+1[p]=Ci+1[q] fennll, defincink rtelmben Ci[p]=Ci[q] is igaz. Ekkor viszont az indukcis feltevsnk miatt minden olyan wT*- ra, melyre w nem hosszabb i- nl, f(p, w)=f(q, w). Azt kell teht csak beltnunk, hogy amennyiben egy w sz hossza i+1, akkor minden olyan p, qQ prra, melyre Ci+1[p]=Ci+1[q], fennll a d(p, w)=d(q, w) egyenlsg. Igen m, de ekkor w elll w=av alakban, ahol aT, s ugyanekkor vT* pedig i hosszsg. Ekkor teht f(p, w)=f(p, av)=f(p, a)f(d(p, a), v), illetve f(q, w)=f(q, av)=f(q, a)f(d(q, a), v). Ci+1[p]=Ci+1[q] fennllsa mellett C1[p]=C1[q] is igaz, amibl f(p, a)=f(q, a) kvetkezik (lsd i=1 eset). Msrszt Ci+1[p]=Ci+1[q] definci szerint azt is jelenti, hogy minden aT esetn Ci[d(p, a)]=Ci[d(q, a)]. Viszont az indukcis feltevsnk rtelmben ekkor minden i hosszsg vT* szra f(d(p, a), v)=f(d(q, a), v). Ehhez figyelembe vve az elbb megllaptott f(p, a)=f(q, a) egyenlsget, fennll az f(p, a)f(d(p, a), v)=f(q, a)f(d(q, a), v) egyenlsg is, ami pp azt jelenti, hogy f(p, av)=f(q, av). Ez viszont w=av rtelmben az f(p, w)=f(q, w) egyenlsghez vezet. Most azt tegyk fel, hogy adott p, qQ s i 1 mellett f(p, w)=f(q, w) teljesl minden wT*, |w| i felttelnek eleget tev bemen szra. Igazoljuk teljes indukcival, hogy ekkor Ci[p]=Ci[q]. 59

A vges automatk elmletnek alapjai Ha i=1 s minden aT- re (azaz minden wT*, |w|=1- re) f(p, a)=f(q, a), akkor C1[p]=C1[q] definci szerint teljesl. Tegyk fel ezutn indukcis feltevsknt, hogy valamely rgztett i 1- re valahnyszor egy p, qQ prra f(p, w)=f(q, w) minden |w| i- nek eleget tev wT* bemen sz esetn fennll, mindannyiszor Ci[p]=Ci[q]. Legyen ezutn minden i+1- nl nem hosszabb nem res wT* bemen sz esetn f(p, w)=f(q, w). Ekkor w=av, ahol aT s vT*, ahol |v| i. Ez tbbek kztt azt jelenti, hogy minden aT- re s i- nl nem hosszabb vT*- ra f(d(p, a), v)=f(d(q, a), v). Indukcis feltevsnk rtelmben gy Ci[d(p, a)]=Ci[d(q, a)] tetszleges aT esetn teljesl. Msrszt ha f(p, w)=f(q, w) minden i+1- nl nem hosszabb w, vT* bemen szra teljesl, gy teljesl minden i- nl nem hosszabb bemen szra is. Ez viszont indukcis feltevsnk miatt Ci[p]=Ci[q]- t eredmnyezi. Ezt sszevetve azzal, hogy Ci[d(p, a)]=Ci[d(q, a)] tetszleges aT esetn teljesl, definci szerint kapjuk, hogy Ci+1[p]=Ci+1[q]. Ezzel az lltst igazoltuk. 2. Segdttel. Ha valamely m 1 termszetes szmra Cm=Cm+1, akkor minden j, k m termszetes szmprra Cj=Ck. Bizonyts. lltsunkhoz nyilvn elg igazolni, hogy ha Cm=Cm+1 akkor Cm+1=Cm+2. Legyen teht valamely m 1 termszetes szmra Cm=Cm+1, s legyen valamely p, qQ llapotprra Cm+1[p]=Cm+1[q]. Ekkor viszont definci szerint tetszleges aT- re teljeslni fog a Cm[d(p, a)]=Cm[d(q, a)] egyenlsg. Viszont Cm=Cm+1 miatt gy Cm+1[d(p, a)]=Cm+1[d(q, a)] is fenn fog llni. Ez viszont a felttelezett Cm+1[p]=Cm+1[q] egyenlsggel egytt azt fogja definci szerint eredmnyezni, hogy Cm+2[p]=Cm+2[q]. Vagyis azt kaptuk, hogy ha Cm=Cm+1, akor minden olyan p, qQ prra, melyre Cm+1[p]=Cm+1[q], fennll Cm+2[p]=Cm+2[q] is. Ez pedig pontosan azt jelenti, hogy Cm+1=Cm+2. Most igazoljuk, hogy az Aufenkamp-Hohn fle algoritmus valban korrekt. 16. Ttel. Az Aufenkamp-Hohn fle algoritmus vges sok lpsben minimlis reduklt automatt llt el. Bizonyts. Ha C1 szerint minden llapot egy osztlyba esik, akkor minden llapot egy s ugyanazon kimenjellel reagl egy s ugyanazon bemen jelre. Ekkor C1=C2 nyilvnval. Ez esetben teht a 2. Segdttel rtelmben a minimlis automata egyetlen llapottal fog rendelkezni, s egy-egy bemen jelre ez a reduklt automata egy s ugynazon kimenjelet adja ki, mint az eredeti automata brmelyik llapota. Tegyk fel most, hogy |C1|>1. Ha C1=C2, akkor m=1 s ismt a C1 a kvnt maximlis kongruencia osztlyozs. Ellenkez esetben C2- nek legalbb eggyel tbb osztlyt kell tartalmaznia mint C1- nek, vagyis legalbb hrom osztlyt. Ezt folytatva lesz egy egyre finomod osztlyozs rendszernk, ahol minden egyes osztlyozs legalbb eggyel tbb osztlyt fog tartalmazni mint az elz. Tekintettel arra, hogy feltteleztk |C1|>1- t, tovbb figyelembe vve, hogy legfeljebb |Q| szm osztlya lehet egyegy osztlyozsnak (hisz egy adott osztlyozsnl minden osztlynak kell legalbb egy Q- beli elemet tartalmaznia), azt kapjuk, hogy lesz olyan m |Q|-1, melyre Cm=Cm+1. Valban, ha vesznk valamely m>1- re egy egyre finomod olyan osztlyozs rendszert, melyre C1C2Cm, akkor ha C1- nek legalbb kt, C2- ek legalbb hrom, , Cm- nek legalbb m+1 eleme van s sszesen |Q| szm llapotunk van (vagyis legfeljebb |Q| szm osztlya lehet egy-egy osztlyozsnak), akkor m+1 |Q| fennllsa azt is jelenti, hogy m |Q|-1. gy viszont valban lesz olyan m |Q|-1, mikoris Cm=Cm+1, ami a 2. Segdttel rtelmben azt is jelenti, hogy teszleges i m- re Ci=Cm. Ez azonban az 1. Segdttel miatt azt is eredmnyezi, hogy teszleges olyan p, qQ llapotprra, melyre Cm[p]=Cm[q], teljeslni fog a f(p, w)=f(q, w) egyenlsg, akrmilyen hossz is a tekintett wT* bemen sz. Ezzel belttuk, hogy Cm egy kongruencia osztlyozs, aholis m |Q|-1. Be kell mg ltnunk, hogy Cm valban maximlis kongruencia osztlyozs, vagyis ha kt llapot nem tartozik Cm szerint egy osztlyba, akkor az ltaluk induklt lekpezsek klnbzek. Legyen p, qQ kt llapot, mely Cm szerint nem tartozik egy osztlyba. Ha mr C1 szerint sem tartoznak egy osztlyba, akkor valamely aT- re f(p, a)f(q, a) s akkor valban igaz, hogy pq. Ellenkez esetben van egy maximlis k<m, hogy Ck[p]=Ck[q], m Ck+1[p]Ck+1[q]. Ekkor viszont a 1. Segdttel alapjn van 60

A vges automatk elmletnek alapjai legalbb egy olyan k+1 hosszsg wT* sz, hogy d(p, w)d(q, w). (Nevezetesen, minden k+1- nl rvidebb wT* szra Ck[p]=Ck[q] miatt f(p, w)=f(q, w), msrszrl pedig Ck+1[p]Ck+1[q] miatt van legalbb egy olyan k+1- nl nem hosszabb wT* sz, melyre f(p, w)f(q, w). A kt llts egyttes fennllsa azt jelenti, hogy f(p, w)f(q, w) legalbb egy k+1 hossz szra teljesl.) Be kell mg ltnunk azt is hogy a kiegszt megjegyzsnk is korrekt. A fentiek alapjn az is igaz, hogy ha az A automata inicilis s kezdllapota q0, akkor a reduklt automatt is vlaszthatjuk inicilisnak oly mdon, hogy kezdllapotnak a Cm[q0] osztlyt vlasztjuk. Ez az osztly is a q0 lekpezst fogja a reduklt automatban induklni ugyangy, mint ahogy a q0 a q0 lekpezst induklja A- ban. Ha egy inicilis A=(Q, T, V, q0, d, f) vges automathoz keressk azt a minimlis automatt, mely q0- t induklja, elszr clszer a Q llapothalmaz Q '={q 'Q|q '=d(q0, w), wT*} rszhalmazt meghatrozni, s azutn a Q ' llapothalmaz ltal meghatrozott A ' inicilis llapot-rszautomatt minimalizlni. Vilgos ugyanis, hogy ez az A ' inicilis llapot-rszautomata ugyancsak a q0- t induklja, azaz A- ban a QQ '- beli, azaz az q0- bl el nem rhet llapotok ugyanis q0 induklsban nem jtszanak szerepet. Jellje B a A- hoz tartoz inicilis reduklt automatt, B ' pedig a A '- hz tartoz inicilis reduklt automatt. Vilgos, hogy B ' ugyangy a q0- t fogja induklni, mint B. Mivel Q ' rszhalmaza a Q- nak, az is vilgos, hogy a B ' llapothalmaza rszhalmaza a B llapothalmaznak. gy ha Q'B jelli a B ', tovbb QB jelli a B llapothalmazt, |Q'B| |QB|. Esetleg lehet olyan qQQ ' llapotunk, melyre q{q '|q'Q '}. Ekkor azonban |Q'B|<|QB|, vagyis ilyen esetben B nem egy minimlis, q0 lekpezst indukl automata. Teht valban, egy q0 lekpezst indukl minimlis automata keressnel clszer elszr a vizsglt A inicilisan sszefgg llapot rszautomatjt meghatrozni, majd az Aufenkamp-Hohn fle algoritmust erre az inicilis llapot rszautomatra alkalmazni. Krds mg, hogy a Q ' meghatrozshoz javasolt algoritmusunk korrekt-e. Az vilgos, hogy minden i 1- re a Qi halmaz definci szerint a q0- bl legfeljebb i hosszsg szavakkal elrhet llapotok halmaza. gy azt kell csak kimutatnunk, hogy ha egy llapot q0- bl elrhet, akkor elrhet |Q|-1- nl nem hosszabb bemen szval is. Tetszleges w, v, uT* esetn d(q0, wv)=d(q0, w) mellett d(q0, wvu)=d(q0, wu) nyilvn fennll. gy ha valamely qQ llapothoz van olyan w ' sz, hogy d(q0, w ')=q, akkor w ' megvlaszhat gy, hogy brmely kt klnbz w '', w '''T* kezdszeletre d(q0, w '')d(q0, w ''') teljesljn. Ekkor viszont w ' hossza legfeljebb |Q|-1 lehet, klnben az ismtlds elkerlhetetlen. gy megvizsglva azt, hogy melyek azok az llapotok, melyek elrhetk a kezdllapotbl legfeljebb |Q|-1 hossz szval, megkapjuk Q '- t. Az is vilgos, hogy ha valamely k<|Q|-1- re a q0- bl legfeljebb k hossz szval elrhet llapotok Qk halmaza egybeesik a q0- bl legfeljebb k+1 hossz szval elrhet llapotok halmazval, gy a q0- bl elrhet sszes llapotok halmaza Qk- val megegyezik. Valban, ha a legfeljebb k hossz bemen szavakkal ugyanazokat az llapotokat rjk el mint a legfeljebb k+1 hossz szavakkal, akkor minden l 0- ra a legfeljebb k hossz hossz bemen szavakkal ugyanazokat az llapotokat rjk el mint a legfeljebb k+l, azaz brmilyen hossz szavakkal. Az Aufenkamp-Hohnfle minimalizcis algoritmushoz vett kiegszt megjegyzsnk teht ugyancsak korrekt.

61

A vges automatk elmletnek alapjai

4.8. plda - Mealy-automata minimalizlsa 1.feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a1,a2,a3,a4,a5,a6},{x,y},{u,v,w},d,f) Mealy-automathoz tartoz A0 minimlis llapotszm automatt! (d s f a kvetkez tblzattal adott): A x y a1 (a2,u) (a3,v) a2 (a1,w) (a2,v) a3 (a1,u) (a4,v) a4 (a5,w) (a4,v) a5 (a4,u) (a3,v) a6 (a3,u) (a2,v)

Megolds: (I.) A feladat megoldsnak els lpseknt klnbz osztlyokba fogjuk sorolni az A automata bels llapotait. A kiindul oszlyokban kt llapot akkor s csak akkor esik egy osztlyba, ha ugyanarra a bemen jelre ugyanazzal a kimenjellel reaglnak. Jelen esetben: C1={a1,a3,a5,a6},{a2,a4}. Ezek utn a Ci+1-edik osztlyozs esetn kt llapot akkor esik egy osztlyba, ha egyrszt a Ci-edik osztlyozs esetn is azonos osztlyba tartoztak, msrszt pedig minden bemen jel hatsra azonos Ci-beli osztlyban tallhat llapotokba mennek t. Az osztlyozs vget r, amennyiben Ci=Ci+1 valamely i 1 esetn. Jelen esetben: C2={a1,a5},{a3,a6},{a2,a4}. C3={a1,a5},{a3},{a6},{a2,a4}. C4={a1,a5},{a3},{a6},{a2,a4}. Mivel C3=C4, ezrt az osztlyozs vget rt. A C3 osztlyait jelljk valamely j betvel, pldul b-vel: b1={a1,a5},b2={a3},b3={a6},b4={a2,a4}. (II.) Ksztsk el az A automatval ekvivalens, minimlis llapotszm A0 automatt, mely llapothalmazt az osztlyozs s az j jells bevezetse utn kapott bi betk alkotjk, - a bemen- s kimenjeleinek halmaza megegyezik az A automata megfelel jeleinek halmazval, - az tmenetfggvnyt megkapjuk gy, hogy megnzzk, hogy az adott bi osztlybeli llapotok az adott bemen jel hatsra mely bj osztlybeli llapotokba mentek t az A automata esetn - s vgl az aktulis bi osztlyhoz tartoz kimenjelet megkapjuk, ha megnzzk, hogy az adott bi osztlybeli llapotok az adott bemen jel hatsra mely kimenjelet szolgltattk az A automata mkdse kzben. Jelen esetben: A0=({b1,b2,b3,b4},{x,y},(u,v,w),d',f'). Ahol d ' s f ' a kvetkez tblzattal adott: A0 x y b1 (b4,u) (b2,v) b2 (b1,u) (b4,v) b3 (b2,u) (b4,v) b4 (b1,w) (b4,v)

62

A vges automatk elmletnek alapjai

4.9. plda - Mealy-automata minimalizlsa 2.feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a1,a2,a3,a4,a5,a6,a7},{x,y},{u,v,w},d,f) Mealy-automathoz tartoz A0 minimlis llapotszm automatt! Ahol d s f a kvetkez tblzattal adott: A x y a1 (a2,w) (a4,u) a2 (a3,w) (a2,v) a3 (a2,w) (a4,u) a4 (a7,w) (a2,v) a5 (a6,w) (a4,u) a6 (a5,w) (a5,v) a7 (a4,w) (a2,u)

Megolds: (I.) C1={a1,a3,a5,a7},{a2,a4,a6}. C2={a1,a3,a5,a7},{a2,a4},{a6}. C3={a1,a3,a7},{a5},{a2,a4},{a6}. C4={a1,a3,a7},{a5},{a2,a4},{a6}. b1={a1,a3,a7},b2={a5},b3={a2,a4},b4={a6}. (II.) A0=({b1,b2,b3,b4},{x,y},(u,v,w),d',f'). Ahol d ' s f ' a kvetkez tblzattal adott: A0 x y b1 (b3,w) (b3,u) b2 (b4,w) (b3,u) b3 (b1,w) (b3,v) b4 (b2,w) (b2,v)

63

A vges automatk elmletnek alapjai

4.10. plda - Mealy-automata minimalizlsa 3.feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a1,a2,a3,a4,a5},{x,y,z},{u,v},d,f) Mealy-automathoz tartoz A0 minimlis llapotszm automatt! A x y z a1 (a2,u) (a4,u) (a5,v) a2 (a2,v) (a3,u) (a5,u) a3 (a2,u) (a1,u) (a1,v) a4 (a5,v) (a3,u) (a5,u) a5 (a4,v) (a3,u) (a2,u)

Megolds: (I.) C1={a1,a3},{a2,a4,a5}. C2={a1},{a3},{a2,a4,a5}. C3={a1},{a3},{a2,a4,a5}. b1={a1},b2={a3},b3={a2,a4,a5}. (II.) A0=({b1,b2,b3},{x,y,z},(u,v),d',f'). A0 x y z b1 (b3,u) (b3,u) (b3,v) b2 (b3,u) (b1,u) (b1,v) b3 (b3,v) (b2,u) (b3,u)

4.11. plda - Mealy-automata minimalizlsa 4.feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a1,a2,a3,a4,a5,a6,a7,a8},{x,y},{u,v},d,f) Mealy-automathoz tartoz A0 minimlis llapotszm automatt! A x y a1 (a8,u) (a2,v) a2 (a3,v) (a1,u) a3 (a8,u) (a7,u) a4 (a1,v) (a2,v) a5 (a8,u) (a7,v) a6 (a4,u) (a2,v) a7 (a3,v) (a6,u) a8 (a5,v) (a3,v)

Megolds: (I.) C1={a1,a5,a6},{a2,a7},{a3},{a4,a8}. C2={a1,a5,a6},{a2,a7},{a3},{a4},{a8}. C3={a1,a5},{a6},{a2,a7},{a3},{a4},{a8}. C4={a1,a5},{a6},{a2},{a7},{a3},{a4},{a8}. C5={a1},{a5},{a6},{a2},{a7},{a3},{a4},{a8}. Ebben az esetben - mivel a C5 osztlyozs esetn minden ai llapot kln osztlyba esik, az A automata mr minimlis, gy tovbb nem minimalizlhat, azaz A0=A.

64

A vges automatk elmletnek alapjai

4.5.3. Aufenkamp-Hohn fle minimalizcis algoritmus Moore-automatkhoz adaptlt vltozata


Megjegyezzk elszr, hogy ha egy Moore-automatt Mealy-automatnak tekintnk, s minimalizljuk, az eredmny nem felttlenl lesz Moore-fle automata (lsd Mealy s Moore automatk homomorfizmusa). Ha az A=(Q, T, V, d, g) Moore-automathoz azt a minimlis llapotszm Moore-fle automatt akarjuk meghatrozni, mely ugyanazt a lekpezsi csaldot induklja, mint az eredeti Moore-automata, akkor az Aufenkamp-Hohn fle algoritmust egy kicsit mdostanunk kell. Egy vges A=(Q, T, V, d, g) Moore-automata esetn az A0 reduklt Moore-automathoz gy jutunk el, hogy definilunk egy kongruencia relcit a kvetkezkppen: p, qQ:(pAqa1, , anT:g(p1pn)=g(q1qn)), p1=d(p, a1), p2=d(p1, a2), , pn=d(pn-1, an), q1=d(q, a1), q2=d(q1, a2), , qn=d(qn-1, an) (azaz minden p, qQ pr esetn pAq akkor s csak akkor, ha g(p1pn)=g(q1qn) fennll minden olyan p1, , pn, q1, , qnQ esetn, melyekre p1=d(p, a1), p2=d(p1, a2), , pn=d(pn-1, an), q1=d(q, a1), q2=d(q1, a2), , qn=d(qn-1, an) fennll valamely a1, , anT bemen jelek esetn). Ekkor a A relcihoz tartoz CA osztlyozst osztlyozsok egy C1, C2, sorozatn keresztl szerkesztjk meg, melyeket a kvetkezkpp definilunk: (i) p, qQ:(C1[p]=C1[q]aT:g(p)=g(q)) (azaz minden p, qQ prra a C1 osztlyozs szerint p s q akkor s csak akkor esnek egy osztlyba, ha ugyanaz az llapotjelk); (ii) ha i 1Ci+1[p]=Ci+1[q]Ci[p]=Ci[q]aT:Ci[d(p, a)]=Ci[d(q, a)]. (Azaz ha i 1, akkor amint a Mealy-automatknl, a Ci+1 osztlyozs szerint p s q akkor s csak akkor esnek egy osztlyba, ha egyrszt mr Ci szerint is egy osztlyba esnek, msrszt pedig minden bemen jel hatsra egy s ugyanazon Ci szerinti osztlyba mennek t.) A tovbbiakban formailag a Moore-automatkra adaptlt Aufenkamp-Hohn fle eljrs csaknem teljesen megegyezik a Mealy-automatknl trgyaltakkal. Elszr megszerkesztjk a Q llapothalmaz C1 szerinti osztlyait, mikoris pontosan akkor tartozik kt llapot egy osztlyba, amikor ugyanaz az llapotjelk. (Lsd (i) pont, fentebb.) Ezutn minden egyes m>1- re megszerkesztjk a Cm szerinti osztlyokat egszen addig, mg Cm=Cm+1 teljesl. Ugyangy mint Mealy-automatk esetn, ilyen m ltezik, s nagysga legfeljebb |Q|-1. Ez a Cm osztlyozs pp a Q (Moore-vltozat) maximlis kompatibilis osztlyozsa. Ezutn a Moore-fle reduklt automata megszerkesztse van csak htra, melynek szerkezete ACm=(Cm, T, V, dCm, gCm), aholis minden Cm[q]Cm, aT- re dCm(Cm[q], a)=Cm[d(q, a)], illetve gCm(Cm[q])=g(q). Specilisan, ha az eredeti automata inicilis volt, s a kezd llapota q0 volt, akkor a reduklt automata is vlaszthat inicilisnak, spedig gy, hogy a kezdllapott Cm[q0]- nak vlasztjuk.

4.5.4. Kiegszts az Aufenkamp-Hohn-fle minimalizcis algoritmus Moore-automatkhoz adaptlt vltozathoz


Ha a clunk nem az automathoz tartoz (reduklt) minimlis llapotszm Moore-automata, hanem csupn az a q0- t indukl minimlis inicilis Moore-automata meghatrozsa, akkor ehhez az A=(Q, T, V, q0, d, g) minimalizland automata helyett annak a kezdllapotbl elrhet llapotok ltal meghatrozott, azaz a Q '={d(q0, w)|wT*} llapothalmazzal rendelkez A=(Q ', T, V, q0, d ', g ') 65

A vges automatk elmletnek alapjai inicilisan sszefgg llapot-rszautomatjt minimalizljuk. A q0- bl el nem rhet llapotok ugyanis nem jtszanak szerepet a q0 lekpezs induklsban (az sszes q0- bl elrhet llapot viszont igen). Mivel A vgessge miatt ekkor a kezdllapotbl csak azok az llapotok rhetk el, melyek legfeljebb |Q|-1 hosszsg szavakkal elrhetk, a Q llapothalmaz Q ' rszhalmaza algoritmikusan meghatrozhat. Erre ugyanaz a mdszer knlkozik mint Mealy-automatk esetn: Legyen elszr Q0={q0}. Ezutn minden i 1- re legyen Qi+1={q|q 'Qi, aT:d(q ', a)=q}. Ha valamely i 1- re elrjk, hogy Qi=Qi+1, akkor Q '=Qi. Nyilvn az ilyen i- re i |Q|-1 teljesl.

66

A vges automatk elmletnek alapjai

4.12. plda - Moore-automata minimalizlsa 1.feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a1,a2,a3,a4,a5,a6},{x,y},{u,v,w},d,g) Moore-automathoz tartoz A0 minimlis llapotszm automatt! A d s g fggvnyek a kvetkez tblzattal adottak: A x y u a1 a4 a1 v a2 a1 a3 u a3 a4 a6 u a4 a1 a4 w a5 a1 a6 w a6 a3 a5

Megolds: (I.) A feladat megoldsnak els lpseknt klnbz osztlyokba fogjuk sorolni az A automata bels llapotait. A kiindul oszlyokban kt llapot akkor s csak akkor esik egy osztlyba, ha ugyanarra a bemen jelre ugyanazzal a kimenjellel reaglnak. Jelen esetben: C1={a1,a3,a4},{a2},{a5,a6}. Ezek utn a Ci+1-edik osztlyozs esetn kt llapot akkor esik egy osztlyba, ha egyrszt a Ci-edik osztlyozs esetn is azonos osztlyba tartoztak, msrszt pedig minden bemen jel hatsra azonos Ci-beli osztlyban tallhat llapotokba mennek t. Az osztlyozs vget r, amennyiben Ci=Ci+1 valamely i 1 esetn. Jelen esetben: C2={a1,a4},{a2},{a3},{a5,a6}. C3={a1,a4},{a2},{a3},{a5},{a6}. C4={a1,a4},{a2},{a3},{a5},{a6}. Mivel C3=C4, ezrt az osztlyozs vget rt. A C3 osztlyait jelljk valamely j betvel, pldul b-vel: b1={a1,a4},b2={a2},b3={a3},b4={a5},b5={a6}. (II.) Ksztsk el az A automatval ekvivalens, minimlis llapotszm A0 automatt, mely llapothalmazt az osztlyozs s az j jells bevezetse utn kapott bi betk alkotjk, - a bemen- s kimenjeleinek halmaza megegyezik az A automata megfelel jeleinek halmazval, - az tmenetfggvnyt megkapjuk gy, hogy megnzzk, hogy az adott bi osztlybeli llapotok az adott bemen jel hatsra mely bj osztlybeli llapotokba mentek t az A automata esetn - s vgl az aktulis bi osztlyhoz tartoz kimenjelet megkapjuk, ha megnzzk, hogy az adott bi osztlybeli llapotok az adott bemen jel hatsra mely kimenjelet szolgltattk az A automata mkdse kzben. Jelen esetben: A0=({b1,b2,b3,b4,b5},{x,y},(u,v,w),d',g'). Tblzattal: A0 x y u b1 b1 b1 v b2 b1 b3 u b3 b1 b5 w b4 b1 b5 w b5 b3 b4

67

A vges automatk elmletnek alapjai

4.13. plda - Moore-automata minimalizlsa 2.feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a1,a2,a3,a4,a5},{x,y},{u,v},d,g) Moore-automathoz tartoz A0 minimlis llapotszm automatt! A x y u a1 a2 a5 v a2 a4 a3 v a3 a4 a2 u a4 a2 a3 u a5 a3 a1

Megolds: (I.) C1={a1,a4,a5},{a2,a3}. C2={a1,a5},{a4},{a2,a3}. C3={a1,a5},{a4},{a2,a3}. b1={a1,a5},b2={a4},b3={a2,a3}. (II.) A0=({b1,b2,b3},{x,y},(u,v),d',g'). Ahol d ' s g ' a kvetkez tblzattal adott: A0 x y u b1 b3 b1 u b2 b3 b3 v b3 b2 b3

68

A vges automatk elmletnek alapjai

4.14. plda - Moore-automata minimalizlsa 3.feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a1,a2,a3,a4,a5},{x,y,z},{u,v,w},d,g) Moore-automathoz tartoz A0 minimlis llapotszm automatt! A x y z u a1 a2 a5 a1 v a2 a4 a4 a3 v a3 a4 a5 a2 w a4 a2 a3 a5 w a5 a3 a3 a4

Megolds: (I.) C1={a1},{a2,a3},{a4,a5}. C2={a1},{a2,a3},{a4,a5}. b1={a1},b2={a2,a3},b3={a4,a5}. (II.) A0=({b1,b2,b3},{x,y,z},(u,v,w),d',g'). A0 x y z u b1 b2 b3 b1 v b2 b3 b3 b2 w b3 b2 b2 b3

4.5.5. Minimalizcis algoritmus kimenjel nlkli automatkra


Tetszleges A=(Q, T, d) kimenjel nlkli automata esetn valamely qQ llapot s nem res w bemen sz esetn a kimen szt d(q, w)- vel azonostottuk. Ha a bemen sz az ressz, akkor viszont kimen sznak ugyancsak az resszt tekintettk minden llapotra vonatkozan, mint a Mealyautomatknl. Ezek szerint egy egymstl klnbz p, qQ llapotpr nem tartozhat egy osztlyba, ha valamely (nem felttlen klnbz) r, sQ llapotprra s a, bT bemen jelekre d(r, a)=p s d(s, b)=q. Mskpp mondva, kt p, qQ llapot csak gy tartozhat egy osztlyba, ha egyrszt minden aT- re d(p, a)=d(q, a), msrszt legalbb egy r{p, q}- ra akrhogy is adjuk meg az sQ, aT prt, d(s, a)r. gy az Aufenkamp-Hohn fle minimalizcis algoritmus helyett kimenjel nlkli automatkra a kvetkez algoritmust alkalmazzuk: Egy vges A=(Q, T, d) kimenjel nlkli automata esetn az A0 reduklt kimenjel nlkli automathoz is gy jutunk el, hogy elszr kpezzk a Q egy olyan Q0 rszhalmazt, mely tartalmaz minden olyan qQ llapotot, melyhez van olyan pQ, aT, hogy d(p, a)=q. Vezessk be tovbb a C0=QQ0 jellst. Mindaddig, mg valamely i 0- ra Ci res nem lesz, hajtsuk vgre a kvetkez algoritmust: Tegyk fel, hogy valamely i 0- ra Qi s Ci adottak. Legyen valamely tetszlegesen rgztett rCire Qi+1=Qi{r}. Eutn Ci+1- t Ci- bl gy kpezzk, hogy Ci elemei kzl elhagyunk minden olyan r 'Ci elemet, melyhez van olyan pQi+1, hogy tetszleges aT mellett d(r ', a)=d(p, a). Ha Ci+1=, akkor kszen vagyunk, klnben nveljk eggyel i rtkt, s ismteljk meg az elz lpst. 69

A vges automatk elmletnek alapjai Vilgos, hogy Q vgessge miatt ez az eljrs vges lpsben valamely i 0- ra vget r, s az is knnyen igazolhat, hogy a fenti algoritmus vgn minden qQ- hoz tartozik pontosan egy olyan pQi+1, hogy tetszleges aT mellett d(q, a)=d(p, a). Ekkor megkapjuk a B=(Q ', T, d ') kimenjel nlkli automatt, ahol Q '=Qi+1 s d '=d|Q 'T mellett B olyan (kimenjel nlkli) llapot rszautomatja lesz A- nak, hogy minden qQ- hoz tallhat olyan pQ ', hogy tetszleges aT mellett d(q, a)=d(p, a). Ez a B kimenjel nlkli automata lesz az A kimenjel nlkli automathoz tartoz reduklt automata.

4.5.6. Kiegszts a minimalizcis algoritmus kimenjel nlkli automatkra ismertetett vltozathoz


Ha a clunk nem a kimenjel nlkli automathoz tartoz (reduklt) minimlis llapotszm kimenjel nlkli automata, hanem csupn az a q0- t indukl minimlis inicilis kimenjel nlkli automata meghatrozsa, akkor ehhez az A=(Q, T, q0, d) minimalizland kimenjel nlkli automata helyett annak a kezd llapotbl elrhet llapotok ltal meghatrozott, azaz a Q '={d(q0, w)|wT*} llapothalmazzal rendelkez A=(Q ', T, q0, d ') inicilisan sszefgg (kimenjel nlkli) llapotrszautomatjt minimalizljuk. A q0- bl el nem rhet llapotok ugyanis most sem jtszanak szerepet a q0 lekpezs induklsban (az sszes q0- bl elrhet llapotok viszont igen). Mivel A vgessge miatt ekkor a kezdllapotbl csak azok az llapotok rhetk el, melyek legfeljebb |Q|-1 hosszsg szavakkal elrhetk, a Q llapothalmaz Q ' rszhalmaza algoritmikusan meghatrozhat. Erre itt is a kvetkez mdszer knlkozik: Legyen elszr Q0={q0}. Ezutn minden i 1- re legyen Qi+1={q| q 'Qi, aT:d(q ', a)=q}. Ha valamely i 1- re elrjk, hogy Qi=Qi+1, akkor Q '=Qi. Nyilvn az ilyen i- re i |Q|-1 teljesl. A q0- bl elrhet minden q 'Q ' llapot nyilvn rendelkezik azzal a tulajdonsggal, hogy alkalmas pQ ', aT prra d(p, a)=q '. gy ha q0 is elrhet nmagbl, akkor A ' egy minimlis, q0- t indukl automata lesz. Ugyancsak az lesz, ha minden qQ '{q0} esetn van olyan aT, melyre d(q0, a)d(q, a). Ellenkez esetben valamely qQ '- re d(q, a)=d(q0, a) minden aT- re fennll, tovbb tetszleges (az ressztl klnbz) wT+ bemen sz esetn d(q0, w)zq0 semmilyen zQ* esetn sem. Ha van olyan wT+ (ressztl klnbz) bemen sz, hogy d(q, w)=zq valamely zQ*- ra, akkor vilgos, hogy A ' ismt reduklt automata lesz. Ellenkez esetben amellett, hogy az q, q0Q prra d(q, a)=d(q0, a), aT fennll, {d(q0, w)|wT+}{q0, q}= s {d(q, w)|wT+}{q0, q}= is teljesl. Vilgos hogy ebben az esetben a d ''(p, a)=d(p, a), pQ '{q0}, aT tmeneti fggvnnyel definilt B=(Q '{q0}, T, q, d '') egy olyan minimlis llapotszm inicilis kimenjel nlkli automata lesz, melynek qQ '{q0} kezdllapota pont q0- t induklja. Csak megemltjk itt, hogy hasonl mdszerrel minimalizlhatak a Rabin-Scott (felismer-) automatk is (rszleteket lsd Vges determinisztikus elfogad automatk minimalizlsa fejezetben). Ezesetben, az Aufenkamp-Hohn algoritmus els osztlyoz lpsben kt csoportot kpznk, mgpedig a vgllapotok, illetve a tbbi llapot halmazt.

4.6. Automatk ekvivalencija, Gill ttele


A kzs T, V halmazokkal br A=(Q, T, V, d, f) s A '=(Q ', T, V, d ', f ') automatk pQ s qQ ' llapotait egymssal ekvivalens llapotoknak mondjuk (jelekben: pq), ha p s q az A, illetve B automatban ugyanazt a lekpezst induklja, azaz p, A=q, B. Magukat az A s B automatkat ekvivalenseknek nevezzk, ha brmelyikk brmely llapothoz van a msiknak ezzel az llapottal ekvivalens llapota, azaz FA=FB. Specilisan, kt inicilis automatt akkor mondunk ekvivalensnek, ha kezdllapotaik ekvivalensek egymssal. 17. Ttel. Tetszleges A automatval ekvivalens automatk M halmazban ltezik olyan Qizomorfitl eltekintve egyrtelmen meghatrozott A ' automata, amely brmely M- beli automatnak Q- homomorf kpe. A '- knt vlaszthat brmely M- beli automathoz tartoz reduklt automata. Mint mr korbban lttuk, egy Moore-automata tekinthet specilis Mealy-automatnak. Az elmlet kiptse folyamn fontos szerepet tlt be Arthur Gill (ejtsd: gill, zsill) kvetkez eredmnye, mely azt igazolja, hogy informci talakts szempontjbl a kt automata fogalom ekvivalens. 70

A vges automatk elmletnek alapjai 18. Ttel. (Gill ttele) Brmely Mealy-automathoz ltezik vele ekvivalens Moore-automata. Emellett, ha a Mealy-automata vges, akkor a hozz megkonstrult, vele ekvivalens Moore-automata is vlaszthat vgesnek. Bizonyts. Legyen A=(Q, T, V, d, f) tetszleges Mealy-automata. Egy vele ekvivalens Mooreautomatt a kvetkezkpp konstrulhatunk meg: Legyen A '=(Q ', T, V, d ', f '), ahol Q '=QQT, tovbb tetszleges q 'Q ', aT prra d '(q ', a)=(q ', a) ha q 'Q, d '(q ', a)=(d(q, a '), a) ha q '=(q, a ')QT, f '(q ', a)=f(q, a) ha q 'Q, f '(q ', a)=f(d(q, a '), a) ha q '=(q, a ')QT. Mutassuk meg, hogy minden qQ, wT* esetn f(q, w)=f '(q, w). Nyilvn elegend nem res szavakra szortkoznunk. Legyen teht a1, anT s tekintsk a q, q1=d(q, a1), q2=d(q1, a2), , qn-1=d(qn-2, an-1) llapotokhoz a b1=f(q, a1), b2=f(q1, a2), , bn=f(qn-1, an) kimenjeleket. Vilgos, hogy ekkor definci szerint f(q, a1an)=b1bn. Msrszrl, d ' s f ' defincija alapjn d '(q, a1)=(q, a1), d '((q, a1), a2)=(d(q, a1), a2)=(q1, a2), d '((q1, a2), a3)=(d(q1, a2), a3)=(q2, a3), illetve f '(q, a1)=f(q, a1)=b1, f '((q, a1), a2)=f(d(q, a1), a2)=f(q1, a2)=b2, f '((q1, a2), a3)= =f(d(q1, a2), a3)=f(q2, a3)=b3, , f '((qn-2, an-1), an)=f(d(qn-2, an-1), an)=f(qn-1, an)=bn. Azt kaptuk teht, hogy minden qQ- ra s wT*- ra f(q, w)=f '(q, w). gy minden A- beli llapothoz ltezik vele ekvivalens A '- beli llapot. Termszetesen az is igaz, hogy A ' minden A- ba es llapothoz van vele ekvivalens A- beli llapot. A s A ' ekvivalencijhoz azt kell mg megmutatnunk, hogy az A ' minden QT- beli llapothoz is van az A automatnak vele ekvivalens llapota. Ehhez legyen (q, a)QT. Mutassuk meg, hogy A ' ezen llapota ekvivalens az A automata d(q, a) llapotval, azaz f '((q, a), w)=f(d(q, a), w) minden wT* mellett fennll. Nyilvn most is elegend nem res szavakra szortkoznunk. Legyen teht a1, anT. Ekkor, az elbb kapott f(q, a1an)=f '(q, a1an) egyenlsg fennllsnak igazolshoz hasonlan bizonythat, hogy f(q, aa1an)=f '(q, aa1an). Viszont f(q, aa1an)=f(q, a)f(d(q, a), a1an) s f '(q, aa1an)==f(q, a)f '(d '(q, a), a1an) definci szerint fennll. d ' defincija szerint d '(q, a)=(q, a), gy f '(q, aa1an)=f(q, a)f '((q, a), a1an). Msrszt f ' defincija rtelmben f '(q, a)=f(q, a). Mivel kt kimen sz pontosan akkor egyezik meg, ha betrl-betre megegyezik, f '(q, a)=f(q, a) s f(q, aa1an)=f '(q, aa1an) teljeslse ekkor f(q, aa1an)=f(q, a)f(d(q, a), a1an) s f '(q, aa1an)=f(q, a)f '((q, a), a1an) miatt azt jelenti, hogy f(d(q, a), a1an)=f '((q, a), a1an). Ezzel kimutattuk, hogy az A automata d(q, a) llapota ekvivalens az A ' automata (q, a) llapotval. Teht, valban, az A automata ekvivalens az A ' automatval. A ttelhez azt fogjuk mg igazolni, hogy A ' tekinthet Moore-automatnak. Legyen g:Q ' V tetszleges olyan lekpezs, melyre minden (q, a ')QT esetn g((q, a '))=f(q, a). ( g(q) rtke qQ mellett teht lnyegtelen azon tlmenen, hogy egy rgztett V- beli elemnek kell lennie.) Ekkor tetszleges qQ, aT prra f '(q, a)=f(q, a), ahol (q, a)=d '(q, a). Mindemellett ha (q, a ')QT, gy minden aT- re f '((q, a '), a)=f(d(q, a '), a), ahol (d(q, a '), a)=d '((q, a '), a). Teht g:QV specilis megvlasztsval kaptuk, hogy minden qQ ', aT prra f '(q, a)=g(d '(q, a)). A ' gy valban Mooreautomata. (rdekessgknt megjegyezzk, hogy g(q) rtkre qQ esetn annyit kellett csak kiktni, hogy egy tetszlegesen rgztett V- beli elem legyen.) Vgl, ha A vges, akkor Q, T, V rendre vges halmazok. Ekkor viszont Q '=QQT is vges, ami ( T s V vgessge mellett) azt jelenti, hogy A ' vges. Ezzel a ttelt teljesen bebizonytottuk. 6. Megjegyzs. Gill ttele lehetv teszi, hogy bizonyos krdsekben csupn Moore-automatkra szortkozzunk, hiszen a ttel azt fejezi ki, hogy mr Moore-automatkkal elllthatk mindazok a lekpezsek, amelyek elllthatk az ltalnosabb Mealy-automatkkal. Msrszt azt is meg kell jegyeznnk, hogy a Moore-automatk osztlya szmos fontos konstrukcira nzve nem zrt (llapothomomorf kp kpzse, reduklt automata meghatrozsa, stb.). Emiatt mgsem 71

A vges automatk elmletnek alapjai szortkozhatunk minden vizsglatnl csak a Moore-automatk osztlyra. Vgl megjegyezzk azt is, hogy hasonl konstrukcival igazolhat Gill ttele inicilis automatkra is.

4.7. Automatk analzise s szintzise


Az automatk s az automata lekpezsek kapcsolatt illeten kt ellenttes krds fogalmazhat meg: I. Ha adva van egy inicilis automata, meghatrozand az ltata induklt lekpezs (analzis); II. Ha adva van egy inicilis automata lekpezs, meghatrozand legalbb egy olyan inicilis automata, amely ezt a lekpezst induklja (szintzis). A szintzis feladata nem egyrtelm ugyan, de egyrtelmv tehet a minimalizls feladatval. Az analzis s szintzis feladata csak akkor fogalmazhat meg egzakt mdon, ha megllapodunk abban, hogy mit rtnk automata s automata lekpezs megadsn. Vges automatt pldul tblzattal adunk meg. Vges automata lekpezsek megadsa ltalban problmt jelent a vgtelen rtelmezsi tartomny miatt. Bizonyos esetekben viszont kznsges mdon is lehetsges. gy pldul T={a}, V={b, c} mellett a , an bcn-1, n 1 kifejezsekkel nyilvn egy automata lekpezst adtunk meg. Az analzis s szintzis problma ebben a megfogalmazsban tl ltalnos. Ezrt ezt a kt feladatot csak vges automatkra fogalmazzuk meg pontosabban. Ezzel kapcsolatban egy tovbbi problma is fellp: 0. Meg kell adnunk a vges automatk ltal induklhat automata lekpezseknek az automatktl fggetlen lerst. Ms szval, keresnnk kell olyan rsmdot, amelyben el tudjuk dnteni, hogy valamely, ebben az rsmdban megadott automata lekpezs induklhat-e vges automatval vagy sem. Ezek utn vges automatkra az analzis s szintzis problmja gy fogalmazhat meg: I'. Brmely adott vges automata esetn meg kell tudnunk adni a szban forg rsmdban azt a lekpezst, amelyet az automata indukl; II'. Ha ebben az rsmdban meg van adva egy vges automata ltal induklhat lekpezs, akkor meg kell tudnunk adni legalbb egy olyan automatt, mely ezt a lekpezst induklja s llapothalmaza vges. Egy olyan lekpezs megadsi mdszer, mely eleget tesz a 0.,I.',II.' feltteleknek, elszr S. C. Kleene tallt 1956-ban, bevezetve a regulris kifejezs fogalmt (lsd: Regulris kifejezsek). Ennek megfelelen az automatk szintzist s analzist vges elfogad automatkra tesszk meg a regulris nyelvek fejezetben.

4.8. Egyb vges automatk


Az automataelmleti fejezet zrsaknt rviden bemutatunk nhny tovbbi vges automata fajtt.

4.8.1. Irnythat automatk


Vegynk egy rszondt, ami a Hold krl kering, ennek kvetkeztben idnknt elvesztjk vele a kapcsolatot. A mholdat egy vges llapot rendszernek tekintve, ha tudjuk milyen llapotban van, akkor megfelel input jeleket kldve neki mi irnytjuk. Amikor viszont nincs kapcsolatunk vele, nincs ellenrzsnk alatt, gy nem tudjuk hogy milyen llapotba kerl. Az ilyen esetekre knlnak megoldst az irnythat automatk. 6. Definci. Az A=(Q, V, d) automatt irnythatnak vagy szinkronizlhatnak neveztk, ha van olyan uV bemen sz s qQ llapot, hogy minden pQ llapot esetn d(p, u)=zq, ahol zQ*. Az ilyen u szt az A automata irnyt vagy szinkronizl szavnak, q- t pedig az A automata irnytott vagy szinkronizlt llapotnak nevezzk. Teht, visszatrve az rszondnkra, mindig amikor felvesszk vele kapcsolatot elszr egy irnyt szt kldnk neki, s ezutn tudjuk vele elvgeztetni a kvnt tevkenysgeket. Termszetesen az 72

A vges automatk elmletnek alapjai egyik kzenfekv megolds, ha pl. egy adott jelre (egybets irnytszra) az automata irnytott llapotba kerl, msrszt viszont, ha limitlt bcvel kommuniklunk, nem biztos hogy rdemes egy bett erre a clra fenntartani. Jan erny (ejtsd: csernyi) 1964-ben rt dolgozatban fogalmazta meg kvetkez sejtst az irnythat automatkrl. 1. Sejts. Ha egy n llapot automata irnythat, akkor a legrvidebb szinkronizl szavnak hossza nem tbb, mint (n-1)2. A erny sejts az automatk algebrai elmletnek egyik legrgebbi megoldatlan problmja.

4.8.2. Automata tbb kezdllapottal


Az resszavas tmeneteket is megengedve knnyen belthat, hogy az automata ugyanazt a nyelvosztlyt fogadja el, akkor is ha tbb kezdllapotot engednk meg. A kvetkez mdszerrel egyszeren konstrulhatunk egy kezdllapottal rendelkez resszavas tmenetes vges automatt, amely ugyanazt a nyelvet fogadja el, mint az eredeti tbb kezdllapottal rendelkez automatnk. Legyen (Q, I, T, d, F) adott, ahol Q az llapotok vges halmaza, IQ a kezdllapotok halmaza, T az input bc, d az tmenetfggvny, F pedig a vgllapotok halmaza. Vegynk fel egy j q0 llapotot, amely nem eleme a Q- nak. Legyen Q '=Q{q0} s legyen a d ' szrmaztatva a d- bl oly mdon, hogy a d tmenetein kvl legyen benne q0- bl tmenet az ressz hatsra minden qI llapotba. Ekkor a (Q ', q0, T, d ', F) automata megfelel az lltsunknak: pontosan ugyanazt a nyelvet fogadja el, mint az eredeti s pontosan egy kezdllapottal rendelkezik.

4.8.3. tltszbets felismer automata


A felismer automatnak az tltszbets vltozatt, melynek elfogadereje jval tlmutat a korbban ismertetett felismer automatn 2010-ben Friedrich Otto s Nagy Benedek vezettk be. A hagyomnyos automatnak ebben a kiterjesztsben minden llapotra megadhatunk a T bemen bcnek egy olyan rszhalmazt, amit az automata az adott llapotban nem lt. Az inputszalagon gy az automata az els nem tltsz bett olvassa (trli), ami gy nem biztos, hogy a legels bet. Az olvasott betnek megfelel tmenet utni llapotban ms betk lehetnek tltszak, gy lehetsg van az elz llapotban nem ltott - akr a trlt bett megelz - betk elolvassra is. Az automata mindig az adott llapotban ltsz legels bett tudja olvasni, ily mdon nem felttlenl a hagyomnyos balrl jobbra sorrendben feldolgozva az inputot. 7. Definci. tltszbets (nemdeterminisztikus) felismer automatnak nevezzk az A=(Q, I, T, $, t, d, F) rendezett hetest, ahol Q az llapotok vges halmaza, IQ a kezdllapotok halmaza, T az inputbc, $T a szalagvge jel, t:Q 2T tltszsgi fggvny, d:QT2Q az llapottmenetfggvny, FQ pedig a vgllapotok halmaza. Minden qQ llapotra a t(q)- ban szerepl betk tltszak, az automata ebben az llapotban ezeket a betket nem ltja. Az automata mkdse a kvetkez: elszr nemdeterminisztikusan vlasztunk egy qI llapotot. A kezdkonfigurci: (q0, w$). Legyen w=a1a2an ahol n 1, s a1, a2, , anT. Ekkor megkeressk az els olyan bett balrl amely nem tltsz az adott llapotban, legyen w=uav olyan, hogy at(q0), u(t(q0))*. Ekkor a d(q0, a)- bl nemdeterminisztikusan vlasztunk egy q ' llapotot s a kvetkez konfigurci (q ', uv$) lesz. Ha d(q0, a)=, akkor az automata megll anlkl hogy elfogadna. Ha w(t(q0))*, akkor az automata a $ szimblumot ltja s megll. Ha a gp a $ jelet ltja, s az aktulis llapot vgllapot, akkor elfogadja az inputot.

4.15. plda - tltszbets elfogad automata


Az {a, b, c} bc felett azokat a szavakat tartalmaz nyelv elfogadsa, amelyekben az a- k, a b- k s a c- k szma megegyezik pl. a kvetkez tltszbets felismer automatval megy: ({q0, q1, q2, q3}, {q0}, {a, b, c}, $, t, d, {q3}), ahol t(q0)={b, c}, t(q1)={a, c}, t(q2)={a, b}, t(q3)= s d(q0, a)={q1}, d(q1, b)={q2}, d(q2, c)={q0, q3}, minden ms esetben a d rtke az res halmaz. 73

A vges automatk elmletnek alapjai A jegyzetben a ksbbiekben nemvges (de vgesen definilhat, illetve lerhat) automatkrl is lesz sz.

4.9. Irodalmi megjegyzsek


A determinisztikus vges automatk elmlete egymstl fggetlenl a [Huffman 1954], [Mealy 1955] s [Moore 1956] mvekben kerlt megalapozsra. Az elfogadautomatkkal kapcsolatos alapmunka [Rabin, Scott 1959], itt vezettk be a nemdeterminisztikus vges automatkat s bizonytottk ekvivalencijukat a determinisztikus elfogad automatkkal. Az automatk elmletvel kapcsolatos rszletes jegyzet magyarul a 3 ktetes [Pek 1988,1989,1990]. Az automataelmlettel kapcsolatos tovbbi rszletes jegyzet [Babcsnyi 2007]. Az automatk elmletnek egy jelenleg is aktv kutatsi irnya az automatahlzatok vizsglata, lsd pl. [Dmsi, Nehaniv 2005]. Az tltszbets vges automatkrl s ezek kiterjesztseirl, pl. tltszbets veremautomatrl stb., s ezek tulajdonsgairl rszletesen olvashatunk a [Nagy, Otto 2010a, 2010b, 2010c, 2011a, 2011b] cikkekben.

74

5. fejezet - Regulris nyelvek


A regulris nyelvek alkotjk a Chomsky-fle hierarchia legkisebb osztlyt. Ezzel a nyelvosztllyal kapcsolatosan szmos elmleti eredmny ismert, s ezek a nyelvek a gyakorlatban is szmos helyen alkalmazhatak. Emlkeztetl, egy nyelvtanrl akkor mondjuk, hogy regulris, ha minden egyes szablya A uB vagy Au alak (ahol A, BN, uT*). Elsknt azt a brkiben felmerl krdst tisztzzuk, hogy mi a vges s a regulris nyelvek viszonya. 19. Ttel. Minden vges nyelv regulris. Bizonyts. Legyen L={w1, , wn} vges nyelv (megadhatjuk az elemeinek felsorolsval) valamilyen T bc felett, ekkor a G=({S}, T, S, {S wi | wiL}) nyelvtan pont L- et generlja. Msrszt G minden szablyra igaz, hogy a jobboldalon csak terminlisok szerepel(het)nek, gy G regulris. A kvetkez egyszer plda azt mutatja, hogy vannak vgtelen regulris nyelvek is:

5.1. plda - Vgtelen regulris nyelv


Legyen G=({S}, {a}, S, {S aaS, Saa}). Ekkor a generlt nyelv L={a2n | n 1}. 2. Kvetkezmny. A vges nyelvek halmaza valdi rsze a regulris nyelvek halmaznak. A regulris nyelvtanok esetn levezetseket nagyon egyszer, cscscmkzett fagrfokkal tudjuk reprezentlni: A kiindul gykrcscs cmkje az S mondatszimblum. Egy A nemterminlis cmkj cscsbl, ha arra mr alkalmaztunk egy A a1akB megfelel levezetsi szablyt ( k 0 a szablyban szerepl terminlisok szma, k=0 esetben A B a szably alakja), k+1 l indul, s a gyerekcscsok cmkje balrl jobbra haladva a1, , ak, valamint B. Ha a levlelemek kzt van nemterminlis cmkj, akkor a fa egy mg be nem fejezett levezetst brzol, ilyenkor pontosan egy nemterminlis cmkj levlcscs van. Ha nincs nemterminlis cmkj levl, akkor az brzolt levezets befejezett (terminl). A terminlis cmkj cscsok levlelemei minden levezetsi fnak. A mondatformt, illetve a levezetett szt megkapjuk, ha a levelek cmkit balrl jobbra haladva elolvassuk.

5.1. Normlformk a regulris nyelvtanokhoz


A Chomsky-fle nyelvosztlyok defincijban megengedtk, hogy egy lpsben brmennyi terminlis bekerlhet a mondatformba, vagyis a szablyok jobb oldalnak hosszra nem adtunk korltot. Most megmutatjuk, hogy minden regulris nyelv generlhat specilisabb formj nyelvtanokkal is. 8. Definci. Egy regulris nyelvtanrl azt mondjuk, hogy gyenge normlformban van, ha minden szablyra teljesl az albbi alakok egyike: AaB, AB, A a, A (ahol A, BN, aT). 20. Ttel. Minden regulris nyelv generlhat gyenge normlformj regulris nyelvtannal. Bizonyts.. Legyen adva G=(N, T, S, H) regulris nyelvtan. Ez alapjn fogjuk elszteni a G '=(N ', T, S, H ') nyelvtant, hogy a generlt nyelv ne vltozzon meg, de H ' csak olyan alak szablyokat tartalmazzon, amikben maximum egy terminlis szerepel. Az eredeti definciban megengedett, hogy egynl tbb terminlis szerepeljen egy szably jobboldaln, ezeket kell helyettestennk a normlformnak eleget tev szablyok sorozataival. Vegyk sorra teht a H szablyait: Ha az aktulis szablyra teljesl az AaB, AB, A a, A alakok egyike, akkor t vltoztats nlkl msoljuk t H- bl, H '- be. Ha az aktulis szablyra nem teljesl a fenti alakok egyike sem, akkor a kvetkez kt eset lehetsges: 75

Regulris nyelvek - a szably alakja A a1ak ( k>1, a1, , akT) . Ekkor vegyk fel az N ' halmazba, az eddig mg nem szerepl X1, , Xk-1 nemterminlisokat, s az aktulis szably helyett a H '- be vegyk fel a A a1X1, X1 a2X2, , Xk-2 ak-1Xk-1, Xk-1 ak szablyokat. - a szably alakja A a1akB ( k>1, a1, , akT) . Ekkor vegyk fel az N ' halmazba, az eddig mg nem szerepl X1, , Xk-1 nemterminlisokat, s az aktulis szably helyett a H '- be vegyk fel a A a1X1, X1 a2X2, , Xk-1 akB szablyokat. Majd tekintsk ugyanilyen eljrs sorn a kvtekez szablyt H- bl. Az eljrsunk vgn G ' gyenge normlformj regulris nyelvtan lesz, tovbb benne minden jonnan bevezetett nemterminlis pontosan kt szablyban szerepel, egyszer a jobb oldalon, egyszer a baloldalon. Ha egy olyan szablyt alkalmazunk, aminek a jobb oldaln j ( N- ben nem szerepl) nemterminlis van, akkor a levezets csak gy folytatdhat, ha azt a szablyt alkalmazzuk, ahol ez a nemterminlis van a bal oldalon. Ily mdon vgig kell alkalmaznunk az eredetileg alkalmazott szablyt helyettest lnc szablyait. Ennek alapjn indukcival belthat, hogy a G s a G ' ltal generlt nyelv megegyezik.

A fenti brn lthat, hogy a normlformra hozs tekinthet a levezetsi fk olyan transzformcijnak, aminek eremnyeknt binris (minden cscsban maximum kett gaz) fa ll el; mikzben a levlelemek szma s sorrendje nem vltozik. Az elz normlforma tovbb alakthat. Az A alak szablyok kikszblhetek az resszlemmnl bizonytott mdon (ressz-lemma). gy elrhet, hogy vagy ( - mentes nyelv esetn) egyltaln nem fordul el olyan szably, aminek jobboldala az ressz, vagy (ha a nyelvben szerepel az ressz, akkor) csak az S szablyban fordul el, mikzben S nem szerepel egyik szably jobb oldaln sem (ahol S a mondatszimblum). Tekintsk most a nyelv resszmentes rszt, ennek megfelelen nem hasznlunk A alak szablyt egyltaln. Megmutatjuk, hogy az A B alak, gynevezett lncszablyoktl (vagy nemterminlis tnevezsektl) is meg tudunk szabadulni. 9. Definci. Egy regulris nyelvtanrl azt mondjuk, hogy ers normlformban van, ha minden szablyra teljesl az albbi alakok egyike: AaB, Aa (ahol A, BN, aT). 21. Ttel. Minden regulris nyelvhez van vele ekvivalens ers normlformj regulris nyelvtan. Bizonyts. Az elzek alapjn feltehetjk, hogy G=(N, T, S, H) nyelvtanunkban csak AaB, Aa s AB alak szablyok vannak ( A, BN, aT) . Definiljuk minden AN vltozhoz a kvetkez halmazokat: - U1(A)={A}. - Ui+1(A)=Ui(A){BN | CUi(A) | C BH}, ha i>1. Ekkor N vges volta miatt ltezik olyan minimlis k index, hogy Uk(A)=Uk+j(A), ha j=1, 2, . Jelljk minden AN nemterminlis jelhez tartoz Uk(A)- t U(A)- val. Ekkor U(A) ppen azokat a 76

Regulris nyelvek nemterminlisokat tartalmazza, amelyek levezethetek az A-bl csupn lncszablyokat felhasznlva, vagyis tetszleges A, BN vltozkra A*B pontosan akkor, ha BU(A). Ezek utn definiljuk a H ' szablyhalmazt a kvetkezkppen: H '={Ar | ha van olyan BN hogy BrH , rN, BU(A)}. Ekkor G '=(N, T, S, H ') nyelvtan ers normlformj, s ekvivalens az eredetivel. Itt jegyezzk meg, hogy a szakirodalomban elfordul, hogy a regulris nyelvtanokat eleve csak az imnt ismertetett normlformj nyelvtanokkal definiljk; az ltalunk regulris nyelvtanknt definilt nyelvtanokat pedig jobblineris nyelvtannak hvjk. Ahogy lttuk ezek a nyelvtantpusok ekvivalensek egymssal, gy mi tovbbra sem fogunk kztk klnbsget tenni. A ballineris nyelvtanok s a jobblineris nyelvtanok ekvivalencijt a lineris nyelvtanoknl trgyaljuk (lsd Bal- s jobb-lineris nyelvtanok ekvivalencija [129]).

5.2. Regulris kifejezsek


Legyen T={a1, , an} tetszleges nem res s vges halmaz. Ha a T bct kibvtjk a benne nem szerepl , , +, , *, (, ) jelekkel: V=T{, , +, , *, (, )}, akkor a V bc felett rtelmezhetjk a regulris kifejezsek halmazt a kvetkez induktv defincival: Elemi kifejezs: - regulris kifejezs, - regulris kifejezs, - minden aT regulris kifejezs. Indukcis lpsek: - ha p s r regulris kifejezsek, akkor (p+r) is az, - ha p s r regulris kifejezsek, akkor (pr) is az, - ha r regulris kifejezs, akkor r* is az. Tovbb, minden regulris kifejezs elll az elemi kifejezsekbl az indukcis lpsek vges sokszori alkalmazsval. A konkatenci mveleti jelt sokszor, ahogy eddig is, elhagyjuk. A regulris kifejezsek segtsgvel nyelveket rhatunk le: az elemi kifejezsekkel elemi nyelveket: - (res halmaz) jelli az {} res nyelvet, - jelli a {} kezd nyelvet, - a jelli az {a} egyszavas alapnyelvet. Az indukcis lpssel pedig: - (p+r) jelli az LpLr nyelvet, - (pr) jelli az LpLr nyelvet, - r* jelli az Lr* nyelvet, 77

Regulris nyelvek ahol Lp s Lr a p s az r regulris kifejezsek ltal jellt nyelvek. Kt regulris kifejezst ekvivalensnek neveznk, ha ugyanazt a nyelvet rjk le. A T feletti nyelvek kzt, teht, a kvetkez mveleteket (regulris mveleteknek) hvjuk: (i) sszeds: nem ms mint a kt nyelv halmazelmleti unija; (ii) szorzs: a kt nyelv konkatencija; (iii) iterci: L iterltjn vagy ms nven lezrtjn rtjk s L*- al jelljk az L*={p1p2pk|p1, , pkL, k 1}{} nyelvet. Vagy ahogy mr korbban is definiltuk, Li=LLi-1. Az LT = {L|LT*} halmazt a rajta rtelmezett ezen hrom mvelettel T feletti nyelvalgebrnak hvjuk. A nyelvalgebrban rvnyesek az absztrakt algebrbl ismert, vagy azokhoz hasonl mveleti tulajdonsgok: L1L2=L2L1 (sszeads kommutatvitsa); (L1L2)L3=L1(L2L3) (sszeads asszociativitsa); L=L (additv egysgelem ltezse); (L1L2)L3=L1(L2L3) (szorzs asszociativitsa); L{}={}L=L (multiplikatv egysgelem ltezse); (L1L2)L3=L1L3L2L3 (baloldali disztributivits); L1(L2L3)=L1L2L1L3 (jobboldali diszributivits); {}*={} ; *={}; , ahol L0={},

LL*=L*L ; L*={}LL* ; (L1L2)*=(L1*L2*)* (uni kivltsa). Kt kivtellel minden felsorolt azonossg egyszer szmtssal addik a defincik alapjn. Ezrt csak ezt a kt sszefggst fogjuk bizonytani. Mutassuk meg elszr, hogy . Ehhez azt kell beltnunk, hogy a baloldali

halmaznak pontosan azok az elemei mint a jobboldalinak. A baloldali halmaznak s a jobboldali halmaznak is eleme az ressz, gy csak az ressztl klnbz elemek vizsglatra kell szortkoznunk. A baloldal az res szn kvl tartalmazza azokat a p szavakat, melyek elllnak valamely n 1- re p=p1pn alakban, ahol p1, , pnL. Ha minden tnyez az ressz, akkor p=, s ezzel az esettel mr nem kell tovbb foglalkoznunk. Teht feltehet, hogy van olyan 1 i n, hogy pi, azaz p. Legyen valamely u 0 nemnegatv egszre n=uk+v, ahol 78

Regulris nyelvek 0 v<k. Ekkor p=q1q2, ahol vagy q1= (ekkor u=0) vagy pedig q1=p1puk, ahol p1, , pukL (ha u0), s ugyanekkor vagy q2= (ekkor v=0), vagy q2=puk+1puk+v, ahol puk+1, , puk+vL (ha v0). Mindenkpp fennll, hogy q1(Lk)*, illetve q2Lv, 0 v<k, azaz p=q1q2(Lk)*Lv. Teht p eleme mindkt oldalnak, amivel a kt oldal egyenlsgt kimutattuk.

Igazoljuk most az (L1L2)*=(L1*L2*)* egyenlsget. Itt is igaz, hogy a baloldali halmaznak s a jobboldali halmaznak is eleme az ressz, gy csak az ressztl klnbz elemek vizsglatra kell szortkoznunk. Hasonl a helyzet mint az elz esetben. Mindkt oldal az resszn kvl pontosan azokat a p szavakat tartalmazza, melyek elllnak valamely n 1- re p=p1pn alakban, ahol p1, , pnL1L2. A kt halmaz teht egyenl. A regulris kifejezsekben a fent emltett nyelvazonossgok miatt (pl. asszociativits) zrjeleket hagyhatunk el a lert nyelv egyrtelmsgt megtartva. Tovbbi zrjeleket hagyhatunk el, ha megllapodunk abban a szoksos precedenciban, hogy a * mvelet (ahogy a hatvnyozs szokott lenni) a legersebb, majd kvetkezik a szorzs (konkatenci) s az sszeads (uni) a leggyengbb. A regulris kifejezsekkel a regulris nyelvek egy alternatv defincijt adhatjuk meg. Regulris nyelvnek hvjuk az res nyelvet, tovbb mindazon nyelveket, amelyek elemi nyelvekbl a regulris mveletek vges szm alkalmazsval elllthatk. (gy pldul regulris nyelvek: , {}, {a1}, T*, ({a1}{a2})*{a3}.) Ksbb igazolni fogjuk, hogy a regulris nyelv fogalmnak korbbi nyelvtannal trtn defincija ezzel a fogalommal ekvivalens. A regulris kifejezsek teht megmutatjk, hogy a regulris nyelv hogyan ll el az elemi nyelvek s az alapmveletek segtsgvel. Egy regulris kifejezs egyrtelmen definil egy nyelvet, fordtva viszont egy regulris nyelvet ler regulris kifejezs ltalban nem egyrtelmen meghatrozott. (Pldul L{}=*L=({}+{})L=.) Ezrt kln rdekes, hogy hogyan lehet eldnteni az FT nyelvalgebrban, hogy kt klnbz regulris kifejezs ugyanazt a regulris nyelvet lltja-e el. Ksbb ltni fogjuk, hogy ez a krds eldnthet. St, ha pontosan megmondjuk, hogy mit is rtnk egy regulris nyelvet megad minimlis regulris kifejezsen (pldul lehet ez alatt rteni (a karakterszmra) a legrvidebbet), akkor annak meghatrozsra is megadhat algoritmus. Itt jegyezzk meg, hogy az uni s konkatenci mveletek tartjk a vgessget, vagyis ha * mvelet nem szerepel egy regulris kifejezsben, akkor az ltala lert nyelv vges. Ily mdon ppen a vges nyelvek egy jellemzst adhatjuk meg, hiszen minden vges nyelv megadhat a szavai kztt + jelekkel, mint regulris kifejezssel megadott nyelv. A kvetkezkben nha nem tesznk klnbsget egy regulris kifejezs s az ltala lert nyelv kztt, vagyis magra a nyelvre is hivatkozunk a regulris kifejezssel. Amennyiben nem okoz flrertst, az uni jelet (), illetve az sszeads jelet (+), is hasznlhatjuk ugyanabban a szerepben. A kvetkez alfejezetben ugyancsak specilis regulris kifejezseket fogunk megvizsglni.

5.2.1. Regulris kifejezsek ekvivalencija


A regulris kifejezsek kztt vannak ekvivalensek, vagyis ugyanazt a halmazt (regulris nyelvet) ltalban tbb, egymstl klnbz regulris kifejezs is megadja. Ez alapjn az ekvivalencia relci alapjn az ekvivalens formulkat felhasznlhatjuk formulk talaktsra. Nhny ilyen ekvivalencia pldul: (pq) kifejezs jelentse ugyanaz, mint (qp) kifejezs; (pq)r kifejezs jelentse ugyanaz, mint p(qr) kifejezs; (pq)(rt) kifejezs ugyanazt jelenti, mint a (prptqrqt); rr* pedig ekvivalens r*r kifejezssel. Az uni mvelet kommutativitsa s asszociativitsa miatt zrjeleket hagyhatunk el, s tekinthetjk az uni mveletet akr kettnl tbb argumentumnak is. 79

Regulris nyelvek

5.2. plda - Nyelv megadsa regulris kifejezssel 1. feladat


Adjuk meg regulris kifejezssel azt a nyelvet a {0,1} bc felett, amely azon szavakbl ll, amelyek tartalmazzk rszszknt a 010 szt! Megolds: L=(0+1)*010(0+1)*

5.3. plda - Nyelv megadsa regulris kifejezssel 2. feladat


Adjuk meg regulris kifejezssel azt a nyelvet a {0,1} bc felett, amely azon szavakbl ll, amelyek tartalmazzk rszszknt a 000 vagy az 111 szt! Megolds: L=(0+1)*(000+111)(0+1)*

5.4. plda - Nyelv megadsa regulris kifejezssel 3. feladat


Adjuk meg regulris kifejezssel azt a nyelvet a {0,1} bc felett, amely azon 1-esre vgzd szavakbl ll, amelyek nem tartalmazzk rszszknt a 00 szt! Megolds: L=(1+01)*

5.5. plda - Nyelv megadsa regulris kifejezssel 4. feladat


Adjuk meg regulris kifejezssel azt a nyelvet a {0,1} bc felett, amely azon szavakbl ll, melynek 3. betje 0! Megolds: L=(00+01+10+11)0(0+1)*

5.6. plda - Nyelv megadsa regulris kifejezssel 5. feladat


Adjuk meg regulris kifejezssel azt a nyelvet a {0,1} bc felett, amely azon szavakbl ll, melyek tartalmaznak legalbb hrom 1-est! Megolds: L=(0+1)*1(0+1)*1(0+1)*1(0+1)*

5.7. plda - Nyelv megadsa regulris kifejezssel 6. feladat


Adjuk meg regulris kifejezssel azt a nyelvet a {0,1} bc felett, amely azon szavakbl ll, melyek 5-tel oszthat 1-est tartalmaznak! Megolds: L=(0*10*10*10*10*10*)*

80

Regulris nyelvek

5.2.2. A kifejezsfa
A kifejezseket, illetve a formulkat, amik atomokbl (tovbb nem bonthat egysgek), illetve mveletekbl llnak szoks fa formjban is brzolni. A fa levlelemeiben az atomok (itt most a terminlisok s az ressz) a tbbi csompontban pedig a mveletek szerepelnek. Minden mveletnek megfelel cscsbl pontosan annyi darab l indul ki a tovbbi rszkifejezsekhez, ahny argumentum az opertor. Pldaknt az egsz szmokat ler regulris kifejezs fa alakban:

5.2.3. Uni-normlforma regulris kifejezsekhez


A normlformk fontos szerepet jtszanak a szmtstudomny sok terletn, pl. a logikban a konjunktv-, diszjunktv- normlformkrl, illetve prenex alak formulkrl beszlhetnk. Ezekben a formulkban a mveletek sorrendjre van valamilyen megszortsunk. Lnyeges viszont az, hogy minden formulhoz ltezik vele ekvivalens amely normlformban van. Normlformt rtelmezhetnk a regulris kifejezsekre is. Egy regulris kifejezsrl akkor mondjuk, hogy uni-normlformban van, ha a kifejezsfjban uni mvelet csak a fa gykerben szerepelhet (megengedve brmekkora arits uni mveletet). Ekkor igaz a kvetkez eredmny: A kvetkez ekvivalencik vges sokszori alkalmazsval brmely (regulris) kifejezs normlformra hozhat: (1) (pr)* (p*r*)*, (2) p(qr) pqpr, (3) (pq)r prqr, (4) (pq)(rt) prptqrqt. Teht egy uni-normlformj kifejezs vges sok unimentes kifejezs unija (a normlformt 2004ben vezette be Nagy Benedek). Lssuk vgl, hogyan nz ki a tizes szmrendszerben felrt egsz szmokat ler regulris kifejezs normlformja. Mivel a kifejezs meglehetsen hossz, bevezetnk egy rvidtst: S(0*1*2*3*4*5*6*7*8*9*)*. gy a harminc tag uni (hogy a + eljelet ne keverjk a regulris uni mvelettel, ez utbbit itt val jelljk): 0S1S2S3S4S5S6S7S8S9S +0S+1S+2S+3S+4S+5S+6S+7S+8S+9S 81

Regulris nyelvek -0S-1S-2S-3S-4S-5S-6S-7S-8S-9S

5.8. plda - Regulris kifejezs uni-normlformra alaktsa - 1. feladat


(a+b)(c+d+e) ac+ad+ae+bc+bd+be

5.9. plda - Regulris kifejezs uni-normlformra alaktsa - 2. feladat


((ab+c*)d*)*) (abd*+c*d*)* ((abd*)*(c*d*)*)* ez mr unimentes, de egyszersthet: ((ab)*c*d*)*

5.10. plda - Regulris kifejezs uni-normlformra alaktsa - 3. feladat


(a*+b)*(c+d)* ((a*)*b*)*(c*d*)*) (a*b*)*(c*d*)*

5.11. plda - Regulris kifejezs uni-normlformra alaktsa - 4. feladat


(a+bab)(bb+ababa)* (a+bab)((bb)*(ababa)*)* a((bb)*(ababa)*)*+bab((bb)*(ababa)*)*

5.12. plda - Regulris kifejezs uni-normlformra alaktsa - 5. feladat


(p+m+)(0+1)(0+1)* (p0+m0+0+p1+m1+1)(0+1)* * * * * * * * * * p0(0 1 ) +m0(0 1 ) +0(0 1 ) +p1(0*1*)*+m1(0*1*)*+1(0*1*)* (p0+m0+0+p1+m1+1)(0*1*)*

5.3. Egyszer szintaxis grfok


A szintaxis grfokat pl. programnyelvek egysgeinek szintaktikai lersra hasznlhatjuk. Ez a megadsi md a Pascal nyelvvel terjedt el igazn, a grafikus kp miatt iskolsok s felnttek is knnyedn sajttottk el segtsgvel a programozs alapjait. Tbb elnevezse is ismert, pl. a vasthlzat diagram nv a diagramok alakja alapjn tall. A terminlisokat krkkel jelljk, berva ket a krbe.

Hasznlhat mveletek: konkatenci (sszefzs: tbb szvegelem egyms mell/utn rsa), alternatva (vlaszts: klnbz lehetsgek kzl egy kivlasztsa), opci (a szvegelem vagy megjelenik vagy nem), iterci (a szvegelem akrhnyszor megjelenhet (ltalban a nullaszori megjelenst is belertjk)).

5.13. plda - Azonostk nyelvnek megadsa szintaxis grffal

82

Regulris nyelvek Egy szintaxis grfban mindig van pont egy indull s egy rkezl, ahonnan indulva s ahova rkezve kell egy utat bejrnunk a grfban. Ha az t sorn sszeolvassuk a terminlisokat, akkor egy szt kapunk. Az sszes olyan sz, amelyet megkaphatunk az indulltl az rkezlig valamely ton vgighaladva adja a grf ltal lert nyelvet. A rvidebb s ttekinthetbb lers kedvvrt bevezethetjk a nemterminlisokat, amik egyszer szintaxisgrf rszeket rvidtenek. Azt is megengedhetjk, hogy ezekben a nemterminlis rvidtsekben szerepljenek mr korbban definilt nemterminlsiok.

5.14. plda - Tizes szmrendszerbeli egsz szmok nyelvnek megadsa szintaxis grffal

Az elz plda alapjn a -000 sz is egsz szm (eleme a nyelvnek), hiszen egy szmtgpes programnyelv ltalban ezt is ugyangy rti, mint a 0 szt. Az iskolban tanultaknak megfelelen viszont egy ember szmra a -000 szm hibsnak tnik.

5.15. plda - Egsz szmok kznapi rtelemben vett lersa - Gyakorl feladat
Adjuk meg azt a szintaxis grfot, amely az emberek szmra htkznapi rtelemben vett egsz szmok lerst adja! Az itt ismertetett szintaxis grfokkal pontosan a regulris nyelveket tudjuk lerni, ha a nemterminlisokat nem hasznljuk. A kifejez er ugyanennyi, ha a nemterminlisok defincijban csak a mr korbban ugyangy megadott nemterminlisokat hasznlhatjuk fel. Ekkor ugyanis a szerepl nemterminlisok helyettesthetek a defincijukban megadott lerssal, ami ha tartalmaz nem terminlist, akkor az ott szerepl nemterminlisok is helyettesthetek stb., amg vgl visszakaphatjuk az eredeti nemterminlis mentes defincit.

5.4. Vges elfogad automatk (Rabin-Scott automatk)


E fejezetben megmutatjuk, hogy a 3-as tpus, azaz regulris nyelvtanokkal generlhat nyelvek osztlya megegyezik a vges automatk ltal felismerhet nyelvek osztlyval. Ms szval, a 3as tpus, azaz regulris nyelvtan, mint generatv eszkz, azonos rtk a vges automatval, mint felismer eszkzzel. Legyen FA=(Q, T, q0, d, F) vges felismer automata (FA, az angol finite automaton alapjn), ahol Q az llapotok vges nemres halmaza, T a bemen- (vagy szalag-) bc, q0Q a kezdllapot, d az llapot tmenet fggvny, FQ pedig a vgllapotok vagy elfogadllapotok halmaza. A d lekpezs alakja alapjn beszlhetnk - nemdeterminisztikus ressz tmenetet is megenged automatrl: d:Q(T{}) 2Q, 83

Regulris nyelvek - nemdeterminisztikus ressz tmenet nlkli automatrl: d:QT 2Q, - (parcilis) determinisztikus automatrl: d:QT Q (parcilis fggvny), - teljesen definilt determinisztikus automatrl: d:QT Q (teljesen definilt fggvny). Amint azt a 4. fejezetben (Nemdeterminisztikus s determinisztikus automata s Rabin-Scott automata alfejezetekben) mr lttuk, a nemdeterminisztikus vges automata olyan A=(Q, T, q0, d) rendszer, amely hasonlan mkdik, mint az inicilis kimen jel nlkli (determinisztikus) automata, azzal a klnbsggel, hogy a d tmeneti fggvny a QT szorzathalmazt a Q llapothalmaz rszhalmazainak halmazba, vagyis a 2Q hatvnyhalmazba kpezi le: d:QT 2Q. Minden qQ, aT prra d(q, a)Q az tmeneti lehetsgek halmaza. Felttelezzk viszont, hogy az A egy qQ llapotbl az aT jel hatsra mindig egy llapotba megy t (kivve ha d(q, a)=, amikor az tmenet nincs rtelmezve), az tmenet azonban A ltal nincs egyrtelmen meghatrozva. Tovbb, az ressz hatsra is trtnhet tmenet, ilyenkor a szalag olvassa nlkl is llapotot vlthat az automata. Teht az automata a diszkrt idskla mentn minden pillanatban egy jl meghatrozott llapotban van, egy lps sorn olvas (vagy - tmenet esetn nem olvas) az input szalagrl egy bett, s ennek hatsra llapotot vlt (vagy nem vlt).

5.16. plda - Egy nemdeterminisztikus vges automata


A a b p { q, p } {r} q { q, r } r {p} {r}

A fenti tblzattal definilt A nemdeterminisztikus vges automata pldul az a bemen jel hatsra a p llapotbl tmehet q- be, de maradhat a p llapotban is. A q llapotban az A az a bemen jelet nem kpes feldolgozni. Az automata egy futsnak nevezzk azt az llapotsorozatot, amin egy adott input elolvassa kzben vgigmehet. ressz tmenetet is megenged automata esetn az automatt megad tblzatban a terminlisok mellett az ressz is egy kln sorban szerepel, ahol a d(q, ) tmenetek szerepelnek megfelel q llapotok esetn. Grfokkal hasonlan adhatjuk meg ezeket az automatkat is azzal a klnbsggel, hogy az llapottmeneteket jelz nyilakon a terminlisok mellett a is szerepelhet. A d fggvny rtelmezst kiterjesztjk, gy definiljuk a d* kiterjesztett tmenetfggvnyt. Ehhez elszr minden llapothoz megadjuk annak - lezrtjt, vagyis azt az llapothalmazt, amit az adott llapotbl bemenjel nlkl is elrhetnk. Formlisan: l(qj)- t definiljuk rekurzvan tetszleges qj llapotra: l0(qj)={qj} ; li+1(qj)=li{qk | qkd(qm, ), valamely qmli(qj)}, ha i 0 ekkor a Q vgessge miatt lesz olyan i, hogy li(qj)=li+k(qj) minden k termszetes szmra; ekkor l(qj)=li(qj) halmazt a qj llapot - lezrtjnak nevezzk. A - lezrt fogalmt rtelmezhetjk nemcsak llapotokra, de llapot halmazokra is: l(Q ')={qk | qkl(q) valamely qQ ' esetn }. Ekkor a kiterjesztett tmenetfggvnyt a kvetkezkppen definiljuk: d*:QT* 2Q, ahol minden qQ- ra d*(q, )=l(q) s minden aT, wT* prra (Termszetesen elfordulhat, hogy d(q, wa)=.) Vegyk szre, hogy ez a kiterjeszts lnyegesen klnbzik az + automataelmleti vizsglatoknl korbban alkalmazott kiterjesztstl, hisz ott kpelemknt 2(Q )- beli elemek lptek fel, mg itt csak 2Q- beliek. 84

Regulris nyelvek Egy vges automata akkor fogad el egy wT* input szt, ha van olyan futsa amely a w elolvassa utn vgllapotba r, vagyis d*(q0, w)F. Egy automata ltal elfogadott szavak halmaza jelenti az automata ltal elfogadott nyelvet. Ez alapjn azt is mondhatjuk, hogy az L nyelv elllthat vagy felismerhet az A automatban az FQ llapot halmazzal, jelekben: L(A)=LAF, ha wLd*(q0, w)F.

5.17. plda - A pratlan a-bl s pros b-bl ll szavak nyelve


Az albbi brn olyan automatt lthatunk, mely azokat a szavakat fogadja el, melyek pratlan szm a- t s pros szm b- t tartalmaznak.

Az automata mkds kzben:

5.18. plda - Az x-re vgzd szavak nyelve


Az albbi brkon lthat egy nemdeterminisztikus automata mkdse, mely az x- re vgzd szavakat fogadja el. Most lssunk nhny pldt nemdeterminisztikus automata mkdsre. Az automata nemdeterminisztikus mkdssel olyan llapotba jut s olyan szimblumot olvas, melyekre az llapotfggvny res:

85

Regulris nyelvek

Az automata nemdeterminisztikus mkds sorn vgigolvassa az inputot, de a mkdst nem elfogad vgllapotban fejezi be:

Az automata mkdse sorn vgigolvassa az inputot s vgllapottal elfogadja azt:

86

Regulris nyelvek

5.4.1. Vges determinisztikus s nemdeterminisztikus automatk ekvivalencija


Kt automatt ekvivalensnek hvunk, ha az ltaluk elfogadott nyelvek megegyeznek. Habr az imnt bemutatott ngy automatafogalom elg klnbznek tnhet most megmutatjuk, hogy az ltaluk elfogadott nyelvek osztlya megegyezik. Egyrszt vilgos, hogy a bemutatott sorrendben egyre specilisabbak az automatk, vagyis definci szerint a nemdeterminisztikus ressz tmenet nlkli automatk, tulajdonkppen a nemdeterminisztikus ressz tmenetet is megenged automatk specilis esetei, amikben ressz tmenet nem fordul el. Tovbb a (parcilis) determinisztikus automatk a nemdeterminisztikus ressz tmenet nlkli automatk olyan specilis esetei ahol a d fggvny kphalmaza maximum egyelem halmazokat tartalmaz. A teljesen definilt determinisztikus automatk viszont olyan specilis parcilis determinisztikus automatk, amelyekben a d rtke mindig pontosan egyelem halmaz. Ezek alapjn vilgos, hogy a teljesen definilt determinisztikus automatk ltal elfogadott nyelvek osztlya rszhalmaza a parcilis determinisztikus automatk ltal elfogadott nyelvek halmaznak, amely rszhalmaza a nemdeterminisztikus ressz tmenet nlkli automatkkal elfogadott nyelvek osztlynak, az viszont rszhalmaza a nemdeterminisztikus ressz tmenetet is megenged automatk ltal elfogadott nyelvek halmaznak. Azt, hogy itt nem valdi rszhalmaz relcikrl van sz a kvetkez ttel, illetve annak bizonytsban szerepl konstrukcival ltjuk be. 22. Ttel. Minden nemdeterminisztikus ressz tmenetet is megenged vges automathoz van vele ekvivalens teljesen definilt determinisztikus automata. Bizonyts. Legyen NFA=(Q, T, q0, d, F) egy nemdeterminisztikus ressz tmenetet is megenged vges automata. Konstruljuk meg a DFA=(2Q, T, l(q0), d ', F ') vges automatt, ahol az llapotok 2Q halmaza az eredeti automata llapotainak a lehetsges rszhalmazaibl ll. A d ' llapottmenetfggvny defincija pedig ahol p2Q, vagyis pQ s aT. Az j automata vgllapotai pedig F '={p | van olyan qp, hogy qF}. Vilgos, hogy DFA teljesen definilt determinisztikus vges automata. Msrszt belthat, hogy L(DFA)=L(NFA), hiszen az eredeti NFA automata minden elfogad futshoz tartozik az j DFA automatnak egy elfogad futsa, s viszont. Az elz ttelben megkonstrult DFA tartalmazhat olyan llapotokat, amelyek a kezdllapotbl nem rhetek el. Pldul csak olyan p2Q llapotok rhetek el melyekre p=l(p) teljesl. 87

Regulris nyelvek Ez alapjn, egy determinisztikus automata megkonstrulsakor akkor jrunk el szszeren, ha az l(q0)nak megfelel llapotbl indulunk el, s csak azokat az llapotokat (vagyis Q azon rszhalmazait) vesszk fel az llapotok kz, amely elll valamilyen eddigi llapotbl valamely bemenjel hatsra.

5.19. plda - Automata determinizlsa 1. feladat


Adjunk meg az A=({ a0, a1, a2 }, { x, y }, a0, , { a1 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! x y Megolds I. Els lpsben meg kell hatrozni az j Ad automata bels llapotainak halmazt. Az A automata kezdllapothoz, valamint azon llapothalmazaihoz, melyek elrhetek a kezdllapotbl, rendeljnk j betket! Ezek az j betk alkotjk az j llapothalmazt. Jelen esetben: Az A automata kezdllapothoz s a kezdllapotbl egy lpsben elrhet llapothalmazokhoz rendeljnk j betket: Jelljk bi-vel ezeket az elemeket! b0={ a0 }, b1={ a2}, b2={ a1 }. Vegyk fel azokat az llapothalmazokat is, melyek egy lpsben elrhetek a mr meglv llapothalmazokbl s mg nem szerepeltek: b3={ a1, a2 }, b4 = . Mindezt addig kell folytatni, amg van jabb elrhet llapothalmaz. Amennyiben tbb llapot is szerepel egy llapothalmazban, - mint az megfigyelhet a b3 llapothalmaz esetn, - akkor az ezen llapotokbl elrhet llapothalmazok unijt kell venni: b5={ a0, a1, a2 }. Mivel jabb bvts nem lehetsges, kszen vagyunk az els lpssel. a0 { a2 } { a1 } a1 { a0 } { a2 } a2 { a1, a2 } -

II. Msodik lpsben meghatrozzuk az Ad automata ' tmenetfggvnyt. Ehhez a kvetkez lpsekre van szksg: 1. Ha az automata bi = llapotban van, akkor brmely bemen jel hatsra ugyanebben az llapotban marad. 2. Ha az automata egy bi llapotban van, akkor meg kell vizsglni, hogy a bi halmazban lv al1, ..., aln llapotok az adott bemen jel hatsra mely ak1, ... ,akm llapotokba mennek t. Az Ad automata a bi llapotbl az adott bemen jel hatsra az ak1, ... ,akm halmazhoz tartoz bj llapotba megy t. ' x b0 b1 b1 b3 88 b2 b0 b3 b5 b4 b4 b5 b5

Regulris nyelvek ' y b0 b2 b1 b4 b2 b1 b3 b1 b4 b4 b5 b3

III. Harmadik lpsben meg kell hatrozni az Ad automata bemen jeleinek halmazt, kezdllapott, valamint vgllapotainak halmazt. Az Ad automata bemen jeleinek halmaza megegyezik az A automata bemen jeleinek a halmazval. Az Ad automata kezdllapota az A automata kezdllapothoz rendelt bi lesz. Az Ad automata vgllapotainak a halmaza pedig tartalmazni fog minden olyan bj llapotot, melynek mint halmaznak eleme az A automata brmely vgllapota. Jelen esetben: Ad=({ b0, b1, b2, b3, b4, b5 }, { x, y }, b0, ', { b1, b2, b3, b5 }).

5.20. plda - Automata determinizlsa 2. feladat


Adjunk meg az A=({ a0, a1 }, { x, y }, a0, , { a1 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! x y Megolds: I. b0={ a0 }, b1={ a1 }, b2={ a0, a1 }, b3 = . II. ' x y b0 b1 b0 b1 b2 b3 b2 b2 b0 b3 b3 b3 a0 { a1 } { a0 } a1 { a0, a1 } -

III.Ad=({ b0, b1, b2, b3 }, { x, y }, b0, ', { b1, b2 }).

5.21. plda - Automata determinizlsa 3. feladat


Adjunk meg az A=({ a0, a1 }, { x, y, z }, a0, , { a0 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! x y z Megolds: I. b0={ a0}, b1={ a1 }, b2 = , b3={ a0, a1 }. II. ' x b0 b1 b1 b2 b2 b2 b3 b1 a0 { a1 } { a0, a1 } a1 { a0, a1 } { a0 }

89

Regulris nyelvek ' y z b0 b2 b3 b1 b3 b0 b2 b2 b2 b3 b3 b3

III.Ad=({ b0, b1, b2, b3 }, { x, y, z }, b0, ', { b0, b3 }).

5.22. plda - Automata determinizlsa 4. feladat


Adjunk meg az A=({ a0, a1 }, { x, y }, a0, , { a1 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! x y Megolds: I. b0={ a0 }, b1={ a0, a1 }. II. ' x y III.Ad=({ b0, b1 }, { x, y }, b0, ', { b1 }). b0 b0 b1 b1 b1 b1 a0 { a0, a1 } { a0, a1 } a1 { a0, a1 } -

5.23. plda - Automata determinizlsa 5. feladat


Adjunk meg az A=({ a0, a1, a2 }, { x, y }, a0, , { a0, a1 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! x y Megolds: I. b0={ a0 }, b1={ a2 }, b2={ a1, a2 }, b3={ a0, a2 }. II. ' x y b0 b1 b0 b1 b2 b0 b2 b2 b3 b3 b2 b0 a0 { a2 } { a0 } a1 { a1 } { a2 } a2 { a1, a2 } { a0 }

III.Ad=({ b0, b1, b2, b3 }, { x, y }, b0, ', { b0, b2, b3 }).

5.24. plda - Automata determinizlsa 6. feladat


Adjunk meg az A=({ a0, a1, a2 }, { x, y }, a0, , { a1 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! 90

Regulris nyelvek x y Megolds: I. b0={ a0 }, b1={ a1 }, b2 = , b3={ a1, a2 }. II. ' x y b0 b1 b2 b1 b3 b2 b2 b2 b2 b3 b3 b1 a0 { a1 } a1 { a1, a2 } a2 { a2 } {a1}

III.Ad=({ b0, b1, b2, b3 },{ x, y }, b0, ', { b1, b3 }).

5.25. plda - Automata determinizlsa 7. feladat


Adjunk meg az A=({ a0, a1, a2 }, { x, y, z }, a0, , { a1, a2 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! x y z Megolds: I. b0={ a0 }, b1={ a1, a2 }, b2 = , b3={ a0, a2 }, b4={ a0, a1 }, b5={ a0, a1, a2 }. II. ' x y z b0 b0 b1 b2 b1 b3 b0 b4 b2 b2 b2 b2 b3 b3 b1 b2 b4 b0 b5 b4 b5 b3 b5 b4 a0 { a0 } { a1, a2 } a1 { a0 } { a0, a1 } a2 { a0, a2 } -

III.Ad=({ b0, b1, b2, b3, b4, b5 },{ x, y ,z }, b0, ', { b1, b3, b4, b5 }).

5.26. plda - Automata determinizlsa 8. feladat


Adjunk meg az A=({ a0, a1, a2, a3 }, { x, y, z }, a0, , { a1, a3 }) nemdeterminisztikus, parcilisan definilt, kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens Ad determinisztikus, teljesen definilt automatt! x y z Megolds: I. b0={ a0 }, b1={ a1, a2 , a3}, b2 = . 91 a0 { a0 } { a1, a2, a3 } a1 { a0 } { a1, a2 } a2 { a2, a3 } { a1, a3 } a3 { a1, a2 } { a0 } { a1 }

Regulris nyelvek II. ' x y z b0 b0 b1 b2 b1 b1 b0 b1 b2 b2 b2 b2

III.Ad=({ b0, b1, b2 },{ x, y ,z }, b0, ', { b1 }).

5.4.2. Vges determinisztikus elfogad automatk minimalizlsa


Itt mutatjuk be az Aufenkamp-Hohn-fle Minimalizcis Algoritmus determinisztikus elfogad automatkra mkd vltozatt. Legyen adott DFA=(Q, T, q0, d, F). A valdi minimalizsis algoritmus vgrehajtsa eltt az inicilis sszefggsget kell ellenriznnk, illetve a kezdllapotbl nem elrhet llapotokat trlni: azaz a Q '={d*(q0, w)|wT*} llapothalmazzal s F '=F{d*(q0, w)|wT*} vgllapothalmazzal rendelkez DFA '=(Q ', T, q0, d ', F ') inicilisan sszefgg (kimen jel nlkli) llapot-rszautomatt minimalizljuk. A tovbbiakban legyen DFA=(Q, T, q0, d, F) inicilisan sszefgg. A CDFA osztlyozst osztlyozsok egy C1, C2, sorozatn keresztl szerkesztjk meg, melyeket a kvetkezkpp definilunk: Kezdetknt a C1 osztlyozssal bontsuk a Q llapothalmazt kt rszre: F s QF. Ezutn, ha i 1, gy a Ci+1 osztlyozs szerint p s q akkor s csak akkor esnek egy osztlyba, ha egyrszt mr Ci szerint is egy osztlyba esnek, msrszt pedig minden bemen jel hatsra egy s ugyanazon Ci szerinti osztlyba mennek t. Kpletben: ha i 1, akkor Ci+1[p]=Ci+1[q]Ci[p]=Ci[q] s aT:Ci[d(p, a)]=Ci[d(q, a)]. A Q vgessge miatt lesz olyan m, hogy Cm osztlyozs megegyezik Ci+m osztlyozssal (vagyis megkaptuk a CDFA osztlyozst), ekkor a teljesen definilt determinisztikus minimlis automatt a kvetkezkppen adjuk meg: ACm=(Cm, T, Cm[q0], dCm, FCm), ahol minden Cm[q]Cm, aT- re dCm(Cm[q], a)=Cm[d(q, a)], illetve FCm={Cm[q] | qF}. Az gy kapott automata ekvivalens az eredetivel, ugyanazt az L nyelvet fogadja el; teljesen definilt determinisztikus s minimlis llapotszm. Ha egy DFA=(Q, T, q0, d, F) minimlis automata esetn vannak olyan T*- beli szavak amelyek nem prefixei (kezdszeletei) egyetlen L=L(DFA) nyelvbeli sznak sem, azaz van olyan uT*, hogy nincs olyan vT*, hogy uvL, akkor a minimlis determinisztikus teljesen definilt automatnak van nyelllapota, vagyis olyan q llapot, amire brmilyen aT bemenjelre d(q, a)=q s qF. Pldul ez a nyel llapot felel meg egy nemdeterminisztikus automata nem definilt tmeneteinek, vagyis a determinizl algoritmusban az Q halmaznak. Termszetesen parcilis vges automata esetn ez a nyel llapot elhagyhat, gy ekkor az llapotszm eggyel cskkenthet. Amint ksbb ltni fogjuk a minimlis determinisztikus automata ltezsnek fontos elmleti jelentsge is van. 92

Regulris nyelvek

5.27. plda - Vges elfogad automata minimalizlsa 1. feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a0,a1,a2,a3,a4,a5,a6},{x,y},a0, ,{a2,a4,a5,a6}) kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens A0 minimlis llapotszm automatt! x y Megolds: (O.) Mieltt az rdemi munkhoz hozzfognnk, meg kell vizsglni, hogy mely llapotok rhetek el az A automata kezdllapotbl. Azokat az llapotokat, melyek nem rhetek el, egyszeren trljk, mivel nem fognak elfordulni semelyik szmts sorn sem. Jelen esetben az a0 llapotbl elrhet llapotok: {a0,a2,a1,a3,a5,a4}. Lthat, hogy semmilyen input sz esetn sem kerlhet az A automata a6 llapotba, ezrt ezt az llapotot trljk. Az gy kapott A ' automatt kell a tovbbiakban minimalizlnunk az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel: A '=({a0,a1,a2,a3,a4,a5},{x,y},a0, ',{a2,a4,a5}). ' x y a0 a2 a1 a1 a5 a0 a2 a1 a3 a3 a1 a4 a4 a2 a5 a5 a1 a3 a0 a2 a1 a1 a5 a0 a2 a1 a3 a3 a1 a4 a4 a2 a5 a5 a1 a3 a6 a0 a2

(I.) A feladat megoldsnak els lpseknt klnbz osztlyokba fogjuk sorolni az A ' automata bels llapotait. A kezdeti osztlyozskor mindig kt osztlyba kerlnek az llapotok, attl fggen, hogy vgllapotok, vagy pedig nem vgllapotok. Jelen esetben: C1={a0,a1,a3},{a2,a4,a5}. Ezek utn a Ci+1-edik osztlyozs esetn kt llapot akkor esik egy osztlyba, ha egyrszt a Ci-edik osztlyozs esetn is azonos osztlyba tartoztak, msrszt pedig minden bemen jel hatsra azonos Ci-beli osztlyban tallhat llapotokba mennek t. Az osztlyozs vget r, amennyiben Ci=Ci+1 valamely i 1 esetn. Jelen esetben: C2={a0,a1},{a3},{a2,a5},{a4}. C3={a0,a1},{a3},{a2,a5},{a4}. Mivel C2=C3, ezrt az osztlyozs vget rt. A C2 osztlyait jelljk valamely j betvel, pldul b-vel: b0={a0,a1},b1={a3},b2={a2,a5},b3={a4}. (II.) Ksztsk el az A ' automatval ekvivalens, minimlis llapotszm A0 automatt, mely llapothalmazt az osztlyozs s az j jells bevezetse utn kapott bi betk alkotjk, a bemen jeleinek halmaza megegyezik 93

Regulris nyelvek az A automata bemen jeleinek halmazval, az tmenetfggvnyt megkapjuk gy, hogy megnzzk, hogy az adott bi osztlybeli llapotok az adott bemen jel hatsra mely bj osztlybeli llapotokba mentek t az A ' automata esetn, az j kezdllapot az a bi lesz, melynek eleme a0, s vgl az A0 automata vgllapotait azon bk1,...,bkm osztlyok alkotjk, mely osztlyok elemei az A ' automata vgllapotaibl llnak. Jelen esetben: A0=({b0,b1,b2,b3},{x,y},b0, 0,{b2,b3}). 0 x y b0 b2 b0 b1 b0 b3 b2 b0 b1 b3 b2 b2

5.28. plda - Vges elfogad automata minimalizlsa 2. feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a0,a1,a2,a3,a4,a5,a6},{x,y},a0, ,{a0,a1,a2,a3}) kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens A0 minimlis llapotszm automatt! x y Megolds: (O.) Az a0 kezdllapotbl elrhet bels llapotok: {a0,a6,a2,a1,a3}. A'=({a0,a1,a2,a3,a6},{x,y},a0, ',{a0,a1,a2,a3}). ' x y a0 a6 a6 a1 a6 a3 a2 a6 a0 a3 a6 a3 a6 a2 a1 a0 a6 a6 a1 a6 a3 a2 a6 a0 a3 a6 a3 a4 a5 a1 a5 a0 a4 a6 a2 a1

(I.) C1={a0,a1,a2,a3},{a6}. C2={a0},{a1,a2,a3},{a6}. C3={a0},{a1,a3},{a2},{a6}. C4={a0},{a1,a3},{a2},{a6}. b0={a0},b1={a1,a3},b2={a2},b3={a6}. (II.) A0=({b0,b1,b2,b3},{x,y},b0, 0,{b0,b1,b2}). 0 x b0 b3 94 b1 b3 b2 b3 b3 b2

Regulris nyelvek 0 y b0 b3 b1 b1 b2 b0 b3 b1

5.29. plda - Vges elfogad automata minimalizlsa 3. feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a0,a1,a2,a3,a4,a5,a6,a7,a8},{x,y},a0, ,{a2,a7}) kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens A0 minimlis llapotszm automatt! x y Megolds: (O.) Az a0 kezdllapotbl elrhet bels llapotok: {a0,a3,a8,a2,a5,a7}. A'=({a0,a2,a3,a5,a7,a8},{x,y},a0, ',{a2,a7,a8}). ' x y a0 a3 a8 a2 a7 a3 a3 a0 a2 a5 a0 a7 a7 a2 a5 a8 a5 a2 a0 a3 a8 a1 a5 a1 a2 a7 a3 a3 a0 a2 a4 a2 a6 a5 a0 a7 a6 a4 a3 a7 a2 a5 a8 a5 a2

(I.) C1={a0,a3,a5,a8},{a2,a7}. C2={a0},{a3,a5,a8},{a2,a7}. C3={a0},{a3,a5},{a8},{a2,a7}. C4={a0},{a3,a5},{a8},{a2,a7}. b0={a0},b1={a3,a5},b2={a8},b3={a2,a7}. (II.) A0=({b0,b1,b2,b3},{x,y},b0, 0,{b3}). 0 x y b0 b1 b2 b1 b0 b3 b2 b1 b3 b3 b3 b1

5.30. plda - Vges elfogad automata minimalizlsa 4. feladat


Ksztsk el az Aufenkamp-Hohn-fle minimalizcis algoritmus segtsgvel az A=({a0,a1,a2,a3,a4,a5,a6,a7},{x,y,z},a0, ,{a2,a4,a5,a7}) kimen jel nlkli, inicilis, vgllapotokkal bvtett vges automatval ekvivalens A0 minimlis llapotszm automatt!

95

Regulris nyelvek x y z Megolds: (O.) Az a0 kezdllapotbl elrhet bels llapotok: {a0,a6,a4,a5,a1,a3,a7,a2}. Mivel a kezdllapotbl minden llapot elrhet, ezrt nem trlnk egyetlen llapotot sem, teht A'=A. (I.) C1={a0,a1,a3,a6},{a2,a4,a5,a7}. C2={a0,a1},{a3,a6},{a2,a4,a5,a7}. C3={a0,a1},{a3,a6},{a2,a5},{a4,a7}. C4={a0,a1},{a3,a6},{a2,a5},{a4,a7}. b0={a0,a1},b1={a3,a6},b2={a2,a5},b3={a4,a7}. (II.) A0=({b0,b1,b2,b3},{x,y,z},b0, 0,{b2,b3}). 0 x y z b0 b1 b3 b2 b1 b3 b2 b0 b2 b0 b0 b1 b3 b0 b1 b1 a0 a6 a4 a5 a1 a3 a7 a2 a2 a1 a0 a6 a3 a7 a2 a1 a4 a1 a3 a3 a5 a0 a1 a6 a6 a4 a5 a0 a7 a1 a6 a6

5.4.3. Vges automatk s regulris nyelvtanok ekvivalencija


23. Ttel. A 3- as tpus nyelvek osztlya egybeesik a vges automatkkal felismerhet nyelvek osztlyval. Bizonyts. Legyen adott G=(N, T, S, H) regulris nyelvtan gyenge normlformban. Ekkor megadunk egy nemdeterminisztikus ressz tmenetet is megenged NFA=(Q, T, q0, d, F) automatt, amely L(G) nyelvet fogadja el. Legyen Q=N{qf}, ahol qfN. Legyen q0=S, F={qf}, tovbb a d llapottmenetfggvnyt adjuk meg a kvetekezkppen: minden A aBH szably ( A, BN, aT{}) esetn legyen Bd(A, a) s minden A aH szably ( AN, aT{}) esetn legyen qfd(A, a). A konstrukci alapjn lthat, hogy G minden terminl levezetshez pontosan egy elfogad futsa lesz az NFA automatnak s fordtva. Most nzzk a fordtott konstrukcit: az egyszersg kedvrt nemdeterminisztikus ressz tmenet nlkli automatbl kiindulva. Legyen, teht, adott NFA=(Q, T, q0, d, F) gy, hogy QT=, definiljuk a G=(N, T, S, H) nyelvtant a kvetkezkppen: legyen N=Q, S=q0. A szablyok pedig: minden pd(q, a) esetn ( p, qQ, aT) legyen q apH. tovbb, minden qF esetn legyen q H. 96

Regulris nyelvek Knnyen ellenrizhet, hogy NFA minden elfogad futshoz lesz a G nyelvtanban terminl levezets, s fordtva. Kpletesen szlva, az elz konstrukcik esetn a kvetkez talaktsokat vgezhetjk el:

Ebben a fejezetben teht belttuk, hogy a pontosan a regulris nyelveket fogadjk el a vges automatk, akr nemdeterminisztikus ressz tmenetet is megenged automatrl, nemdeterminisztikus ressz tmenet nlkli automatrl, (parcilis) determinisztikus automatrl, teljesen definilt determinisztikus automatrl, vagy akr minimlis determinisztikus automatkrl van sz.

5.31. plda - Ekvivalens regulris nyelvtan megadsa vges automathoz 1. feladat


Feladat: Adjunk meg az A=({q0,q1,q2},{a,b},q0,,{q0,q2}) (q0,a)={q1,q2}, (q0,b)={q2}, (q1,a)={q0}, (q2,b)={q1} vges automatval ekvivalens G regulris nyelvtant!

Megolds: A G nyelvtan nemterminlisainak halmaza az automata llapothalmazval egyezik meg, a terminlisok halmazt az automata bemen jeleinek halmaza alkotja, a startszimblum az automata kezdllapota lesz. A G nyelvtan szablyainak halmazt kt csoportba oszthatjuk. Az els csoportba tartoznak azok a szablyok, melyeket az tmenetfggvnybl kaphatunk meg. Ha az A automata a qi llapotbl az x bemenjel hatsra a qj llapotba megy t, akkor a szablyok kz bekerl a qixqj szably. A msodik csoportba azok a szablyok tartoznak, melyeket a vgllapotok alapjn adhatunk meg. Amennyiben a qk llapot szerepel az A automata vgllapotainak a halmazban, gy fel kell vennnk G nyelvtan szablyai kz a qk szablyt. Jelen esetben: G=({q0,q1,q2},{a,b},q0,H), H={ q0aq1, q0aq2, q0bq2, q1aq0, q2bq1, q0, q2 }.

97

Regulris nyelvek

5.32. plda - Ekvivalens regulris nyelvtan megadsa vges automathoz 2. feladat


Adjunk meg az A=({q0,q1},{x,y},q0,,{q1}), (q0,x)={q0,q1}, (q1,y)={q0} vges automatval ekvivalens G regulris nyelvtant!

Megolds: G=({q0,q1},{x,y},q0,H), H={ q0xq0, q0xq1, q1yq0, q1 }.

5.33. plda - Ekvivalens regulris nyelvtan megadsa vges automathoz 3. feladat


Adjunk meg az A=({q0,q1,q2},{x,y},q0,,{q2}), (q0,x)={q1}, (q0,y)={q2}, (q1,x)={q0,q2}, (q1,y)={q1,q2}, (q2,x)={q0}, (q2,y)={q1} vges automatval ekvivalens G regulris nyelvtant!

Megolds: G=({q0,q1,q2},{x,y},q0,H), H={ q0xq1, q0yq2, q1xq0, q1xq2, q1yq1, q1yq2, q2xq0, q2yq1, q2 }.

5.34. plda - Ekvivalens regulris nyelvtan megadsa vges automathoz 4. feladat


Adjunk meg az A=({q0,q1,q2,q3},{x,y,z},q0,,{q0,q2,q3}), (q0,x)={q1,q3}, (q0,y)={q2}, (q1,z)={q0,q2}, (q2,x)={q0}, (q3,y)={q1}. vges automatval ekvivalens G regulris nyevtant!

Megolds: G=({q0,q1,q2,q3},{x,y,z},q0,H), H={ q0 xq1, q0 xq3, q0 yq2, q1 zq0, q1 zq2, q2 xq0, q3 yq1, q0 , q2, q3 }.

98

Regulris nyelvek

5.35. plda - Ekvivalens vges automata megadsa regulris nyelvtanhoz 1. feladat


Adjunk meg a G=({S,A,B},{a,b},S,H) H={ SabaB, AB, A cacb, BbA, B S, B } nyelvtannal ekvivalens vges ressztmenet nlkli automatt! Megolds: (I.) Els lpsben megadunk egy G1 nyelvtant, ami ekvivalens a G nyelvtannal s nem szerepelnek benne Y y1y2 ... yn s Y y1y2 ... Yn, n 3 alak szablyok. A H szablyhalmaz ilyen alak szablyait helyettestjk j szablyokkal, a tbbi szablyt pedig vltoztats nlkl tvesszk a H1 szablyhalmazba. Minden Y y1y2 ... yn, n 3 alak szablyhoz vezessnk be Z1,Z2, ... ,Zn-1 j nemterminlisokat, Zibl fogjuk levezetni az yi+1 ... yn. Ehhez az sszes Y y1y2 ... yn, n 3 alak szablyt helyettestsk a kvetkez szablyokkal: Yy1Z1, Z1y2Z2, . . . Zn-2yn-1Zn-1, Zn-1yn. Minden Yy1y2 ... Yn, n 3 alak szablyhoz vezessnk be Z1,Z2, ...,Zn-2 j nemterminlisokat. Zi-bl az yi+1 ... yn szt fogjuk levezetni: az sszes Yy1y2 ... Yn, n 3 alak szablyt helyettestsk a kvetkez szablyokkal:

Yy1Z1, Z1y2Z2, . . . Zn-3yn-2Zn-2, Zn-2yn-1Yn. Jelen esetben: {G1=({S,A,B,Z1,Z2,Z3,Z4,Z5},{a,b},S,H1). H1={ SaZ1, Z1 bZ2, Z2aB, AB, A cZ3, Z3 aZ4, Z4 cZ5, Z5b, BbA, B S, B } (II.) Msodik lpsben megadunk egy G ' nyelvtant, ami ekvivalens a G nyelvtannal s nem szerepelnek benne XZ alak szablyok. Ehhez kt lpsre van szksg. - Elszr meghatrozunk egy U(Z) halmazt minden olyan Z nemterminlishoz, mely levezethet legalbb egy msik nemterminlisbl a G1 nyelvtanban s szerepel olyan H1 halmazban lv szably bal oldaln, amelynek jobb oldaln egy terminlis, vagy egy terminlis s egy nemterminlis bet, vagy pedig az ressz ll. Az U(Z) halmaz tartalmazni fogja az sszes olyan nemterminlist, melybl egy vagy tbb lpsben levezethet a Z bet. Jelen esetben: U(B)={A},U(S)={B,A}. 99

Regulris nyelvek - Majd a H' szablyhalmazba tvesszk a H1 szablyhalmaz mindazon szablyait, melyek nem XZ alakak, majd hozzvesszk mindazon szablyokat, melyeket gy kapunk, hogy a mr tvett szablyok bal oldaln szerepl bett a hozz tartoz U halmaz elemeivel helyettestjk. Formlisan: H2=(H1{W p|Z pH1,WU(Z)}){X Y|X,YN1}. Jelen esetben: G'=({S,A,B,Z1,Z2,Z3,Z4,Z5},{a,b},S,H'). H'={ S aZ1, B aZ1, A aZ1, Z1 bZ2, Z2aB, A cZ3, Z3 aZ4, Z4 cZ5, Z5b, BbA, A bA, B, A } (III.) Harmadik lpsben megadjuk a G nyelvtannal ekvivalens A vges automatt. Az A automata llapothalmazt gy kapjuk, hogy a G' nyelvtan nemterminlisainak a halmazhoz hozzadunk egy j qv llapotot. Az automata bemen jeleinek a halmaza megegyezik a G nyelvtan terminlisainak a halmazval, a kezdllapota a startszimblum lesz, a vgllapotok halmaza pedig tartalmaz minden olyan X llapotot, mely szerepelt X alak szablyban, valamint tartalmazza az jonnan bevezett qv llapotot is. Az A automata tmenetfggvnyt gy kapjuk, hogy minden H' halmazban szerepl XyZ szably esetn felvesszk a (X,y)=Z tmenetet, valamint az Xy alak szablyok esetn a (X,y)=qv tmenetet. Jelen esetben: A=({S,A,B,Z1,Z2,Z3,Z4,Z5,qv},{a,b},S,,{B,A,qv}). (S,a)={Z1}, (B,a)={Z1}, (A,a)={Z1}, (Z1,b)={Z2}, (Z2,a)={B}, (A,c)={Z3}, (Z3,a)={Z4}, (Z4,c)={Z5}, (Z5,b)={qv}, (B,b)={A}, (A,b)={A}

100

Regulris nyelvek

5.36. plda - Ekvivalens vges automata megadsa regulris nyelvtanhoz 2. feladat


Adjunk meg a G=({S,A,B},{x,y},S,H) H={ SxA, SyyB, AB, ByS, Bxyx, B } nyelvtannal ekvivalens vges automatt! Megolds: (I.) G1=({S,A,B,Z1,Z2,Z3},{x,y},S,H1). H1={ SxA, SyZ1, Z1yB, AB, ByS, BxZ2, Z2yZ3, Z3x, B } (II.) U(B)={A}. G'=({S,A,B,Z1,Z2,Z3},{a,b},S,H'). H'={ SxA, SyZ1, Z1yB, ByS,AyS, BxZ2,AxZ2, Z2yZ3, Z3x, B,A } (III.) A=({S,A,B,Z1,Z2,Z3,qv},{x,y},S,,{B,A,qv}). (S,x)={A}, (S,y)={Z1}, (Z1,y)={B}, (B,y)={S}, (A,y)={S}, (B,x)={Z2}, (A,x)={Z2}, (Z2,y)={Z3}, (Z3,x)={qv}

5.37. plda - Ekvivalens vges automata megadsa regulris nyelvtanhoz 3. feladat


Adjunk meg a G=({S,A,B},{x,y},S,H) H={ SxA, SyB, SB, BA, AxS, Ay } nyelvtannal ekvivalens vges automatt! Megolds: (I.) Mivel a G nyelvtanban nincs Yy1y2 ... yn s Yy1y2 ... Yn, n 3 alak szably, ezrt G1=G. (II.) U(A)={B,S}. G'=({S,A,B},{x,y},S,H'). H'={ SxA, SyB, AxS, BxS, SxS, Ay, By, Sy } (III.) A=({S,A,B,qv},{x,y},S,,{qv}). (S,x)={A}, (S,y)={B}, (A,x)={S}, (B,x)={S}, (S,x)={S}, (A,y)={qv}, (B,y)={qv}, (S,y)={qv}

101

Regulris nyelvek

5.38. plda - Ekvivalens vges automata megadsa regulris nyelvtanhoz 4. feladat

Adjunk meg a G=({S,A,B},{x,y},S,H) H={ SxxxA, SyyyB, AyS, BxS, Axx, Byy } nyelvtannal ekvivalens vges automatt! Megolds: (I.) G'=({S,A,B,Zv,Z2,Z3,Z4,Z5,Z6},{x,y},S,H'). H'={ SxZ1, Z1xZ2, Z2xA, SyZ3, Z3yZ4, Z4yB, AyS, BxS, AxZ5, Z5x, ByZ6, Z6y } (II.) Mivel a G1 nyelvtanban nincs XZ alak szably, ezrt G2=G1. (III.) A=({S,A,B,Z1,Z2,Z3,Z4,Z5,Z6,qv},{x,y},S,,{qv}). (S,x)={Z1}, (Z1,x)={Z2}, (Z2,x)={A}, (S,y)={Z3}, (Z3,y)={Z4}, (Z4,y)={B}, (A,y)={S}, (B,x)={S}, (A,x)={Z5}, (Z5,x)={qv}, (B,y)={Z6}, (Z6,y)={q1}

5.39. plda - Ekvivalens vges automata megadsa regulris nyelvtanhoz 5. feladat

Adjunk meg a G=({S,X,Y},{x,y,z},S,H) H={ SxX, Sz, S, XyY, XzS, Xx, YxX, Yy, } nyelvtannal ekvivalens vges automatt!

Megolds: (I.) Mivel a G nyelvtanban nincs Yy1y2 ... yn s Yy1y2 ... Yn, n 3 alak szably, ezrt G1=G. (II.) Mivel a G1 nyelvtanban nincs XZ alak szably, ezrt G2=G1. (III.) A=({S,X,Y,qv},{x,y,z},S,,{S,qv}). (S,x)={X}, (S,z)={qv}, (X,y)={Y}, (X,x)={qv}, (X,z)={S}, (Y,y)={qv}, (Y,x)={X}

102

Regulris nyelvek

5.40. plda - Ekvivalens vges automata megadsa regulris nyelvtanhoz 6. feladat


Adjunk meg a G=({S,A},{0,1},S,H) H={ S 0, S 1A, A 0A, A 1A, A } nyelvtannal ekvivalens vges automatt! Megolds: (I.) Mivel a G nyelvtanban nincs Yy1y2 ... yn s Yy1y2 ... Yn, n 3 alak szably, ezrt G1=G. (II.) Mivel a G1 nyelvtanban nincs XZ alak szably, ezrt G2=G1. (III.) A=({S,A,qv},{0,1},S,,{A,qv}). (S,0)={qv}, (S,1)={A}, (A,0)={A}, (A,1)={A}

5.41. plda - Ekvivalens vges automata megadsa regulris nyelvtanhoz 7. feladat


Adjunk meg a G=({S,A},{0,1,+,-},S,H) H={ S 0, S 1A, S-1A, A 0A, A 1A, A, A+1A, A-1A } nyelvtannal ekvivalens vges automatt! Megolds: (I.) G1=({S,A,Z1,Z2,Z3},{0,1,+,-},S,H) H={ S 0, S 1A, S-Z1, Z1 1A, A 0A, A 1A, A, A+Z2, Z2 1A, A-Z3, Z3 1A } (II.) Mivel a G1 nyelvtanban nincs XZ alak szably, ezrt G2=G1. (III.) A=({S,A,Z1,Z2,Z3,qv},{0,1},S,,{A,qv}). (S,0)={qv}, (S,1)={A}, (S,-)={Z1}, (Z1,1)={A}, (A,0)={A}, (A,1)={A}, (A,+)={Z2}, (Z2,1)={A}, (A,-)={Z3}, (Z3,1)={A}

5.5. Nyelvek ellltsa automatkban


Az automatk s az automata lekpezsek kapcsolatt illeten, mint mr utaltunk r, kt ellenttes krds fogalmazhat meg: I. Ha adva van egy inicilis automata, meghatrozand az ltata induklt lekpezs (analzis); 103

Regulris nyelvek II. Ha adva van egy inicilis automata lekpezs, meghatrozand legalbb egy olyan inicilis automata, amely ezt a lekpezst induklja (szintzis). A szintzis, ahogy utaltunk r egyrtelmv tehet a minimalizls feladatval. Az analzis s szintzis akkor fogalmazhat meg egzakt mdon, ha megllapodunk abban, hogy mit rtnk automata s automata lekpezs megadsn. Ezzel kapcsolatban, amint a Automatk Analzise s Szintzise fejezetben utaltunk r, a kvetkez problmt kell megoldani: 0. Meg kell adnunk a vges automatk ltal induklhat automata lekpezseknek az automatktl fggetlen lerst. Ms szval, keresnnk kell olyan rsmdot, amelyben el tudjuk dnteni, hogy valamely, ebben az rsmdban megadott automata lekpezs induklhat-e vges automatval vagy sem. Ezek utn vges automatkra az analzis s szintzis problmja gy fogalmazhat meg: I'. Brmely adott vges automata esetn meg kell tudnunk adni a szban forg rsmdban azt a lekpezst, amelyet az automata indukl; II'. Ha ebben az rsmdban meg van adva egy vges automata ltal induklhat lekpezs, akkor meg kell tudnunk adni legalbb egy olyan automatt, mely ezt a lekpezst induklja s llapothalmaza vges. Egy olyan lekpezs megadsi mdszer, mely eleget tesz a 0.,I.',II.' feltteleknek, elszr S. C. Kleene tallt 1956-ban, bevezetve a regulris kifejezs fogalmt. A fejezet tovbbi rszben az elfogad automatkra vizsgljuk az analzis s szintzis fogalmt, vagyis az analzis s szintzis foglamt mdostjuk s e ketts feladat megoldst kimen jel nlkli automatk vizsglatra vezetjk vissza. Amint lttuk, a generatv rendszerek egyik fontos tpust kpezik a generatv nyelvtanok, melyek a formlis nyelvek ellltsra alkalmas eszkzk. A formlis nyelvek felismersre viszont nem az analitikus nyelvtanokat, hanem a felismer (Rabin-Scott) automatkat szoks alkalmazni. Tetszleges DFA=(Q, T, q0, d, F) determinisztikus automata esetn akkor mondjuk, hogy wL(DFA) ha az automata a q0Q kezdllapotbl a wT* inputsz hatsra a d*(q0, w)F llapotba megy t.

24. Ttel. (Kleene Ttele) Brmely adott DFA vges determinisztikus automathoz s llapotai F rszhalmazhoz meg tudjuk adni annak a nyelvnek egy regulris kifejezst, amely DFA- ban az F halmazzal elllthat. Megfordtva, minden regulris kifejezshez megadhat egy FA vges (felismer) automata, amely llapotai F rszhalmazval ppen a tekintett regulris kifejezssel lert nyelvet fogadja el. Kleene ttelnek konstruktv bizonytst fogjuk adni a kvetkez fejezetekben. Azt mondjuk, hogy a T* monoidon (azaz egysgelemes flcsoporton) definilt valamely ekvivalencia relci jobbkongruencia, ha minden u, v, wT* hrmasra igaz, hogy uvuwvw. A T* monoid egy C osztlyozst jobbrl stabilnak (vagy jobbrl kompatibilisnek) hvjuk, ha a relci jobbkongruencia. Vgl, a relcit, illetve a C osztlyozst vges indexnek mondjuk, ha vges sok osztlybl ll. Analg mdon definilhat a balkongruncia s a balrl kompatibilis osztlyozs. Egy, a T* monoidon megadott relcit kongruencinak hvunk, ha egyidejleg bal- s jobbkongruencia. Msknt kifejezve, a T* monoidon rtelmezett relci kongruencia, ha brmely u, v, w, sT*- ra uvwuswvs. (Megjegyezzk, hogy termszetesen u, v, w, s brmelyike lehet az ressz.) Egy kongruencihoz tartoz C osztlyozst kompatibilisnek mondunk. Msknt kifejezve, kompatibilisnek hvjuk az egyidejleg balrl s jobbrl stabil osztlyozst. A vges automatkban elllthat nyelvek egy relcielmleti jellemzst adja Myhill (ejtsd: mjhil) s Nerode (ejtsd: nerd) ttele. 104

Regulris nyelvek 25. Ttel. (Myhill s Nerode ttele) Egy vges T bc feletti L nyelv akkor s csak akkor llthat el egy vges automatban az llapotok valamely rszhalmazval, ha megadhat T*- nak olyan vges index kompatibilis C osztlyozsa, hogy L elll bizonyos C- beli osztlyok egyestsi halmazaknt. Bizonyts. Mindenekeltt megjegyezzk, hogy T*- nak az a trivilis osztlyozsa, amelynl minden elem egymagban alkot egy osztlyt, nyilvn kompatibilis s egy L nyelv mindig elll ennl az osztlyozsnl bizonyos osztlyok egyestsi halmazaknt. Ennl fogva egy tetszleges L nyelv esetn mindig van olyan kompatibilis osztlyozsa T*- nak, hogy az L elll bizonyos osztlyok egyestsi halmazaknt. A ttel szksgessgnek bizonytshoz tegyk fel, hogy egy L nyelv elllthat a DFA=(Q, T, q0, d, F) vges automata llapotainak F rszhalmazban, vagyis DFA Rabin-Scott automata ppen az L nyelvet ismeri fel. Definiljunk T*- on egy kongruencit a kvetkezkpp: u, vT*:(uDFAvqQ:d*(q, u)=d*(q, v)). (Vagyis minden u, vT* esetn uDFAv akkor s csak akkor teljesljn, ha tetszleges Q- beli llapotra az u sz a q llapotot ugyanabba az llapotba viszi t mint a v sz.) Ekkor a - hoz tartoz C kompatibilis osztlyozsnl egy-egy osztlyba pontosan azok a T*- beli elemek tartoznak, melyek a DFA automata kezdllapott egy meghatrozott llapotba viszik. Nyilvnval, hogy a DFA vgessge miatt a Q halmaz vges, azaz a C kompatibilis osztlyozs vges sok osztlyt tartalmaz. Teht C valban vges index. Azt kell mg kimutatnunk, hogy L elll bizonyos C- beli osztlyok egyestsi halmazaknt. Jellje most tetszleges qQ mellett C(q) ezen C kompatibilis osztlyozs azon osztlyt, melynek elemei a q0 kezdllapotot a q llapotba viszik t. Mivel feltettk, hogy a DFA az L nyelvet llapotainak F halmazval ismeri fel, ekkor L={C(q)|qF}. (Termszetesen L= elfordulhat. Ilyen esetben F=.) Ezzel a ttel szksgessgt kimutattuk. Most igazoljuk az elegendsget. Tegyk fel, hogy megadhat T*- nak olyan vges index kompatibilis C osztlyozsa, hogy L elll bizonyos C- beli osztlyok egyestsi halmazaknt. Korbbi konvencinknak megfelelen tetszleges uT* mellett C[u]- val fogjuk jellni azt az osztlyt, melynek egy adott uT* eleme. Ha L=, akkor L brmely vges automatban elllthat a vgllapotok res halmazval. gy a tovbbiakban feltehetjk, hogy L nem res. Mivel C kompatibilis, ez azt jelenti, hogy tetszleges u, vT* mellett C[u]=C[v]aT:C[ua]=C[va] (vagyis tetszleges u, vT* esetn a u s a v egy osztlyba esse azt eredmnyezi, hogy minden aT esetn az ua s a va is egy osztlyba fognak esni.) Ekkor viszont jl definilt (azaz az rtelmezsi tartomny minden elemnek valban pontosan egy elem felel meg az rtkkszletben) az a d:CT C lekpezs, melyre minden uT*, aT pr mellett d(C[u], a)=C[ua]. Tekintsk most az ezen d tmeneti fggvnnyel rendelkez DFA=(C, T, C[], d, F) vges automatt (ahol C[] jelli a C azon osztlyt, mely az resszt tartalmazza); s F jelli a C azon rszhalmazt, melyre teljesl, hogy az L elll a F- beli osztlyok egyestseknt. A DFA defincija rtelmben minden uT*- ra d(C[], u)=C[u]. Vilgos, hogy ekkor minden uT* esetn C[u]C ' pontosan akkor ll fenn, ha C[]- t az u sz a DFA automatban valamely C '- beli llapotba viszi t. Vagyis DFA llapotainak F rszhalmazval pp az L nyelvet ismeri fel. Ezzel a ttel bizonytst befejeztk. Valamely A=(Q, T, q0, d) kimen jel nlkli (nem felttlenl vges) automata esetn a u, vT*:(uAvqQ:d*(q, u)=d*(q, v)- val definilt kongruencit az A Myhill-Nerode fle kongruencijnak hvjuk, a hozz tartoz T* fakorflcsoportot pedig az A automata karakterisztikus flcsoportjnak nevezzk. Az A karakterisztikus flcsoportja nyilvn gy is megadhat, mint a Q llapothalmaz feletti teljes transzformci flcsoport azon rszflcsoportja, amelyet az sszes, a da(q)=d(q, a), qQ sszefggsnek eleget tev da:Q Q lekpezsek {da|aT} halmaza generl. Ilyen interpretciban az S(A) elemei azok az u:Q Q, uT* alak lekpezsek lesznek, melyekre u(q)=d*(q, u), qQ.

105

Regulris nyelvek

5.42. plda - Egy vges automatval nem felismerhet nyelv


Az L={ambn|m>n 0} nyelv vges (kimen jel nlkli inicilis) automatban nem llthat el. ( an egy n hosszsg, csupa a betbl ll szt jell.) Valban, ha L vges kimen jel nlkli inicilis automatban elllthat lenne, akkor a Myhill-Nerode ttel szerint lenne a T*- nak vges index olyan C kompatibilis osztlyozsa, hogy L elll vges sok osztly egyestseknt. Mivel L vgtelen elem, s vges sok osztly egyestseknt elll, van olyan osztly, mely valamely i-j>k-l>0 felttelnek eleget tev i, j, k, l termszetes szmokra aibj- t s akbl- t tartalmazza. Viszont aibj+k-l(=aibjbkl )L, s ugyanekkor akbk(=akblbk-l)L. Vagyis van olyan uX*, hogy aibjuL mellett akbluL. Mivel felttelezsnk szerint L elll (vges sok) C- beli osztly egyestseknt, L- nek azok s csak azok az osztlyok lehetnek a rszhalmazai, melyek egyestseknt L elll. Ez viszont azt is jelenti, hogy aibju s akblp nem tartozhatnak a C osztlyozs egy s ugyanazon osztlyba. Teht, felttelezsnknek ellentmondva a C nem kongruencia osztlyozs. Ekkor viszont nem lehet az L nyelvet vges kimen jel nlkli inicilis automatban ellltani. Itt jegyezzk meg, hogy a Myhill-Nerode ttel s a nyelvet elfogad minimlis (vges determinisztikus teljesen definilt) automata szoros kapcsolatban llnak egymssal. Ugyanis a bizonytsban ellltott DFA ppen az L nyelvhez tartoz minimlis (llapotszm) teljesen definilt automata. Itt hvjuk fel a figyelmet arra a nagyon fontos tnyre, hogy a teljesen definilt minimlis determinisztikus automata (az llapothalmaz izometrijtl eltekintve) egyrtelmen definilhat minden regulris nyelvhez. Ez alapjn lehet eldnteni, hogy kt regulris nyelv megegyezik-e egymssal.

5.6. Vges automatk analzise


Az automatk analzisnek problmjt vges automatkra gy mdostjuk: A vges automatk analzise jelentse olyan univerzlis algoritmus megadst, amelynek alkalmazsval brmely adott determinisztikus FA=(Q, T, q0, d, F) vges automathoz meg tudjuk adni annak a nyelvnek egy regulris kifejezst, amely FA- ban az F halmazzal elllthat. Ilyen algoritmus ltezst S. C. Kleene bizonytotta be 1956-ban. Mi a tovbbiakban McNaughton s Yamada algoritmust ismertetjk, amely egyben konstruktv bizonytst is szolgltatja a kvetkez ttelnek. 26. Ttel. Ha a vges T halmaz feletti L nyelv elllthat vges kimen jel nlkli inicilis automata llapotai valamely F rszhalmazval, akkor az L nyelv megadhat regulris kifejezssel. Bizonyts. A kvnt algoritmus megadshoz nyilvn elg olyan eljrst megkonstrulni, amely lehetv teszi az olyan nyelv egy regulris kifejezsnek felrst, amely FA- ban tetszleges, egyetlen llapottal elllthat, hisz ha F={q1, q2, , qn}, akkor LFAF=LFAq1LFAq2LFAqn. gy a tovbbiakban csupn az olyan regulris nyelvek regulris kifejezssel trtn megadst vizsgljuk, melyek mindegyike FA- ban egy-egy llapottal (azaz az llapotok egy-egy egyelem rszhalmazval) elllthat. Legyen FA=({1, , n}, T, 1, d, F) egy vges inicilis kimen jel nlkli automata, melyben az llapothalmaz 1- tl alkalmas n- ig terjed termszetes szmok halmaza, s az 1 termszetes szm a kezdllapot. Az llapothalmaz s a kezdllapot ilyen megvlasztsa nem jelent igazi megszortst, hisz tetszleges vges inicilis kimen jel nlkli automata esetn jellhetjk 1- el a kezdllapotot, s amennyiben az llapotok szma n, az {1, 2, , n}- el az llapothalmazt (aszerint hogy az llapotok egy tetszleges, kezdllapottal kezdd felsorolsnl beszlnk els, , n- edik llapotrl). Jellje Li, jk tetszleges i, j{1, , n}- re s k{0, 1, , n}- re azt a nyelvet, mely azokbl s csak azokbl a bemen szavakbl ll, amelyek hatsra az FA az i{1, , n} llapotbl tmegy a j{1, , n} llapotba gy, hogy k=0 esetn nincs kzbls llapot, k>0 esetn pedig legfeljebb az 1, , k llapotok lphetnek fel kzbls llapotknt. Specilisan, Li, j0 jelli azt a nyelvet, amelynek elemei hatsra FA az i{1, , n} llapotbl kzvetlenl, kzbls llapotok nlkl megy t a j{1, , n} llapotba. (Itt teht k nem kitevt hanem egyszeren indexet jell!) Elegend megmutatni, hogy brmely m{1, , n} esetn az L1, mn regulris, hiszen LFAm=L1, mn, s elegend ezen nyelvek egy regulris kifejezst megadni. Ennl valamivel tbbet bizonytunk: Igazolni fogjuk, hogy minden Li, jk nyelv regulris s rekurzv formult adunk az ilyen nyelvek egy 106

Regulris nyelvek regulris kifejezsnek felrshoz. Ez egyben azt is jelenti, hogy ttelnknek egy teljes indukcis bizonytst adjuk. Legyen k=0. Mivel az Li, jk nyelvek mindegyike vagy az res nyelv, vagy pedig T bizonyos elemeinek egyestsi halmaza, ezrt minden ilyen nyelv regulris s az automata tmeneti tblzata alapjn felrhat. Nevezetesen, a tblzat i llapothoz tartoz oszlopban kigyjtjk azokat az llapotokat, melyek j- vel megegyeznek, s tekintjk az sszes olyan ai1, aisT bemen jeleket, melyek az FA tmeneti tblzatban ezen j- vel megegyez elemekkel egy sorba esnek. Ezek a bemen jelek lesznek azok, melyek hatsra az FA tmegy az i llapotbl a j llapotba. Ha ilyen bemen jel nincs s ij, akkor Li, j0= lesz a tekintett regulris kifejezs. Amennyiben van olyan bemen jel, mely az i llapotot a j llapotba viszi t s ij, akkor Li, j0=ai1+ai2++ais lesz a megfelel regulris kifejezs. Ha nincs az i- t a j- be tviv bemen jel, de i=j, akkor Li, j0=, hisz az ressz hatsra minden llapot t tud menni nmagba kzbls llapot nlkl, definci szerint. Vgl, ha van olyan bemen jel, mely az i llapotot a j llapotba viszi t s i=j, akkor nyilvnvalan igaz, hogy Li, j0=+ai1+ai2++ais megfelel regulris kifejezs. Legyen most k>0, s tegyk fel, hogy az Li, j0, , Li, jk-1, i, j{1, , n} nyelvek regularitst mr bebizonytottuk s fel is rtuk ezen nyelvek egy-egy regulris kifejezst. Mutassuk meg, hogy rvnyes az Li, jk=Li, jk-1+Li, kk-1(Lk, kk-1)*Lk, jk-1(i, j, k{1, , n}) formula. Az egyenlsg igazolshoz elszr azt gondoljuk vgig, hogy milyen mdon tudunk egy wT* szval eljutni az i llapotbl a j llapotba gy, hogy legfeljebb 1, , k lphetnek fel kzbls llapotknt.

Ha valamely wT* szval az i llapotbl a j llapotba el tudunk jutni gy, hogy legfeljebb az 1, 2, k lphetnek fel kzbls llapotokknt, akkor vagy el tudunk jutni ezen w szval az i llapotbl a j llapotba gy, hogy legfeljebb 1, , k-1 lphet fel kzbls llapotknt (azaz ha k=1 akkor ezesetben nem lp fel kzbls llapot) s ekkor wLi, jk-1, vagy nem. Utbbi esetben fel kell lpnie a k llapotnak legalbb egyszer, de persze vges sokszor kzbls llapotknt. Vagyis ekkor elszr eljutunk a k llapotba gy, hogy legfeljebb 1, , k-1 lphet fel kzbls llapotknt, s ha k csak egyszer lpett fel kzbls llapotknt, akkor k- bl mris tovbb juthatunk j- be gy, hogy ismt legfeljebb 1, , k-1 lphet fel kzbls llapotknt. Ezesetben teh w=w1w2, ahol w1Li, kk-1, w2Lk, jk-1. Az az eset van mg htra, mikor k egynl tbbszr (de persze vges sokszor) lp fel kzbls llapotknt. Ekkor is elszr eljutunk a k llapotba gy, hogy legfeljebb 1, , k-1 lphet fel kzbls llapotknt, majd vges sokszor k- bl elindulva visszatrnk k- ba gy, hogy ismt legfeljebb 1, , k-1 lphessenek fel kzbls llapotknt, s vgl mint az elz esetben, k- bl tovbb juthatunk j- be gy, hogy ismt legfeljebb 1, , k-1 lphet fel kzbls llapotknt. Ilyenkor w elll valamely t>2 termszetes szmra w=w1w2wt-1wt alakban gy, hogy w1Li, kk-1, w2, , wt-1Lk, kk-1, illetve wtLk, jk-1. Minden lehetsges esetben azt kaptuk, hogy ha w benne van az egyenlsgnk baloldaln szerepl nyelvben, akkor benne van az egyenlsg jobboldaln ll nyelvben. Az egyenlsg fennllshoz be kell mg ltni az is, hogy ha wT* benne van az egyenlsg jobboldaln lv nyelvben akkor benne van a baloldaln lvben is. Li, jk-1Li, jk definci szerint fennll, gy csak azzal az esettel kell foglalkoznunk, mikor wLi, kk-1(Lk, kk-1)*Lk, jk-1. Ekkor w=w1ws, s 1, ahol w1 az i llapotot a j llapotba, ws a k llapotot a j llapotba, s ha s>2, akkor minden egyes wl, l{2, , s-1} tnyez a k llapotbl nmagba viszi t az FA automatt gy, hogy legfeljebb 1, , k-1 lphetnek fel kzbls llapotknt. Vilgos, 107

Regulris nyelvek hogy ekkor w hatsra gy juthatunk el az i llapotbl a j llapotba, hogy legfeljebb 1, , k lphetnek fel kzbls llapotknt. Ezzel a ttel teljes bizonytst nyert. Az elz bizonytsban szerepl konstrukci segtsgvel tetszleges vges automathoz elkszthetjk a megfelel regulris kifejezst.

5.43. plda - Ekvivalens regulris kifejezs megadsa vges automathoz 1. feladat


Adjunk meg az A=({a1,a2},{x,y},a1,,{a2}) determinisztikus vges automatval ekvivalens regulris kifejezst! Ahol az tmenetfggvny a kvetkez: x y a1 a2 a1 a2 a2

Megolds: (I.) Jelljk n-el az automata llapotainak szmt. (Jelen eseben n=2.) A feladat megoldshoz ellltjuk az rijk regulris kifejezseket, a kvetkez rekurzv definci segtsgvel: rij0={x|(ai,x)=aj}, ha i j, rij0={x|(ai,x)=aj}{}, ha i=j, rijk=rikk-1(rkkk-1)*rkjk-1rijk-1, ha 1 k n. Jelen esetben rijk regulris kifejezsek: r11
k

k=0 y x x

k=1 y
*

k=2 y* y*xx* x*

r12k r21k r22k

y*x x

Pldul az r111=r110(r110)*r110 r110=(y )(y )*(y) (y )=y* s az r122=r121(r221)*r221 r121=y*x(x)*(x) y*x=y*xx*. (II.) Ezek utn L(A)= rmn, ahol r1 a kezdllapot, az rm pedig befutja a vgllapotok halmazt. Jelen

esetben egyetlen vgllapotunk van, gy L(A)=r122=y*xx*. Megfigyelhet, hogy k=n esetn elegend azokat az rijk elemeket kiszmolni, ahol i kezdllapot s j vgllapot. A tovbbiakban ezek szerint fogunk eljrni.

108

Regulris nyelvek

5.44. plda - Ekvivalens regulris kifejezs megadsa vges automathoz 2. feladat


Adjunk meg az A=({a1,a2},{x,y,z},a1,,{a1,a2}) determinisztikus vges automatval ekvivalens regulris kifejezst, ahol a tmenetfggvny a kvetkez tblzattal adott: x y z Megolds: (I.) Az rijk regulris kifejezsek: r11k r12k r21k r22k k=0 y x z y k=1 y* y*x zy* zy*xy a1 a2 a1 a2 a2 a1

(II.) r112=r121(r221)*r211r111=y*x(zy*xy)*zy*y*= =y*x(zy*xy)*zy*y*, r122=r121(r221)*r221r121=y*x(zy*xy)*(zy*xy)y*x= =y*x(zy*xy)*. Vgl L(A)=r112r122= (y*x(zy*xy)*zy*y*)(y*x(zy*xy)*)= =y*x(zy*xy)*(zy*)y*.

109

Regulris nyelvek

5.45. plda - Ekvivalens regulris kifejezs megadsa vges automathoz 3. feladat


Adjunk meg az A=({a1,a2,a3},{x,y},a1,,{a2,a3}) determinisztikus vges automatval ekvivalens regulris kifejezst, ahol a tmenetfggvny: x y Megolds: (I.) Az rijk regulris kifejezsek: r11k r12k r13k r21k r22k r23k r31k r32k r33k (II.) r123=(y xy*x) ( xyxxy*x*xxy* xy*= =(y xy*x)(xy xxy*x)*xxy* xy*, r133=(y xy*x)( xy xxy*x)* (xy xxy*x) (y xy*x)= =(y xy*x)(xy xxy*x)*, L(A)=r123 r133=((y xy*x) (xyxxy*x)*xxy* xy*)((y xy*x)(xyxxy*x)*)= (y xy*x) (xy xxy*x)*(xxy*)xy* k=0 x y y x x k=1 x y y x x xx xy k=2 xy* yxy*x y* y*x x xxy* xyxxy*x a1 a2 a3 a2 a3 a2 a3 a1

5.7. Vges automatk szintzise


Az automatk szintzisnek problmjt vges automatkra a kvetkezkpp mdostjuk: A vges automatk szintzise jelentse olyan univerzlis algoritmus megadst, amelynek alkalmazsval brmely vges T halmaz feletti, regulris kifejezssel megadott L regulris nyelvhez meg tudunk 110

Regulris nyelvek konstrulni olyan vges FA=(Q, T, q0, d, F) automatt, amelyben az adott L nyelv az llapothalmaz F rszhalmazval elllthat, ( vagyis legyen FA az L regulris kifejezssel megadott nyelv felismer automatja). Egy ilyen algoritmus megadsa egyben a kvetkez ttel konstruktv bizonytst szolgltatja: 27. Ttel. Egy vges T halmaz feletti tetszleges r regulris kifejezshez megadhat olyan FA vges felismer automata amely az r ltal lert nyelvet fogadja el. Bizonyts. A ttel els bizonytsa ugyancsak S. C. Kleene eredmnye 1956-bl. Mi egy V. M. Gluskovtl szrmaz egyszer eljrst ismertetnk, amely elgg gazdasgos is abban az rtelemben, hogy az esetek tbbsgben a minimlishoz kzeli automatt eredmnyez. Msrszt lehetv teszi, hogy az adott vges sok, regulris kifejezssel megadott regulris nyelv esetn egyszerre szerkessznk meg egy olyan vges automatt, amelyben a nyelvek mindegyike elllthat (ltalban az llapothalmaz ms-ms rszhalmazaival). A mdszer lnyege, hogy szmba vesszk azoknak a szavaknak a struktrjt, amelyek az adott nyelvek kzl legalbb egyikben elfordulnak. Az eljrs ismertetse sorn a knnyebb megrts kedvrt egy pldt is kidolgozunk. Legyenek L1, L2, , Lk olyan nyelvek a T={a(1), a(2), , a(n)} bc felett (az 1, 2, , n itt nem kitevt, hanem indexet jelentenek), amelyek regulris kifejezsekkel vannak megadva. A mdszer alkalmazsa eltt a nyelvalgebra alapmveleteire megismert mveleti azonossgok alkalmazsval hozzuk a regulris kifejezseket minl rvidebb alakra. Ezt kveten indexeljk a regulris kifejezsekben elfordul betket balrl jobbra haladva gy, hogy az azonos betk klnbz elfordulsi helykn ms-ms indexet kapjanak.

5.46. plda - Automata megadsa regulris kifejezshez


Legyenek az ellltand nyelvek L1=aa*, L2=bb*, L3=(aa*b+bb*a)(a+b)*. Ekkor egy lehetsges indexels eredmnye: L1=a1a2*, L2=b3b4*, L3=(a5a6*b7+b8b9*a10)(a11+b12)*. Legyenek u s v indexelt betk. Azt mondjuk, hogy az u indexelt bet megelzi a v indexelt bett, jelekben: uv, ha az u index nlkli u ' s v index nlkli v ' formjhoz ltezik olyan p sz, mely benne van legalbb egy adott Li(1 i k) nyelvben s elll p=wu 'v 'z alakban valamely w, zT*- ra. Az u indexelt bett kezdbetnek nevezzk, ha index nlkl formja els betje legalbb egy olyan sznak, amely legalbb egy Li(1 i k)- ben benne van. Vgl, az u indexelt bezt zrbetnek hvunk, ha index nlkli formja utols betje olyan sznak, mely legalbb egy Li(1 i k)- ben benne van. Az 5.46. plda - Automata megadsa regulris kifejezshez megoldsnak folytatsa: betk osztlyozsa Pldnkban a kezdbetk: a1, b3, a5, b8. Zrbetk: a1, a2, b3, b4, b7, a10, a11, b12. Emellett: a1a2; a2a2; b3b4; b4b4; a5a6, b7; a6a6, b7; b7a11, b12; b8b9, a10; b9b9, a10; a10a11, b12; a11a11, b12; b12a11, b12;

Ezek utn a keresett vges felismer FA=(Q, T, q0, d, F) automatt a kvetkez mdon definiljuk: 111

Regulris nyelvek Legyen q0 tetszleges szimblum. Legyen ezutn d(q0, a(i)) minden i=1, , n- re az a(i) bet azon indexelt vltozatainak azon q1(i) halmaza, melyek kezdbetk. Ily mdon definiljuk elszr a q1(1), q1(2), , q1(n) halmazokat mint FA- beli llapotokat. Megjegyezzk, hogy ha valamelyik T- beli a(i) bet egyik indexelt vltozata sem kezdbet, akkor q(i) az res halmaz. A tbbi llapotot rekurzival definiljuk a kvetkez mdon: Ha mr egy q llapot definilva van, akkor minden i=1, , n- re a d(q, a(i)) llapot legyen az a(i) bet azon indexelt vltozatainak halmaza, melyeket megelz legalbb egy q- beli bet. (Ez a q- beli indexelt bet termszetesen nem szksgkpp az a(i) bet indexelt vltozata.) Termszetesen elfordulhat az is, hogy az a(i) betnek nincs egyetlen ilyen indexelt vltozata sem, s ekkor d(q, a(i)) az res halmaz. Az is elfordulhat, hogy q maga is az res halmaz. Ezesetben d(q, a(i))=q fog fennllni a konstrukcink rtelmben. Vilgos, hogy az gy definilt FA automata inicilisan sszefgg, azaz a kezdllapotbl alkalmas bemen szavakkal brmely llapota elrhet. Az is vilgos, hogy vges, hisz llapotainak szma legfeljebb annyi mint a bemen bc sszes rszhalmazainak halmaza, azaz 2n+1. Vgl, konstrukcink alapjn minden pLi, i=1, , k nem ressz esetn a p sz az gy megkonstrult automatt a kezdllapotbl egy olyan llapotba viszi t, melynek legalbb egy indexelt betje az Li nyelv zrbetje. Ugyancsak konstrukcink alapjn lthat, hogy ha qLi akkor ez nem ll fenn. Teht minden i=1, , k- ra az Li{} nyelv elllthat az FA automatban azzal az Fi halmazzal, amely azokbl az llapotokbl ll, melyek legalbb egy Li- beli zrbett tartalmaznak. Amennyiben az ressz eleme Li- nek, akkor Fi- hez mg hozz kell venni a q0 kezdllapotot is. Az 5.46. plda - Automata megadsa regulris kifejezshez folytatsa: a megkonstrult automata: Pldnkban az FA automata megszerkesztse gy alakul: d(q0, a)={a1, a5}=q1, d(q0, b)={b3, b8}=q2, d(q1, a)={a2, a6}=q3, d(q1, b)={b7}=q4, d(q2, a)={a10}=q5, d(q2, b)={b4, b9}=q6, d(q3, a)={a2, a6}=q3, d(q3, b)={b7}=q4, d(q4, a)={a11}=q7, d(q4, b)={b12}=q8, d(q5, a)={a11}=q7, d(q5, b)={b12}=q8, d(q6, a)={a11}=q7, d(q6, b)={b12}=q8, d(q7, a)={a11}=q7, d(q7, b)={b12}=q8, d(q8, a)={a11}=q7, d(q4, b)={b12}=q8.

A kapott q0 kezdllapot automata tmenet tblzata: FA a b q0 q1 q2 q1 q3 q4 q2 q5 q6 q3 q3 q4 q4 q7 q8 q5 q7 q8 q6 q5 q6 q7 q7 q8 q8 q7 q8

Ebben az automatban elllthat az L1 nyelv az F1={q1, q3} vgllapothalmazzal, az L2 nyelv az F2={q2, q6} vgllapothalmazzal, az L3 nyelv az F3={q4, q5, q7, q8} vgllapothalmazzal. Ezzel teht belttuk, hogy a regulris kifejezsek ltal lert nyelvosztly ppen a vges automatkkal felismerhet nyelvek osztlya, vagyis a Chomsky-fle 3. tpus nyelvek osztlya. 112

Regulris nyelvek Ezek szerint egy regulris nyelvet megadhatunk regulris nyelvtannal, vges (determinisztikus vagy nemdeterminisztikus) felismer automatval vagy regulris kifejezssel (illetve szintaxis grffal a Szintaxis grf alfejezetben ismertetett mdon).

5.8. Vges automatk ltal induklhat lekpezsek


Ebben a rszben a vges automatk ltal induklhat lekpezseket (lsd Az automatk ltal induklt lekpezsek fejezet) a regulris nyelvekkel kapcsolatosan vizsgljuk. rvnyes a kvetkez llts. 3. Segdttel. Tetszleges :T* V* automata lekpezs esetn egy bV akkor s csak akkor lesz valamely wT*- ra a (w) kpsz valamely betje, ha van olyan w 'T*, hogy b a (w ') kpsz utols betje. Bizonyts. Legyen :T* V* tetszleges automata lekpezs, s ttelezzk fel, hogy valamely wT* esetn a bY bet elfordul a (w) kpszban. Ekkor (w) elll (w)=pbr alakban, ahol p, rV*. Mivel hossztart, |w|=|(w)|. gy w elll w=uav alakban, ahol |u|=|p|, aT s |v|=|r|. Radsul a hossztart tulajdonsg miatt (ua) s pb hossza is szksgkpp megegyezik. Msrszt kezdszelet tart, azaz (ua)=pb. Ha teht bV elfordul egy kpszban, akkor elfordul egy (esetleg msik) kpsz utols betjeknt is. A tovbbiakban olyan :T* V* automata lekpezsekre szortkozunk, ahol minden bV elfordul legalbb egy wT* sz kpszavban. Fenti segdttelnk rtelmben ekkor minden bV el fog fordulni legalbb egy wT* sz kpszavnak utols betjeknt. Legyenek T s V vges halmazok s legyen :T* V* tetszleges (nem felttlen vges llapot) automata lekpezs. Megmutatjuk, hogy jellemezhet nyelvek egy alkalmas rendszervel. Tetszleges bV- re legyen Lb={wT*|(w)=b}. Ms szval, az Lb legyen azoknak a T*- beli w szavaknak a halmaza, amelyek a lekpezsnl a b- re vgzd szba esnek t. Tekintsk az ilyen Lb nyelvek halmazt: H={Lb|bV}. H eleget tesz a kvetkez feltteleknek: (a) H vges sok elembl ll. (b) b, b 'V:bb 'LbLb '=. (c) Minden nem res wT*- hoz van olyan bV, hogy wLb. (d) A ressz nincs benne egyik Lb- ben sem. Az (a)-(d) felttelek jelentse az, hogy az Lb(bV) nyelvek a T*{} halmaz egy vges index osztlyozst alkotjk. Az (a)-(d) feltteleknek eleget tev nyelvrendszereket automata nyelvrendszereknek nevezzk. 28. Ttel. Ha a T s V vges halmazok, akkor minden :T* V* automata lekpezshez hozzrendelhet a T feletti nyelvalgebra egy H automata nyelvrendszere. Megfordtva, a vges T bc feletti nyelvalgebra brmely H automata nyelvrendszere a vges V halmaz elemeinek jellstl eltekintve egyrtelmen meghatrozza azt a :T* V* automata lekpezst, melyre H=H. Bizonyts. A ttel els felt mr belttuk. Msodik felnek bizonytshoz legyen H az LAY nyelvalgebra egy tetszleges automata nyelvrendszere s legyen H={H1, , Hn}. Legyen tovbb V={1, , n} s hatrozzuk meg azt a :T* V* automata lekpezst, melyre tetszleges w=a1akT*, a1, , akT sz esetn (w)=i1ik, ahol a1Hi1, a1a2Hi2, , a1akHik. Ez a lekpezs nyilvn automata lekpezs s r H=H teljesl. A ttel azt fejezi ki, hogy a vges T s V halmazokhoz tartoz :T* V* alak automata lekpezsek a V elemeinek jellstl eltekintve egy-egy rtelm mdon jellemezhetk nyelvek 113

Regulris nyelvek bizonyos rendszervel. gy valban eljutottunk az automata lekpezsek olyan megadsi mdjhoz, mely a korbban kirtt feltteleinket teljesti. Egy A automathoz tartoz KA kanonikus nyelvrendszeren az A automata ltal induklt lekpezshez tartoz automata nyelvrendszert rtjk. Kpletben: KA=HA. (Itt feltesszk, hogy A inicilis automata, melynek bemen s kimen jelhalmaza vges.) A defincibl kzvetlenl addik: 29. Ttel. Egy vges T s V halmazokkal rendelkez A=(Q, T, V, q0, d, f) Mealy automata akkor s csak akkor induklja a :T* V* automata lekpezst, ha a - hez tartoz automata nyelvrendszer egybeesik az A- hoz tartoz kanonikus nyelvrendszerrel. Ebben a fejezetben eddig vgig feltteleztk, hogy az T s V halmazok vgesek. Most tovbb szktjk vizsglataink krt s az llapothalmaz vgessgt is kiktjk. Ms szval, a tovbbiakban csupn vges automatkkal foglalkozunk. Arra vonatkozan, hogy milyen lekpezsek induklhatak vges automatkkal, rvnyes a kvetkez ttel. 30. Ttel. (Vges Automatk Alapttele) A vges T s V halmazok esetn egy :T* V* automata lekpezs akkor s csak akkor induklhat vges automatban, ha a - hez tartoz H automata nyelvrendszer minden eleme regulris nyelv. Bizonyts. A szksgessg igazolshoz tegyk fel, hogy T s V vges halmazok, s a :T* V* automata lekpezs induklhat a vges A=(Q, T, V, q0, d, f) automatval. Akkor Gill ttele szerint van olyan vges A '=(Q ', T, V, q0, d ', g) Moore-automata is, mely ugyancsak induklja a lekpezst. Minden bV- re legyen Q'b={q 'Q '|g(q ')=b}, azaz legyen Q'b az A ' automata b llapotjel llapotainak halmaza s jellje L'b azt a nyelvet, mely az A ''=(Q ', T, q0, d ') kimen jel nlkli automatban a Q'b halmazzal elllthat (vagyis a (Q ', T, q0, d ', Q'b) ltal elfogadott

nyelv), azaz legyen L'b=LA ''Q'b. Mivel az A vges, az analzisre vonatkoz ttel alkalmazsval kapjuk, hogy L'b minden bV- re regulris nyelv. Ezrt a szksgessghez azt kell csupn megmutatni, hogy ha H={Lb|bV}, akkor minden bV- ra Lb=L'b. Ez pedig a kvetkez szmolssal addik: wLb(w)=bA(w)=bA '(w)=bg(d(q0, w))=bd(q0, w)Q'bwL'b. Ezzel a szksgessg igazolst befejeztk. Az elegendsg kimutatshoz tegyk fel, hogy a vges T s V halmazokra megadott :T* V* automata lekpezs H={Lb1, , Lbm} automata nyelvrendszerhez ltezik olyan A ''=(Q, T, q0, d) inicilis kimen jel nlkli automata, amelyben az Lb1, , Lbm nyelvek rendre elllthatk a Q llapothalmaz Q1, , Qm rszhalmazaival. Bvtsk ki az A ''=(Q, T, q0, d) automatt az A=(Q, T, V, q0, d, g) kimen jellel br Moore-automatv a g jelfggvny kvetkez defincijval: Legyen g(q0) egy tetszlegesen rgztett V- beli elem, tovbb legyen minden qQi, i{1, , m} mellett g(q)=bi. Minthogy H automata nyelvrendszer, azrt a Q1, , Qm pronknt diszjunkt halmazok. gy g defincija egyrtelm. Megmutatjuk, hogy az A Moore-automata induklja a lekpezst. Ehhez az elzek alapjn elegend kimutatni, hogy a KA={Rbi|biV} kanonikus nyelvrendszer egybeesik a H automata nyelvrendszerrel. Ez pedig a kvetkez szmolssal addik: wRbiA(w)=big(d(q0, w))=bid(q0, w)QiwLbi. Ezzel az elegendsg igazolst is befejeztk. Az analzisre s a szintzisre vonatkoz ttel a most bebizonytott ttellel egytt - konstruktv bizonytsukat konkrt esetre alkalmazva - algoritmust szolgltat az analzis s a szintzis eredeti rtelemben vett megoldsra.

5.47. plda - Automata nyelvrendszer


Legyen T={a, b} s az T*{} flcsoportot bontsuk fel a kvetkez mdon: L1 legyen az sszes, csupa a jelbl ll szavak halmaza, L2 legyen az sszes, csupa b jelbl ll szavak halmaza, 114

Regulris nyelvek L3 legyen az sszes tbbi szavak halmaza. Ez a nyelvrendszer automata nyelvrendszer, mgpedig minden eleme regulris nyelv, hiszen nyilvn L1=aa*, L2=bb*, L3=(aa*b+bb*a)(a+b)*. Vegyk szre, hogy a vges automatk szintzisnl trgyalt Gluskov mdszert pp erre a hrom nyelvre alkalmaztuk, gy az ott kapott 9 llapot A automata jtszhatja az alapttel elegendsge bizonytsa sorn A ''- vel jellt kimen jel nlkli automata szerept. Ha most ezt az automatt kimen jellel br automatv egsztjk ki gy hogy az L1, L2, L3 nyelvekhez rendre hozzrendeljk az u, v, w szimblumokat, s a jelfggvnyt az alapttel elegendsge bizonytsnl ltott mdon definiljuk, akkor az albbi Moore-automathoz jutunk, mely az L1, L2, L3 nyelvrendszerrel megadott lekpezst induklja. Az Aufenkamp-Hohn algoritmussal meghatrozhat az ezen lekpezst indukl minimlis (ngy llapot) automata. Ennek ismertetst mellzzk. A a b Eredmnyeink alapjn algoritmust tudunk konstrulni annak eldntsre is, hogy kt regulris kifejezs ekvivalens-e, azaz egy s ugyanazon regulris nyelv regulris kifejezseirl van-e sz. Gluskov mdszervel ugyanis mindketthz meg tudunk szerkeszteni egy-egy inicilis kimen jel nlkli automatt, melyek llapotaik alkalmas rszhalmazval ezeket a nyelveket felismerik. Vehetjk a vges determinisztikus felismer automatkat s minimalizlhatjuk ket. Ezutn mr csak azt kell eldntennk, hogy a kapott kt automata llapot-izomorf-e egymssal gy, hogy egy alkalmas izomorfizmus a kezdllapotokat egymshoz rendeli. Vges automatkra ez nyilvn eldnthet. Ha igen a vlasz, akkor a kt regulris kifejezs ekvivalens, klnben nem. A fentiek alapjn algoritmus adhat egy regulris kifejezssel megadott regulris nyelvhez a legrvidebb vele ekvivalens regulris kifejezs meghatrozshoz is: Vgig kell vizsglni az sszes, a mi regulris kifejezsnknl nem hosszabb olyan regulris kifejezseket, melyek sszes vltozi legalbb egyszer elfordulnak az adott regulris kifejezsben. A vizsglat sorn ki kell vlasztani azokat a regulris kifejezseket, melyek ekvivalensek az adott regulris kifejezssel, s a legrvidebbet (vagy ha tbb ilyen van akkor az egyik legrvidebbet) meg kell tartanunk. Cl lehet egy adott regulris kifejezshez megtallni egy vele ekvivalens olyan regulris kifejezst, melyben terminlisok a lehet legkevesebbszer fordulnak el. Nyilvn csak azok a regulris kifejezsek jhetnek szmtsba, melyekben a terminlisok elfordulsi szma nem nagyobb, mint az adott regulris kifejezsben. Ha ez a szm s a zrjel-prok szma ismert, akkor fels korltot tudunk adni a vizsgland regulris kifejezsek hosszra. Nevezetesen, legfeljebb annyi itercis jelet tartalmazhat, mint a zrjel-prok szma plusz a terminlisok elfordulsi szma. Az sszeadsjelek s a szorzsok szmnak sszege ennl az rtknl kisebb, mert a legels elforduls el (ami vagy egy kezd zrjel, vagy egy terminlis) nem tesznk mveleti jelet. Belthat, hogy a nem elhagyhat zrjelprok szma kisebb mint a terminlisok elfordulsi szma. Vagyis ha csupn nem elhagyhat zrjeleket tteleznk fel, a minimlis terminlis elfordulsi szm regulris kifejezs (vagy ha tbb van akkor ezek egyike) meghatrozhat. tetsz. q0 q1 q2 u q1 q3 q4 v q2 q5 q6 u q3 q3 q4 w q4 q7 q8 w q5 q7 q8 v q6 q5 q6 w q7 q7 q8 w q8 q7 q8

5.9. Szproblma
A regulris nyelvek esetn a szproblma nyagyon hatkonyan megoldhat. Ha megszerkesztnk egy az adott nyelvet elfogad determinisztikus vges automatt, akkor annak segtsgvel a szt betnknt elolvasva vgig kvetve az automata futst (legksbb) a sz vgre rve megkapjuk a vlaszt a krdsre: ha vgllapotba jutottunk a sz vgn, akkor a sz benne van az adott regulris nyelvben; ha nem vgllapotba jutottunk, vagy (parcilis automata esetn) idkzben elakadtunk a feldolgozssal, akkor a keresett sz nincs a nyelvben. 115

Regulris nyelvek Teht a problma vals idben megoldhat, ahny betbl ll az input sz, annyi lps utn tudjuk a vlaszt. Hasonlan hatkony algoritmus kszthet, ha G=(N, T, S, H) ers normlformj regulris nyelvtannal adott a nyelv. Ekkor egy lineris felismersi mtrixot kszthetnk (a mtrix mezibe (celliba) a nemterminlisok rszhalmazai fognak kerlni). Legyen a w elemzend sz hossza n, ekkor egy 1 soros n+1 mezbl ll sormtrixot ksztnk, a mezket 0-tl n- ig szmozzuk. Az i- edik mez fl odarjuk az input sz i- edik betjt, ai- t, a 0. mezbe pedig a nyelvtan S mondatszimblumt. Ezutn a cellkat balrl jobbra haladva tltjk ki: az i- edik (0<i<n) cellba berunk egy A nemterminlist, pontosan akkor ha az (i-1)-edik cellban van olyan B nemterminlis, amelyre B aiAH. Az n- edik cella kitltse: akkor runk egy + jelet a cellba, ha van olyan nemterminlis B az (n-1)edik cellban, melyre B anH. A w sz pontosan akor van benne az L(G) generlt nyelvben, ha az n- edik cellba + kerlt. Az ismertetett algoritmus ppen a nemdeterminisztikus ressztmenet nlkli automata lehetsges futsait szimullja az adott bemen szra.

5.10. Itercis lemma regulris nyelvekre


A kvetkez ttel egy hatkony eszkz lehet annak megmutatsra, hogy valamely nyelv nem regulris. A ttelt itercis- vagy pumpl lemma nven szoks emlegetni. 31. Ttel. Legyen L regulris nyelv. Ekkor ltezik az L- hez olyan n konstans, hogy ha z egy n- nl hosszabb L- beli sz, akkor alkalmas u, v, w szavakra teljeslnek a kvetkezk: z=uvw, |uv| n, |v|>0, tovbb tetszleges nemnegatv i- re uviwL. Bizonyts. Legyen L regulris, ekkor legyen FA=(Q, T, q0, d, F) minimlis determinisztikus automata gy, hogy L(FA)=L. Legyen n=|Q|+1. Ekkor brmely zL, |z|>n szt is tekintjk az automata bemenetnek, biztosan van olyan llapot, amelyet FA a sz elfogadsa sorn legalbb ktszer rint, st az els n lps alatt is lennie kell ilyen q llapotnak. Bontsuk fel z szt ennek megfelelen: legyen u a z olyan prefixe amely a kezdllapotbl (elszr) q- ba viszi az automatt, v pedig olyan, amely az automatt q- bl indulva ugyancsak q- ba viszi (msodszor). Ekkor |uv| n fennll. Mivel a q kt elfordulsa kzt az automatnak legalbb egy lpse trtnt, azaz legalbb egy input bett beolvasott |v|>0 is teljesl. Amennyiben az automata a q llapotbl indulva a w szt olvassa, elfogad llapotba kerl. Ennek megfelelen az uw inputot FA elfogadja. Hasonlan minden uviw ( i>0) alak szt is elfogad, hiszen u a q llapotba viszi, ahonnan indulva a vi szavak elolvassa utn ugyancsak q llapotba jutunk, vgl innen w egy vgllapotba vezet. A ttel igazolst ezzel befejeztk.

5.48. plda - Itercis lemma alkalmazsa


Legyen L={ambm|m>0}. Felhasznlva a regulris pumpl lemmt, kimutatjuk, hogy ez a nyelv nem regulris. Tegyk fel hogy az, s jelljn n egy konstanst, mely mellett L kielgti a regulris pumpl lemma tulajdonsgait. Ilyen n- t viszont nem fogunk tallni, hiszen az anbn sz minden olyan uvw felbontsra, melyre |uv| n s |v|>0, azt kapjuk, hogy uw=an-|v|bn, azaz uwL. (Hasonlan, minden i>1- re uviw=an+(i-1)|v|bnL.) Ezt az ellentmondst csak az indirekt feltevsnk hamissga okozhatja, teht L nem regulris. Egybknt a pldabeli nyelv a G=({S}, {a, b}, S, {S aSb, Sab}) lineris nyelvtannal generlhat. 116

Regulris nyelvek

5.11. Zrtsgi tulajdonsgok


A regulris nyelvek zrtak a regulris mveletekre nzve, ami a regulris kifejezsekkel val megadsukra emlkezve magtl rtetd. Ezzel szemben, ha csak a regulris nyelvtanokkal, vagy vges automatkkal tudnnk lerni ezeket a nyelveket a problma nem tnne ilyen egyszernek. A kvetkez ttel bizonytsban konstrukcit adunk a nyelvmveletekkel ellltott nyelvek nyelvtanokkal trtn ellltsra. 32. Ttel. A regulris nyelvek osztlya zrt a regulris mveletekre nzve, azaz tetszleges G1=(N1, T, S1, H1) s G2=(N2, T, S2, H2) regulris nyelvtanokhoz megkonstrulhatk olyan nyelvtanok amelyek L(G1)L(G2), L(G1)L(G2), illetve (L(G1))* nyelveket generlnak. Bizonyts. A bizonyts sorn az ltalnossg csorbtsa nlkl feltehetjk, hogy N1N2=. Uni (egyests). Legyen S olyan j nemterminlis, amely eddig nem szerepelt sem N1- ben, sem pedig N2- ben. A G+=(N1N2{S}, T, S0, H1H2{S S1, S S2}) regulris nyelvtan ekkor az L1L2 nyelvet generlja. A G+ nyelvtanban az S mondatszimblumra kt szably alkalmazhat, vagy a G1 vagy a G2 mondatszimblumt vezetjk be, ezutn viszont N1 s N2 diszjunktsga miatt csak a vlasztott nyelvtan szablyai lesznek alkalmazhatak. Konkatenci. Legyen G=(N1N2, T, S1, H2{A vB | A vBH1, BN1}{A vS2 | A vH1, vT*}). Vilgos hogy ez a nyelvtan regulris, msrszt pontosan akkor amikor az els nyelvtanban befejezdne egy levezets, az j nyelvtanban az els nyelvbeli levezetett sz utn megjelenik a msodik nyelvtan mondatszimbluma a mondatformban, gy G az L(G1)L(G2)- t generlja. Kleene iterci (a konkatenci lezrsa). Legyen SN1, tovbb legyen H ' az a szablyrendszer, amiben helyettestjk a H1 minden Av ( AN1, vT*) szablyt az AvS szabllyal. Az gy kapott H ' szablyhalmazzal s S- sel kpezett G*=(N1{S}, T, S, HH '{S , S S1}) nyelvtan az (L(G1))* nyelvet generlja s regulris. A bizonytsban hasznlt konstrukcik, illetve az alapnyelveket generl egyszer regulris nyelvtanok (pl. ({S}, {a, b, c}, S, {S a})) segtsgvel brmily regulris kifejezshez legyrthatjuk azt a regulris nyelvtant, amely a kifejezssel lert nyelvet generlja. A tovbbiakban halmazmveletekre val zrtsgot fogunk bizonytani determinisztikus elfogad automatt felhasznlva. 33. Ttel. A regulris nyelvek halmaza zrt a metszet mveletre. Bizonyts. Legyen adott kt regulris nyelv az ket elfogad determinisztikus automatkkal: FA=(Q, T, q0, d, F) s FA '=(Q ', T, q'0, d ', F ') ekkor megkonstruljuk azt az automatt, amely az L(FA)L(FA ') nyelvet fogadja el: legyen FA=(QQ ', T, (q0, q'0), d, FF '), ahol d((q, q '), a)=(d(q, a), d '(q ', a)) minden qQ, q 'Q ', aT esetn. Az automata llapotprokkal dolgozik, a pr els tagja FA- t, a msodik tagja FA '- t szimullja, elfogadni pontosan akkor fog, ha mindkt szimullt automata egyszerre fogadna el. 34. Ttel. A regulris nyelvek halmaza zrt a komplementerkpzs mveletre. 117

Regulris nyelvek Bizonyts. Legyen adott a regulris nyelv a teljesen definilt determinisztikus elfogad automatval, FA=(Q, T, q0, d, F)- el. Ekkor egy wT* szt az automata pontosan akkor fogad el, ha d*(q0, w)F. Legyen teht FAc=(Q, T, q0, d, QF), ekkor minden szra pontosan ugyanaz a futs lesz, ami az eredeti FA automatban, azzal a klnbsggel, hogy ppen akkor fog a futs vgn az j automata elfogadni, amikor a rgi nem fogadott el, s fordtva.

5.49. plda - Regulris nyelvtan megadsa regulris kifejezshez 1. feladat


Adjuk meg az L=a*b b*a regulris kifejezssel megadott nyelvet generl regulris nyelvtant! Megolds: (I.) A feladat megoldshoz els lpsben vezessnk be minden terminlis bethz egy regulris nyelvtant, mely kizrlag az adott terminlist generlja. Jelen esetben a kiindul nyelvtanok a kvetkezk: Ga=({A},{a,b},A,{A a}), Gb=({B},{a,b},B,{B b}). (II.) Ezek utn a kifejezsben bellrl kifel haladva ptjk fel a nyelvtant a kvetkezkppen: 1. Adott G=(N,T,S,H) nyelvtan esetn az L(G)* nyelvet generl nyelvtant megkaphatjuk, ha az sszes A p alak szably mell - ahol p T*, - bevezetjk az A pS alak szablyt is, valamint bevezetjk az S2 j mondatszimblumot s az S2, S2 S szablyokat. Jelen esetben: Ga*=({A,S},{a,b},S,{A a,A aA, S,S A}), Gb*=({B,S},{a,b},S,{B b,B bB, S,S B}). 2. Adott G1=(N,T,S,H) s G2=(N',T,S2,H') nyelvtanok esetn - ahol N N'= az L(G)=L(G1)L(G2) konkatenlt nyelvet generl nyelvtan ellltshoz els lpsben az sszes H-beli A p szablyt - ahol pT* - az A pS2 szablyra cserljk. Az gy kapott szablyhalmazt jelljk H ''-vel. Ezek utn G=(N N',T,S,H'' H'). Jelen esetben: Ga*b=({A,S,B},{a,b},S,{A aB,A aA, S B, S A,B b}), Gb*a=({B,S,A},{b,a},S,{B bA,B bB, S A,S B,A a}). 3. Adott G1=(N,T,S,H) s G2=(N',T,S2,H') nyelvtanok esetn - ahol NN '= - az L(G)=L(G1) L(G2) nyelvet generl nyelvtan ellltshoz a G=(N N' {S3}, T, S3, H H' {S3 S, S3 S2}) nyelvtan megfelel lesz, ahol S3 nem eleme az N, N', T halmazok egyiknek sem. Jelen esetben a 2. pontban megadott Ga*b s Gb*a nyelvtanok esetn nem teljesl az a felttel, miszerint a nemterminlisok halmazai diszjunktak, ezrt az egyik nyelvtanban elszr t kell jellni a nemterminlisokat. Legyen pldul G'a*b=({C,S2,D},{a,b},S2,{C aD,C aC, S2 D,S2 C,D b})! Termszetesen a nemterminlisok tjellse nem befolysolja a generlt nyelvet, azaz L(G'a*b)=L(Ga*b). Ezek utn mr meg tudjuk adni a Ga*bb*a=({C,S2,D,B,S,A,S3},{a,b},S3, {C aD, C aC, S2 D, S2 C, D b, B bA, B bB, S A, S B, A a, S3S2, S3 S}) regulris nyelvtant, mely pontosan az L nyelvet generlja.

118

Regulris nyelvek

5.50. plda - Regulris nyelvtan megadsa regulris kifejezshez 2. feladat


Adjuk meg az L=(ab)* regulris kifejezssel megadott nyelvet generl regulris nyelvtant!

Megolds: (I.) Ga=({A},{a,b},A,{Aa}), Gb=({B},{a,b},B,{Bb}), (II.) 1. Gab=({A,B,S},{a,b},S,{Aa, Bb,SA,SB}), 2. G(ab)*=({A,B,S,S2},{a,b},S2,{Aa, AaS, Bb, BbS, SA, SB, S2, S2S}).

5.51. plda - Regulris nyelvtan megadsa regulris kifejezshez 3. feladat


Adjuk meg az L=ab*c regulris kifejezssel megadott nyelvet generl regulris nyelvtant!

Megolds: (I.) Ga=({A},{a,b,c},A,{Aa}), Gb=({B},{a,b,c},B,{Bb}), Gc=({C},{a,b,c},C,{Cc}). (II.) 1. Gb*=({B,S},{a,b,c},S,{Bb, BbB, S, SB}) 2. Gab*=({A,B,S},{a,b,c},A,{AaS, Bb, BbB, S, SB}) 3. Gab*c=({A,B,S,C},{a,b,c},A,{AaS, BbC, BbB, SC, SB, Cc}).

5.52. plda - Regulris nyelvtan megadsa regulris kifejezshez 4. feladat


Adjuk meg az L=(ab*)* regulris kifejezssel megadott nyelvet generl regulris nyelvtant!

Megolds: (I.) Ga=({A},{a,b},A,{Aa}), Gb=({B},{a,b},B,{Bb}). (II.) 1. Gb*=({B,S},{a,b},S,{Bb, BbB, S, SB}), 2. Gab*=({A,B,S},{a,b},A,{AaS, Bb, BbB, S, SB}), 3. G(ab*)*=({A,B,S,S2},{a,b},S2,{AaS, Bb, BbA, BbB, S, SA, SB, S2, S2A}).

119

Regulris nyelvek

5.53. plda - Regulris nyelvtan megadsa regulris kifejezshez 5. feladat


Adjuk meg az L=a*b b* regulris kifejezssel megadott nyelvet generl regulris nyelvtant! Megolds: (I.) Ga=({A},{a,b},A,{Aa}), Gb=({B},{a,b},B,{Bb}). (II.) 1. Ga*=({A,S},{a,b},S,{Aa, AaA, S, SA}), 2. Ga*b=({A,S,B},{a,b},S,{AaB, AaA, SB, SA, Bb}), 3. Gb*=({B,S},{a,b},S,{Bb, BbB, S, SB}), 4. G'b*=({D,Z},{a,b},Z,{Db, DbD, Z, ZD}), 5. Ga*bb*=({A,S,B,D,Z,S2},{a,b},S2,{AaB, AaA, SB, SA, Bb, Db, DbD, Z, ZD, S2S, S2Z}).

5.54. plda - Regulris nyelvtan megadsa regulris kifejezshez 6. feladat


Adjuk meg az L=a*b*c* regulris kifejezssel megadott nyelvet generl regulris nyelvtant!

Megolds: (I.) Ga=({A},{a,b,c},A,{Aa}), Gb=({B},{a,b,c},B,{Bb}), Gc=({C},{a,b,c},C,{Cc}). (II.) 1. Ga*=({A,S},{a,b,c},S,{Aa, AaA, S,SA}), 2. Gb*=({B,S},{a,b,c},S,{Bb, BbB, S, SB}), 3. G'a*=({A,S2},{a,b,c},S2,{Aa, AaA, S2, S2A}), 4. Ga*b*=({A,S2,B,S,S3},{a,b,c},S3,{Aa, AaA, S2, S2A, Bb, BbB, S, SB, S3S2, S3S}), 5. Gc*=({C,S},{a,b,c},S,{Cc, CcC, S, SC}), 6. G'c*=({C,S4},{a,b,c},S4,{Cc, CcC, S4, S4C}), 7. Ga*b*c*=({A,S2,B,S,S3,C,S4,S5},{a,b,c},S5,{Aa, AaA, S2, S2A, Bb, BbB, S, SB, S3S2, S3S, Cc, CcC, S4, S4C,S5S3, S5S4}).

120

Regulris nyelvek

5.55. plda - Regulris nyelvtan megadsa regulris kifejezshez 7. feladat


Adjuk meg az L=(abc)*(ba)* regulris kifejezssel megadott nyelvet generl regulris nyelvtant!

Megolds: (I.) Ga=({A},{a,b,c},A,{Aa}), Gb=({B},{a,b,c},B,{Bb}), Gc=({C},{a,b,c},C,{Cc}). (II.) 1. Gab=({A,B},{a,b,c},A,{AaB, Bb}), 2. Gba=({B,A},{a,b,c},B,{BbA, Aa}), 3. Gabc=({A,B,C,S},{a,b,c},S,{AaB, Bb, Cc, SA, S C}), 4. G(abc)*=({A,B,C,S,S2},{a,b,c},S2,{AaB, Bb, BbS, Cc, CcS, SA, SC, S2, S2S}), 5. G(ba)*=({B,A,S},{a,b,c},S,{BbA, Aa, AaB, S, SB}), 6. G'(ba)*=({D,C,Z},{a,b,c},Z,{DbC, Ca, CaD, Z, ZD}), 7. G(abc)*(ba)*=({A,B,C,S,S2,D,C,Z},{a,b,c},S2, {AaB, BbZ, BbS, CcZ, CcS, SA, SC, S2Z,S2S, DbC, Ca, CaD, Z, ZD}).

5.56. plda - Regulris nyelvtan megadsa regulris kifejezshez 8. feladat


Adjuk meg az L=(a*ba*aa)* regulris kifejezssel megadott nyelvet generl regulris nyelvtant! Megolds: (I.) Ga=({A},{a,b},A,{Aa}), Gb=({B},{a,b},B,{Bb}). (II.) 1. Ga*=({A,S},{a,b},S,{Aa,AaA, S,SA}), 2. Ga*b=({A,S,B},{a,b},S,{AaB,AaA, SB,SA,Bb}), 3. G'a*=({C,Z},{a,b},Z,{Ca,CaC, Z,ZC}), 4. Ga*ba*=({A,S,B,C,Z},{a,b},S,{AaB, r;aA,SB,SA,BbZ, Ca, CaC, Z, ZC}), 5. G'a=({E},{a,b},E,{Ea}), 6. Gaa=({A,E},{a,b},A,{AaE,Ea}), 7. G'aa=({F,E},{a,b},F,{FaE,Ea}), 8. Ga*ba*aa=({A,S,B,C,Z,F,E,S2},{a,b},S2,{AaB, AaA,SB,SA, BbZ, Ca,CaC, Z, Z C, FaE,Ea,S2S, S2F}), 9. G(a*ba*aa)*=({A, S, B, C, Z, F, E, S2, S3},{a,b}, S3, {AaB, AaA, SB, SA, BbZ, CaS2, CaC, Z S2, ZC, FaE, EaS2,S2S, S2F, S3, S3S2}).

5.12. Irodalmi megjegyzsek


A regulris kifejezseket [Kleene 1956]-ban vezette be s bizonytotta ekvivalencijukat a vges elfogad automatkkal. A regulris mveletekre val zrtsgi tulajdonsgok bizonytsa ugyancsak itt jelent meg. A pumpl lemma a [Bar-Hillel et al. 1961]-ben kzlt eredmny specilis esete. A szproblma megoldsa megtallhat [Moore 1956]-ban. A minimlis automata ellltsra az els algoritmus [Huffman 1954]-ben jelent meg. Habr a regulris nyelvek elmlete s alkalmazsa (pl. Unix opercis rendszereknl) is nagy mltra tekint vissza, a tmakr ma is aktv kutatsi 121

Regulris nyelvek terlet. A regulris kifejezsek uni-normlformja [Nagy 2004] munkban kerlt bevezetsre, nhny ezzel kapcsolatos eredmny [Nagy 2010d]-ben is tallhat; [Afonin, Golomazov 2009]ben bizonytottk, hogy a regulris nyelvek unibonyolultsgnak meghatrozsa, mint feladat megoldhat. Az unimentes nyelvek s specilis vges automatk kapcsolatt a [Nagy 2006a] cikk trgyalja.

122

6. fejezet - Lineris nyelvek


A Chomsky-fle nyelvcsaldok kzt a 3. (regulris) s a 2. (krnyezetfggetlen) kztt elhelyezked nyelvcsald. Definci szerint egy nyelvtan akkor lineris, ha krnyezetfggetlen s minden szably jobb oldaln maximum egy nemterminlis ll.

6.1. plda - A ktbets bc feletti palindrmk (vagy tkrszavak) nyelvt generl lineris nyelvtan
Palindromk (olyan szavak amelyek visszafele olvasva megegyeznek sajt magukkal) nyelve a kvetkez lineris nyelvtannal generl: ({S}, {a, b}, S, {S , S a, Sb, S aSa, S bSb}).

6.2. plda - 0n1n nyelv - Gyakorl feladat


Generljuk az {0n1n} nyelvet lineris nyelvtannal. A levezetseket fagrfokkal reprezentlhatjuk itt is, hasonlan a regulris nyelveknl ltott fkhoz, azzal a klnbsggel, hogy a fg (a nemterminlisok ga) mellett mindkt oldalon vezethetnk be terminlis szimblumokat egy ltalnos lineris nyelvtan esetn. A kvetkez brn egy ilyen levezetsi fa tallhat.

6.1. Normlforma
10. Definci. Egy lineris nyelvtant gyenge normlformjnak mondunk, ha minden szablyra a kvetkez alakok egyike teljesl AaB, ABa, Aa, A B, A (aT;A, BN). 35. Ttel. Minden lineris nyelv generlhat gyenge normlformj nyelvtannal. Bizonyts. Hasonlan a regulris nyelvtanok esethez, itt is j nemterminlisok bevezetse segtsgvel helyettestjk a hosszabb szablyokat rvidebbekkel. A alakak kikszblhetek az ressz lemma alapjn, A B alakak is kikszblhetek a regulris normlalaknl ismertetett mdon. Az gy kapott, csak AaB, ABa, Aa alak szablyokat tartalmaz lineris nyelvtanokat, ers normlformjnak nevezzk (itt minden lpsben pontosan egy terminlis kerl levezetsre). 36. Ttel. Minden lineris nyelvtanhoz van vele ekvivalens (a generlt nyelv legfeljebb az res-szban klnbzik), amely ers normlformj. 123

Lineris nyelvek A fenti, levezetsi ft brzol brn a palindromk nyelvt generl ers normlformban lev nyelvtanban plda levezetsknt az abbabba szt vezettk le.

6.3. plda - Ers lineris normlalak 1. plda


Adjunk meg a G=({S,A,B},{a,b},S,H) H={ SababA, ABbba, BaaSbab, Bb, Aabba, AB, BS } nyelvtannal ekvivalens ers lineris normlalak nyelvtant!

Megolds: (I.) Els lpsben megadunk egy G1 nyelvtant, ami ekvivalens a G nyelvtannal s nem szerepelnek benne Yy1y2 ...yn, Yy1y2 ...Yn, YY1y2 ...yn, n 3 alak szablyok. A H szablyhalmaz ilyen alak szablyait helyettestjk j szablyokkal, a tbbi szablyt pedig vltoztats nlkl tvesszk a H1 szablyhalmazba. Minden Yy1y2 ...yn, n 3 alak szablyhoz vezessnk be Z1,Z2, ...,Zn-1 j nemterminlisokat, ahol Zi szerepe az, hogy belle vezetjk le az yi+1 ...yn szt! Ezek utn az sszes Yy1y2 ...yn, n 3 alak szablyt helyettestsk a kvetkez szablyokkal: Yy1Z1, Z1y2Z2, . . . Zn-2yn-1Zn-1, Zn-1yn. Minden Yy1y2 ...Yn, n 3 alak szablyhoz vezessnk be Z1,Z2, ...,Zn-2 j nemterminlisokat, ahol Zi szerepe az, hogy belle vezetjk le az yi+1 ...Yn szt! Ezek utn az sszes Yy1y2 ...Yn, n 3 alak szablyt helyettestsk a kvetkez szablyokkal: Yy1Z1, Z1y2Z2, . . . Zn-3yn-2Zn-2, Zn-2yn-1Yn. Minden YY1y2 ...yn, n 3 alak szablyhoz vezessnk be Z1,Z2, ...,Zn-2 j 124

Lineris nyelvek nemterminlisokat, ahol Zi szerepe az, hogy belle vezetjk le az Y1y2 ...yn-i szt! Teht az sszes YY1y2 ...yn, n 3 alak szablyt helyettestsk a kvetkez szablyokkal: YZ1yn, Z1Z2yn-1, . . . Zn-3Zn-2y3, Zn-2Y1y2. Jelen esetben: G1=({S,A,B,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8},{a,b},S,H1). H1={ SaZ4, Z4bZ5, Z5aZ6, Z6bA, AZ7a, Z7Z8b, Z8Bb, BaaSbab, Bb, AaZ1, Z1bZ2, Z2bZ3, Z3a, AB, BS } (II.)Msodik lpsben megadunk egy G2 nyelvtant, ami ekvivalens a G1 nyelvtannal s lineris normlalak. A G1 nyelvtanbl indulunk ki. A H1 szablyhalmaz Yy1y2 ...yk-1Ykyk+1 ...yn, n 3 alak szablyait helyettestjk j szablyokkal, a tbbi szablyt pedig vltoztats nlkl tvesszk a H2 szablyhalmazba. Minden Yy1y2 ...yk-1Ykyk+1 ...yn, n 3 alak szablyhoz vezessnk be Z1,Z2, ...,Zn-1 j nemterminlisokat! Ezek utn az sszes Yy1y2 ...yk-1Ykyk+1 ...yn, n 3 alak szablyt helyettestsk a kvetkez szablyokkal: Yy1Z1, Z1y2Z2, . . . Zk-2yk-1Zk-1, Zk-1Zkyn, ZkZk+1yn-1, . . . Zn-2Zn-1yk+2, Zn-1Ykyk+1. Jelen esetben: G2=({S,A,B,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12},{a,b},S,H2). H2={ SaZ4, Z4bZ5, Z5aZ6, Z6bA, AZ7a, Z7Z8b, Z8Bb, BaZ9, Z9aZ10, Z10Z11b, Z11Z12a, Z12Sb, Bb, AaZ1, Z1bZ2, Z2bZ3, Z3a, AB, BS } (III.) Harmadik lpsben megadjuk az eredeti nyelvtannal ekvivalens G' ers lineris normlalak nyelvtant. Ehhez kt lpsre van szksg. Els lpsben meghatrozunk egy U(Z) halmazt minden

125

Lineris nyelvek olyan Z nemterminlishoz, mely levezethet legalbb egy msik nemterminlisbl a G2 nyelvtanban s szerepel olyan H2 halmazban lv szably bal oldaln, amelynek jobb oldaln egy terminlis vagy pedig egy terminlis s egy nemterminlis bet ll. Az U(Z) halmaz tartalmazni fogja az sszes olyan nemterminlist, melybl egy vagy tbb lpsben levezethet a Z bet. Jelen esetben: U(B)={A},U(S)={B,A}. Msodik lpsben a H' szablyhalmazba tvesszk a H2 szablyhalmaz mindazon szablyait, melyek jobb oldaln egy terminlis bet vagy pedig egy terminlis s egy nemterminlis tallhat, majd hozzvesszk mindazon szablyokat, melyeket gy kapunk, hogy a mr tvett szablyok bal oldaln szerepl bett a hozz tartoz U halmaz elemeivel helyettestjk. Formlisan: H'=(H2{Wp|Zp H2,W U(Z)}){XY|X,YN}. Jelen esetben: G'=({S,A,B,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10,Z11,Z12},{a,b},S,H'). H'={ SaZ4, BaZ4, AaZ4, Z4bZ5, Z5aZ6, Z6bA, AZ7a, Z7Z8b, Z8Bb, BaZ9, AaZ9, Z9aZ10, Z10Z11b, Z11Z12a, Z12Sb, Bb, Ab, AaZ1, Z1bZ2, Z2bZ3, Z3a }

6.4. plda - Ers lineris normlalak 2. feladat


Adjunk meg a G=({S,A,B},{x,y,z},S,H) H={ SBxxx, BxyAyx, AB, AS, Az } nyelvtannal ekvivalens ers lineris normlalak nyelvtant!

Megolds: (I.) G1=({S,A,B,Z1,Z2},{x,y,z},S,H1). H1={ SZ1x, Z1Z2x, Z2Bx, BxyAyx, AB, AS, Az } (II.) G2=({S,A,B,Z1,Z2,Z3,Z4,Z5},{x,y,z},S,H2). H2={ SZ1x, Z1Z2x, Z2Bx, BxZ3, Z3yZ4, Z4Z5x, Z5Ay, AB, AS, Az } (III.) U(B)={A},U(S)={A}. G'=({S,A,B,Z1,Z2,Z3,Z4,Z5},{x,y,z},S,H'). H'={ SZ1x,AZ1x, Z1Z2x, Z2Bx, BxZ3, AxZ3, Z3yZ4, Z4Z5x, Z5Ay, Az }

6.5. plda - Ers lineris normlalak 3. feladat


Adjunk meg a G=({S,A},{x,y,z},S,H) H={ SxSx, SA, AyAy, Az } nyelvtannal ekvivalens ers lineris normlalak nyelvtant!

Megolds: 126

Lineris nyelvek (I.) Mivel a G nyelvtanban nincsenek Yy1y2 ... yn, Yy1y2 ... Yn, YY1y2 ... yn, n 3 alak szablyok, ezrt G1=G. (II.) G2=({S,A,Z1,Z2},{x,y,z},S,H2). H2={ SxZ1, Z1Sx, SA, AyZ2, Z2Ay, Az } (III.) U(A)={S}. G'=({S,A,B,Z1,Z2},{x,y,z},S,H'). H'={ SxZ1, Z1Sx, AyZ2, SyZ2, Z2Ay, Az, Sz }

6.6. plda - Ers lineris normlalak 4. feladat


Adjunk meg a G=({S,X,Y},{x,y,z},S,H) H={ SXxx, SyyY, Szzz, XxS, YSy, XS, YS } nyelvtannal ekvivalens ers lineris normlalak nyelvtant!

Megolds: (I.) G1=({S,X,Y,Z1,Z2,Z3,Z4},{x,y,z},S,H1). H1={ SZ1x, Z1Xx, SyZ2, Z2yY, SzZ3, Z3zZ4, Z4z, XxS, YSy, XS, YS } (II.) Mivel a G1 nyelvtanban nincs Yy1y2 ... yk-1Ykyk+1 ... yn, n 3 alak szably, ezrt G2=G1. (III.) U(S)={X,Y}. G'=({S,A,B,Z1,Z2,Z3,Z4},{x,y,z},S,H'). H'={ SZ1x,XZ1x,YZ1x, Z1Xx, SyZ2,XyZ2, YyZ2, Z2yY, SzZ3, XzZ3, YzZ3, Z3zZ4, Z4z, XxS, YSy }

6.7. plda - Ers lineris normlalak 5. feladat


Adjunk meg a G=({S,A,B},{x,y},S,H) H={ SyyAxx, AxxB, BSyy, Sxxyy } nyelvtannal ekvivalens ers lineris normlalak nyelvtant!

Megolds: (I.) G1=({S,A,B,Z1,Z2,Z3,Z4,Z5},{x,y},S,H1). H1={ SyyAxx, AxZ1, Z1xB, BZ2y, Z2Sy, SxZ3 SxZ4 SyZ5 Z5y } (II.) G2=({S,A,B,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8},{x,y,z},S,H2). H2={ SyZ6, Z6y,Z7 Z7Z8x, Z8Ax, AxZ1, Z1xB, BZ2y, Z2Sy, SxZ3, SxZ4, SyZ5, Z5y }

127

Lineris nyelvek (III.) Mivel a G2 nyelvtan mr ers lineris normlalak, ezrt G'=G2.

6.8. plda - Ers lineris normlalak 6. feladat


Adjunk meg a G=({S,A,B},{x,y},S,H) H={ SBx, ByA, SA, AS, Sz } nyelvtannal ekvivalens ers lineris normlalak nyelvtant!

Megolds: (I.) Mivel a G nyelvtanban nincsenek Yy1y2 ...yn, Yy1y2 ...Yn, YY1y2 ...yn, n 3 alak szablyok, ezrt G1=G. (II.) Mivel a G1 nyelvtanban nincs Yy1y2 ...yk-1Ykyk+1 ...yn, n 3 alak szably, ezrt G2=G1. (III.) U(S)={A}. G'=({S,A,B},{x,y,z},S,H'). H'={ SBx, ABx, ByA, Sz, Az }

6.9. plda - Ers lineris normlalak 7. feladat


Adjunk meg a G=({S,A,B},{0,1,+},S,H) H={ S 1S0, SA, SB, A 0A1, AB, B+, BS } nyelvtannal ekvivalens ers lineris normlalak nyelvtant!

Megolds: (I.) Mivel a G nyelvtanban nincsenek Yy1y2 ...yn, Yy1y2 ...Yn, YY1y2 ...yn, n 3 alak szablyok, ezrt G1=G. (II.) G1=({S,A,B,Z1,Z2},{0,1,+},S,H1) H1={ S 1Z1, Z1S0, SA, SB, A 0Z2, Z2A1, AB, B+, BS } (III.) U(A)={S,B},U(B)={S,A},U(S)={B,A}. G'=({S,A,B,Z1,Z2},{0,1,+},S,H'). H'={ S 1Z1,B 1Z1,A 1Z1, Z1S0, A 0Z2,S 0Z2,B 0Z2, Z2A1, B+,S+,A+ }

128

Lineris nyelvek Most egy pillanatra lpjnk vissza: a regulris nyelvek specilis lineris nyelvek, amelyek generlhatk olyan lineris nyelvtannal, hogy minden A uBv alak szablyban v= (azaz a nyelvtan jobb-lineris). Itt jegyezzk meg, hogy a szakirodalomban elfordul jobb-lineris nyelvtan mellett elfordul a bal-lineris kifejezs is (ez megfelel a mi regulris nyelvtan defincink szimmetrikus alakjnak): ha a szablyok alakja csak A v s A Bv lehet, ahol A, BN, vT*. rdekes krds hogy milyen a bal-lineris nyelvek s a regulris (vagyis jobb-lineris) nyelvek viszonya. 37. Ttel. A bal-lineris nyelvtanokkal generlt nyelvek osztlya egybeesik a regulris nyelvek osztlyval. Bizonyts. Legyen G=(N, T, S, H) bal-lineris nyelvtan, legyen N={S, A1, A2, , An}. Az ltalnossg csorbtsa nlkl feltehetjk, hogy S nem szerepel egyetlen szably jobb oldaln sem. Szerkesszk meg a G '=(N ', T, S ', H ') nyelvtant gy, hogy N '={S ', B1, , Bn} s a H '- beli szablyok a kvetkezk: - S ' vH ', ha SvH s vT*, - S ' vBkH ', ha Ak vH s vT*, - Bj vBkH ', ha Ak AjvH s vT*, - Bj vH ', ha S AjvH s vT*. Az gy kapott G ' nyelvtan nyilvn regulris, s belthat, hogy L(G)=L(G '): Legyen wL(G). Ha S wH, akkor S ' wH '. Ha pedig ltezik egy SAi,1v1Ai,2v2v1 Ai,m-1vm-1v1vmvm-1v1 alak levezets G- ben, ahol v1, v2, , vmT*, akkor G '- ben ezzel analg mdon megadhat egy SvmBi, m-1vmvm-1Bi, m-2vmv2Bi, 1vmvm-1v2v1 alak levezets, teht wL(G '). Megfordtva ugyangy belthat, hogy L(G ')L(G). Fordtott konstrukcival pedig ppen az bizonythat, hogy minden regulris nyelv generlhat bal-lineris mdon is. (Ez egybknt automatanyelven megfelel annak, mintha egy vgllapotbl visszafel haladva fogadnnk el a szt olyan mdon, hogy vgl a kezdllapotba rkezznk.) Itt jegyezzk meg az elz ttel s konstrukcik egy azonnali kvetkezmnyt: A regulris nyelvek halmaza zrt a tkrzsre nzve, ahol egy w=a1a2an sz tkrkpn a w-1=ana2a1 szt rtjk (a1, a2, , anT). Egy L nyelv tkrkpn pedig az L1={w|vL, w=v-1} nyelvet.

6.2. 2-fej (vges llapot) automata


11. Definci. A rendezett (Q, T, q0, d, F) tst ktfej vges automatnak hvjuk, ha (a hagyomnyos vges automatkhoz hasonlan) Q: nemres vges halmaz: llapotok halmaza, T: szalagbc, q0Q kezdllapot, FQ vg- (vagy elfogad)llapotok halmaza, d:Q(T{})(T{}) 2Q lekpezs az llapottmenet-fggvny. A konfigurcik halmaza: a mg feldolgozand input s az llapot (u, q) ahol uT*, qQ, kezdeti konfigurci: (w, q0) ahol w az inputsz (feldolgozand input). 129

Lineris nyelvek A konfigurcik az llapottmenet-fggvnynek megfelelen vltozhatnak az automata szmtsi lpsei alapjn: (aub, q)(u, q ') ha q 'd(q, a, b), ahol a, bT{}. * jellje a relci tranzitv s reflexv lezrtjt. Akkor mondjuk, hogy egy 2-fej automata elfogad egy w input szt, ha (w, q0)*(, q) valamely qF llapotra. Egy automata ltal elfogadott szavak halmaza jelenti az automata ltal elfogadott/felismert nyelvet.

Az brn lthat automata az L={anbn | n>0} nyelvet fogadja el. Az automata mkds kzben:

Ha az llapottmenet-fggvny alakja d:((Q1T{})(Q2{}T)) Q, ahol Q=Q1Q2, Q1 s Q2 diszjunktak, akkor determinisztikus 2-fej automatrl beszlnk. Tovbbi pldk ktfej automatk mkdsre:

130

Lineris nyelvek

38. Ttel. A nemdeterminisztikus 2-fej automatk ltal elfogadott nyelvek osztlya megegyezik a lineris nyelvek osztlyval. Bizonyts. Konstruktv mindkt irnyban. Legyen adva egy (N, T, S, H) lineris nyelvtan normlformban. Ekkor megkonstruljuk azt a 2-fej automatt, amely a megadott nyelvtan ltal generlt nyelvet fogadja el: a (Q, T, q0, d, F) elemeit adjuk meg a kvetkez mdon: Q=N{qf}, ahol qfN ; T a terminlis bc megegyezik az automata inputbcjvel; q0=S; F={qf} ; d pedig a kvetkezkppen van definilva a H szablyhalmaz alapjn: Ad(B, a, b), ha B aAbH(A, BN;a, bT{}), qfd(A, a, ), ha A aH(AN;aT{}). Knnyen belthat lpsenknti indukcival, hogy a nyelvtan minden egyes terminl levezetsnek pontosan egy elfogad t fog megfelelni az automatban, s ms elfogad t nem lesz. Legyen most adva egy (Q, T, q0, d, F) 2-fej automata, amihez megkonstruljuk azt a nyelvtant, ami az automata ltal elfogadott nyelvet fogja generlni. Az ltalnossg csorbtsa nlkl feltehetjk, hogy Q s T halmazok diszjunktak (ha ez nem teljesl, a Q halmaz elemeinek tnevezsvel ez elrhet). Legyen ez alapjn az (N, T, S, H) nyelvtan definilva a kvetkezkppen: N=Q; T a terminlis bc megegyezik az automata inputbcjvel; S=q0; a H halmaz elemeit pedig a kvetkezkppen definiljuk: legyen A aBbH, ha Bd(A, a, b) (A, BQ;a, bT{}), s 131

Lineris nyelvek legyen A abH, ha Bd(A, a, b) (A, BQ;BF;a, bT{}). Knnyen belthat, hogy az automata minden elfogad tjhoz pontosan egy terminl levezets fog tartozni, s csak olyan terminl levezetsek lesznek amik ilyenek.

Az brn a palindromk nyelvt elfogad determinisztikus automata lthat, az tmenteknl a nyl irnya mutatja hogy melyik fej (melyik irnyba lp fej) lp az adott tmenetben. (A a tmenet megfelel a korbban hasznlt (a,); mg a a a korbbi (,a)-val jellt tmenetnek.)

6.10. plda - Ktfej automata ksztse lineris nyelvtanhoz


Adott a kvetkez nyelvtan:({S, A, B, C}, {a, b, c}, S, {S aaaAbb, S aBaa, A aaaAb, Ac, B aBaa, B Ca, C cC, C c}). Az ezzel ekvivalens ers normlformj nyelvtan: ({S, A, B, C, D, E, F, G, I, J, K, L, M, O, P}, {a, b, c}, S, {S aD, D aE, E aF, F Gb, G Ab, SaI, IJa, JBa, AaK, KaL, LaM, MAb, Ac, B aO, O Pa, P Ba, BCa, CcC, Cc}). Ennek megfelelen, az ez alapjn konstrult 2-fej elfogad automata: (a, ) S A B C D E F G I J K L M O P qf Az els sor a lehetsges tmeneteket, az els oszlop pedig az llapotokat tartalmazza, S a kezdllapot, qf pedig az egyetlen vgllapot. 7. Megjegyzs. A determinisztikus 2-fej automatk ltal elfogadott nyelvek osztlya valdi rsze a lineris nyelvek osztlynak, jele: 2detLin. Itt jegyezzk meg, hogy a szakirodalomban egy msik automatatpus (egyszerfordul veremautomatk [164]) is ismert, amely pontosan a lineris nyelveket ismeri fel, ezekrl is lesz sz a kvetkez fejezetben. 132 P B A L M J B E F G A D,I K O C,qf qf C (b, ) (c, ) (, a) (, b) (, c)

Lineris nyelvek

6.3. A szproblma megoldsa


A szproblma megoldsa (annak eldntse, hogy egy adott sz szerepel-e az adott lineris nyelvben) egyben a sz egy lehetsges levezetst is magban foglalja, gy szelemz algoritmusnak is hvhatjuk. Az algoritmus alapja egy felismersi mtrix. Algoritmus (szelemzs lineris nyelvtan esetn) Input: Legyen adott egy lineris nyelvtan (N, T, S, H) ers normlformban s egy inputsz wT*, (jelljk a sz betit: a1, a2, an nel ahol n=|w| ). 1. a mtrix megrajzolsa: legyen a hromszgmtrixban a sorok s oszlopok szma n+1, vagyis az input sz hossznl eggyel tbb (az oszlopok fl (eredeti sorrendben) s a sorok el (visszafel, vagyis fordtott sorrendben) pedig rjuk be az input betit a kvetkezkppen:

Mint ltni fogjuk, valjban az utols sorra nem lesz szksg. 2. a mtrix kitltse (sorfolytonosan):

133

Lineris nyelvek

A kitltst az M(0,0) cellval kezdjk, az els sort az M(0,n) cellval fejezzk be ezutn kezdjk a msodik sort, vgl az utols eltti sorban az M(n-1,1) mezvel fejezzk be. A cellk tartalmai a nemterminlisok rszhalmazai lesznek, kivve az tlbeli cellk, ahol + vagy fog szerepelni. 2a. az M(0,0) cella kitltse: rjuk be az S mondatszimblumot ebbe a cellba. 2b. egy bels (nem tlbeli) M(k,m) cella kitltse, (k + m < n esetn) a cella kitltse a cella baloldali szomszdja s a cella feletti cella alapjn (ha vannak ilyenek) trtnik: - ha k > 0, (azaz nem a 0. sorban vagyunk) akkor legyen AM(k, m), ha van olyan BM(k-1, m), amelyre teljesl, hogy B Aa(n+1-k)H. - ha m > 0, (vagyis nem a 0. oszlopban vagyunk) akkor legyen AM(k, m), ha van olyan BM(k, m-1), amelyre teljesl, hogy B amAH. 2c. tlbeli elemek kitltse: M(n-i,i) cella kitltse: az M(n-i,i-1) cellban (balszomszd cella) szerepl nemterminlisok s az A a alak szablyok alapjn: pontosan akkor runk + jelet a cellba, ha az M(n-i,i-1) cellban van olyan nemterminlis szimblum B, amire van B ai szably a nyelvtanban. Ellenkez esetben a jelet rjuk a cellba. 3. az eredmny leolvassa: Ha az tlban van + elem, akkor a sz benne van a nyelvtan ltal generlt nyelvben, klnben nincs. 8. Megjegyzs. ha a ftl valamely mr kitlttt eleme (+) alapjn el tudjuk dnteni a vlaszt, vagyis sikeres levezets van a tblban, akkor a tbbi mez kitltse nem szksges. Az algoritmus az ers normlforma alapjn ksztett 2-fej automata mkdst szimullja, vzszintes lpsnl az els fej, fggleges lpsnl pedig a msodik fej lpsvel, a ftlban lev mezk jelzik a kt fej lehetsges tallkozsi pontjait. Amennyiben a sz benne van a generlt nyelvben, a kezd S szimblumtl a tbla valamely + szimblumig vezet t (ahogy a kitlts sorn a szomszdos cellkat figyelembe vettk) megadja a sz egy lehetsges levezetst is. Az algoritmus a mtrix kitltsbl, s a megolds leolvassbl ll, idben s trben is (determinisztikusan) ngyzetes bonyolultsg (a tblzat mrete miatt).

134

Lineris nyelvek

6.11. plda - A szproblma megoldsa lineris nyelvekre 1.feladat


Adott a G=({S,A}, {x,y}, S, H), ahol H szablyai: { SyA, AyS, SSx, Sy }. Benne van-e a nyelvtan ltal generlt nyelvben az yyyxx sz? Megolds:

Mivel az tlban szerepel +-jel, ezrt a sz elllthat az adott nyelvtan segtsgvel.

6.12. plda - A szproblma megoldsa lineris nyelvekre 2.feladat


Adott a G=({S,A}, {x,y}, S, H), ahol H szablyai: {SxX, XSx, AyY, SyY, YAy, Az, Sz}. Benne van-e a nyelvtan ltal generlt nyelvben az xyzyx sz? Megolds:

135

Lineris nyelvek

Mivel az tlban szerepel +-jel, ezrt a sz elllthat az adott nyelvtan segtsgvel.

6.4. A lineris nyelvek tulajdonsgai


6.4.1. Itercis lemma
Lineris nyelvekre a kvetkez pumplsi (itercis) tulajdonsgot fogjuk bizonytani: 39. Ttel. Legyen L egy lineris nyelv. Ekkor ltezik olyan (a nyelvtl fgg) n termszetes szm, hogy minden zL szra, melyre |z|>n, van a sznak olyan z=uvwxy felbontsa amelyre teljeslnek a kvetkez felttelek 1. uviwxiyL minden i termszetes szmra ( i 0 ) 2. |vx|>0 3. |uvxy| n. Bizonyts. Tegyk fel, hogy L nyelv lineris, ekkor legyen G=(N, T, S, H) olyan lineris nyelvtan, amely L-et generlja s ers normlformban van. Legyen n=|N|+2. Ekkor legyen wL tetszleges 136

Lineris nyelvek olyan sz, amelyre |w|>n. Tekintsk w levezetsi fjt. Mivel miden lpsben pontosan egy terminlis kerl bevezetsre a levezets hossza (lpseinek szma) ppen megegyezik a sz hosszval. A levezetsi fa fga (amely tartalmazza a levezets sorn szerepl sszes nemterminlist s egy terminlis levlelemet) legalbb |N|+1 nemterminlis szimblumot tartalmaz, teht legalbb egy nemterminlist ktszer tartalmaz az els |N|+1 eleme kzt. Legyen ez a nemterminlis A. A els elfordulsakor a levezets uAy mondatformnl tart (definiljuk ezzel az u s y rszszavakat), mg az A msodik elfordulsakor legyen az uvAxy az aktulis mondatforma (definiljuk gy a v s x rszszavakat), Vgl legyen A*w az A msodik elfordulsbl generlt rszsz. Ennek megfelelen vilgos, hogy A*vwx az A els elfordulsbl generlt rszsz, valamint A*vAx mondatforma. Amennyiben az A els elfordulsakor a levezets folytatsa uAy*uwy, akkor ppen az i=0 esetbeli szt vezethetjk le. Ha az A msodik elfordulsakor nem a w hanem vwx szt vezetjk le belle, akkor kapjuk az i=2 esetnek megfelel szt, viszont ebben a levezetsben uAy*uvAxy*uvvAxxy mondatforma is szerepel, ahol az A-bl a w helyett az uwy szt levezetve az i=3 esetbeli iterlt szt kapjuk s gy tovbb. Az i rtke brmely termszetes szmra nvelhet. Az eredeti felosztsunk s az ers normlforma miatt a |vx|>0 s az |uvxy| n felttelek automatikusan teljeslnek. Ezzel a bizonytst befejeztk. Sajnos az itercis lemma nem adja szksges s elgsges felttelt annak, hogy egy nyelv lineris legyen, vagyis ha a nyelv lineris akkor a lemma feltteleinek szksgszeren teljeslnie kell, viszont ha teljesl a lemma valamely nyelvre az mg nem elgsges bizonytk arra, hogy a nyelv lineris legyen. Ezek alapjn a lemmt arra hasznlhatjuk, hogy amennyiben sikerl beltnunk egy adott nyelvrl, hogy nem teljeslnek r a lemma felttelei, akkor a nyelv biztosan nem lineris.

6.13. plda - Lineris itercis lemma alkalmazsa


Legyen L={ akbkambm | k, m>0}. Az itercis lemma segtsgvel beltjuk, hogy L nyelv nem lineris. Tegyk fel, indirekt, hogy L lineris. Ekkor L-re teljeslnie kell a lemmnak. Legyen n az a konstans ami a lemma alapjn ehhez a nyelvhez tartozik. Vegyk az a2nb2na2nb2n alak szt, ami eleme L-nek, msrszt a hossza 8n, gy nagyobb, mint n. Teht a szt fel kell tudnunk bontani uvwxy rszszavakra, hogy v s x nem lehet egyszerre az ressz, valamint |uvxy| n. Viszont ekkor |uv| n s |xy| n is fennll, vagyis v csak az els a2n beli rsznek lehet rszszava, gy ha nem nulla a hossza, akkor ai (0<i n) alak. Viszont az els b2n blokk egsze csak a w-hez tartozhat. gy az iterci sorn az els akbl ll blokkban az a-k szma megvltozna, mg a hozztratoz els b-ket tartalmaz blokk maradna b2n. gy nem L-beli szt kapunk, teht v-nek az ressznak kell lennie. Ekkor viszont x nem lehet res s csak az utols b2n blokkbl tartalmazhat betket. Az elz esettel analg mdon belthat, hogy a pumpls kivezet az L nyelvbl, ha x nem az ressz. De v s x nem lehet egyszerre res a lemma lltsa miatt. Az ellentmondst csak az indirekt felttelnk okozhatja, teht a nyelv nem lineris.

6.4.2. Zrtsgi tulajdonsgok


40. Ttel. A lineris nyelvek osztlya zrt az uni mveletre. Bizonyts. Legyenek L1 s L2 lineris nyelvek G1=(N1, T, S1, H1) s G2=(N2, T, S2, H2) lineris nyelvtanokkal, ahol N1 s N2 diszjunkt halmazok. Konstruljuk meg az (N1N2{S}, T, S, H) nyelvtant, ahol S j szimblum, nem szerepel sem N1, sem N2 elemei kzt, H pedig a kvetkezkppen definilt: H=H1H2{S S1, S S2}. Knnyen belthat, hogy az j nyelvtan lineris s ppen L1 s L2 unijt generlja. 41. Ttel. A lineris nyelvek osztlya nem zrt a konkatencira, a Kleene-itercira. Bizonyts. Korbbi pldaknt lttuk, hogy L={anbn | n>0} lineris nyelv, sajt magval konkatenlva az LL={akbkambm | k, m>0} nyelvet kapjuk, amirl az imnt mutattuk meg, hogy nem lineris. Mivel LLL*, ennek esetnkben egyenes kvetkezmnye, hogy L* nyelv sem lineris. 42. Ttel. A lineris nyelvek osztlya nem zrt a metszet s a komplementer mveletekre. Lsd krnyzetfggetlen nyelvekre vonatkoz 56. s 57. ttelben. 137

Lineris nyelvek A tovbbiakban a lineris nyelvtanoknak (s nyelveknek) specilis alosztlyt, illetve kiterjesztst vizsgljuk. Amar s Putzolu az 1960-as vekben definilta a kvetkez, a regulris s a lineris nyelvcsaldok kzti nyelvosztlyokat. 12. Definci. Legyen k egy rgztett nemnegatv racionlis szm. Ha egy G lineris nyelvtan minden A uBv alak szablyra igaz, hogy , akkor G-t k-arny (vagy k-fok) lineris nyelvtannak, az ltala generlt nyelvet pedig k-arny lineris nyelvnek hvjuk. Egy nyelvtant (illetve nyelvet) fixarny linerisnak neveznk, ha k-arny lineris valamely nemnegatv racionlis k rtkre. Specilis esetben k=0 rtk esetn ppen a regulris nyelveket kapjuk vissza. Nevezetes mg a k=1 eset, ezeket a nyelveket s nyelvtanokat pros linerisnak hvjuk. Erre plda a palindromk nyelve. 43. Ttel. Minden k nemnegatv racionlis szmra, a k-fok lineris nyelvek osztlya tartalmazza a regulris nyelvek osztlyt. 44. Ttel. Minden fix-arny lineris L nyelvhez ltezik olyan determinisztkus 2-fej automata, ami ppen L-et fogadja el. 13. Definci. Egy G=(N, T, S, H) nyelvtant m-linerisnak neveznk (ahol m>0 egsz szm), ha szablyainak mindegyike eleget tesz a lineris nyelvtanoknl megadott defincinak, kivve az egyetlen S S1S2Sm szablyt, s S nem szerepel egyik szably jobb oldaln sem. Az m-lineris nyelvtanok ltal generlt nyelvek osztlyt m-lineris nyelvek osztlynak nevezzk. Egy nyelvtan, illetve nyelv metalineris ha m-lineris valamilyen m-re. Egy metalineris nyelvtanban a mondatformban mr tbb nemterminlis is elfordulhat egyszerre, de szmuk maximlva van, ha a nyelvtan m-lineris, akkor maximum m nemterminlis lehet egyszerre. A lineris nyelvek konkatencijval ppen a metalineris nyelveket llthatjuk el.

6.14. plda - Az akbkambm metalineris nyelv


G=({S, A, B}, {a, b}, S, {SAB, AaAb, A ab, BaBb, B ab}) nyelvtan ppen a korbban mr bemutatott {akbkambm | k, m>0} nyelvet generlja. A kvetkez brn a lineris nyelvekhez kapcsold hierarchit mutatjuk be, a hierarchia les, vagyis minden tartalmazs szigor (kivve a k=0 s m=1 eseteket, amikor a 0-fok lineris nyelvek ppen a regulris az 1-lineris nyelvek, pedig ppen a lineris nyelvekkel esnek egybe).

6.5. Irodalmi megjegyzsek


A pros lineris s a fix-arny lineris nyelvtanokat s nyelveket az [Amar, Putzolu 1964, 1965] vezettk be. A lineris nyelvek, illetve azok specilis vltozatainak, kiterjesztseinek vizsglata 138

Lineris nyelvek ma is aktv terlet, pl. tanulsi problmkban is alkalmazzk ket [Sempere, Garca 1994]. Ezen nyelvosztlyokhoz tartoz itercis lemmk tallhatk a [Horvth, Nagy 2010] cikkben. A ktfej automatkkal s ezek specilis vltozataival elfogadott nyelvosztlyokrl pl. a [Nagy 2008, 2011b, 2011c] s [Leupold, Nagy 2010] cikkekben lehet olvasni.

139

7. fejezet - Krnyezetfggetlen nyelvek


Ebben a fejezetben a Chomsky-fle 2-tpus nyelvek sajtossgait trgyaljuk. E nyelvosztly ugyancsak sok terleten jl alkalmazhat s vannak r hatkony algoritmusok, melyek kzl nhnyat rszletesen is bemutatunk.

7.1. Programnyelvek szintaktikjnak lersa


Klnbz programnyelvek elemeinek (mint pl. szmjegy, szm, vltoz nv, utasts, eljrs stb.) megadshoz sokfle mdszer ismert. Ilyenek pl. a BNF (Backus-Naur Form), a COBOL-szer megadsi md, a szintaxis grf s a hibrid mdszer. A lers terminlis egysgeket s nemterminlis egysgeket tartalmaz BNF-ben. A nemterminlisokat ms egysgekbl a konkatenci, az alternatva, az iterci s ezek egy specilis esetnek, az opcinak a segtsgvel adhatjuk meg. Ugyanezek a lpsek grafikusan a szintaxis-grfban is megtallhatak. Ezeket a lersi mdokat ismertetjk rviden a kvetkezkben, kiterjesztve az egyszer szintaxis grfok korbban bemutatott (lsd Szintaxis grf) alakjt is. A szintaktika lershoz, a klnbz programnyelvek megadsnl, hasznlt mveletek: konkatenci (sszefzs: tbb szvegelem egyms mell/utn rsa), alternatva (vlaszts: klnbz lehetsgek kzl egy kivlasztsa), opci (a szvegelem vagy megjelenik vagy nem), iterci (a szvegelem akrhnyszor megjelenhet (ltalban a nullaszori megjelenst is belertjk)). Lssuk, akkor most hogyan is nznek ki a mr emltett lersi mdok.

7.1.1. A BNF megadsi md


Ezt a megadsi mdot abban az idben talltk ki, amikor az ALGOL60 nyelvet fejlesztettk.

A konkatencinak nincs kln jele, egyszeren egyms utn rjuk a megfelel szvegelemeket. A nemterminlis jeleket < > zrjelek kz tesszk, s ::= definil egyenlsgjel segtsgvel definiljuk.

7.1. plda - A szmok jellsre hasznlhat karaktersorozatok


Az egsz szmok megadshoz szksg van az opcira (van eljel vagy nincs), ha van: alternatva (plusz vagy mnusz), a szmjegyek sorozatt pedig itercival adjuk meg: < szmjegy > ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 < eljel > ::= + | < egsz szm > ::= [ < eljel > ] < szmjegy > { < szmjegy > } 140

Krnyezetfggetlen nyelvek

7.1.2. A COBOL-szer megadsi md


Ez a megadsi md a PL/1 nyelv idejn volt leginkbb hasznlatban.

7.2. plda - A szmok megadsa COBOL-szer mdszerrel

7.1.3. A szintaxis grf


Itt a korbban mr a regulris nyelvek esetn ismertetett Szintaxis grf mdszer teljes kifejezerej vltozatt mutatjuk be. A korbbiakhoz kpest a vltozs az, hogy egy nemterminlis defincijban felhasznlhatunk mg nem definilt nemterminlisokat is, akr a definiland nemterminlist sajt magt is. gy megengedjk a rekurzi kialakulst, akr kzvetlenl egy sajt magt "meghv" defincival, vagy akr egymst hv tbb nemterminlis defincijval. Termszetesen, gy minden mveletnl, a konkatencinl, alternatvnl nemcsak terminlisok, hanem nemterminlisok, illetve brmilyen, a mdszerrel mr sszetett grfok is elfordulhatnak. Az iterci pedig akr gy is elfordulhat, mint az opci, csak fordtott nylirnnyal az adott szvegelemnl (megengedve a nullaszoros ismtlst). Egy szintaxis grfban mindig van pont egy indull s egy rkezl, ahonnan indulva s ahova rkezve kell egy utat bejrnunk a grfban. Az t sorn sszeolvassuk a terminlisokat, illetve ha egy nemterminlishoz rnk akkor az adott nemterminlis defincija alapjn a neki megfelel szintaxis grfban megynk vgig egy ton, ha annak vgre rtnk akkor folytatjuk az utunkat az eredeti grfban az adott nemterminlis utn. Egy nemterminlis teht egy rekurzv hvst jelent, az adott grfban lefutott t utn folytathatjuk csak utunkat. Az hogy megengedjk nem csak a mr korbban definilt nemterminlisok hasznlatt egy nemterminlis defincijban, azt jelenti, hogy a rekurzit nem korltozzuk, annak mlysge brmennyi lehet. A regulris nyelveknl (5.14. plda - Tizes szmrendszerbeli egsz szmok nyelvnek megadsa szintaxis grffal) megadott egsz szm fogalmt felhasznlva adhatjuk meg pldul a zrjeles kifejezs fogalmt:

141

Krnyezetfggetlen nyelvek

7.1.4. A Hibrid megadsi md


A 90-es vek gyakori ler nyelve. Tulajdonkppen az elz mdszerek keverke, illetve egyvelege. Az egsz szmok pldul a kvetkez mdon adhatk meg: szmjegy : { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 } egsz szm : [ { + | } ] szmjegy ... Az ismertetett lersi mdoknak a kifejezereje azonos. Mindegyikkel pontosan a regulris halmazokat tudjuk definilni, ha a nemterminlisokat nem hasznljuk. A kifejez er ugyanennyi, ha a nemterminlisok defincijban csak a mr korbban ugyangy megadott nemterminlisokat hasznlhatjuk fel. Ezzel szemben, ha megengedjk a rekurzit, vagyis, hogy egy adott nemterminlis defincijban sajt magt is felhasznljuk, vagy eltte mg nem definilt nemterminlist, akkor a kifejezer megn; gy mindegyik ismertetett mdszer segtsgvel pontosan a krnyezetfggetlen nyelvek rhatk le. Ezeknek a megadsi mdoknak a kifejezereje teht azonos, velk a krnyezetfggetlen nyelveket tudjuk definilni.

7.2. Levezetsi fa
A krnyezetfggetlen nyelvek (nyelvtanok) egy tulajdonsga (mely npszersgkben is kzponti szerepet jtszik), hogy a levezetsek fa alakban brzolhatk. Krnyezetfggetlen nyelvtanban minden levezets nagyon egyszeren brzolhat egy irnytott grf (fa) segtsgvel. Tekintsnk egy S*p levezetst, ahol p(NT)*. A grf cscsainak nemterminlis, illetve terminlis szimblumokat feleltethetnk meg: a fa gykerhez S- t, leveleihez rendre terminlis s nemterminlis szimblumokat, a kzbls cscsaihoz pedig nemterminlis jeleket rendelhetnk. Az egy cscsbl kiindul lek annak a helyettestsi szablynak az alkalmazst jellik, amelynek bal oldaln az lek kzs kiindulsi pontjban tallhat nemterminlis jel ll, a jobb oldaln pedig az lek vgpontjaiban tallhat nemterminlis, illetve terminlis jelek sorozata (az egyes leket balrl jobbra vve sorra). Azt, hogy egyes szablyokat milyen sorrendben alkalmazunk, nem mindig tudjuk egyrtelmen rekonstrulni. Egy levezetsi grf mlysgn a benne az S gykrtl indul s levlelemhez tart irnytott utak hossznak maximumt rtjk. Ha a fa minden levleleme terminlis cmkj, akkor befejezett levezetsrl s befejezett levezetsi frl beszlhetnk.

7.3. plda - Levezetsi fa


Legyen G=({S, A, B}, {a, b, c}, S, H), ahol H={S ABc, A aB, A Bc, B aAc, B bc}. Ebben a nyelvtanban megadhat a kvetkez levezets: SABcAaAccBcaAccBcaaBccbccaaBccbccaabccc.

Egy levezetsi fa ltalban nem egy levezetst brzol (vagyis tbb olyan levezets is lehetsges melynek brzolsval ugyanazt a ft kapjuk). Az egy fa ltal reprezentlt levezetsek viszont egy 142

Krnyezetfggetlen nyelvek ekvivalencia osztlyt alkotnak, hiszen mindegyikkben ugyanaz a mondatforma (vagy sz) van levezetve, illetve az ugyanott megjelen ugynarra a nemterminlisra ugyanazt a szablyt alkalmazzuk. Egyedl a szablyalkalmazsok sorrendje lehet klnbz. Legbaloldalibb levezetsnek hvunk egy levezetst, ha a levezets sorn minden lpsben az aktulis mondatforma legels (legbaloldalibb) nemterminlisra vgznk el egy helyettestst valamely alkalmas levezetsi szably segtsgvel. 45. Ttel. Minden levezetsi fhoz egyrtelmen hozzrendelhet egy legbaloldalibb levezets. Az adott levezetsi fhoz tartoz levezetsek kzl teht egyrtelmen kivlaszthatunk egyet, amivel az osztlyt reprezentlhatjuk: a legbaloldalibbat. A legbaloldalibb levezets arra hasonlt, mintha a levezetsi ft a mestersges intelligenciban mlysgi keresknt ismert algoritmus segtsgvel ptennk fel.

7.2.1. Tbbalaksg
Fontos szerepet jtszik az egyrtelmsg krdse a kvetkez tekintetben. Adott nyelvtan esetn elfordulhat, hogy egy adott szhoz tbb klnbz levezetsi fa ltezik. A termszetes nyelvekre nagyon jellemz ez a tbbalaksg. A "lttam Ptert egy tvcsvel." mondat rtelmezse lehet ktfle: vagy a trgy rendelkezik egy rszeshatrozval: Pter a kezben vitt egy tvcsvet, amikor lttam, hogy megy kirndulni. A msik elemzs szerint az alany (n) rendelkezem egy tvcsvel (eszkzhatrozs szerkezet) s ennek segtsgvel lttam Ptert, ahogy jn fl a hegyre. A termszetes nyelvek esetn ltalban a szvegkrnyezet, vagy az adott szituci segt kivlasztani a helyes elemzst... Ezzel szemben, pl. a programnyelvek lersakor trekednnk kell az egyrtelmsgre. Pldul a G=({S}, {2, +, *}, S, {S S+S, S S*S, S 2}) nyelvtanban SS+SS+S*S*2+2*2 valamint SS*SS+S*S*2+2*2 ugyanannak a sznak kt klnbz levezetse, a levezetsi fkat a kvetkez bra mutatja.

Viszont a levezets elemzse alapjn az els rtelmezs szerint 2+(2*2)=6 az eredmny, mg a msodik rtelmezs (2+2)*2=8- at jelent. Ez pl. gondot okozhat egy szmtgpes fordt rszre. Ezrt fontos, hogy lehetleg kerljk a tbbalaksgot egy programnyelv tervezse sorn, nem clszer ilyen dntseket a fordtra hagyni.

7.4. plda - Cselleng "else" feladat


Ismert a cselleng "else" problmja, amikoris nem egyrtelm, hogy egy else-g melyik felttelhez tartozik. Pldaknt tekintsk a kvetkez kdot: if a then if b then do else print Adjunk pldt olyan nyelvtanra, ahol ez a problma fellp. Ismert tny, hogy vannak olyan krnyezetfggetlen nyelvek, amelyeket nem lehet olyan nyelvtannal generlni, hogy ne legyen olyan sz amelynl a tbbalaksg fellp. Ilyen nyelvre plda: L={anbmcmdn} {anbncmdm}. 143

Krnyezetfggetlen nyelvek

7.3. Normlformk a krnyezetfggetlen nyelvtanokhoz


Gyakorlati szempontbl fontos lehet, hogy a nyelvtant minimalizljuk olyan rtelemben, hogy megszabadulunk az olyan felesleges nemterminlisoktl, amik egyetlen terminl levezetsben sem jelennek meg. Egy A nemterminlis kt okbl lehet felesleges: - A nem vezethet be mondatformban, vagyis nincs olyan szablysorozat, hogy az S mondatszimblumbl indulva valamilyen uAv mondatformt kapjunk (valamilyen u, v(NT)* szavakra). - az A- bl nem lehet terminlni, vagyis nincs olyan wT*, hogy A*w lenne. Az els tpusba tartoz felesleges nemterminlisokat a kvetkezkppen hatrozhatjuk meg egy G=(N, T, S, H) nyelvtan esetn: Legyen U0={S}. Legyen Ui+1=Ui{A | ltezik B uAvH, AN, BUi, u, v(NT)*} ( i 0 ) Ekkor az N vgessge miatt van olyan i hogy Ui=Ui+1, s ekkor az NUi nemterminlisok feleslegesek, mert nem rhetek el S- bl kezdd levezetsekkel. A msodik tpusba tartoz felelsleges nemterminlisok meghatrozsa egy G=(N, T, S, H) nyelvtan esetn a kvetkez rekurzv mdon trtnhet: Legyen U0={A | ltezik AwH, AN, wT*}. Legyen Ui+1=Ui{A | ltezik AuH, AN, u(UiT)*} ( i 0 ) Ekkor az N vgessge miatt van olyan i hogy Ui=Ui+1, s ekkor az NUi nemterminlisok feleslegesek, mert bellk nem vezethet le terminlis (vagy res) szrsz. Ha az S nincs benne az Ui halmazban, akkor a generlt nyelv res. Ha G nemres nyelvet generl, akkor vilgos, hogy az gy meghatrozott felesleges nemterminlisokat, s az sszes olyan szablyt, amely tartalmaz ilyen nemterminlist (akr a bal, akr a jobboldaln) elhagyva a kapott G ' nyelvtan ekvivalens az eredetivel: a terminl levezetsek megmaradnak, gy a generlt nyelv nem vltozik. Ha specilisan regulris nyelvtanbl (vagy ennek megfelel vges automatbl) indulunk ki, akkor az els rsz ppen a startszbl (vagyis a kezdllapotbl) val elrhetsget jelenti. A msodik rsz, vagyis azon nemterminlisok (llapotok) sszegyjtse, amibl nem tudunk terminlni a teljesen definilt determinisztikus vges automata esetn az egyetlen nyel llapotnak felel meg. A fejezet tovbbi rszben kt fontos normlformt mutatunk be, az elsnl algoritmust is adunk arra, hogy egy tetszleges krnyezetfggetlen nyelvtanhoz vele ekvivalenset lltsunk el. Termszetesen, ha nem akarunk feleslegesen sok szabllyal dolgozni, akkor clszer a normlformkat az imnt bemutatott felesleges nemterminlisokat mr nem tartalmaz nyelvtanokra meghatrozni.

7.3.1. Chomsky-fle normlalak


Egy nyelvtant - mentesnek neveznk, ha a szablyok jobb oldaln egyltaln nem fordul el a . Itt jegyezzk meg, hogy minden 2-tpus L nyelv esetn megadhat olyan 2-tpus - mentes grammatika ami L- et generlja (lsd ressz-lemma). Ha viszont L, akkor igaz az, hogy megadhat olyan 2-tpus - mentes G grammatika ami a L{} nyelvet generlja. (Ilyenkor G nemterminlis halmazt kiegsztve S ' j mondatszimblummal, s a H szablyrendszert kiegsztve az S ' , S 'S szablyokkal kapunk egy L- et generl nyelvtant.) 144

Krnyezetfggetlen nyelvek 14. Definci. Egy krnyezetfggetlen nyelvtanrl azt mondjuk, hogy Chomsky-fle normlalakban van, ha minden szablya Aa vagy ABC alak, ahol A, B, CN s aT. Minden - mentes krnyezetfggetlen nyelv generlhat olyan nyelvtannal, amely Chomsky-fle normlalak. Avagy, kicsit mskpp fogalmazva: 46. Ttel. Minden G krnyezetfggetlen nyelvtanhoz van olyan vele ekvivalens krnyezetfggetlen GCh nyelvtan, amely Chomsky-fle normlalak. Bizonyts. Ha a G=(N, T, S, H) nyelvtan nem - mentes, vagyis van benne olyan szably, aminek jobboldala az ressz, akkor elszr alkalmazzuk r az ressz-lemma -t, s legyen G '=(N, T, S, H, ) az a nyelvtan, amit az ressz lemmnl ismertetett algoritmussal ltrehozunk a G ltal generlt nyelv - mentes rsznek generlsra, ekkor G s G ' ekvivalensek (az ltaluk generlt nyelvek klnbsge legfeljebb az resszt tartalmazza) s G' - mentes. Hozzuk a nyelvtanunkat olyan alakra, hogy terminlis jel csak Aa alak szablyokban (AN, aT) forduljon el: Vezessk be az Xa j nemterminlisokat a kvetkez mdn: legyen Nt={Xa|aT} s N ''=NNt, ahol NtN=. Tovbb a H ' minden nem A a(AN, aT) alak szablyra: cserljk ki a szably jobboldaln tallhat a terminlisokat a nekik megfelel imnt bevezetett Xa nemterminlisra, valamint vegyk fel az Xa a j szablyokat. Formlisan, H ''={A a|aT, A aH}{A r|A r 'H, r 'T, s h(r ')=r, ahol h az az izomorfizmus, amely N minden elemhez nmagt, a T elemeihez pedig Nt megfelel elemeit rendeli} {Xa a|aT}. Az gy ltrejtt G ''=(N '', T, S, H '') nyelvtan ekvivalens a G '- vel s szablyaiban a terminlis csak Aa alak szablyban fordul el. Ekkor G ''=(N '', T, S, H '') nyelvtanban az sszes nem A a alak szablyunk A r alak (AN, rN ''*{)}. Tekintsk ezek kzl azokat a szablyokat, amelyekben |r|>2. Egy ilyen A B1B2Bk (k>2) alak szablyt helyettesthetnk az A B1Z1 Z1 B2Z2 Zk-2 Bk-1Bk szablyok halmazval, ahol Z1, Z2, , Zk-2 jonnan bevezetett nemterminlisok. Ezt a helyettestst minden kettnl hosszabb jobb oldal szablyra kln-kln vgrehajtva a G '''=(N ''', T, S, H ''') nyelvtanunk ekvivalens az elzvel (gy az eredetivel is) s H ''' csak az albbi hromfle szablyt tartalmazhatja: (1) Aa, (2) AB, (3) ABC. Teht a G ''' nyelvtanra ki kell kszblni a H '''- bl az AB alak (gynevezett lnc-)szablyokat, hasonlan ahogy a regulris s lineris nyelvtanoknl megtettk. (Lsd pl. ers normlformj regulris nyelvtanok.) Teht definiljuk minden AN ''' vltozhoz a kvetkez halmazokat: - U1(A)={A} - Ui+1(A)=Ui(A){BN '''|CUi(A)|C BH '''}, ha i>1 145

Krnyezetfggetlen nyelvek Ekkor N ''' vges volta miatt ltezik olyan minimlis k index, hogy Uk(A)=Uk+j(A), ha j=1, 2, . Jelljk minden AN ''' nemterminlis jelhez tartoz Uk(A)- t U(A)- val. Ekkor U(A) ppen azokat a nemterminlisokat tartalmazza, amelyek levezethetek az A- bl csupn lncszablyokat felhasznlva, vagyis tetszleges A, BN ''' vltozkra A*B pontosan akkor, ha BU(A). Ezek utn definiljuk a H '''' szablyhalmazt a kvetkezkppen: H ''''={A r | van olyan BN ''', hogy B rH ''', rN, BU(A)}.

Az gy kapott G ''''=(N '''', T, S, H '''') nyelvtanra L(G){}=L(G ''''), mivel az A B szablyok alkalmazst az elbbi kt csoportba tartoz szablyok alkalmazsval biztostjuk s fordtva. A Chomsky normlforma hasznlata esetn a leveztsi fa egy binris fa lesz, minden lpsben vagy a mondatforma hossza n ( ABC alak szably alkalmazsa) vagy egy terminlis bevezetsvel egy gon befejezdik a levezets ( Aa alak szably esetn).

7.5. plda - Chomsky normlforma 1.feladat


Adjunk meg a G=({S,A,B},{a,b,c},S,H) nyelvtannal ekvivalens Chomsky-fle normlalak nyelvtant, ahol H = { S ABaba, A B, A c, B AbA, B S }. Megolds: (I.) Els lpsben megadunk egy G1 nyelvtant, ami ekvivalens a G nyelvtannal s (terminlis) normlalak. Ehhez elszr a G nyelvtan minden olyan xi terminlis betjhez, amely szerepel olyan szablyban, ami nem normlalak, j Xi nemterminlist vezetnk be. Ezutn a G1 nyelvtan H1 szablyhalmazt gy kapjuk, hogy felvesszk az Xi xi szablyokat, valamint a H szablyhalmaz elemeit tvesszk gy, hogy a szablyokban az xi betk azon elfordulsait, melyek nem (terminlis) normlalak szablyban szerepelnek, Xi-re cserljk. Jelen esetben legyenek az j nemterminlisok az Xa s az Xb, ekkor: G1=({S,A,B,Xa,Xb},{a,b,c},S,H1), ahol H1={ Xa a, Xb b, S ABXaXbXa, A B, A c, B AXbA, B S } (II.) Msodik lpsben megadunk egy G2 nyelvtant, ami ekvivalens az eredeti nyelvtannal, normlformj s nem szerepel benne Y Y1Y2...Yn, n>2 alak szably. Ehhez a G1 nyelvtanbl indulunk ki. A H1 szablyhalmaz Y Y1Y2...Yn, n>2 alak szablyait helyettestjk j szablyokkal, a tbbi szablyt pedig vltoztats nlkl tvesszk a H2 szablyhalmazba. Minden Y Y1Y2...Yn, n>2 alak szablyhoz vezessnk be Z1,Z2, ... ,Zn-2 j nemterminlisokat, gy, hogy Zi-bl az Yi+1...Yn szt tudjuk levezetni: az sszes Y Y1Y2...Yn, n>2 alak szablyt helyettestsk a kvetkez szablyokkal: Y Y1Z1, 146

Krnyezetfggetlen nyelvek Z1 Y2Z2, . . . Zn-3 Yn-2Zn-2, Zn-2 Yn-1Yn. Jelen esetben: G2=({S,A,B,Xa,Xb,Z1,Z2,Z3,Z4},{a,b,c},S,H2), ahol H2={ Xa a, Xb b, S AZ1, Z1 BZ2, Z2 XaZ3, Z3 XbXa, A B, A c, B AZ4, Z4 XbA, B S } (III.) Harmadik lpsben megadjuk az eredeti nyelvtannal ekvivalens G' Chomsky-fle normlalak nyelvtant. Ehhez kt lpsre van szksg. Els lpsben meghatrozunk egy U(Z) halmazt minden olyan Z nemterminlishoz, mely levezethet legalbb egy msik nemterminlisbl a G2 nyelvtanban s szerepel olyan H2 halmazban lv szably bal oldaln, amelynek jobb oldaln egy terminlis vagy pedig kt nemterminlis bet ll. Az U(Z) halmaz tartalmazni fogja az sszes olyan nemterminlist, melybl egy vagy tbb lpsben levezethet a Z bet. Jelen esetben: U(B)={A}, U(S)={B,A}. Msodik lpsben a H' szablyhalmazba tvesszk a H2 szablyhalmaz mindazon szablyait, melyek jobb oldaln egy terminlis bet vagy pedig kett nemterminlis tallhat, majd hozzvesszk mindazon szablyokat, melyeket gy kapunk, hogy a mr tvett szablyok bal oldaln szerepl bett a hozz tartoz U halmaz elemeivel helyettestjk. Formlisan: H'=(H2{Z p | X p H2,Z U(X)}){X Y | X,Y N}.Jelen esetben: G'=({S,A,B,Xa,Xb,Z1,Z2,Z3,Z4},{a,b,c},S,H'), ahol H'={ Xa a, Xb b, S AZ1,B AZ1, A AZ1, Z1 BZ2, Z2 XaZ3, Z3 XbXa, A c, B AZ4, A AZ4, Z4 XbA }

7.6. plda - Chomsky normlforma 2.feladat


Adjunk meg a G=({S,A,B},{x,y,z},S,H) nyelvtannal ekvivalens Chomsky-fle normlalak nyelvtant, ahol H={ SBB, AS, Axxzz, Ay, BAxzxA, BA }. Megolds: (I.) Legyenek az j nemterminlisok az X s a Z, ekkor: G1=({S,A,B,X,Z},{x,y,z},S,H1), ahol H1={ Xx, Zz, SBB, AS, AXXZZ, Ay, BAXZXA, BA } (II.) G2=({S,A,B,X,Z,Z1,Z2,Z3,Z4,Z5},{x,y,z},S,H2), ahol H2={ Xx, Zz, SBB, AS, AXZ1, Z1XZ2, Z2ZZ, Ay, BAZ3, Z3XZ4, Z4ZZ5, Z5XA, BA } (III.) U(S)={A,B},U(A)={B}. G'=({S,A,B,X,Z,Z1,Z2,Z3,Z4,Z5},{x,y,z},S,H'), ahol H'={ Xx, Zz, SBB, ABB, BBB, AXZ1, BXZ1, Z1XZ2, Z2ZZ, Ay, By, BAZ3, Z3XZ4, Z4ZZ5, Z5XA }

147

Krnyezetfggetlen nyelvek

7.7. plda - Chomsky normlforma 3.feladat


Adjunk meg a G=({S,A,B},{x,y},S,H) nyelvtannal ekvivalens Chomsky-fle normlalak nyelvtant, ahol H={ SABBAB, Sx, ABB, AS, AB, BASA, By }. Megolds: (I.) Mivel a G nyelvtan mr normlalakban van, ezrt G1=G. (II.) G2=({S,A,B,Z1,Z2,Z3,Z4},{x,y},S,H2), ahol H2={ SAZ1, Z1BZ2, Z2BZ3, Z3AB, Sx, ABB, AS, AB, BAZ4, Z4SA, By } (III.) U(S)={A},U(B)={A}. G'=({S,A,B,Z1,Z2,Z3,Z4},{x,y},S,H'), ahol H'={ SAZ1, AAZ1, Z1BZ2, Z2BZ3, Z3AB, Sx, Ax, ABB, BAZ4, AAZ4, Z4SA, By, Ay }

7.3.2. Greibach normlforma


A Chomsky-fle normlforma segtsgvel kikszbltk a levezetsekbl az A*A alak formkat, amelyek a levezets hosszt a vgtelensgig megnvelhettk kell odafigyels hinyban. Egy msik fle problma merlhet fel A AB alak szably hasznlata sorn: ha legbaloldalibb mdon szeretnnk a keresett szt levezetni, s pont egy ilyen alak szably alkalmazhat, akkor ugyangy alkalmazhat lesz a kvetkez mondatformra, majd az azt kvetre, s gy tovbb. Ha a levezets sorn mst nem vesznk figyelembe, akkor itt a levezetsi fa felptsvel egy vgtelen gba kerltnk gy a visszalpses keres algoritmusa nem alkalmazhat a szproblma megoldsra. Balrekurzinak nevezzk, ha egy G=(N, T, S, H) nyelvtanban van olyan AN, hogy A*Ar (valamely r(NT)+ esetn). Kzvetlen balrekurzirl beszlnk, ha AAr vagyis van olyan szably, hogy AAr. A kzvetlen balrekurzi megszntetsre szolgl algoritmus lpseivel analg mdon tovbbalaktva a nyelvtant jutunk el a Greibach-fle normlalakig, ami a balrekurzi teljes kikszblsvel addik: A kvetkez normlforma az amerikai Sheila Greibach nevhez fzdik. 15. Definci. Egy krnyezetfggetlen nyelvtanrl akkor mondjuk, hogy Greibach-fle normlalak, ha minden szablya Aar alak, ahol AN, aT, rN*. Igaz a kvetkez ttel, aminek bizonytst most nem kzljk, de a konstruktv algoritmust egy pldn bemutatjuk. 47. Ttel. Minden krnyezetfggetlen nyelvtanhoz van vele ekvivalens Greibach normlformj nyelvtan. Az eredmny jelentsge az, hogy a krnyezetfggetlen nyelvek is generlhatak (a regulris s a lineris nyelvekhez hasonlan) oly mdon, hogy a levezets minden lpsben trtnik terminlis bevezetse. Ennek kvetkeztben a levezets lpsszma pontosan annyi kell hogy legyen, mint a levezetend sz hossza.

148

Krnyezetfggetlen nyelvek

7.8. plda - Greibach normlforma 1.feladat


Adjunk meg a G({A,B,C},{0,1},S,H) nyelvtannal ekvivalens Greibach normlformj nyelvtant, ahol H={ SBC, BCS, B 1, CSB, C 0} Megolds: (I.) A balrekurzi kiiktatsa lltsunk fel egy sorrendet a nemterminlisok kzt. Legyen ez most S < B < C ! Alaktsuk t a szablyokat gy, hogy a sorrendben ksbb kvetkez szablybl ne legyen levezethet olyan sz, melynek els betje egy sorrendben elrbb lv nemterminlis (s haladjunk a vlasztott sorrendben: tekintsk elszr az A u alak szablyokat... (u(N T)+): S BC maradhat (S < B), B CS maradhat (B < C), B 1 maradhat. C SB helyett C BCB, mert (C > S miatt, mintha a C SB BCB levezetsben mr az S -re is alkalmaztunk volna szablyt.) majd CBCB helyett CCSCB s C 1CB ( C > B miatt, mintha a BCB els B -jre is alkalmaztunk volna mr levezetsi szablyt.) C 0 maradhat. (II.) A kzvetlen balrekurzi kiiktatsa SBC, BCS, B 1, CCSCB, C 1CB, C 0. Csak a CCSCB szably tartalmaz kzvetlen balrekurzit. Csoportostjuk a Cu (u(N T)+) alak szablyokat az alapjn, hogy balrekurzvak, vagy nem. Megjegyezzk, hogy egyik csoport sem lehet res, ha rekurzi elfordul s a C nem felesleges szimbluma a nyelvtannak. Vezessk be a C' j nemterminlist, mely a sorrendben elzze meg a mr ltezeket! A sorrend teht C' < S < B < C legyen! A balrekurzv CCSCB szably helyett vegyk fel a kvetkezket: C 0C', C 1CBC', (a nem balrekurzv szablyokat vegyk fel gy is, hogy az j C' szimblum szerepel a jobboldal vgn) C'SCB, C'SCBC'. (Az j nemterminlissal a baloldalon vegyk fel a balrekurzv szably(ok) jobb oldalt a balrekurzit okoz kezd C nlkl. Vegyk fel ezeket a szably(oka)t gy is, hogy a jobboldal vgn a C' is szerepel.) gy a szablyok: 149

Krnyezetfggetlen nyelvek SBC, BCS, B 1, C 1CB, C 0, C 0C', C 1CBC', C'SCB, C'SCBC'. (III.) Ha a jobboldal els betje nemterminlis, akkor helyette a belle levezethet jobboldalakat kell behelyettesteni: C 1CB ; C0; C 0C' ; C 1CBC';

megfelel szablyok

B1; BCS helyett B 1CBS, B 0S, B 0C'S, B 1CBC'S; (vagyis a C helyett az elz ngy szably jobboldalait) SBC helyett S 1C, S 1CBSC, S 0SC, S 0C'SC, S 1CBC'SC; (vagyis a B helyett az elz t szably jobboldalait) C'SCB helyett C' 1CCB, C' 0SCCB, C' 1CBSCCB, C' 1CBC'SCCB, C' 0C'SCCB ; C'SCBC' helyett C' 1CCBC', C' 0SCCBC', C' 1CBSCCBC', C' 1CBC'SCCBC', C' 0C'SCCBC' Ezzel nyelvtanunk megfelel formj lett. G=({S,B,C,C'},{0,1},S,H'), ahol H' szablyai:{ C 1CB, C 0, C 0C', C 1CBC', B 1, B 1CBS, B 0S, B 0C'S, B 1CBC'S, S 1C, S 0SC, S 1CBSC, S 1CBC'SC, S 0C'SC, C' 1CCB, C' 0SCCB, C' 1CBSCCB, C' 1CBC'SCCB, C' 0C'SCCB, C' 1CCBC', C' 0SCCBC', C' 1CBSCCBC', C' 1bCBC'SCCBC', C' 0C'SCCBC' } Ha ezek a szablyok a jobboldali els terminlis utn mg tartalmaznnak terminlist, akkor azt mr csak a normlis alakra hozsnl tanult mdon, j nemterminlisok bevezetsvel 150

Krnyezetfggetlen nyelvek kellene kiiktatni.

7.4. A Bar-Hillel lemma


A krnyezetfggetlen nyelvek esetn a levezetsek fa brzolsa (a levezetsi fa) segtsgvel fogjuk beltni a kvetkez itercis lemmt: 48. Ttel. (Bar-Hillel lemma) Brmely L krnyezetfggetlen nyelvhez ltezik olyan n termszetes szm, hogy zL esetn |z|>n szra z=uvwxy alakban rhat, ahol |vwx| n, vx s uviwxiyL minden i 0 egsz szmra. Bizonyts. Rviden ez a lemma azt mondja ki, hogy a nyelvben minden elg hossz szhoz vgtelen sok rokon szerkezet tovbbi sz tallhat. A bizonytsnl elg - mentes nyelvtanra szortkoznunk. Felttelezzk tovbb, hogy a nyelvtanunk Chomsky-fle normlalakban adott. Ha egy zL(G) sznak a levezetse olyan fval brzolhat, amelyben a leghosszabb t k hosszsg, akkor a Chomsky-fle normlalak miatt |z| 2k. Tegyk fel, hogy az N elemeinek szma j s legyen n=2j+1. Ha most zL s |z|>n, akkor az S*z levezetsi fjban a leghosszabb tnak j- nl hosszabbnak kell lennie. Vegyk ennek az tnak az utols j+1 hosszsg szakaszt. Lesz olyan AN vltoz, amely ezen a szakaszon legalbb ktszer elfordul.

Vegyk ennek a vltoznak kt ilyen elfordulst. Ezek kzl az elshz (az S- hez kzelebb fekvhz) tartoz rszfa vgpontjainak megfelel sz legyen r, a msik rszfa vgpontjainak megfelel sz legyen w. Ezekre nyilvn A*r s A*w, tovbb a w rszszava r- nek, teht r=vwx valamely v, xT* szavakra. Emellett nyilvn z=ury is teljesl valamilyen u, yT* szavakra. Az A vltoz szban forg elfordulsainak a megvlasztsa miatt |r| 2j+1. Msrszt S*uAy s A*vAx is fennll, teht tetszleges i 0 egsz szmra S*uviwxiy. Itt nem lehet v s x mindkett , mert az A*vAx levezets legalbb egy lpst tartalmaz, tekintve, hogy az A- nak kt klnbz elfordulsrl van sz. Akkor pedig ebben a levezetsben az els lps csak egy A BC alak szably alkalmazsa lehet, s ezrt |vx| 1, miutn a nyelvtanunk - mentes. Ezzel befejeztk a lemma bizonytst.

151

Krnyezetfggetlen nyelvek

7.9. plda - A Bar-Hillel lemma alkalmazsa


Az {ajbjcj|j 1} nyelv nem krnyezetfggetlen. Ha volna olyan krnyezetfggetlen nyelvtan, amely generlja ezt a nyelvet, akkor a lemma szerint volna olyan z=uvwxy sz, hogy vx, s minden i 0- ra uviwxiy ehhez a nyelvhez tartozik. Az uviwxiy=ajbjcj sszefggst azonban az u, v, w, x, y szavak semmilyen konkrt vlasztsa mellett sem lehet vgtelen sok i- re s j- re kielgteni. Ugyanis v s x kzl egyik sem tartalmazhat tbbfle bett (hiszen ekkor a pumpls sorn ltrejv sz alakja nem a*b*c* lenne). Ha viszont csak egyflt tartalmaznak, akkor az a, b, c kzl legalbb az egyiknek a kitevje i- tl fggetlen lesz. A lemma alapjn azt is kijelenthetjk, hogy ha egy krnyezetfggetlen nyelv vgtelen, akkor igaz r a konstansnvekmny elve, vagyis van olyan konstans n, hogy minden u szavhoz van a nyelvnek olyan szava, melynek hossza nem tbb, mint |u|+n. Tovbbi pldkat mutatunk a lemma alkalmazsra:

152

Krnyezetfggetlen nyelvek

7.10. plda - Bar-Hillel lemma 1. feladat


Bizonytsa be, hogy az L ={aibjcidj| i,j 1} nyelv nem krnyezetfggetlen.

Megolds: Tegyk fel indirekt, hogy megadhat olyan n termszetes szm, amely a Bar-Hillel lemma szerint minden krnyezetfggetlen nyelv esetben ltezik! Tekintsk az a2nb2nc2nd2n szt, ami nyilvnvalan eleme a nyelvnek s hosszabb n -nl. Legyen a2nb2nc2nd2n = uvwxy, ahol vx , ekkor uv2wx2yL. Ha v s x kzl valamelyik tartalmaz a-t, akkor |vwx| n miatt egyikk sem tartalmazhat c-t. gy a pumpls kivezet a nyelvbl. Ha viszont v s x kzl valamelyik tartalmaz b-t, akkor |vwx| n miatt egyikk sem tartalmazhat d-t; a pumpls gy is kivezet a nyelvbl. gy teht sem v, sem x nem tartalmazhat sem a-t, sem b-t, akkor viszont a sz hossza nem vltozhat, ami ellentmond a lemma lltsnak.

7.11. plda - Bar-Hillel lemma 2. feladat


Bizonytsa be, hogy a L={wcw | w{a,b}*} nyelv nem krnyezetfggetlen. Megolds: Tegyk fel indirekt, hogy L krnyezetfggetlen, ekkor legyen n a lemma ltal adott konstans. Tekintsk az a2nb2nca2nb2n szt. Ekkor vx miatt a v az els a2nb2n blokk rszszava kell, hogy legyen, amg az x a c utni blokk rszszava. Ellenkez esetben vagy a c-k szma vltozna a pumpls sorn, vagy a c eltti, illetve utni blokkok hossza vltozna klnbzre. | vwx | n miatt viszont gy a v csak b-ket, az x pedig csak a-kat tartalmazhat, gy viszont az iterci kivezet a nyelvbl.

7.12. plda - Bar-Hillel lemma 3. feladat

Bizonytsa be, hogy az L={ak | k 1} nyelv nem krnyezetfggetlen! Megolds: Tegyk fel indirekt, hogy L krnyezetfggetlen! Ekkor igaz r a Bar-Hillel lemma, teht ltezik olyan n szm, hogy minden n-tl hosszabb L-beli sz felrhat a lemma szerinti uvwxy alakban, hogy uvvwxxy, uvvvwxxxy ... is L-beli. 2 Legyen m2 > n s am =uvwxy s |vx| = c > 0! Ekkor m2+c,m2+2c,m2+3c... is ngyzetszm kell legyen. Krds teht, hogy van-e olyan szigoran monoton nvekv szmtani sorozat, melynek minden eleme ngyzetszm? Mivel kt szomszdos ngyzetszm klnbsge minden hatron tl n, ezrt egyszer meghaladja c-t is, teht nincs. Vagyis ellentmondsra jutottunk. Az ellentmonds oka csak az indirekt felttel hamis volta lehet. 153

Krnyezetfggetlen nyelvek

7.13. plda - Bar-Hillel lemma 4. feladat


Krnyezetfggetlen-e az L={0m12m}| m 1} nyelv? Ha igen, adjon meg hozz krnyezetfggetlen grammatikt,ha nem, bizonytsa be! Megolds: Ha a v csak 1-eseket, az x csak ktszer annyi 0-t tartalmaz, akkor azok hatvnyozsval tovbbra is L-beli szavakat kapunk, ezrt a Bar- Hillel lemmval nem jutunk ellentmondsra. pl: v=0, w=, x=11. Ekkor a lemma szerinti lland n = 3. A nyelv teht lehet krnyezetfggetlen, s meg is tudunk adni egy, a nyelvet generl nyelvtant: G=({S},{0, 1}, S, {S 0S11, S 011}).

7.14. plda - Bar-Hillel lemma 5. feladat


Krnyezetfggetlen-e az L={0i12i0j| i,j 1} nyelv? Ha igen, adjon meg hozz krnyezetfggetlen grammatikt, ha nem, bizonytsa be! Megolds: Kt alapjban eltr mdon is kielgthet a Bar-Hillel lemma: - v-t 0i-bl, x-et 12i-bl vlasztjuk, gy, hogy x ktszer hosszabb. Pl: v=0, w=, x=11. Ekkor n=3. - v-t s x-et is 0j-bl vlaszjuk. Pl: v=0, w=, x=. Ekkor n=3. G=({S, A, B},{0, 1}, S,{SAB, A 0A11, A 011, B 0, B 0B}) pedig egy grammatika, amely a keresett nyelvet lltja el.

154

Krnyezetfggetlen nyelvek

7.15. plda - Bar-Hillel lemma 6. feladat


Krnyezetfggetlen-e az L={0i1j02i|i,j 1} nyelv? Megolds: Ha a kt szln vlasztjuk ki a "pumpland" rszeket, akkor ezek tvolsga brmekkorra nhet, gy nem tudjuk n alatt tartani, ezrt a kt "pumpland" rszt vlasszuk az 1-esek kzl, illetve az egyik legyen : v=1, w=, x=, n=3. Vagyis a Bar-Hillel lemmval nem kerltnk ellentmondsba, s ez a nyelv egybknt tnyleg krnyezetfggetlen: A G=({S, A}, {0, 1}, S, {S 0S00, S 0A00, A 1A, A 1}) 2-es tpus grammatika pontosan ezt a nyelvet generlja. Elszr a 0-kat lltjuk el S 0S00 szably i-1 szeri alkalmazsval, majd a sz kzept tltjk fel 1-esekkel.

7.16. plda - Bar-Hillel lemma 7. feladat


L={api|pi az i-edik prm i 1} Bizonytsa be, hogy az L nyelv nem krnyezetfggetlen!

Megolds: Tegyk fel, hogy L krnyezetfggetlen! Ekkor alkalmazhat r a Bar-Hillel lemma, vagyis, ha c olyan prm, hogy nagyobb a lemma ltal ltez n-nl, s az vx hossza m, akkor c+m, c+2m, ..., c+cm is prm. Mrpedig c+cm=c(1+m) nem lehet prm. Vagyis ellentmondsra jutottunk.

7.17. plda - Bar-Hillel lemma 8. feladat


Legyen L={pp-1|p-1 a p tkrkpe, pT}, ahol T tetszleges bc. Krnyezetfggetlen-e az L nyelv?

Megolds: Tetszleges L-beli sz esetn, ha a Bar-Hillel lemma szerinti v s x rszszavakat szimmetrikusan vlasztjuk, akkor ezek "pumplsval" tovbbra is L-beli szavakat kapunk, teht az L nyelv "killja" a Bar-Hillel lemmt. Hogy valban krnyezetfggetlen, ahhoz csak azt kell ltni, hogy ha a grammatiknak csak SaSa (aT) s S tpus szablyai vannak, akkor az pontosan az L nyelvet lltja el.

155

Krnyezetfggetlen nyelvek

7.18. plda - Bar-Hillel lemma 9. feladat


L={ax|x=m2+3m+1, m 1} Bizonytsa be, hogy az L nyelv nem krnyezetfggetlen! Megolds: A bizonyts azon mlik, hogy kt szomszdos ilyen alak szm tvolsga [(m+1)2+3(m+1)+1]-[m2+3m+1]=2m+4 minden hatron tl nhet, az uvwxy, uvvwxxy, uvvvwxxxy ... hosszai pedig szmtani sorozatot alkotnak.

7.5. Veremautomatk
Ha a vges automata defincijban az llapothalmaz vgessgre vonatkoz kvetelmnyt elhagyjuk, akkor (a vges bcj) vgtelen automata fogalmhoz jutunk. Ez a fogalom e formjban tl ltalnosnak bizonyult, ezrt bevezettk a vgtelen automatk specilis fajtit.

7.19. plda - Verem mkdse


Az egyetemi menzn az teleket tlcn szoks a kiszolgl pultoktl az asztalokhoz vinni. A tlck a kiszolgl pultoknl egyms tetejn vannak elhelyezve, s mindig csak a legfels tlct lehet elvenni. Ha a legfels tlca valamirt nem szimpatikus (szne vagy ms miatt), ahhoz hogy az alatta lev valamelyik tlchoz hozzfrjnk, le kell venni a legfelst, s flretenni. Ezt a mozdulatot mindaddig folytatnunk kell, mg a kvnt (valamirt szimpatikus) tlchoz nem jutunk. Ezutn (ha rendeseknek akarunk ltszani) akkor a flretett tlckat visszapakoljuk (tbbnyire fordtott sorrendben mint ahogy elvettk) gy, hogy minden visszapakolt tlca fl helyezzk a kvetkez visszapakolandt. A veremautomatt eredetileg aritmetikai kifejezsek szmtgppel trtn kirtkelsre vezettk be, s trtneti rdekessge, hogy egy veremautomatt realizl szoftver volt az els olyan szmtgpes szoftver termk, mely szabadalmi oltalmat kapott az USA-ban. Egyben ez volt a vilgon az els szoftver szabadalom. (A szabadalmaztats a hatvanas vekben trtnt.) A verem olyan alapvet adatszerkezet, amely fontos szerepet jtszik a programozs sorn is. A szmtgp, anlkl, hogy erre konkrt veremkezel utastsokat hasznlnnk alkalmazza a verem adatszerkezetet a rekurzv programozsi mdszerek esetn. Tekintsk a kvetkez C-szer pszeudokdot, amely a jl ismert Hanoi-tornyai problma megoldsra rodott.

7.20. plda - Verem, mint rekurzis eszkz


Adott n pronknt klnbz mret korong s hrom rd. Kezdetben mind az n korong az els (source) rdon van. Brmelyik rdon brmelyik pillanatban a korongok csak mretknek megfelel sorrendben lehetnek: adott korong alatt nla kisebb sohasem lehet. A cl hogy az sszes n korongot trakjuk az els rdrl a msodik (target) rdra a harmadik (help) rd alkalmas segtsgvel, oly mdon, hogy minden lpsben egy korongot (a legfelst) tudjuk thelyezni egy rdrl egy msik tetejre az elbb ismertetett felttelt betartva. A megolds sorn egyes rudakhoz, mint verem adatszerkezethez tudunk hozzfrni.

function Hanoi (n,s,t,h){ if (n>0){ Hanoi (n-1,s,h,t); movedisk (s,t); Hanoi (n-1,h,t,s);} }

156

Krnyezetfggetlen nyelvek

Magyarzat: a Hanoi(n,s,t,h) hvsval n korongot helyeznk t az s rdrl a t rdra gy, hogy kzben a h rudat segdrdknt hasznlhatjuk. Msrszt a megolds sorn a rekurzv hvsok ugynacsak egy verem segtsgvel hajtdnak vgre, mindig a megfelel helyre visszadva a vezrlst. Ahogy az elz kd kompaktsgn is ltszik a rekurzi segtsgvel nagyon tmr forrskddal tudunk feladatokat megoldani. A veremautomata esetn egy potencilisan vgtelen befogadkpessg veremmemria sszes lehetsges tartalma eredmnyez vgtelen sok llapotot. A veremmemrit gy kpzelhetjk el, mint egy pozcikra felosztott, egyirnyban vgtelen szalagot. Minden pozciba egy-egy jel rhat. A jelek kiolvassa, illetve trlse a bevitelhez kpest fordtott sorrendben trtnik (LIFO: Last In First Out adatszerkezet). Ms szval, a verem belsejnek tartalmhoz kzvetlenl nem frnk hozz, hanem mindig csak a verem tetejn lv jelet tudjuk kiolvasni, illetve mdostani (fellrni, vagy trlni) s csak a verem tetejre (a benn lvk fl) helyezhetnk el jabb jelet. A verem aljn kezdetben csak egy specilis szimblum van, a kezd veremszimblum. ltalban az input szalaggal ellenttben, amit vzszintesen elhelyezkednek gondolunk, a vermet legtbbszr fggleges elrendezsnek kpzeljk/rajzoljuk. A formlis lersunkban a hellyel val takarkossg miatt, vzszintesen gy fogjuk elkpzelni, hogy a legels bet a legfels; vagyis mintha ez a szalag balra volna vgtelen. A veremautomata a vges bemen szt egy input szalagon kapja meg, melyrl egy olvasfejjel, balrl jobbra haladva betnknt tudja leolvasni a bemen szt. Az is megengedett, hogy az input szalag res legyen, azaz az resszt tartalmazza. A veremautomathoz a potencilisan vgtelen veremmemrin s az input szalagon kvl tartozik mg egy vges inicilis nemdeterminisztikus kimen jel nlkli automata, mely az input szalagrl beolvasott bet, a verem tetejn lev bet, valamint a bels llapota alapjn fogja a verem tetejt s bels llapott megvltoztatni. Az is megengedett, hogy egy-egy ilyen elemi lps sorn az input szalagon a soron kvetkez bett ne vegye figyelembe, s/vagy az tmenet lnyegben ne fggjn a verem tetejn lv bettl. Azt az elemi lpst, mikor a veremautomata az input szalagon soron kvetkez bett nem olvassa be (az olvas fej helyben marad), - lpsnek is szoks hvni. Ezt a vges inicilis nemdeterminisztikus kimen jel nlkli automatt a fejezet tovbbi rszben a rvidsg kedvrt a vereamutomata vges automatjnak (vagy vges vezrljnek) hvjuk. A veremautomata mkdsnek kezdetekor a verem szinte res (csak a kezd veremszimblum van a verem aljn), az input szalag olvasfeje a szalag els betjre mutat (vagy ha az input szalag tartalma az ressz, ezt rzkeli), s a veremautomathoz tartoz vges automata pedig a kezd llapotban van. A mkds veremautomata esetn is diszkrt idskla mentn haladva trtnik. Ha a veremautomathoz tartoz vges automata a mkds sorn a teljes input elolvassval eljut egy vgllapotba, akkor veremautomata megll. A veremautomata megll akkor is, ha a hozz tartoz vges automata egy olyan llapotban van, melyhez nem tartozik egyetlen alkalmas tmenet sem. Az alkalmas tmenet ltezse azt jelenti, hogy a verem tetejn lv jel figyelembe vtelvel vagy anlkl s az input szalagon lv kvetkez bet (ha van olyan) figyelembe vtelvel vagy anlkl az adott llapotbl van lehetsges tmenet egy msik llapotba a veremautomata vges automatjban. A veremautomathoz tartoz vges automata bels llapott a tovbbiakban rviden a veremautomata bels llapotnak, vagy a veremautomata llapotnak mondjuk. (Szigoran vve a veremautomata bels llapott egy pr hatrozza meg, melynek els eleme a verem tartalma, a msodik pedig a veremautomathoz tartoz vges automata bels llapota, s gy tekintve a veremautomata vgtelen.) Ha az input szalagon egy nem ressz van, s a veremautomata gy ll meg vgllapotban, hogy elzleg az input szalag utols betjt is beolvasta, akkor azt mondjuk, hogy a veremautomata az input szalagon lev szt elfogadta. Ha a veremautomata gy ll meg vgllapotban, hogy az input szalag tartalma az ressz, akkor azt mondjuk, hogy a veremautomata az resszt elfogadta. Akkor mondjuk, hogy a (nemdeterminisztikus mkds) veremautomata egy bemen szt elfogad, ha 157

Krnyezetfggetlen nyelvek van olyan futsa (mkdsmdja), hogy a bemen szt elfogadja. A veremautomata ltal elfogadott bemen szavak sszesgt a veremautomata ltal elfogadott nyelvnek hvjuk. A veremautomatknak tbbfle defincija is ismert, a kvetkezkben tbbfle (ltalnosabb s egyszerbb modellt is megvizsglunk). Ltni fogjuk, hogy a veremautomatk ltal elfogadott nyelvek osztlya pp a krnyezetfggetlen nyelvek osztlya. Formlisan, egy veremautomata (PushDown Automaton) a kvetkez hetes: PDA=(Q, T, Z, q0, Z0, d, F) ahol Q a bels llapotok nem res s vges halmaza, vagy ms nven llapot bc, T az inputbc, vagy szalagbc, Z a verembc, q0Q a veremautomata kezd llapota, Z0Z a verem kezdjele ("alja"), d lekpezs a Q(T{})Z- bl a QZ* vges rszhalmazaiba a (nemdeterminisztikus) tmeneti fggvny, FQ a veremautomata vgllapotainak halmaza. Egy veremautomata pillanatnyi konfigurcijn rtjk azt a (u, q, z) hrmast, ahol uT* az input mg fel nem dolgozott rsze, zZ* a veremmemria pillanatnyi tartalma ( z els betje a verem tetejn lv bet), qQ pedig a veremautomata pillanatnyi bels llapota. Egy veremautomata minden lpsben a pillanatnyi konfigurcibl a d tmeneti fggvny defincija rtelmben egy vagy tbb pillanatnyi konfigurciba mehet t (vagy pp nem mehet t egybe sem). Mint mr emltettk, az tmenet trtnhet oly mdon, hogy kzben a veremautomata nem kri a bemen jelsorozat kvetkez jelt ( - lps). A PDA veremautomata egy (au, q, Xz)(T*QZ+) konfigurcit egy lpsben talakt a (u, p, tz)(T*QZ*) konfigurciba, ahol a(T{}), XZ pedig a verem tetejn lev szimblum, (jelekben: (au, q, Xz)PDA(u, p, tz), vagy csak egyszeren: (au, q, Xz)(u, p, tz)), ha van olyan aT{}, p, qQ, valamint tZ*, hogy a kvetkez sszefggs fennll: (p, t)d(q, a, X). Egy veremautomata a (u, q, z)(T*QZ+) konfigurcit (vges lpsben) talakt (talakthat) a (v, p, t) konfigurciba - jelekben: (u, q, z)*(v, p, t) - ha van olyan vges konfigurcisorozat P0, P1, , Pn, melyenk els tagja P0=(u, q, z), utols tagja Pn=(v, p, t), s brmely kt egymst kvet tagjra PiPDAPi+1 (i=0,,n-1) fennll. A veremautomata ltal (vgllapottal) elfogadott nyelv: L(PDAf)={wT*|(w, q0, Z0)*(, p, z) valamely zZ* s pF esetn }. Lthat, hogy a veremautomata egy lpsben egy jelpron tud opercit vgrehajtani, aholis a jelpr egyik tagja a verembc egy jele, a msodik tagja pedig az input bc egy betje, vagy az ressz. Az eddigiek sorn a veremautomata vgllapottal fogadta el a nyelvet, a szakirodalomban ugyanilyen jl ismert az res veremmel elfogad automata. Sok esetben, mint pl. a rekurzv programok esetn is, akkor tekintjk a rendszer mkdst helyesen befejezettnek, ha vgl kirl a verem. Egy PDA=(Q, T, Z, q0, Z0, d, F) veremautomata res veremmel fogadja el az L(PDAe)={wT*|(w, q0, Z0)*(, p, ) valamely pQ esetn } nyelvet. Egy res veremmel elfogad veremautomata esetn (vagyis ha az L(PDAe) nyelvre vagyunk kvncsiak), tulajdonkppen az F vgllapotok halmazra nincs is szksg. A veremautomatkat is megadhatjuk grafikusan a vges automatkhoz hasonl mdon: krkkel jelljk az llapotokat, kln (egy bemen nyllal) megjellve a kezdllapotot. Vgllapottal 158

Krnyezetfggetlen nyelvek elfogad automata esetn duplakarikkkal jelljk a vgllapotokat, res veremmel elfogad automata esetn pedig nincs vgllapot (vagyis a vgllapotok hinyval jelezzk, hogy resveremmel elfogadsrl van sz). A d tmenetfggvny alapjn, ha (p, t)d(q, a, X), akkor egy irnytott l vezet a q llapotbl a p llapotba s az len az (a, X/t) cmke ( aT{}, XZ, tZ* ) mutatja, hogy az tmenet akkor lehetsges ha a- t olvasunk az input szalagrl mikzben X van a verem tetejn, amit az tmenet sorn a t- vel helyettestnk. Egy tetszleges veremautomata esetn a vgllapottal, illetve az res veremmel elfogadott nyelvek nagyon klnbzhetnek egymstl. Ezrt nagyon fontos, hogy, ha adva van egy veremautomata, akkor legyen adott az is, hogy mely mdon akarjuk azt nyelv elfogadsra hasznlni.

7.21. plda - Vgllapottal elfogad veremautomata mkdse


Olyan veremautomata mkds kzben, mely az anbn alak szavakat fogadja el:

7.22. plda - Az azonos szm a s b betbl ll szavakat vgllapottal elfogad veremautomata


A kvetkez veremautomata olyan szavakat fogad el, melyekben az a- k s b- k szma megegyezik.

159

Krnyezetfggetlen nyelvek

7.23. plda - A Dyck nyelvet vgllapottal elfogad automata


Az albbi veremautomata a helyes zrjelek nyelvt (Dyck nyelvet) fogadja el.

A kvetkezkben megmutatjuk, hogy a veremautomkkal vgllapottal elfogadott nyelvek osztlya megegyezik a veremautomkkal res veremmel elfogadott nyelvek osztlyval. Az lltst kt rszben, konstruktvan bizonytjuk. 49. Ttel. Legyen L nyelv olyan amit a PDAf veremautomata vgllapottal elfogad. Ekkor van olyan PDAe veremautomata amely ugyanezt a nyelvet res veremmel fogadja el. Bizonyts. Legyen PDAf=(Q, T, Z, q0, Z0, d, F). Ekkor megkonstrulunk egy PDAe=(Q ', T, Z ', q'0, Z'0, d ', ) automatt a kvetkezkppen: Q '=Q{q'0, qf}, ahol q'0, qfQ ; Z '=Z{Z'0}, ahol Z'0Z; d '- t pedig a kvetkezkppen szrmaztatjuk d- bl. Legyen d '(q'0, Z'0)={(q0, Z0Z'0)}. Tovbb, minden p, qQ, aT{}, XZ, tZ* esetn, legyen (p, t)d '(q, a, X) pontosan akkor, ha (p, t)d(q, a, X); valamint legyen (qf, )d '(q, , X) minden q(F{qf}) s XZ ' esetn. Az gy konstrult PDAe automata els lpse csak az lehet, hogy tmegy a szimulland PDAf kezdllapotnak megfelel llapotba, mikzben a verembe a PDAf kezd veremszimbluma bekerl a PDAe kezd veremszimbluma fl. Ezutn az automata a PDAf automata egy futst szimullja, amg az egy vgllapotba nem jut vagy el nem akad. Ha a PDAf egy vgllapotba jutna, akkor, s csak ekkor, a PDAe automata tmehet a qf llapotba input olvassa nlkl, s kirtheti a verem tartalmt. PDAe pontosan akkor fogad el egy szt, ha a szimulland PDAf vgigolvasta a szt s ekkor vgllapotba kerlt, vagyis pontosan a kvnt nyelvet fogadja el. 50. Ttel. Legyen L nyelv olyan amit a PDAe veremautomata res veremmel elfogad. Ekkor van olyan PDAf veremautomata amely ugyanezt a nyelvet vgllapottal fogadja el. 160

Krnyezetfggetlen nyelvek Bizonyts. Legyen PDAe=(Q, T, Z, q0, Z0, d, F). Ekkor megkonstrulunk egy PDAf=(Q ', T, Z ', q'0, Z'0, d ', {qf}) automatt a kvetkezkppen: Q '=Q{q'0, qf}, ahol q'0, qfQ ; Z '=ZZ'0, ahol Z'0Z; d '- t pedig a kvetkezkppen szrmaztatjuk d- bl. Legyen d '(q'0, Z'0)={(q0, Z0Z'0)}. Tovbb, minden p, qQ, aT{}, XZ, tZ* esetn, legyen (p, t)d '(q, a, X) pontosan akkor ha (p, t)d(q, a, X). Ezen kvl legyen (qf, )d '(q, , Z'0) minden qQ esetn. Az gy konstrult PDAf automata els lpse csak az lehet, hogy tmegy a szimulland PDAe kezdllapotnak megfelel llapotba, mikzben a verembe a PDAe kezd veremszimbluma bekerl a PDAf kezd veremszimbluma fl. Ezutn az automata a PDAe automata egy futst szimullja, amg annak verme ki nem rl (ekkor most Z'0 a veremtartalom) vagy el nem akad. Ha a szimulland verem kirlt, s csak ekkor, a PDAf tmehet vgllapotba. PDAf pontosan akkor fogad el egy szt, ha a szimulland PDAe vgigolvasta a szt s ekkor kirlt a verme, vagyis pontosan a kvnt nyelvet fogadja el. Az elz konstrukcival kicsit tbbet is belttunk a tervezettnl: minden a veremautomatk ltal elfogadodtt L nyelvhez van olyan PDA veremautomata, amely L-et fogadja el vgllapottal s res veremmel is, radsul egyszerre vgllapottal s resveremmel fogadja el L minden szavt (s csak ezeket). 3. Kvetkezmny. A veremautomatkkal vgllapottal elfogadott nyelvek osztlya megegyezik a veremautomkkal res veremmel elfogadott nyelvek osztlyval. A kvetkezkben a veremautomatk s a krnyezetfggetlen nyelvosztly kapcsolatra dertnk fnyt. 51. Ttel. Minden krnyezetfggetlen L nyelvhez megadhat egy PDA veremautomata, amely L-et fogadja el res veremmel. Bizonyts. Legyen adott G=(N, T, S, H) krnyezetfggetlen nyelvtan, amely L-et generlja. Ekkor definiljuk PDA=(Q, T, Z, q, Z0, d, )- t a kvetekezkppen: legyen Q={q}; T bc megegyezik a G nyelvtannl megadott terminlis bcvel, hiszen ugyanazt az L nyelvet szeretnnk elfogadtatni, amit G generl; Z=NT; Z0=S ; d-t pedig a H alapjn a kvetkezkppen definiljuk: legyen (q, t)d(q, , a) pontosan akkor, ha AtH ezen kvl legyen (q, )d(q, a, a) minden aT- re. Knnyen belthat, hogy az automata a w sz elfogadsa sorn annak egy legbalodali levezetst szimullja. Az elz konstrukciban egy llapottal dolgoztunk, tulajdonkppen llapotra gy nincs is szksg. llapotnlkli veremautomatrl beszlnk, ha az eredeti defincinknak megfelel automatnak csak egy llapota van. Vilgos hogy ilyen automatk esetn az elfogads res veremmel trtnik. Bevezethetjk a kvetkez rvidtst: PDAn=(T, Z, Z0, d)- vel jelljk az res veremmel elfogad llapotnlkli veremautomatt (egyszeren elhagyva a hetesbl, illetve a d lekpezsbl az llapotokat). Az elz ttel bizonytsval, a ttelnl ersebb lltst bizonytottunk be: minden krnyezetfggetlen nyelv res veremmel elfogadtathat llapotnlkli veremautomatval. Ha az elbbi konstrukcit specilis, pl. Chomsky vagy Greibach normlalak nyelvtanra vgezzk el, akkor megsprolhatak azok a lpsek, amelyek a terminlisokat a verembe helyezik (ha a verem 161

Krnyezetfggetlen nyelvek tetejn terminlis van, akkor csak olyan lps kvetkezhet, ami ezt kiveszi onnan, mikzben a szalagrl olvasunk). Chomsky-fle normlalak G=(N, T, S, H) nyelvtan esetn a PDAn=(T, N, S, d) fogadja el a nyelvet ahol d(a, A) pontosan akkor, ha AaH s BCd(, A) pontosan akkor, ha A BCH. Greibach normlforma hasznlata esetn td(a, A) pontosan akkor, ha A atH valamely AN, aT, tN* esetn. Ezek alapjn gondolhatnnk azt, hogy ha llapotokat is megengednk, akkor a veremautomatk a krnyezetfggetlen nyelveknl bvebb nyelvosztly elfogadsra kpesek. Ezzel ellenttben belthat, hogy az llapotok szimullhatak llapotnlkli automatval is (a verembc megfelel kitejesztsvel). Nem az llapotnlkli s llapotokkal rendelkez automatk ekvivalencijt fogjuk kzvetlenl bizonytani, hanem tetszleges PDA veremautomathoz megkonstruljuk azt a krnyezetfggetlen nyelvtant, amit PDA elfogad res veremmel. 52. Ttel. Minden PDA veremautomathoz ltezik olyan G krnyezetfggetlen nyelvtan, hogy L(PDAe)=L(G). Bizonyts. Legyen teht PDA=(Q, T, Z, q0, Z0, d, F) adott. Ksztsk el a G=(N, T, S, H) nyelvtant a kvetkez mdon. Legyen N={[p, X, q] | p, qQ, XZ}{S}. A szablyok pedig legyenek: - S[q0, Z0, q] minden qQ- ra. - [p, X, q] a[q1, Y1, q2][q2, Y2, q3][qn, Yn, q] minden lehetsges q1, q2, , qn- re ( n 1 ), ha (q1, Y1Yn)d(p, a, X) - [p, X, q]a pontosan akkor, ha (q, )d(p, a, X). Az els lpsben nemdeterminisztikusan megtippeljk az utols llapotot az elfogadskor. A msodik lpsbeli szablyokkal nemdeterminisztikusan tippelnk a kzbls q2, , qn llapotokra. Ekkor indukcival megmutathat, hogy pontosan akkor lesz terminl levezets G-ben egy w szra, ha azt a PDA automata elfogadja. 4. Kvetkezmny. A krnyezetfggetlen nyelvek osztlya egybeesik a veremautomatk ltal (akr vgllapottal, akr res veremmel, akr egyszerre mindkettvel) elfogadott nyelvek osztlyval.

7.24. plda - llapotnlkli, res veremmel elfogad automata mkdse s a legbaloldalibb levezets kapcsolata
Legyen G=({S},{1,+},S,{S S+S, S 1}). A kvetkez brkon egy, a G-vel ekvivalens veremautomata mkdse, mellette pedig egy G-beli legbaloldalibb levezetsi fa felplse lthat.

162

Krnyezetfggetlen nyelvek

A veremautomata res veremmel elfogadta az 1+1+1+1 szt:

A tovbbiakban a veremautomatk nhny specilis vltozatt vizsgljuk meg. Ha a PDA=(Q, T, Z, q0, Z0, d, F) olyan, hogy - minden pQ, aT s XZ esetn fennll, hogy |d(p, , X)|+|d(p, a, X)| 1 (vagyis nem lehet resszavas tmenet rtelmezve olyan llapot s veremszimblum prra, amire van rtelmezve nem resszavas tmenet is), valamint - minden pQ, aT{} s XZ esetn |d(p, a, X)| 1 (vagyis maximum egyfle tmenet van rtelmezve), 163

Krnyezetfggetlen nyelvek akkor determinisztikus veremautomatrl beszlnk. rvnyes a kvetkez ttel. 53. Ttel. A determinisztikus veremautomatk ltal elfogadott nyelvek osztlya valdi rszosztlya a nemdeterminisztikus veremautomatk ltal elfogadott nyelvek osztlynak. A determinisztikus veremautomatk ltal vgllapottal elfogadott nyelvek osztlyt determinisztikus krnyezetfggetlen nyelveknek hvjuk. A determinisztikus veremautomatkkal res veremmel elfogadhat nyelvek osztlya valdi rsze a vgllapottal elfogadhat nyelvek osztlynak. A determinisztikus veremautomatkkal res veremmel elfogadhat nyelvek osztlya egy nagyon szk nyelvosztly, hiszen az automatnak determinisztikus mdn ki kell rtenie a vermet az adott sz elolvassakor (utn) anlkl, hogy tudn van-e mg htra az inputbl. Itt jegyezzk meg, hogy a lineris (nyelvtanok ltal generlt) nyelvek ppen az egyszerfordul veremautomatk ltal elfogadott nyelvek osztlya. Az egyszerfordul veremautomatk olyan specilis veremautomatk amelyek mkdsk kzben elbb csak "tltik" a vermet, aztn pedig csak "rtik". Az tmenetfggvnyk olyan, hogy ha volt mr trls a verembl (vagyis olyan tmenet, amikor a legfels veremszimblum helyre csak a kerlt), akkor mr nem tehetnek a verembe jabb szimblumokat. A lineris nyelvtanok levezetsi fit tekintve ppen az trtnik, hogy a baloldali gakon lev terminlisok elolvassa kzben a fg (a nemterminlisok) bekerlnek a verembe, s ennek megfelelen, ket fordtott sorrendben kiszedve olvassuk el a jobb oldali terminlisokat. A determinisztikus egyforduls veremautomatk ltal elfogadott nyelveket tekinthetjk egyfle determiniszikus lineris nyelveknek (detLin). Ez a nyelvosztly viszont halmazelmletileg nem sszemrhet a determinisztikus 2-fej automatk ltal definilt 2detLin nyelvosztllyal a tartalmazsi relcira nzve. A palindromk nyelve 2detLin nyelv, de nem detLin (a veremautomata nem tudja mikor rtnk a sz kzepre, gy determinisztikusan nem tud "fordulni"). Viszont az {anban}{a2ncan} nyelv detLin, de nem 2detLin. Egy veremautomatt szmll-automatnak hvunk, ha a verem tartalma csak X*Z0 lehet, ekkor a nem trlhet kezd veremszimblumon (a veremalja jelen) kvl csupn egyetlen veremszimblum ll rendelkezsre. Tulajdonkppen a veremnek gy csak ktfle szimblum lehet a tetejn: X ha a verem "nemres", s Z0, ha a verem "res". Tulajdonkppen egy szmllnk van amely rtke tetszleges termszetes szm lehet, viszont az automatnk csak azt a kt esetet tudja megklnbztetni, hogy nulla vagy pozitv az rtk. Az ilyen szmllautomatval elfogadott nyelveket szmllnyelveknek hvjuk. Megmutathat, hogy pl. a palindrmk nyelve nem szmllnyelv, gy teljesl a kvetkez 54. Ttel. A szmllnyelvek osztlya a krnyezetfggetlen nyelvek osztlynak valdi rsze.

7.25. plda - Veremautomatk 1. feladat


Adjunk meg a G 2-es tpus grammatikhoz egy olyan veremautomatt, amely a G grammatika ltal generlt nyelvet ismeri fel, majd mutassuk meg, hogy az 10011 szt felismeri az automata! G=({S,A,B},{0,1},S,H),ahol H szablyai: SSA, SAB, ABS, BSA, A 1, S 1, B 0. Megolds: Egy olyan megoldst fogunk adni, amely a G nyelvtan ltal generlt nyelv szavait egyszerre fogadja el vgllapottal s res veremmel. 164

Krnyezetfggetlen nyelvek - A szalagbc lljon a grammatika terminlisaibl, - A verembc pedig tartalmazza a terminlisokat, a nemterminlisokat s a kezd veremszimblumot! - A bels llapotok halmaza 3 elembl ll, melybl egy kezd- egy ltalnos- s egy vgllapot. - Az tmenetfggvny definilsa: - Kell egy olyan szably, hogy a kezd veremszimblum fl rja az S kezdszimblumot, s tviszi az automatt ltalnos llapotba! - Kellenek olyan szablyok, hogy az automata a szalagrl nem olvas, a verem tetejrl olvassa a H-beli szablyok bal oldalt, majd visszarja fordtott sorrendben a jobb oldalt! - Kellenek olyan szablyok, hogy a szalagrl s a verem tetejrl ugyanazt olvassuk, majd nem runk semmit a verem tetejre! PDA = ({q0, q1, q2},{0, 1}, {S, A, B, 0, 1,z0}, q0, z0, , {q2}). (q0, , z0)={(q1, Sz0)}, (q1, , S)={(q1, SA), (q1, AB), (q1, 1)}, (q1, , A)={(q1, BS), (q1, 1)}, (q1, , B)=(q1, SA), (q1, 0)}, (q1, 1, 1)={(q1, )}, (q1, 0, 0)={(q1, )}, (q1, , z0)={(q2, )}. A Cocke-Younger-Kasami algoritmusos fejezet 7.35. plda - Cocke-Younger-Kasami algoritmus 1. feladat segtsgvel tallhatunk a kvetkez legbaloldalibb levezetsre az 10011 sznak: SSASAAABAA1BAA10AA10BSA100SA1001A10011. Ezt levezetst hasznlva mutatjuk meg az automata miyen lpseken t ismerheti fel az 10011 szt: Az automata mkdse eltt a konfigurci: (szalagon mg htra lv inputrsz, llapot, verem) (10011, q0, z0) 1. lps: rjuk a kezd veremszimblum fel S-t! Ezt megteheti az automata, mert (q1, Sz0) (q0, , z0). (10011, q1, Sz0) 2. lps: Az automata a verem tetejt SA-ra cserlheti mivel (q1, SA) (q1, , S). (Alkalmaztuk az SSA szablyt.) (10011, q1, SAz0) 3. lps: Az automata a verem tetejt SA-ra cserlheti mivel (q1, SA) (q1, , S). (Alkalmazzuk az SSA szablyt.) (10011, q1, SAAz0) 4. lps: A verem tetejn az S helyett egy B-t majd egy A-t rakhat, mivel (q1, AB) (q1, , S). (Alkalmazzuk az SAB szablyt.) (10011, q1, ABAAz0) 5. lps: A verem tetejn lv A-t 1-esre cserlheti, mert (q1, 1) (q1, , A). (Alkalmazzuk az A 1 szablyt.) (10011, q1, 1BAAz0) 6. lps: A szalagrl olvashat az automata s a verembl trlhet, mert (q1, ) (q1, 1 ,1). (0011, q1, BAAz0) 165

Krnyezetfggetlen nyelvek 7. lps: A verem tetejn lv B-t 0-sra cserlheti az automata, mert (q1, 0) (q1, , B). (Alkalmazzuk a B 0 szablyt.) (0011, q1, 0AAz0) 8. lps: A szalagrl olvashat s a verembl trlhet az automata, mert (q1, ) (q1, 0, 0). (011, q1, AAz0) 9. lps: A verem tetejn az A helyett egy S-t majd egy B-t rakhat, mivel (q1, BS) (q1,,A). (Alkalmazzuk az ABS szablyt.) (011, q1, BSAz0) 10. lps: A verem tetejn lv B-t 0-sra cserlheti az automata, mert (q1, 0) (q1, , B). (Alkalmazzuk a B 0 szablyt.) (011, q1, 0SAz0) 11. lps: A szalagrl olvashat s a verembl trlhet az automata, mert (q1, ) (q1, 0, 0). (11, q1, SAz0) 12. lps: A verem tetejn lv S-t 1-esre cserlheti az automata, mert (q1, 1) (q1, , S). (Alkalmazzuk az S 1 szablyt.) (11, q1, 1Az0) 13. lps: A szalagrl olvashat s a verembl trlhet az automata, mert (q1, ) (q1, 1, 1). (1, q1, Az0) 14. lps: A verem tetejn lv A-t 1-esre cserlheti az automata, mert (q1, 1) (q1, , A). (Alkalmazzuk az A 1 szablyt.) (1, q1, 1z0) 15. lps: A szalagrl olvashat s a verembl trlhet az automata, mert (q1, ) (q1, 1, 1). (, q1, z0) 16. lps: Az automata tmehet vgllapotba s kirtheti a vermet, mert (q2,) (q1, , z0) (, q2, ), vagyis az automata res veremmel s vgllapottal felismerte az 10011 szt. II. megolds: Mivel a nyelvtanunk (terminlis) normlalak, azaz terminlis csak Xx szablyokban fordul el, ahol XN s xT, ezrt az tmenetfggvny a kvetkez lehet: - Kell egy olyan szably, hogy a kezd veremszimblum fl rja az S kezdszimblumot, s tviszi az automatt ltalnos llapotba! - Kellenek olyan szablyok, hogy az automata a szalagrl nem olvas, a verem tetejrl olvassa a H-beli szablyok bal oldalt, majd visszarja a jobb oldalt, ha a jobboldal nem tartalmaz terminlist! - Kellenek olyan szablyok, hogy a szalagrl x-et s a verem tetejrl X-et olvassuk, majd nem runk semmit a verem tetejre, ha XxH, s XN, xT! 166

Krnyezetfggetlen nyelvek - s kell egy olyan szably, hogy ha ltalnos llapotban olvassa az automata a kezd veremszimblumot, akkor menjen t vgllapotba! Ekkor a veremautomata: A({q0, q1, q2}, {0, 1}, {S, A, B, 0, 1,z0}, q0, z0, , {q2}). (q0, , z0)={(q1, Sz0)}, (q1, , S)={(q1, SA),(q1, AB)} (q1, , A)={(q1, BS)}, (q1, , B)={(q1, SA)}, (q1, 1, A)={(q1, )}, (q1, 1, S)={(q1, )}, (q1, 0, B)={(q1, )}, (q1, , z0)={(q2, )}. A msodik automata mkdse: (10011, q0, z0) 1. lps: rjuk a kezd veremszimblum fel S-t! Ezt megteheti az automata, mert (q1, Sz0) (q0, , z0). (10011, q1, Sz0) 2. lps: Az automata a verem tetejt kicserlheti SA-ra mivel (q1, SA) (q1, , S). (Alkalmaztuk az SSA szablyt.) (10011, q1, SAz0) 3. lps: Az automata a verem tetejt kicserlheti SA-ra mivel (q1, SA) (q1, , S). (Alkalmaztuk az SSA szablyt.) (10011, q1, SAAz0) 4. lps: Alkalmazzuk az SAB szablyt! (q1, AB) (q1, , S). (10011, q1, ABAAz0) 5. lps: A szalagrl olvasunk, a verembl trlnk. (q1, ) (q1, 1, A). (0011, q1, BAAz0) 6. lps: A szalagrl olvasunk, a verembl trlnk. (q1, ) (q1, 0, B). (011, q1, AAz0) 7. lps: (q1, BS) (q1, , A). (Alkalmazzuk az ABS szablyt.) (011, q1, BSAz0) 8. lps: A szalagrl olvasunk, a verembl trlnk. (q1, ) (q1, 0, B). (11, q1, SAz0) 9. lps: A szalagrl olvasunk, a verembl trlnk. (q1, ) (q1, 1, S). (1, q1, Az0) 10. lps: A szalagrl olvasunk, a verembl trlnk. (q1, ) (q1, 1, A). (, q1, z0) 167

Krnyezetfggetlen nyelvek 11. lps: (q2,) (q1, , z0) (, q2, ), vagyis az automata res veremmel s vgllapottal felismerte az 10011 szt.

7.26. plda - Veremautomatk 2. feladat

Adjunk meg olyan veremautomatt, amely pontosan a kvetkez grammatika ltal generlt nyelv szavait ismeri fel, s mutassuk meg, hogy a bbcbba szt is elfogadja! G=({S,A,B,C,D},{a,b,c},S,H), ahol H szablyai: SAB, ACA, ASS, BCD, Ab, Da, Cc, Cb. Megolds: A({q0, q1, q2}, {a, b, c}, {S, A, B, C, D, a, b, c, z0}, q0, z0, , {q2}). (q1, Sz0)(q0, , z0), (q1, AB)(q1, , S), (q1, CA)(q1, , A), (q1, SS)(q1, , A), (q1, CD)(q1, , B), (q1, b)(q1, , A), (q1, a)(q1, , D), (q1, c)(q1, , C), (q1, b)(q1, , C), (q1, )(q1, a, a), (q1, )(q1, b, b), (q1, )(q1, c, c), (q2, )(q1, , z0). Az egyetlen legbaloldalibb levezets (pl. a Cocke-Younger-Kasami algoritmusos fejezet 7.37. plda - Cocke-Younger-Kasami algoritmus 3. feladat alapjn): SABCABbABbCABbbABbbCABbbcABbbcbBbbcbCDbbcbbDbbcbba A sz felismersnek lpsei: (bbcbba,q0,z0) 1. lps (q1, Sz0)(q0, , z0) (bbcbba,q1, Sz0) 2. lps (q1, AB)(q1, , S) (bbcbba,q1, ABz0) 3. lps (q1, CA)(q1, , A) (bbcbba,q1, CABz0) 4. lps (q1, b)(q1, , C) (bbcbba,q1, bABz0) 5. lps (q1, )(q1, b, b) (bcbba,q1, ABz0) 6. lps (q1, CA)(q1, , A) (bcbba,q1, CABz0) 7. lps (q1, b)(q1, , C) (bcbba,q1, bABz0) 8. lps (q1, )(q1, b, b) (cbba,q1, ABz0) 168

Krnyezetfggetlen nyelvek

9. lps (q1, CA)(q1, , A) (cbba,q1, CABz0) 10. lps (q1, c)(q1, , C) (cbba,q1, cABz0) 11. lps (q1, )(q1, c, c) (bba,q1, ABz0) 12. lps (q1, b)(q1, , A) (bba,q1, bBz0) 13. lps (q1, )(q1, b, b) (ba,q1, Bz0) 14. lps (q1, CD)(q1, , B) (ba,q1, CDz0) 15. lps (q1, b)(q1, , C) (ba,q1, bDz0) 16. lps (q1, )(q1, b, b) (a,q1, Dz0) 17. lps (q1, a)(q1, , D) (a,q1, az0) 18. lps (q1, )(q1, a, a) ( ,q1, z0) 19. lps (q2, )(q1, , z0) (, ,q2, ) Teht az automata vgllapottal s res veremmel felismerte a szt!

7.27. plda - Veremautomatk 3. feladat


Adjunk meg olyan veremautomatt, mely pontosan a G grammatika ltal generlt nyelv szavait ismeri fel! G=({S, A, B},{x, y}, S, H), ahol H a kvetkez szablyokbl ll: SAB, ABSB, ABB, BxAy, B, Bx, By. Megolds: A({q0, q1, q2}, {x, y}, {S, A, B, x, y, z0}, q0, z0, , {q2}). (q1, Sz0)(, q0, z0), (q1, AB)(, q1, S), (q1, BSB)(, q1, A), (q1, BB)(, q1, A), (q1, xAy)(, q1, B), (q1, )(, q1, B), (q1, x)(, q1, B), (q1, y)(, q1, B), (q1, )(x, q1, x), (q1, )(y, q1, y), (q2, )(, q1, z0).

169

Krnyezetfggetlen nyelvek

7.28. plda - Veremautomatk 4. feladat


Ksztsnk olyan veremautomatt, amely az L={anbn| n 0} nyelvet ismeri fel!

Megolds: - Mivel az ressz eleme L-nek, az automata q0 kezdllapota egyben egy vgllapot is. - Ha olvasunk egy a bett, akkor runk a verembe egy a-t, s tmegynk a q1 llapotba. - Ha olvasunk egy a-t akkor a verem tetejre rakunk mg egy a-t, s maradunk ebben az llapotban. - Ha b-t olvasunk, akkor kivesznk egy a-t a verembl, majd tmegynk a q2 llapotba. - Ha b-t olvasunk a szalagon s a-t a veremben, akkor maradunk itt, s kivesznk egy a-t. - Ha z0-t olvasunk a verembl s nincs bet a szalagon, akkor rtjk a vermet, s tmegynk q3 llapotba, mely szintn vgllapot. Az elkszlt automatt a kvetkez bra mutatja:

Itt jegyezzk meg, hogy az L nyelv egy szmllnyelv. Ha a fenti megoldsban az utols lpsben nem trljk ki a z0-t a verembl, gy megynk t a q3 elfogadllapotba, akkor az elksztett automatnk szmll-automata.

7.29. plda - Veremautomatk 5. feladat


Ksztsnk olyan veremautomatt, amely az L={anbm| 0 n m 2n} nyelvet ismeri fel!

Megolds: - Mivel az ressz eleme L-nek, az automata q0 kezdllapota egyben egy vgllapot is. - Ha olvasunk egy a bett, akkor runk a verembe egy a-t vagy kt a-t, s tmegynk a q1 llapotba. - Ha olvasunk egy a-t akkor a verem tetejre rakunk mg egy a-t vagy kt a-t, s maradunk ebben az llapotban. - Ha b-t olvasunk, akkor kivesznk egy a-t a verembl, majd tmegynk a q2 llapotba. - Ha b-t olvasunk a szalagon s a-t a veremben, akkor maradunk itt, s kivesznk egy a-t. - Ha z0-t olvasunk a verembl s nincs bet a szalagon, akkor rtjk a vermet, s tmegynk q3 llapotba, mely szintn vgllapot. A ksz automata:

170

Krnyezetfggetlen nyelvek

Gyakorl feladatknt bizonytsuk be, hogy az L nyelv egy szmllnyelv, vagyis ksztsnk egy Let elfogad szmll-automatt.

7.30. plda - Veremautomatk 6. feladat


Ksztsnk olyan veremautomatt, amely az L={w | |w|a = |w|b} nyelvet ismeri fel! (Azok a szavak az {a,b} bc felett, melyekben az a-k s a b-k szma megegyezik.)

Megolds: A veremben csak legfeljebb egyfle z0-tl eltr szimblum lehet. - csak z0 van: ugyanannyi a s b bet kerlt elolvassra eddig. - k db a bet van a z0 felett, akkor eddig k-val tbb a-t olvastunk be. - k db b bet van a z0 felett, akkor eddig k-val tbb b-t olvastunk be. az automata mkdse: - Ha a veremben csak z0 van, akkor a szalagrl olvasott jelet tegyk a verem tetejre. - Ha a verem tetejn lv s a beolvasott jel egyforma, akkor ezek szmt a veremben nveljk 1-gyel. - Ha a verem tetejn lv s a beolvasott jel eltr, akkor a veremben lvk szmt cskkentjk 1-gyel. - Ha a veremben csak z0 van, akkor kirthetjk a vermet, s tmehetnk vgllapotba.

171

Krnyezetfggetlen nyelvek

7.31. plda - Veremautomatk 7. feladat


Ksztsnk olyan veremautomatt, amely az L={aibjck| i,j,k 0 s i=j vagy i=k} nyelvet ismeri fel!

Megolds: Fontos, hogy az automatnk nemdeterminisztikus. - Az egyik "g" (q0,q1,q2,q4) azokat a szavakat ismeri fel, mikor az a-k s a b-k szma egyforma. - A msik "g" (q0,q1,q3,q5,q6) azokat a szavakat ismeri fel, mikor az a-k s a c-k szma egyforma. - Arra kell mg figyelni, hogy a*b*c* alak legyen a sz s lehet ijk=0 (i,j,k kzl brmelyik, vagy tbb is lehet 0) is. - Az automata vgllapottal ismer fel.

172

Krnyezetfggetlen nyelvek

7.32. plda - Veremautomatk 8. feladat


Ksztsnk olyan veremautomatt, amely L={wcw-1| w{a,b}*, w-1 a w fordtottja} nyelvet ismeri fel,

Megolds: - Ha c-t olvasunk, akkor rgtn kirtjk a vermet, s tmegynk vgllapotba. - Ha a-t vagy b-t olvasunk, tmegynk egy msik llapotba (tlt llapotba), s berakjuk a verembe, amit olvasunk. - Ha tlt llapotban a-t vagy b-t olvasunk, akkor az megy a verembe. - Ha c-t olvasunk, akkor a vermet vltozatlanul hagyjuk, s jabb llapotba megynk (kirt llapot). - Ha kirt llapotban a verem tetejn lv bet megegyezik az olvasottal, akkor azt kivesszk a verembl. - Ha z0-t elrjk, akkor kirtjk a vermet, s tmegynk vgllapotba.

173

Krnyezetfggetlen nyelvek

7.33. plda - Veremautomatk 9. feladat


Ksztsnk olyan res veremmel elfogad veremautomatt, amely az {a,b} bc fltti helyes zrjelszavak nyelvt, ahol a a nyit, b pedig a zr zrjel (vagyis a Dyck nyelvet) ismeri fel!

Megolds: - Ha a-bett olvasunk a szalagon, akkor a verembe rjuk. - Ha b-t olvasunk a szalagon, trlnk egy a-t. - Ha z0-t olvasunk, akkor kirthetjk a vermet, vagy folytathatjuk a olvassval is.

7.6. Zrtsgi tulajdonsgok


Ebben a fejezetben a krnyezetfggetlen nyelvek zrtsgi tulajdonsgait vizsgljuk meg. 55. Ttel. A krnyezetfggetlen nyelvek osztlya zrt a regulris mveletekre nzve. Bizonyts. A bizonyts sorn ttelezzk fel, hogy L1=L(G1), L2=L(G2), ahol G1=(N1, T, S1, H1) s G2=(N2, T, S2, H2), valamint N1N2=. A bizonytst az egyes mveletekre kln-kln vgezzk el. 174

Krnyezetfggetlen nyelvek Egyests (uni). S legyen egy olyan nemterminlis, amely eddig nem szerepelt sem N1- ben, sem N2ben. A G=(N1N2{S}, T, S, H1H2{S S1, S S2}) krnyezetfggetlen nyelvtan ekkor az L1L2 nyelvet generlja. A levezets sorn els lpsknt alkalmazhat S S1, illetve S S2 szably vlasztsval eldntjk, hogy melyik nyelvtan alapjn szeretnnk generlni a kvetkez szt; ezutn pedig, mivel N1 s N2 diszjunkt halmazok, csak a megfelel H1, illetve H2- beli szablyok alkalmazhatak a levezets sorn. Konkatenci. Legyen ismt SN1N2. Ekkor a G=(N1N2{S}, T, S, H1H2{S S1S2}) krnyezetfggetlen nyelvtan az L1L2 nyelvet generlja, hiszen az els lpsben generlt S1S2 mondatformban S1- bl egy L1- beli sz, S2- bl pedig egy L2- beli sz generlhat egymstl fggetlenl. Kleene-csillag (konkatenci lezrsa). Legyen SN1. Ekkor a G*=(N1{S}, T, S, H1{S , S SS1}) krnyezetfggetlen nyelvtan az L* nyelvet generlja. A fejezet htralev rszben tovbbi halmazmveleteket vizsglunk. 56. Ttel. A krnyezetfggetlen nyelvek osztlya nem zrt metszetkpzsre. Bizonyts. Legyen G1=({S1, A}, {a, b, c}, S1, {S1 aS1, S1 A, A bAc, A }). Ekkor knnyen ellenrizhet, hogy L(G1)={aibjcj|i, j 0}. Hasonlan, legyen G2=({S2, B}, {a, b, c}, S2, {S2 S2c, S2 B, B aBb, B }), gy L(G2)={aibicj|i, j 0}. G1 s G2 is krnyezetfggetlen (st lineris) nyelvtan, viszont L(G1)L(G2)={aibici|i 0}, ami, ahogy a Bar-Hillel lemma segtsgvel bizonytottuk nem krnyezetfggetlen. 57. Ttel. A krnyezetfggetlen nyelvek halmaza nem zrt a komplementerkpzsre. Bizonyts vzlat. a {wcw|w{a, b}*} nyelvrl a Bar-Hillel lemmval belthatjuk hogy nem krnyezetfggetlen (lsd 7.11. plda - Bar-Hillel lemma 2. feladat), mg a komplementere krnyezetfggetlen, st lineris nyelv.

7.34. plda - A jellt msolatok nyelvnek komplementere - Gyakorl feladat


Ksztsnk krnyezetfggetlen nyelvtant (vagy 2-fej automatt) amely a {wcw|w{a, b}*} nyelv komplementert fogadja el. Teht sem a lineris, sem a krnyezetfggetlen nyelvek halmaza nem zrt a metszet s a komplementerkpzs mveletre.

7.7. A szproblma megoldsa - szintaktikai elemzs


Ha egy adott krnyezetfggetlen nyelvet generl Greibach normlformj nyelvtan alapjn ksztjk el a felismer veremautomatt, akkor brmely w sz esetn az automata elfogad szmts esetn minden lpsben az inputnak pontosan egy betjt olvassa el. Ez azt jelenti hogy a w sz elfogadsa |w| lpsben trtnik, vagyis lineris, st vals-idben. Mindezzel az az egy problma van, hogy a 175

Krnyezetfggetlen nyelvek veremautomata egy nemdeterminisztikus eszkz (legalbbis a veremautomatknak az az osztlya, amivel a teljes krnyezetfggetlen nyelvosztly felismerhet). Teht nemdeterminisztikusan egy szt vgigolvasva, lineris idben eldnthet a szproblma. A fejezet tovbbi rszben determinisztikus algoritmusokat fogunk bemutatni a problma megoldsra. A gyakorlati alkalmazsoknl ltalban nem elg egy formlis nyelv felismersi problmjt csupn eldntsi problmnak tekinteni, hanem egy uL szrl azt is meg kell llaptanunk, hogy az hogyan vezethet le az adott nyelvtanban. A szintaktikai elemzs teht az adott nyelv szavainak a nyelvtani szerkezett hivatott feltrni. Programozsi nyelvek esetn is lnyeges szerepe van a szintaktikai elemzsnek, mert a programok rtelmezse a nyelvtani szerkezet ismeretre pl. A kvetkezkben a krnyezetfggetlen nyelvek szintaktikai elemzsnek lehetsgt vizsgljuk.

7.7.1. A CYK algoritmus


Tegyk fel, hogy az adott krnyezetfggetlen nyelvtan Chomsky-fle normlalakra van hozva. Pldaknt tekintsk a kvetkez nyelvtant: G=({S, A, B, C, D}, {a, b}, S, H), ahol a H- beli szablyok a kvetkezk: SAB, SCD, SCB, SSS, ABC, CDD, BSC, Cb, Aa, DBA, Bb. A Cocke-Younger-Kasami-fle (vagy rviden CYK-) (ejtsd: kuk, jnger, kasami) felismer algoritmus ezeknek a szablyoknak az alapjn egy tetszleges bemen szhoz igyekszik megkonstrulni a megfelel levezetsi ft. A Chomsky-fle normlalak miatt ez - a vgpontokba befut lektl eltekintve - egy binris fa lesz, amelynek a mrett a bemen sz hosszsga fogja meghatrozni. Ha pldul a bemen sz mindssze ngybets, akkor az sszes lehetsges levezetsi fnak a mlysge maximum 4. Egy n hosszsg bemen sz esetben a levezetsi fa sszes lehetsges cscsai egy olyan hromszg mtrixba rendezhetk, amelynek a legals sora n- elem, s a tbbi sora eggyel kevesebb elem, mint a kzvetlen alatta lev sor. Egy adott fa termszetesen nem hasznlhatja fel az sszes mezjt ennek a mtrixnak, csak az n=2 esetben. A felismersi algoritmus ennek a hromszg mtrixnak az elemeit hatrozza meg gy, hogy minden szgponthoz berja azokat a nemterminlis jeleket, amelyekbl a krdses szgpont alatti rszhromszg vgpontjainak megfelel bemen szrszlet levezethet. Ha a mtrix kitltst befejeztk, akkor mr csak azt kell megnznnk, hogy a hromszg legfels cscshoz be van-e rva az S. Ha igen, akkor az adott bemen sz levezethet az S- bl, teht hozztartozik az adott nyelvtan ltal generlt nyelvhez. Ellenkez esetben viszont biztos, hogy nem tartozik hozz, mert a kitlts sorn minden lehetsget ki fogunk merteni. A szban forg hromszg mtrixot felismersi mtrixnak nevezzk, s minden elemnek tulajdonkppen egy rekeszt feleltetnk meg, ahov a vltozkat berjuk. (Egy-egy rekeszbe a nemterminlisok egy-egy halmaza fog kerlni, mgpedig pontosan azok, amelyekbl a mez alatti hromszgnek megfelel terminlis sz levezethet.) Ezeket a rekeszeket a kvetkez brn megadott mdon indexeljk. (Az brn a felismersi mtrix indexelst n=5 esetre lthatjuk.) A kitltst az 176

Krnyezetfggetlen nyelvek als (= els) sornl kezdve soronknt balrl-jobbra vgezzk, a sorokat pedig alulrl felfel trtn sorrendben tltjk ki.

Legyen a megvizsgland bemen sz w=a1a2an. Az els sor i- edik rekeszbe berjuk az Bt, ha szerepel egy B ai szably a nyelvtanban. (Ugyanabba a rekeszbe ltalban tbb vltozt is berhatunk.) A mtrix tovbbi sorainak a kitltsekor, minden egyes rekesz tartalmnak a meghatrozsa az adott rekesz alatti rszhromszg befogi mentn tallhat rekeszek tartalmnak a felhasznlsval trtnik. Pontosabban az (i, j) rekesz kitltshez az (1, j) rekeszben tallhat vltozkat egyenknt prostjuk az (i-1, j+1) rekeszben tallhatkkal, majd ugyanezt tesszk a (2, j) s (i-2, j+2), , s vgl az (i-1, j) s (1, j+i-1) rekesz-prokkal. Ha egy ilyen prosts alkalmval olyan prt tallunk, amely szerepel egy szably jobb oldaln (a megfelel sorrendben), akkor a szably bal oldaln ll vltozt felvesszk az (i, j) rekeszbe. Formlisan: A- t akkor rjuk be az (i, j) rekeszbe, ha van olyan k{1, , i-1}, hogy B szerepel a (k, j) rekeszeben mikzben C szerepel a (i-k, j+k) rekeszben, s A BCH. (A feldolgozs menett a kvetkez bra szemllteti.)

A pldnkban az aabbaba bemen szhoz ily mdon megkonstrult felismersi mtrixot az albbi bra szemllteti.

A CYK algoritmus helyessgnek bizonytsa: Indukcival beltjuk, hogy brmely (i, j) rekeszre egy A nemterminlis pontosan akkor eleme a rekesznek, ha belle levezethet az input ajai+j-1 rszszava. Az indukci alapjt az (1, j) rekeszek jelentik. llts: A pontosan akkor szerepel (1, j) rekeszben ha A*aj. Az algoritmus szerint akkor kerlt az A az (1, j) rekeszbe, ha a Chomsky-normlformj 177

Krnyezetfggetlen nyelvek nyelvtanban szerepel az A aj alak szably. Egy Chomsky normlformj nyelvtan esetn egy egybets szt pontosan akkor lehet levezetni egy adott nemterminlisbl, ha azt egy lpsben, kzvetlenl megtehetjk egy szably segtsgvel. Ily mdon az (1, j) rekeszekre belttuk lltsunkat. Tekintsk most az (i, j) rekeszt valamely i>1 rtkre. Tegyk fel most, indukcis feltevsknt, hogy minden (k, j) (k<i) rekeszre igaz az llts. Ha A szerepel az (i, j) rekeszben, akkor az algortimus mkdse miatt, csak gy kerlhetett oda, ha van olyan k{1, , i-1}, hogy B szerepel a (k, j) rekeszben s C szerepel a (i-k, j+k) rekeszben, valamint A BCH. Mivel k<i s i-k<i az indukcis feltevsnk miatt B*ajaj+k-1 s C*aj+kai-k+j+k-1, vagyis C*aj+kai+j-1. De hiszen ppen akkor vezethet le egy Chomsky normlalak nyelvtanban egy egy betnl hosszabb sz egy A nemterminlisbl, ha van A BC szably, s a sz els rsze levezethet a B, a msodik rsze pedig a C nemterminlisbl. Vagyis ABC*ajaj+k-1aj+kai-k+j+k-1 valamilyen k rtkre, pontosan akkor ha A szerepel az (i, j) rekeszben. Egy nyelvtan ltal generlt nyelvben pontosan azok a szavak szerepelnek amelyek a nyelvtan S mondatszimblumbl levezethetek. ppen ennek tesztelse (vagyis a legfels rekeszben szerepel-e az S ) adja meg a vlaszt arra krdsre, hogy a keresett u sz benne van-e a generlt nyelvben. Az lltst bebizonytottuk. Mivel szintaktikai elemzsrl beszlnk, nzzk meg, hogyan is tudunk a felimersi mtrix alapjn egy levezetsi ft ellltani. A CYK algoritmus alulrl felfel elemzst valst meg, s az sszes lehetsges levezetsi ft/rszft tartalmazza. Mdostsuk egy kicsit az algoritmust: amikor egy (i, j) rekeszbe berunk egy A nemterminlis szimblumot, akkor rjuk be az indexbe, hogy mirt is rtuk oda (hogyan kerlt be a mtrixba): A helyett rjunk AB(k, j)C(i-k, j+k)- t ha a (k, j) rekeszben szerepl B s (i-k, j+k) rekeszben szerepl C, valamint az A BC szably alapjn rtuk be az A- t. A mdostott algoritmus alapjn egyszer egy leveztsi fa ellltsa: nzzk meg az (n, 1) (vagyis a legfels) rekeszben szerepl S indext, ebbl kiolvashat, hogy mely S AB alak szably alkalmazsakor kerlt ide az S, mrszt az is, hogy mely rekeszekben szereplenek az adott nemterminlisok, ezek indexeinek segtsgvel megllapthatjuk ezek milyen szably segtsgvel kerltek ide, s gy tovbb, amg eljutunk az (1, j) rekeszekig, ahova az A aj szablyok alapjn rtunk be a megfelel nemterminlisokat. Az albbi brn berajzoltunk egy levezetsft. A levezetsben nem szerepl nemterminlisokat a jobb ttekinthetsg rdekben elhagytuk.

7.35. plda - Cocke-Younger-Kasami algoritmus 1. feladat


Tekintsk a kvetkez grammatikt! G=({S,A,B},{0,1},S,H),ahol H szablyai: {SSA, SAB, ABS, BSA, A 1, S 1, B 0} Bizonytsuk be, hogy az 10011 sz benne van a grammatika ltal generlt nyelvben, majd adjuk meg az sszes legbaloldalibb levezetset!

178

Krnyezetfggetlen nyelvek

Megolds: Jellje Vi,j az (i,j) rekeszt. 1. levezets: SSASAAABAA 1BAA 10AA 10BSA100SA1001A 10011 Nzzk, hogyan kerltek a levezetsbe az j nemterminlisok! SV5,1, mert SV4,1 s AV5,5, ahol SSA-t hasznltuk. Kvessk a baloldali nemterminlist! SV4,1, mert SV2,1 s AV4,3, ahol SSA-t hasznltuk ismt. Most ismt a balodali nemterminlist kvetjk SV2,1, mert AV1,1 s BV2,2, ahol SAB-t hasznltuk. AV1,1, mert A1 H BV2,2, mert B0 H AV4,3, mert BV3,3 s SV4,4, ahol ABS-t hasznltuk. BV3,3, mert B0 H SV4,4, mert S1 H AV5,5, mert A1 H 2. levezets: S SA ABA1BA10A 10BS 100S100SA 1001A 10011 SV5,1, mert SV2,1 s AV5,3, ahol SSA-t hasznltuk. Kvessk a baloldali nemterminlist! SV2,1, mert AV1,1 s BV2,2, ahol SAB-t hasznltuk. Kvessk a baloldali nemterminlist! AV1,1, mert A1 H BV2,2, mert B0 H AV5,3, mert BV3,3 s SV5,4, ahol ABS-t hasznltuk. Kvessk ismt a baloldali nemterminlist! BV3,3, mert B0 H SV5,4, mert SV4,4 s AV5,5, ahol SSA-t hasznltuk. Kvessk a baloldali nemterminlist! SV4,4, mert S1 H AV5,5, mert A1 H

179

Krnyezetfggetlen nyelvek

7.36. plda - Cocke-Younger-Kasami algoritmus 2. feladat


Tekintsk a G=({S,A,B,X,Y,Z},{a,b},S,H) grammatikt, ahol H szablyai: {SAY, YXB, XBA, XZA, ZBX, Aa, Bb}! Benne van-e a G nyelvtan ltal generlt nyelvben az abbaab sz? Megolds:

Mivel S V6,1, ezrt a abbaab sz benne van a G grammatika ltal generlt nyelvben.

7.37. plda - Cocke-Younger-Kasami algoritmus 3. feladat


Tekintsk a G=({S,A,B,C,D},{a,b,c},S,H) grammatikt, ahol H szablyai: {SAB, ACA, ASS, BCD, Ab, Da, Cc, Cb}. Dntsk el, benne van-e a grammatika ltal generlt nyelvben az abcacb s a bbcbba sz, majd ha lehet adjuk meg az sszes legbaloldalibb levezetst! Megolds:

Mivel S V6,1, ezrt az abcacb sz nincs benne az adott grammatika ltal generlt nyelvben. 180

Krnyezetfggetlen nyelvek

Nzzk most a msik keresett szt:

Mivel S V6,1, ezrt a bbcbba sz benne van az adott grammatika ltal generlt nyelvben. Az egyetlen legbaloldalibb levezets pedig: S AB CAB bAB bCAB bbAB bbCAB bbcAB bbcbB bbcbCD bbcbbD bbcbba

7.38. plda - Cocke-Younger-Kasami algoritmus 4. feladat


Tekintsk a G=({S,A,B},{0,1},S,H) grammatikt ,ahol H szablyai: {SAS, SSB, SAB, BSB, ASB, BAS, A 0,B 1}. Dntsk el CYK-algoritmus segtsgvel, hogy levezethet-e a nyelvtanban a 001111 sz! Megolds:

Teht mivel S V6,1, ezrt a 001111 sz benne van az adott grammatika ltal generlt nyelvben. Az itt ismertetett algoritmus Chomsky-fle normlalak nyelvtan esetn mkdtt, a kvetkez rszben olyan algoritmust ismertetnk, amely brmilyen krnyezetfggetlen nyelvtan esetn hasznlhat.

181

Krnyezetfggetlen nyelvek

7.7.2. Az Earley-fle algoritmus


Ennl az algoritmusnl (az elz alfejezetben ismertetett algoritmushoz hasonlan) az adott bemen szhoz felismersi mtrixot ksztnk. Itt azonban a felismersi mtrix elemei nemterminlisok helyett gynevezett pontozott szablyokat fognak tartalmazni. Legyen mondjuk A pr, ahol p, r(NT)*, egy tetszleges szablya az adott krnyezetfggetlen nyelvtannak. Ekkor az A p.r egy, az eredeti szablyhoz tartoz pontozott szably lesz, ahol a pont lnyegben azt jelzi, hogy az adott szably tekintetben balrl jobbra haladva meddig jutottunk el az elemzsben. Eszerint ha az elemzssel a bemen sz j- edik betjig jutottunk el, mikzben megllaptottuk, hogy lteznek olyan p, q, r, t(NT)* szavak, melyekre S*pAq, p*a1ai, r*ai+1aj s A rtH. Ezt a krlmnyt fejezzk ki azzal, hogy az A r.t pontozott szablyt berjuk a felismersi mtrix i- edik sornak j- edik elembe. A felismersi mtrixot (mely ismt egy hromszg mtrix) most az brn megadott mdon indexeljk.

A felismersi mtrix most annyi sort s eggyel tbb oszlopot fog tartalmazni, mint ahny betbl a bemen sz ll. A bemen sz akkor s csak akkor tartozik a nyelvhez, ha a 0- dik sor n- edik elemben llni fog egy S t. alak pontozott szably ( t(NT)* ). Az elbbiek rtelmben ugyanis ez azt jelenti, hogy S tH, s t*a1an. Lssuk most az algoritmus pontos lerst. Ha a nyelvtan nem - mentes, akkor az ressz-lemmanl lert mdn ksztsk el azon nemterminlisok U halmazt, amelyekbl az ressz levezethet. Az resszavas szablyokat ennek az U halmaznak a segtsgvel fogjuk figyelembe venni. Teht az algoritmusban a krnyezetfggetlen nyelvtan - mentes rszre szortkozunk (vagyis nem hasznljuk az A alak szablyokat); viszont minden egyes A r.Bt pontozott szably esetn ( A, BN, r, t(NT)* ) ha ez a szably bekerlt a felismersi mtrix egy celljba, s BU, akkor A rB.t pontozott szblyt is berjuk az adott cellba ezzel figyelembe vve a B* esetet a szbanforg B- re. Ha a feladatunk az, hogy eldntsk L(G) teljesl-e, akkor ezt az SU krds alapjn vlaszoljuk meg. A tovbbiakban nzzk meg ha hosszabb szra kell megoldanunk a feladatot. Jelljk a bemen sz i- edik betjt ai- vel, teht legyen w=a1an. Legyen tovbb G=(N, T, S, H) egy krnyezetfggetlen nyelvtan, s jelljk az elz bra szerint indexelt felismersi mtrix i- edik sornak j- edik elemt Fi, j- vel. Legyen tovbb U={A | AN, A*}, s H ' a H - mentes rsze, vagyis H '={A | A pH, p}. Kezdetben a felismersi mrix minden eleme res, s az algoritmus mindegyikbe egy vagy tbb pontozott szablyt rhat be, vagy resen is hagyhatja. A felismersi mtrix kitltst oszloponknt alulrl flfel vgezzk, kivve a fdiagonlisban lv elemeket, amelyeket az adott oszlopban utoljra tltnk ki. Az egyes oszlopokat balrl jobbra vesszk sorra (ahogy az elz bra mutatja). Az Earley-fle algoritmus lpsei egy w input szra a kvetkezek. Mindegyik lps 182

Krnyezetfggetlen nyelvek eltt informlisan megadjuk, hogy mirl is szl az adott lps, ezutn formlisan (matematikailag pontosan) is megadjuk az adott lpst. 0. (Segdlps: nem -mentes nyelvtanok esetre) minden egyes pontozott szably bersa utn alkalmazand: Ha a pont utn BU nemterminlis ll, akkor az adott szablyt felvesszk gy is, hogy a pont mr a B nemterminlis utn ll, az gy bert szablyt is viszgljuk ez alapjn. 1. (Kezdlps: az S- el kezdd, vagyis az S p alak szablyok felvtele a legels cellba kezdponttal.) Minden S pH ' szablyra legyen S .pF0, 0, s legyen j=0. 2. (Ftlbeli elemek kitltse: ha az adott oszlopban a pont utn szerepel B nemterminlis, akkor felvesszk a B- vel kezdd szablyokat kezdponttal.) Ha B pH ' s van olyan k j, hogy A r.BtFk, j valamely r, t(NT)*- ra, akkor legyen B .pFj, j. Ekkor az jonnan bert szablyokra is megvizsgljuk az adott felttelek fennllst. 3. (Eggyel jobbra lps.) Ha j<n, akkor nveljk j rtkt eggyel, s legyen i=j-1. 4. (A baloldali szomszd cellbl szablymsols az oszlop terminlisnnak tlpsvel.) Legyen A raj.tFi, j, ha A r.ajtFi, j-1. 5. (Cella hasonltsok: az oszlopban kitlttt legals cellt a kitltend cella balszomszdjval hasonltjuk, aztn az oszlopban flfel haladunk az aktulis cellig, a sorban pedig balra a legelsig; ha az oszlopban lev cellban van pontra vgzd pontozott szably, ami B nemterminlissal kezddik, akkor a sorban lev cellbl szablyt msolhatunk mikzben tlpjk a B- t.) Legyen A rB.tFi, j, ha van olyan k, melyre i k<j, s A r.BtFi, k, B p.Fk, j valamely p(NT)*- ra. 6. (Ha a legutols cellt tltttk ki, akkor w benne van a generlt nyelvben pontosan akkor, ha ebben a cellban van Sp. alak szably; egybknt eggyel fljebb lpnk s vissza a 4. lpsre, vagy ha legfell vagyunk, akkor urs a ftlra, s a 2. lpsre.) Ha i=0 s j=n, akkor wL(G) pontosan akkor ha van olyan p(NT)*, hogy S p.F0, n. Egybknt: ha i>0, akkor cskkentsk az i rtkt eggyel, s trjnk vissza a negyedik lpsre. Ha i=0, akkor pedig trjnk vissza a msodik lpsre. Ezzel az algoritmussal teht megadtuk a felismersi mtrixot, amelybl a w sz levezetse viszonylag egyszeren rekonstrulhat, amennyiben wL(G). Az algoritmus helyessgnek a bizonytshoz be kell ltnunk a kvetkez ttelt. 58. Ttel. Az Earley-fle algoritmussal nyert felismersi mtrixban egy Ap.r pontozott szably (p, r(NT)*) pontosan akkor szerepel az Fi, j- ben, ha A prH, p*ai+1aj, s van olyan t(NT)* sz, amelyre S*a1aiAt. Bizonyts. A bizonytst elszr a - mentes nyelvtanokra vgezzk el. Elszr a felttel szksgessgt ltjuk be. A bizonytst a mtrix elemeire vonatkoz teljes indukcival vgezzk. Az F0, 0 esetben az 1. s a 2. lpsek szerint csak olyan pontozott szablyok jhetnek szba, ahol a jobb oldalon a pont eltti rsz res. Ha teht A.r, akkor vagy A=S s S rH, vagy A rH s S*At valamely t- re. Az indukcit ezek utn az (i, j) indexproknak egy olyan elrendezsvel vgezzk, amely pontosan megfelel a mtrix kitltsi sorrendjnek. A fdiagonlis elemeit kln kell kezelnnk. Tegyk fel teht, hogy a bizonytand llts minden Fl, m- re teljesl, ha m<j, vagy m=j s i<l<j. Legyen most A p.rFi, j. Ha ij, akkor ezt a szablyt csak az algoritmus 4. vagy 5. lpsben rhattuk be ide. Az els esetben p=p 'aj s A p '.ajrFi, j-1. De akkor az indukcis feltevsbl S*a1aiAt kvetkezik valamilyen t szra, s p '*ai+1aj-1, amibl az lltsunk kzvetlenl addik. Ha viszont az 5. lpsben rtuk be a szablyt, akkor p=p 'B valamely p '(NT)* szra s B vltozra gy, hogy van egy olyan k index, melyre A p '.BrFi, k, s B q.Fk, j valamely t szra. 183

Krnyezetfggetlen nyelvek Az indukcis feltevsbl most S*a1aiAt, valamint p '*ai+1ak, illetve S*a1akBt, s q*ak+1aj addik. Ezekbl a B qH figyelembevtelvel nyilvn p 'B*ai+1akak+1aj amivel az lltsunkat bebizonytottuk. Htra van mg az i=j eset ( i>0 ), vagyis a fdiagonlisban lev elemek esete. Az indukcis feltevs ebben az esetben azokra az Fl, m elemekre vonatkozik, ahol m<j, vagy m=j s 0<l<j. A fdiagonlis elemeibe csak az algoritmus 2. lpsben rhattunk be szablyokat. De itt is csak olyan B .q alak szablyok jhetnek szba, amelyekre van olyan i j, hogy A p.BrFi, j. Itt az i=j eset is elfordulhat. Tekintsk azonban azt a szablyt, amelyet az algoritmus elszr helyez el az Fj, jben. Ebben az esetben az i<j kell, hogy fennlljon. Az indukcis feltevsbl teht S*a1aiAt s p*ai+1aj kvetkezik. Ugyanakkor nyilvn A*pBr is fennll, amibl S*a1ajBrt kvetkezik, s ezzel lltsunkat igazoltuk. Az indukcis feltevst most mr minden j szably elhelyezsnl alkalmazhatjuk az Fj, j- be bert szablyokra is. Ha teht egy B.q szablyt az algoritmus azrt vesz fel az Fj, j- be, mert B qH, s A p.BrFj, j, akkor itt nyilvn p= s S*a1ajAt, s ezrt S*a1ajBrt, amivel a bizonytst befejeztk. A felttel elgsgessgnek bizonytst ugyancsak teljes indukcival vgezzk. Elszr nzzk az F0, * * * 0- t. Tegyk fel, hogy S Bt teljesl valamely B vltozra s t(NT) szra, s B qH. Az S Bt levezets lpsszmra vonatkozan egy kln teljes indukcit vgznk. Ha a lpsszm nulla, akkor B=S s t=, s ezrt az algoritmus a B.t szablyt mr az els lpsben felveszi az F0, 0- ba. Tegyk fel, hogy az llts k lpsre igaz, s legyen az S*Bt levezets lpsszma k+1. Ekkor nyilvn van olyan A nemterminlis s t ' sz, hogy S*At ', ABt '', ahol t=t ''t ' s az S*At ' levezets lpsszma k. Ezrt az indukcis feltevsbl A .Bt ''F0, 0, teht az algoritmus 2. lpse szerint B .qF0, 0. Most tegyk fel, hogy az algoritmus elgsges volta igaz minden olyan Fl, m- re, ahol m<j, vagy s=m s i<l<j. Legyen akkor A prH, p*ai+1aj, s S*a1aiAt valamely t szra. Ha most p=p 'aj, akkor az indukcis feltevs szerint A p '.ajrFi, j-1, s az algoritmus 4. lpse alapjn A p 'aj.rFi, * * j. Egybknt p=p 'B, ahol B ak+1aj s p ' ai+1ak valamilyen k- ra. Az indukcis feltevsbl most A p '.BrFi, k s B q.Fk, j addik valamilyen q szra, amelyre q*ak+1aj s B qH. De akkor az algoritmus 5. lpse szerint A p 'B.rFi, j. Vgl vegyk a fdiagonlis elemeit. Az indukcis feltevst most azokra az Fl, m elemekre tesszk, amelyekre m j s 0<l<j. Legyen teht A rH s S*a1ajAt. Ez a levezets nyilvn trendezhet gy, hogy a vltozk kzl a legbaloldalibbat helyettestjk be elszr mindaddig, amg az aj- t meg nem kapjuk. Eszerint van egy olyan A ' vltoz, hogy S*a1akA 't '*a1akak+1ajAt ''t ', ahol t ''t '*t. Ha itt k<j, akkor az indukcis feltevs szerint A ' ak+1aj.At ''Fk, j, s gy az algoritmus 2. lpse szerint A .rFj, j. A k=j esetben viszont az indukcis feltevst mr alkalmazhatjuk az A ' At '' szablyra s az S*a1ajA 't ' levezetsre, hiszen ez a levezets vges szm lpsbl ll, teht vges szm lpsben el kell jutnunk egy olyan esethez, ahol k<j. Az A ' .At ''Fj, j- bl pedig az algoritmus 2. lpse szerint A .rFj, j kvetkezik, s ezzel a ttel bizonytst befejeztk a mentes esetre. Ha a nyelvtan nem - mentes akkor az algoritmus 0. lpse ezt ppen gy veszi figyelembe, ahogyan az ressz lemma bizonytsban konstrultunk ekvivalens nyelvtant az eredetihez, vagyis minden olyan nemterminlis esetn amibl az ressz levezethet gy is tekinhetjk a levezetsben, hogy az res szt vezetjk le belle. Ezek alapjn nyilvnval, hogy az algoritmus az ilyen esetlekben is helyesen mkdik. Az algoritmus futsa sorn az input sz ngyzetvel arnyos mret tblzat (a felismersi mtrix) kitltse trtnik. Az egy mezbe rhat pontozott szablyok szmnak fels korltja kiszmolhat a H szablyhalmaz elemeinek szma s hosszai alapjn. Az algoritmus lpseit megvizsglva lthatjuk, hogy a 2. s 5. lpsekben az adott cella kitltshez maximum a sz hossznak megfelel mennyisg cellban, illetve cellaprban tallhat pontozott szablyokat kell megvizsglni. gy a program futsnak ideje, hasonlan a CYK algoritmushoz, az input sz hossznak kbvel arnyos. Az Earley-fle algoritmus mkdst elszr a kvetkez egyszer pldn szemlltetjk. 184

Krnyezetfggetlen nyelvek

7.39. plda - Earley algoritmus 1.feladat


A G generatv nyelvtan legyen a kvetkez formban definilt: G=({S, A, B}, {a, +, , (, )}, S, H), ahol H szablyhalmaz a kvetkez: {S S+A, AAB, B(S), SA, AB, Ba}. Tekintsk most az aa+a bemen sz szintaktikai elemzst. Az algoritmus az els lpsben az S.S+A, S.A szablyokat veszi fel az F0, 0- ba. Ezutn a 2. lps alapjn kiegszti az F0, 0- at az A .AB, A.B, B.(S), B.a szablyokkal. Utna j rtke 1 lesz, s az algoritmus a 4. lpsben az F0, 1- be felveszi a Ba. pontozott szablyt, mivel a bemen sz els betje a. Az 5. lpsben az F0, 1 kiegszl mg az albbi szablyokkal: AB., A A.B, SA., SS.+A. Ezutn a 2. lps kvetkezik, ahol most F1, 1- et kell kitlteni. De az F0, 1- ben szerepl szablyokhoz nem tallhat egyetlen olyan szably sem, amely a feltteleket kielgti, hiszen az F0, 1- beli szablyokban a pont utn kzvetlenl nem is fordul el vltoz. Ezrt az F1, 1 res marad. Az algoritmus ezutn a j=2 rtkre hajtja vgre a 4. lpst, melynek sorn az F1, 2 nyilvn szintn res marad, az F0, 2- be pedig az A A.B szably fog bekerlni. Az 5. lpsben mind az F1, 2, mind az F0, 2 vltozatlan marad. Az F2, 2- be ezutn a 2. lps sorn bekerlnek a B.(S) s B.a szablyok, mivel A A.BF0, 2. A felismersi mtrix kitltsnek tovbbi menett nem rszletezzk, de a kvetkez brn megadjuk a teljes mtrixot. Mivel ebben a mtrixban S S+A.F0, 5, a krdses bemen sz benne van az L(G)- ben. A ttelnk szerint ugyanis ez pontosan akkor ll fenn, ha S S+AH s S+A*aa+a, tovbb van olyan t sz, amelyre S*St, mely utbbi sszefggs mr nem is lnyeges most a mi szempontunkbl.

7.40. plda - Earley algoritmus 2. feladat


Tekintsk a G=({S,A,B},{0,1},S,H) grammatikt, ahol H szablyai: {S 1A0,S 0B1, AB0, BS0, A 1, B 0}. Dntsk el Earley-algoritmus segtsgvel, hogy levezethet-e a nyelvtanban a 011001 sz! Megolds:

185

Krnyezetfggetlen nyelvek

Mivel a jobbfels "cella" tartalmaz S-bl kiindul pontra vgzd szablyt, ezrt a 011001 sz benne van az adott grammatika ltal generlt nyelvben.

7.41. plda - Earley algoritmus 3. feladat


Tekintsk a G=({S,A,B},{a,b,c,+,(,)},S,H) grammatikt, ahol H szablyai: {SS+A,SA, AAB, AB, B (S), Ba, Bb, Bc}. Dntsk el Earley-algoritmus segtsgvel, hogy levezethet-e a nyelvtanban az a(b+c) sz! Megolds:

186

Krnyezetfggetlen nyelvek

Mivel a jobbfels "cella" tartalmaz S-bl kiindul pontra vgzd szablyt, ezrt az a(b+c) sz benne van az adott grammatika ltal generlt nyelvben.

7.42. plda - Earley algoritmus 4. feladat


Tekintsk a G=({S,A,B},{a,b},S,H) grammatikt, ahol H szablyai: {SAB,S , ASAB, Aa, BS, Bb}. Dntsk el Earley-algoritmus segtsgvel, hogy levezethet-e a nyelvtanban az aabb sz! Megolds:

187

Krnyezetfggetlen nyelvek

Mivel a jobbfels "cella" tartalmaz S-bl kiindul pontra vgzd szablyt, ezrt az aabb sz benne van az adott grammatika ltal generlt nyelvben.

7.8. Irodalmi megjegyzsek


A termszetes nyelvek lersnak cljbl vezette be [Chomsky 1956] a krnyezetfggetlen nyelvtanokat. Nem sokkal ksbb a szmtgpes nyelvek lersra kszlt el a BNF (BackusNaur Form), lsd pl. [Backus 1959] ugyanezen nyelvosztly lersra. A Chomsky-fle normlalak [Chomsky 1959]-ben, a Greibach-fle normlforma [Greibach 1965]-ben jelent meg. A negatv zrtsgi tulajdonsgok a metszet s a komplementerkpzs mveletekre [Scheinberg 1960]-ban kerltek bizonytsra. A Bar-Hillel lemma [Bar-Hillel et al 1961]-ben jelent meg. Azta tbb ms itercis lemma is megjelent, amelyek kialaktsnl az egyik fcl az, hogy a nem krnyezetfggetlen nyelveknek minl kisebb rsze teljestse a feltteleiket. Ilyen ersebb itercis lemma tallhat, 188

Krnyezetfggetlen nyelvek pl. [Dmsi et al 1996]-ban. A veremautomata tlete [Oettinger 1961] s [Schutzenberger 1963]bl szrmazik. A CYK algoritmust hrman egymstl fggetlenl rtk le: J. Cocke s T. Kasami nem publikltk, [Younger 1967]-ben jelent meg hivatalosan. Az Earley-fle algoritmus pedig [Earley 1970]-ben volt eredetileg publiklva. A krnyezetfggetlen nyelvek szintaktikai elemzse irnt rdekldknek ajnljuk a magyar [Bach 2002] s [Flp 2005] tanknyveket.

189

8. fejezet - Krnyezetfgg nyelvek


A krnyezetfggetlen nyelvekkel kapcsolatosan sok elmleti eredmny ismert, s a gyakorlatban is jl alkalmazhatak, ez ksznhet fleg annak, hogy a levezetsi fa fogalma jl illeszkedik ezekhez a nyelvtanokhoz, illetve, amint lttuk a szproblma is hatkonyan megoldhat. A vilg viszont nem krnyezetfggetlen, nagyon sok olyan jelensget ismernk, ami nem rhat le krnyezetfggetlen nyelvtanokkal, pl. a termszetes nyelvek, az igaz tletlogikai formulk nyelve, a prmszmok halmaza stb.

8.1. Szhossznemcskkent (monoton) nyelvtanok


Elszr az 1. tpus nyelvtanok s nyelvek ltalnosabb defincijt (lsd monoton nyelvtan [25]) vesszk el emlkeztetl. 16. Definci. Egy G generatv nyelvtant hosszsgot nem cskkentnek (vagy rviden monotonnak) neveznk, ha minden pqH szablyra |p| |q| teljesl, kivtel csak az S alak szably lehet, de ekkor az S szimblum nem szerepelhet egyik szably jobboldaln sem. 9. Megjegyzs. Az S alak szably csak az ressz generlsra hasznlhat, s pontosan akkor szerepel egy nyelvtan szablyai kzt, ha a generlt nyelv L(G) tartalmazza az resszt.

8.1. plda - Monoton nyelvtan


Legyen a G=({S, A, B, C}, {a, b, c}, S, {S , S abc, S aABC, A aABC, A aBC, CB BC, aB ab, bB bb, bC bc, cC cc}). Egyszeren bizonythat, hogy G az L(G)={anbncn|n 0} nyelvet generlja. Egyrszt, az elz fejezetben megmutattuk a Bar-Hillel lemma segtsgvel, hogy L(G) nem krnyezetfggetlen. Msrszt, az ressz-lemma segtsgvel azt is lttuk, hogy minden krnyezetfggetlen nyelv egyben krnyezetfgg is; gy a krnyezetfgg s krnyezetfggetlen nyelvek esetre a Chomsky hierarchia lessgt bizonytottuk. Mr csak azt kell beltnunk, hogy a monoton nyelvtanok pontosan a krnyezetfgg nyelvosztlyt generljk. Figyeljk meg, hogy egy monoton nyelvtanban pl. a bcA Baa megengedett szably, vagyis a terminlis betket is trhatjuk, ha a kzelkben nemterminlis szimblum ll, ez kicsit ellentmond a "terminlis" elnevezsnek. Azt hogy a helyzet mgsem ennyire slyos a kvetkez alfejezetben fogjuk beltni: minden krnyezetfgg nyelvet generlhatunk olyan monoton nyelvtannal is, amiben nem trtnhet terminlis trs.

8.2. Normlformk a krnyezetfgg nyelvtanokhoz, a monoton s a krnyezetfgg nyelvtanok ekvivalencija


A normlformk itt is nagy jelentsggel brnak. Az els normlforma amivel megismerkednk, a szablyok hosszt korltozza: csak olyan terminlis normlis alak monoton szablyokat engednk meg, amelyekben a jobboldal hossza maximum kett. 17. Definci. Egy monoton nyelvtanrl azt mondjuk, hogy Kuroda-fle normlalakban van, ha minden szablya az albbi alakok egyikben van: A B, A BC, A a, AB CD(aT, A, B, C, DN). 59. Ttel. Minden monoton nyelvtanhoz van vele ekvivalens Kuroda normlformj nyelvtan. 190

Krnyezetfgg nyelvek Bizonyts. A bizonyts konstruktv, minden G monoton nyelvtan esetn hatkonyan megkonstrulhatjuk azt a Kuroda normlformj nyelvtant, amely az L(G){} nyelvet generlja: Legyen teht adott G=(N, T, S, H) monoton nyelvtan. Az algoritmus els lpsvel (ugyangy, mint pl. a Chomsky normlforma esetn) elrjk, hogy a terminlis szimblumok csak Aa alak szablyokban forduljanak el: ehhez vezessnk be minden terminlis szimblumhoz egy-egy a nyelvtanban mg nem szerepl j nemterminlis szimblumot: teht legyen N '={Xa|aT}, mikzben NN '=. lltsuk el a H ' szablyrendszert a H- bl a kvetkezkppen: a H minden szablyban szerepl minden a terminlist helyettestsnk a neki megfelel Xa jonnan bevezetett nemterminlissal s gy msoljuk t a H '- be s adjuk mg hozz az Xa a alak szablyokat minden a T -re. Ekkor G '=(NN ', T, S, H ') ekvivalens G- vel s benne terminlisok csak Xaa alak szablyokban fordulnak el. Msodik lpsben, ha pqH, ahol p=A1Am s q=B1Bn, akkor vilgos a nyelvtan defincijbl kvetkezen, hogy m n. Ekkor vegyk sorra a szablyokat s jrjunk el a kvetkez mdon: - ha n 2, akkor a szably eleget tesz a Kuroda normlformnak. - ha m=1, n>2, akkor (ugyangy, mint a Chomsky normlformra alaktsnl; lsd Chomsky-fle normlalak) helyettestsk az A B1Bn szablyt A B1C1, C1 B2C2, , Cn-2 Bn-1Bn szablyokkal, ahol a C1, , Cn-2 jonnan bevezetett, csak itt szerepl nemterminlisok. - ha m 2, n>2, akkor a C1, C2, , Cn-2 jonnan bevezetett, s csak itt szerepl, nemterminlisok segtsgvel hozzuk ltre a kvetkez szablyokat az eredeti szably helyettestsre: A1A2 B1C1, C1A3 B2C2, , Cm-2Am Bm-1Cm-1, Cm-1 BmCm, , Cn-2 Bn-1Bn. Az j nyelvtan Kuroda normlformj s ekvivalens az eredetivel.

8.2. plda - Kuroda normlforma 1.feladat


Adjunk meg a G=({S,A,B},{x,y,z},S,H) krnyezetfgg nyelvtannal ekvivalens Kuroda-fle normlalak nyelvtant, ahol H={ S ABABx, ABA AyyyA, Ayyy Byyy, A z, A BB, B S, B x }. Megolds: (I.) Els lpsben megadunk egy G1 nyelvtant, ami ekvivalens a G nyelvtannal s terminlis csak Xa alak szablyban fordul el (XN, a T). Ehhez elszr a G nyelvtan minden olyan xi terminlis betjhez, amely szerepel olyan szablyban, ami nem normlalak, j Xi nemterminlist vezetnk be. Ezutn a G1 nyelvtan H1 szablyhalmazt gy kapjuk, hogy felvesszk az Xi xi szablyokat, valamint a H szablyhalmaz elemeit tvesszk gy, hogy a szablyokban az xi betk azon elfordulsait, melyek nem normlalak szablyban szerepelnek, Xi-re cserljk. Jelen esetben legyenek az j nemterminlisok az X s az Y, ekkor: G1=({S,A,B,X,Y},{x,y,z},S,H1), ahol H1={ X x, Y y, S ABABx, ABA AyyyA, Ayyy Byyy, A z, A BB, B S, B x } (II.) Msodik lpsben megadunk egy G2 nyelvtant, ami ekvivalens az eredeti nyelvtannal, normlformj s nem szerepel benne Y Y1Y2...Yn, n 3 alak szably. Ehhez a G1 nyelvtanbl indulunk ki. A H1 szablyhalmaz Y Y1Y2...Yn, n 3 alak szablyait helyettestjk j szablyokkal, a tbbi szablyt pedig vltoztats nlkl tvesszk a H2 szablyhalmazba. Minden Y Y1Y2...Yn, n 3 alak szablyhoz vezessnk be Z1,Z2, ... ,Zn-2 nemterminlisokat, ahol a Zi-bl pontosan az Yi+1Yn szt fogjuk levezetni: 191

Krnyezetfgg nyelvek az sszes Y Y1Y2...Yn, n 3 alak szablyt helyettestsk a kvetkez szablyokkal: Y Y1Z1, Z1 Y2Z2, . . . Zn-3 Yn-2Zn-2, Zn-2 Yn-1Yn. Jelen esetben: G2=({S,A,B,X,Y,Z1,Z2,Z3},{x,y,z},S,H2), ahol H2={ X x, Y y, S AZ1, Z1 BZ2, Z2 AZ3, Z3 BX, ABA AYYYA, AYYY BYYY, A z, A BB, B S, B x }

(III.) Harmadik lpsben megadjuk az eredeti nyelvtannal ekvivalens G' Kuruda-fle norm alak nyelvtant. Ehhez a G2 nyelvtanbl indulunk ki. A H2 szablyhalmaz X1X2 ... Xn Y1Y2 ... Ym, n 2, m 3 alak szablyait helyettestjk j szablyokkal, a tbbi szablyt pedig vltoztats nlkl tvesszk a H' szablyhalmazba. Minden X1X2 ... Xn Y1Y2 ... Ym, n 2, m 3 alak szablyhoz vezessnk be Z1,Z2, ...,Zm-2 j nemterminlisokat! Ezek utn az X1X2 ... Xn Y1Y2 ... Ym, n 2, m 3 alak szablyokat helyettestsk a kvetkez szablyokkal: X1X2 Y1Z1, Z1X3 Y2Z2, . . . Zn-2Xn Yn-1Zn-1, Zn-1 YnZn, . . . Zm-3 Ym-2Zm-2, Zm-2 Ym-1Ym. Jelen esetben: G'=({S,A,B,X,Y,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8},{x,y,z},S,H'), ahol H'={ X x, Y y, S AZ1, Z1 BZ2, Z2 AZ3, Z3 BX, AB AZ4, Z4A YZ5, Z5 YZ6, Z6 YA, AY BZ7, Z7Y YZ8, Z8Y YY, A z, A BB, B S, B x }

8.3. plda - Kuroda normlforma 2.feladat


Adjunk meg a G=({S,A,B},{a,b,c},S,H) krnyezetfgg nyelvtannal ekvivalens Kuroda-fle normlalak nyelvtant, ahol H={ S BaB, BaB BaBa, A SaS, A c, B AbbA, B c }.

Megolds: (I.) Legyenek az j nemterminlisok az X s az Y, ekkor: G1=({S,A,B,X,Y},{a,b,c},S,H1), ahol H1={ X a, Y b, S BXB, BXB BXBX, A SXS, A c, B AYYA, B c } 192

Krnyezetfgg nyelvek (II.) G2=({S,A,B,X,Y,Z1,Z2,Z3,Z4},{a,b,c},S,H2), ahol H2={ X a, Y b, S BZ1, Z1 XB, BXB BXBX, A SZ2, Z2 XS, A c, B AZ3, Z3 YZ4, Z4 YA, B c } (III.) G'=({S,A,B,X,Y,Z1,Z2,Z3,Z4,Z5,Z6},{a,b,c},S,H'), ahol H'={ X a, Y b, S BZ1, Z1 XB, BX BZ5, Z5B XZ6, Z6 BX, A SZ2, Z2 XS, A c, B AZ3, Z3 YZ4, Z4 YA, B c}

8.4. plda - Kuroda normlforma 3.feladat


Adjunk meg a G=({S,A,B},{a,b},S,H) krnyezetfgg nyelvtannal ekvivalens Kuroda-fle normlalak nyelvtant, ahol H={ S AB, AB ABAA, ABA ABAABB, B S, A a, B b, A SA }. Megolds: (I.) Mivel a G nyelvtan mr normlalakban van, ezrt G1=G. (II.) Mivel a G1 nyelvtanban nincs Y Y1Y2...Yn, n 3 alak szably, ezrt G2=G1. (III.) G'=({S,A,B,Z1,Z2,Z3,Z4,Z5,Z6},{a,b},S,H'), ahol H'={ S AB, AB AZ1, Z1 BZ2, Z2 AA, AB AZ3, Z3A BZ4, Z4 AZ5, Z5 AZ6, Z6 BB, B S, A a, B b, A SA}

8.5. plda - Kuroda normlforma 4.feladat


Adjunk meg a G=({S,A,B},{0,1},S,H) hosszsg nemcskkent nyelvtannal ekvivalens Kuroda-fle normlalak nyelvtant, ahol H={ S SAS, SA B0B0S, S 1, A S0S, B0B0 0S0S }.

Megolds: (I.) Legyen az j nemterminlis a C, ekkor: G1=({S,A,B,C},{0,1},S,H1), ahol H1={ C 0, S SAS, SA BCBCS, S 1, A SCS, BCBC CSCS } (II.) G2=({S,A,B,C,Z1,Z2},{0,1},S,H2), ahol H2={ C 0, S SZ1, Z1 AS, SA BCBCS, S 1, A SZ2, Z2 CS, BCBC CSCS } (III.) G'=({S,A,B,C,Z1,Z2,Z3,Z4,Z5,Z6,Z7},{0,1},S,H'), ahol H'={ C 0, S SZ1, Z1 AS, SA BZ3, Z3 CZ4, Z4 BZ5, Z5 CS, S 1, A SZ2, Z2 CS, BC CZ6, Z6B SZ7, Z7C CS }

8.6. plda - Kuroda normlforma 5.feladat


Adjunk meg a G=({S,B},{a,b,c},S,H) hosszsg nemcskkent nyelvtannal ekvivalens Kuroda-fle normlalak nyelvtant, ahol H={ S abc, S aSBc, cB Bc, bB bb }.

193

Krnyezetfgg nyelvek Megolds: (I.) Legyenek az j nemterminlisok az A, E s a C, ekkor: G1=({S,B,A,E,C},{a,b,c},S,H1), ahol H1={ A a, E b, C c, S AEC, S ASBC, CB BC, EB EE } (II.) G2=({S,B,A,E,C,Z1,Z2,Z3},{a,b,c},S,H2), ahol H2={ A a, E b, C c, S AZ1, Z1 EC, S AZ2, Z2 SZ3, Z3 BC, CB BC, EB EE } (III.) Mivel a G2 nyelvtan mr Kuroda-fle normlalakban van, ezrt G'=G2.

8.7. plda - Kuroda normlforma 6.feladat


Adjunk meg a G=({S,A,B},{d,e},S,H) hosszsg nemcskkent nyelvtannal ekvivalens Kuroda-fle normlalak nyelvtant, ahol H={ S BeBe, BeBe dAdA, eB dede, Bd SAS, A ede }.

Megolds: (I.) Legyenek az j nemterminlisok a D s az E, ekkor: G1=({S,A,B,D,E},{d,e},S,H1), ahol H1={ D d, E e, S BEBE, BEBE DADA, EB DEDE, BD SAS, A EDE } (II.) G2=({S,A,B,D,E,Z1,Z2,Z3},{d,e},S,H2), ahol H2={ D d, E e, S BZ1, Z1 EZ2, Z2 BE, BEBE DADA, B DEDE, BD SAS, A EZ3, Z3 DE } (III.) G2=({S,A,B,D,E,Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8},{d,e},S,H'), ahol H'={ D d, E e, S BZ1, Z1 EZ2, Z2 BE, BE DZ4, Z4B AZ5, Z5E DA, EB DZ6, Z6 EZ7, Z7 DE, BD SZ8, Z8 AS, A EZ3, Z3 DE } A Kuroda-fle normlformt a Rvsz Gyrgy nevhez fzd szrevtellel tovbb alakthatjuk. Rvsz-trkk Egy AB CD alak monoton szably helyettesthet a kvetkez ngy szabllyal, ahol A ' s B ' jonnan bevezetett nemterminlisok: ABA 'B A 'BA 'B ' A 'B 'CB ' CB 'CD Figyeljk meg, hogy az jonnan bevezetett szablyok mindegyike eleget tesz a krnyezetfgg nyelvtanoknl elrt megszortsoknak. Ez alapjn kimondhatjuk a kvetkez ttelt. 60. Ttel. Minden monoton nyelvtanhoz van vele ekvivalens, aminek szablyai csak AB, A BC, A a, AB AC, AB CB alakak lehetnek ( aT, A, B, CN ). Ezzel egyttal azt is bizonytottuk, hogy minden monoton nyelvtannal generlhat nyelv generlhat krnyezetfgg nyelvtannal is. Mivel a msik irny tartalmazs a nyelvtantpusok defincijbl addan nyilvnval (vagyis minden krnyezetfgg nyelvtan egyben monoton is), ezrt : 5. Kvetkezmny. A monoton s a krnyezetfgg nyelvtanok ltal generlt nyelvek osztlya megegyezik (gy, most mr jogosan hvhatjuk a monoton nyelvtanok ltal generlt nyelveket krnyezetfggnek). 194

Krnyezetfgg nyelvek Tovbbi normlformkat mutatunk a krnyezetfgg nyelvosztlyhoz (bizonytsok nlkl). Cremers normlforma (lnc szablyok kikszblse): 61. Ttel. Minden krnyezetfgg nyelvtanhoz van vele ekvivalens, melynek szablyai csak a kvetkez alakak lehetnek: Aa, A BC, AB CD. Rvsz-fle egyoldali normlforma: 18. Definci. Egy nyelvtan Rvsz-fle egyoldali normlformj, ha szablyai csak Aa, A B, A BC, AB AC, AB BA alakak lehetnek ( aT, A, B, CN). 62. Ttel. Minden krnyezetfgg nyelvtanhoz van vele ekvivalens Rvsz-fle egyoldali normlformj nyelvtan. 10. Megjegyzs. Rvsz-fle egyoldali normlformj nyelvtanban csak egyoldali krnyezetfggs megengedett, viszont permutcis szably (helycsere) hasznlhat (ami nem tesz eleget a krnyezetfgg defincinak). Felmerlhet a krds, hogy vajon mindkt tpus nem krnyezetfggetlen szablyra szksg van-e ahhoz, hogy (minden) krnyezetfgg nyelvet generlni tudjunk. A permutcis nyelvek esetben krnyezetfggetlen szablyok mell AB BA alak szablyokat vve nem krnyezetfggetlen, krnyezetfgg nyelveket is generlhatunk. (lsd, a kvetkez alfejezetben: Permutcis nyelvek). Az elz krdsre a vlaszt a kvetkez egyoldali normlforma adja meg: 19. Definci. Egy krnyezetfgg nyelvtanrl azt mondjuk, hogy Penttonen normlformban van, ha minden szablyra illik az albbi alakok egyike Aa, A BC, AB AC(aT, A, B, CN). 63. Ttel. Minden krnyezetfgg nyelvtannal van ekvivalens olyan, amely Penttonen normlalak. A normlformk bevezetse sorn egyrszt a szablyok hossznak korltozsa volt fontos, msrszt a klnbz tpus rekurzik kikszblse, pl. egy (egyszer s nem teljesen jl megrt) szmtgpprogram knnyen vgetlen ciklusba kerlhet, egy jl megrt program pedig sokkal sszetettebb kell, hogy legyen, ha valamilyen rekurzit engednek meg a nyelvtan szablyai, hiszen az elfordul rekurzik nmelyikt kln kezelni kell. A krnyezetfggetlen esetben a Chomsky-fle normlalak egyik nagy elnye, hogy a lncszablyok ltal okozott rekurzi (pl. A B, B C, C A ) nem okozhat gondot, - minden lpsben vagy n a mondatforma hossza, vagy terminlist vezetnk be, - ezrt mkdik jl pl. a CYK algoritmus. A lncszablyok a krnyezetfgg esetben is kikszlhetek, ahogy a Cremers s a Penttonen-fle normlformk sem tartalmaznak ilyet. A Greibach normlforma Greibach normlforma a balrekurzit kszbli ki, ezrt ugyancsak fontos lehet nhny szelemz algoritmus szmra (legbalodali levezets esetn). Krnyezetfgg esetben viszont, az eddig ltalunk legersebbnek vlt normlforma is megenged rekurzit: a nem krnyezetfggetlen szablyok esetn a mondatforma hossza nem vltozik. Krnyezetfgg rekurzinak nevezzk azt, ha csupn AB AC alak szablyok segtsgvel egy levezets "krbe mehet", vagyis vannak olyan E s F nemterminlisok, hogy EF+EF, vagyis valahny (nem nulla) lps utn ismtlds lphet fel. Egy ilyen egyszer ismtldst generlhat pl. az AB AC s AC AB szablyok egyttes jelenlte. Egy nyelvtant rekurzi-mentes normlformjnak hvunk, ha Penttonen normlformj s krnyezetfgg rekurzi nincs benne. A kvetkez ttel Nagy Benedek s Varga Pter nevhez fzdik: 64. Ttel. Minden krnyezetfgg nyelvtanhoz van vele ekvivalens, ami rekurzi-mentes normlformj. 195

Krnyezetfgg nyelvek

8.3. Permutcis nyelvek


Nzzk teht az A a, A B, A BC, AB BA alak szablyokkal rendelkez nyelvtanokat: segtsgkkel nem generlhat minden krnyezetfgg nyelv, de generlhatak nem krnyezetfggetlen nyelvek is, teht az ilyen tpus szablyokkal generlhat Permutcis nyelvek halmaza a Chomsky hierarchiban szigoran a krnyezetfggetlen s a krnyezetfgg nyelvcsaldok kzt helyezkedik el.

8.8. plda - Permutcis nyelvtan


Legyen G=({S, A, B, C}, {a, b, c}, S, {S SABC, S ABC, AB BA, BA AB, AC CA, CA AC, BC CB, CB BC, A a, B b, C c}), ekkor L(G)= {w | a w szban az a, b s c betk szma megegyezik (s nem 0) }. Belthat, hogy L(G) nem krnyezetfggetlen.

Mivel a permutcis szablyok ( AB BA ) alkalmazsa esetn a mondatformban nem vltozik meg a szerepl (terminlis s nemterminlis) betk szma, a tbbi szably pedig krnyeztfggetlen, minden levezetsnek van olyan megfelelje, amiben a permutcis szablyokat nem alkalmazzuk, a tbbi szablyt pedig az eredeti levezetsben tallhat sorrendben alkalmazzuk. Az ilyen levezets vgn kapott sz betekvivalens az eredetileg levezetett szval. (Betekvivalens kt sz, ha minden betbl pont ugyanannyit tartalmaznak; kt nyelv pedig akkor ha brmelyik nyelv brmely szavhoz van vele betekvivalens sz a msik nyelvben.) Viszont a permutcis szablyok (hasznlata) nlkli nyelvtan krnyezetfggetlen nyelvet generl: teht a permutcis nyelvtan ltal generlt nyelvben mindig van egy az eredeti nyelvvel betekvivalens krnyezetfggetlen rsznyelv. Az anbncn nyelvben minden sz csak sajt magval betvekvivalens, gy nem teljesl r az elzekben ismertetett felttel, taht nem permutcis nyelv. Ide tartoz nyitott problma: vajon az A B alak lncszablyok kikszblhetek-e, vagyis generlhat-e minden permutcis nyelv lncszablyok nlkl? A szproblma megoldsra hatkony algoritmus ltezsnek krdse is nyitott krds, vagyis jelenleg nem tudjuk, hogy melyik bonyolultsgi osztlyhoz tartozik ez a problma. A permutcis nyelvtanok generl ereje nvekszik, ha kett hosszsg permutcis szablyok helyett hrom hosszsgakat is megengednk (pl. ABC CBA ), vagyis az gy kapott Perm3 nyelvosztly szigoran a Perm=Perm2 s a krnyezetfgg nyelvek osztlya kztt helyezkedik el a hierarchiban. A permutcis nyelvek nem zrtak a regulris nyelvekkel val metszetkpzsre (a pldaknt bemutatott ugyanannyi a, b s c bett tartalmaz szavakbl ll nyelv metszete a regulris a*b*c* nyelvvel ppen anbncn, a krnyezetfggetlen nyelvek pedig zrtak a regulris nyelvekkel vett 196

Krnyezetfgg nyelvek metszetkpzsre). Egy permutcis s egy regulris nyelv metszeteknt elll nyelvek osztlya a Perm-reg nyelvosztly szigoran a Perm s a krnyezetfgg nyelvek osztlya kztt helyezkedik el a hierarchiban.

8.4. Levezetsi grfok, levezetsi fk a krnyezetfgg nyelvtanokhoz


A krnyezetfgg nyelvek esetn is brzolhatjuk a megfelel nyelvtanokban a levezetseket grfok segtsgvel. Monoton esetben vegyk a kvetkez pldt:

8.9. plda - Levezetsi grf monoton esetben


Legyen ({S, A, B, C, D, E, F, G}, {a, b}, S, H) egy monoton nyelvtan, ahol H={S DABE, S DABEF, F GG, F GGF, G b, aG Ga, BE aa, Aa aa, Da aa, AB BAA, DB DC, CA AAC, CE BE}. A kvetkez brn egy pldaleveztst lthatunk: az aaabaabbaabbb sz levezetsi grfja:

A monoton nyelvtanok esetn a levezetsi grf pros grf, ktfle cscstpussal: a levezetsi fknl szoksos betcmkzett (nemterminlis, terminlis, illetve csak az ressz levezetse esetn a ); illetve szablycmkzett cscsok (itt a cmkket ltalban elhagyhatjuk, hiszen a befut s kifut lek ltal mutatott cscsok cmkibl egyrtelmen felrhat az alkalmazott levezetsi szably). Krnyezetfgg nyelvtan esetn ez a grf nagyon redundns, ugyanis az sszes krnyezetszimblum megismtlsre kerl. Ezen segthetnk, ha nem ismteljk meg ket, hanem specilis "krnyezet197

Krnyezetfgg nyelvek lek" (illetve krnyezetdoboz) segtsgvel jelljk meg a grfban, hogy az adott nemterminlis azrt helyettesthet a megadott mdon, mert a megfelel krnyezet rendelkezsre ll. Ily mdon csak a hagyomnyos levezetsi fknl megszokott cscstpusra van szksgnk, viszont ktfle ltpusra. Pldaknt az ABCD ABSBD szably ktfle brzolsa lthat a kvetkez brn:

8.10. plda - Levezetsi grf krnyezetfgg nyelvtanban


Legyen adott a G=({S, A, B, C, D, E, F, G, I, J, K, L, M, O, P}, {a, b, c}, S, H) krnyezetfgg nyelvtan, ahol a H szablyhalmaz: H={S aSA, S bSB, abS abCE, baSA baDFA, EA EG, EG IG, IG IE, IE AE, EB EJ, EJ KJ, KJ KE, KE BE, FA FL, FL ML, ML MF, MF AF, FB FO, FO PO, PO PF, PF BF, CA CE, CB CF, DA DE, DB DF, C a, Db, Ea, F b}. A kvetkez brn egy levezetst lthatunk.

Mg specilisabb a helyzet, ha csak Penttonen normlformj nyelvtant engednk meg, ekkor a krnyezet mindig csak egy baloldali szomszdos nemterminlis lehet. Erre az esetre definiljuk formlisan a krnyezetfgg "levezetsi ft": 20. Definci. Legyen G=(N, T, S, H) Penttonen normlformj nyelvtan. Egy q mondatformhoz a levezetsi ft a kvetkezkppen rhatjuk le: irnytott cscscmkzett (a cmkk az (NT) halmazbeliek) grf. A levezetsi lek (folytonosak az brn) hagyomnyos rtelemben vett fa szerkezetet adnak a grfnak (pontosan ahogyan a krnyezetfggetlen esetben). A gykr cmkje S. 198

Krnyezetfgg nyelvek Minden nem levl elem cmkje nemterminlis. A levlelemek cmkit balrl jobbra sszeolvasva q- t kapjuk. Legyen A egy nem levlelem cmkje s legyen r a gyerekeinek a cmki balrl jobbra sszeolvasva. Ekkor a kvetkez feltteleknek kell teljeslnie: - Ha krnyezetl (az brn szaggatott) nem rkezik be az adott A cmkj cscsba, akkor Ar alak leveztsi szablyt tartalmaz a G nyelvtan H szablyrendszere. - Ha pontosan egy krnyezetl rkezik az adott A cmkj cscsba, akkor legyen annak a balszomszd gon lev cscsnak ahonnan a krnyezetl indul a cmkje C, ekkor CA CrH. Minden krnyezetl kt szomszdos gat kt ssze (balrl jobbra), vagyis pontosan akkor mehet egy (C cmkj) cscsbl krnyezetl egy (A cmkj) cscsba, ha a levezetsi fban az a legalacsonyabban lev cscs, amely mind az , mind a cscsot dominlja (a legutols kzs se mindkettnek); a baloldali rszfjnak legjobboldali gn van, mg a jobboldali rszfjnak legbalodali gn helyezkedik el (lsd a kvetkez brt is). Ezen kvl a kvetkez felttelnek is teljeslnie kell: a cscs egyik sbl sem indulhat krnyezetl az cscs egyik leszrmazottjhoz sem, ha cscsbl indul krnyezetl az cscsba. Egy cscsbl tbb krnyzezetl is indulhat, de maximum egy rkezhet.

8.11. plda - Krnyezetfgg levezetsi fa


Legyen adott a ({S, A, B, C, D, E, F, G, I, J, K, L, M, O}, {a, b, c}, S, H) krnyezetfgg nyelvtan Penttonen normlformban: H={S AG, G BC, A IJ, J DE, EB EE, EC EK, K FL, D IM, M AB, BE BB, BF BO, O CL, A a, Bb, Cc, D a, E b, Fc, Ia, L c}. Egy pldalevezetst lthatunk a kvetkez brn.

Figyeljk meg hogy a levezetsi grf szerkezete milyen egyszer, a struktrja az ebben a fejezetben korbban ismertetett grfoknl tnyleg sokkal kzelebb ll a fhoz. 199

Krnyezetfgg nyelvek Az elzek alapjn, kicsit pongyoln, a kvetkez felttelt mondhatjuk a krnyezetlekre: egy krnyezetl nem metszhet semmilyen ms lt a grfban. gy is felfoghatjuk, hogy egy adott gon lev cscsra a balszomszd g "rnykot" vet, azok a nemterminlisok jhetnek szba krnyezetl indtsra egy adott cscsba, melyeknek ott lehet az rnyka. Egy levezetsi ft befejezettnek neveznk, ha minden levleleme terminlis.

8.4.1. Legbaloldalibb levezets s tfogalmazsa


Mint ahogy a krnyezetfggetlen nyelvtanok esetn lttuk a legbalodali levezets ltezse fontos szerepet jtszott, hiszen a veremautomata egy adott levezetsi fa legbalodali levezetst szimullta. A legbaloldalibb levezetst ott mondatformra definiltuk, mindig a benne szerepl els (vagyis legbalodali) nemterminlisra alkalmaztunk egy alkalmazhat levezetsi szablyt. A krnyezetfgetlen esetben ez a definci egybeesik azzal, hogy a levezetsi fban mindig a legbaloldalibb mg be nem fejezett gon folytatjuk a levezetst, vagyis a fa tovbbptst. Ismert, hogy brmilyen generatv nyelvtan (teht brmilyen 0. tpus nyelvtan) esetn, ha csak legbaloldalibb levezetst engednk meg (vagyis mindig csak olyan szablyt alkalmazhatunk, ami a legels szerepl nemterminlisnl alkalmazhat, s ott alkalmazzuk), akkor a generlt nyelv krnyezetfggetlen lesz. Ezek alapjn teht ahhoz, hogy a generl ereje egy (nem krnyezetfggetlen) nyelvtannak ne cskkenjen, szksges a legbalodali levezets fogalmnak ltalnostsa (tfogalmazsa). 21. Definci. Legbaloldalibb levezetsnek (vagy legbalodali konstrukcinak) nevezzk krnyezetfgg esetben a (Penttonen normlformj nyelvtan esetn a) levezetsi fa felptsnek legbalodali mdjt: minden lpsben a legbalodali levlelemnl folytatjuk a leveztst (a levezetsi fa megkonstrulst) innen indul levezetsi l(ek) bevezetsvel, esetlegesen felhasznlva egy a grfban mr jelenlev baloldali szomszdos cscsot krnyezetl segtsgvel (a korbbiakban lert felttelek betartsval). 65. Ttel. Legyen adott egy G=(N, T, S, H) Penttonen normlformj nyelvtan. Egy w szhoz pontosan akkor ltezik befejezett levezetsi fa, illetve legbaloldalibb levezets, ha wL(G).

8.5. rnyk-veremautomata
Ahogy az eredeti legbaloldalibb levezets alapjn a veremautomatt megkonstrulhattuk, gy ksztjk el az rnyk-veremautomatt a krnyezetfgg legbaloldalibb levezets esetre. Az rnyk-veremautomata vermben a hagyomnyos veremszimblumok mellett, rnykszimblumok is lehetnek. Az automata olvashat a szalagrl egy bett, ltja a veremben lev legfels veremszimblumot, illetve a kzvetlenl ezen lev rnykszimblumhoz is hozzfrhet. 22. Definci. Az (llapotnlkli nemdeterminisztikus) rnyk-veremautomata egy SPDA=(T, ZZ ', X0, d) rendezett ngyes, ahol T az input bc, Z a verembc, Z '={X ' | XZ} az rnykszimblumok halmaza, X0 a kezd veremszimblum, d:(T{})ZZ ' (ZZ ')* pedig az tmenetfggvny; ahol a d tmenetfggvny a kvetkez tmeneteket rhatja le: - , A 'd(a, A, ), ez az tmenet csak akkor lehetsges ha nincs rnykszimblum az A felett a veremben, ekkor az automata elolvassa az a- t a szalagrl s trli a verem tetejn lev A- t, vagy kicserli az rnykra ( A ' ). - BC, BCA 'd(, A, ), ezekben az tmenetekben az A- ra rtesszk a C- t s a B- t (a B lesz a legfels veremszimblum), s az A- t trljk, vagy az rnykra cserljk. - C, CB ', A 'C, A 'CB 'd(, B, A '), ezekben az tmenetekben az A ' rnykszimblumnak pont a legfels verem szimblumon, B- n kell lennie; ekkor B- re rtesszk a C- t (a C lesz a legfels veremszimblum) s a B- t trljk, vagy az rnykra cserljk, illetve az A '- t is trlhetjk. 200

Krnyezetfgg nyelvek Az rnyk-veremautomata egy konfigurcija (w, z), ahol wT* a mg feldolgozand input, z(ZZ ')* pedig a verem aktulis tartalma. Akkor fogadunk el egy w szt, ha a (w, X0) konfigurcibl a megadott tmenetek alapjn vges sok lpsben elrhet a (, ) konfigurci, vagyis elfogy az input s a verem kirl. Belthat, hogy az automata a Penntonen normlforma alapjn rtelmezett legbaloldalibb levezetst szimullja, gy bizonythat a kvetkez ttel. 66. Ttel. Az llapotnlkli nemdeterminisztikus rnyk-veremautomatk pontosan a krnyezetfgg nyelvek osztlyt fogadjk el.

8.12. plda - rnyk-veremautomata s mkdse


Legyen SPDA=({a,b,c},{S,A,B,C,D,E,F,G,I,J,K,L,M,O} {S',A',B',C',D',E',F',G',I',J',K',L',M',O'}, S, d), ahol d a kvetkezkppen definilt: ,A' d(a,A, ), ,B' d(b,B, ), ,C' d(c,C, ), ,D' d(a,D, ), ,E' d(b,E, ), ,F' d(c,F, ), ,I' d(a,I, ), ,L' d(c,L, ), AG,AGS' d(,S, ), BC,BCG' d(,G, ), IJ,IJA' d(,A, ), DE,DEJ' d(,J, ), FL,FLK' d(,K, ), IM,IMD' d(,D, ), AB,ABM' d(,M, ), CL,CLO' d(,O, ), E,EB',E'E,E'EB' d(,B, E'), K,KC',E'K,E'KC' d(,C, E'), B,BE',B'B,B'BE' d(,E, B'), O,OF',B'O,B'OF' d(,F, B'). Ekkor az aaabbbccc input szn lehetsges az SPDA kvetkez futsa: a konfigurcikat adjuk meg, az rnykszimblumokat (piros s lila), illetve az tmenetfggvnyben felhasznlt inputbetket (kk) s a verem tetejn felhasznlt betket (kk veremszimblum, illetve lila rnykszimblum) emeltk ki.

201

Krnyezetfgg nyelvek

Ez alapjn a szt az automata elfogadja.

8.6. Linerisan korltozott automata


A kvetkezkben egy msik, a szakirodalom ltal jl ismert olyan automata modellt mutatunk be, amely pontosan a krnyezetfgg nyelveket fogadja el. A linerisan korltolt automatnak (Linear Bounded Automaton (LBA), vagy linerisan korltozott Turing-gp) tbb vltozata is ismert, ezek kzl ismertetnk egyet. Az automata egy vges vezrlvel rendelkezik s egy szalaggal, amelyen kezdetben az input sz ll. Az automata a mkdse sorn kt lnyeges eltrst mutat az eddig trgyalt automatkhoz kpest: az egyik, hogy a szalagon a fej elre s htra is mozoghat, a msik, mg lnyegesebb, hogy nem csak olvashatja a szalagot, de annak tartalmt t is rhatja, ennek megfelelen nem olvas, hanem r-olvas fejrl beszlnk. 23. Definci. Az LBA=(Q, T, V, q0, #, d, F)- t (nemdetrminisztikus) linerisan korltozott automatnak hvjuk, ha Q az llapotok vges halmaza, T az inputbc, VT a szalagbc, q0 a kezdllapot, #V\T specilis jel a szalag azon rszn, ahol nincs input (tulajdonkppen a szkz jelnek feleltethet meg), d az tmenetfggvny, FQ pedig a vgllapotok halmaza. A d tmenetfggvny (lekpezs) alakja a kvetkez: a (Q(V{#})) halmazbl kpez a (QV{Bal, Jobb, Helyben}) rszhalmazaiba, illetve (Q{#}) halmazbl kpez a (Q#{Bal, Jobb, Helyben}) rszhalmazaiba. Az automata egy konfigurcijt (u, q, av) knt rhatjuk le, ahol u, vV* a szalagon lev informci a fejtl balra, illetve jobbra, qQ az aktulis llapot, aV pedig a fej ltal ppen ltott szimblum a szalagon. Kezdetben az input # jelek kztt szerepel az input szalagon s a fej az input els betjre van pozcionlva, vagyis a kezdeti konfigurci (, q0, aw ') ahol az input w=aw '. (ressz input esetn (, q0, #) a konfigurci kezdetben.) Az automata vezrlje (a d lekpezs ltal lert mdon) az aktulis llapot s az ppen olvasott szimblum alapjn nemdeterminisztikusan vlaszt a lehetsges tmenetek kzl: (q ', b, m)d(q, a) 202

Krnyezetfgg nyelvek jelentse: ha az automata q llapotban van s a szimblumot lt a szalagon, akkor tmehet q ' llapotba, mikzben a szalagon a helyre b- t r s a fej az m{Bal, Jobb, Helyben} ltal megadott irnyba lp egyet a szalagon (vagy rtelemszeren Helyben esetn helyben marad). Akkor mondjuk, hogy az automata elfogadott egy input szt, ha van az tmeneteknek olyan vges sorozata a sz feldolgozsa sorn, hogy az automata vgllapotba jut. Az elfogadott szavak halmaza adja az elfogadott (vagy felismert) nyelvet. A defincibl lthat, hogy a szalagon lev # jelek nem rhatak fell, ennek megfelelen az automata csak az eredeti input ltal elfoglalt terletet hasznlhatja szmolsra. 67. Ttel. A linerisan korltozott automatkkal elfogadott nyelvek osztlya megegyezik a krnyezetfgg nyelvek osztlyval. A bizonyts tlett rviden mutatjuk be: Ha egy nyelv krnyezetfgg, akkor monoton nyelvtannal generlhat, vagyis a mondatforma hossza a levezets egyik lpsben sem haladja meg a levezett sz hosszt. Az adott nyelvtan alapjn megszerkeszthet egy olyan linerisan korltozott automata, amely ppen a szablyok alkalmazst szimullja visszafel. Ha adott egy linerisan korltozott automata, akkor kszthet egy olyan analitikus nyelvtan, amely pont az automatt szimullja, a nemterminlis ppen a fej helyt jelli, s trolja az aktulis llapotot. Ez alapjn a dulis, generatv nyelvtan is elkszthet, ami monoton. Itt jegyezzk meg, hogy a nemdeterminisztikus linerisan korltozott automata az amely a krnyezetfgg nyelvosztly elfogadsra alkalmas, az pedig, hogy a determinisztikus linerisan korltozott automatk ltal felismert nyelvek osztlya valdi rszhalmaza-e ennek egy e jegyzet megrsa idejn is fennll nevezetes megoldatlan problma. Igazolhat, hogy az ismertetett modellel ekvivalensek, vagyis ugyanezt a nyelvosztlyt fogadjk el azok a linerisan korltozott automatk, ahol az automatnak egy elre rgztett k konstansszor annyi szalagpozci (trhely) ll rendelkezsre mkdse sorn, mint az input hossza (lsd Trhely ttel [223]). Tovbb az is ismert (Savitch ttele (ejtsd: szvics)), hogy determinisztikus automatval, ngyzetesen korltolt trral (vagyis, ahol az inputsz hossznak ngyzetvel arnyos a megengedetten felhasznlhat szalagterlet) minden krnyezetfgg nyelv felismerhet.

8.7. A krnyezetfgg nyelvek tulajdonsgai


A krnyezetfgg nyelvek halmaza tartalmaz tbb olyan nyelvet is, amely nem tesz eleget a konstansnvekmny elvnek: pl. : {ap | p prmszm }, {ak | k ngyzetszm } vagy {ak | k=2i valamely i termszetes szmra }. A krnyezetfgg nyelvek osztlyban szerepl nyelvekre gy nincs ltalnos pumpl/itercis lemma.

8.7.1. A szproblma
A krnyezetfgg nyelvekre a szproblma eldnthet, vagyis meg lehet adni olyan algoritmust, ami vges id alatt eldnti, hogy egy adott sz szerepel-e az adott monoton nyelvtan ltal generlt nyelvben. Mivel a mondatforma hossza egy levezets sorn nem cskkenhet, adott hosszig generlhat, s gy felsorolhat az sszes generlhat mondatforma. gy ha az adott w sz hossza n, akkor n+1 hosszig felsorolva (levezetve) az sszes levezethet szt eldnthet, hogy w eleme-e a generlt nyelvnek, formlisan teht: 68. Ttel. Brmely G=(N, T, S, H) krnyezetfgg grammatikrl s tetszleges wT* szrl eldnthet, hogy wL(G) fennll-e. Bizonyts. Vegyk szre, hogy tetszleges 1-tpus G=(N, T, S, H) nyelvtan esetn az esetleges S szablytl eltekintve minden egyes szably baloldalnak hossza legfeljebb akkora mint a jobboldal. Radsul, tekintettel arra, hogy az S szably fellpsekor S nem fordulhat el egyetlen szably jobboldaln sem, minden olyan esetben, amikor egy SW1Wtw levezets els lpsben nem az S szablyt alkalmazzuk, az S szablyt egyetlen 203

Krnyezetfgg nyelvek tovbbi lpsben sem tudjuk alkalmazni. Teht egy SW1Wtw levezets vagy S alak, vagy pedig |S| |W1| |Wt| |w| fenn fog llni. Teht a levezets egyetlen lpse sem eredmnyezhet |w|- nl hosszabb (NT)*- beli szt (mondatformt). Nyilvnval, hogy ha egy sz G- ben levezethet, akkor levezethet oly mdon, hogy a levezets sorn nincs ismtld mondatforma. Kpletben, ha (S=)W0W1Wtw mellett Wi=Wj telesl valamely 0 i<j t prra (a levezets utols lpseknt add T*- beli sz a levezets defincija rtelmben nem ismtldhet), akkor (S=)W0WiWj+1Wtw is fennll (ahol j=t esetn a Wj+1Wt lpsek rtelemszeren elmaradnak). Az ilyen ismtldseket nem tartalmaz levezetsek szma vges. Nevezetesen, (eltekintve az egy lpses S esettl) nem nagyobb mint a NT bc feletti, |w|nl nem hosszabb szavakbl ll ismtlds nlkli szsorozatok hossza, vagyis Vagyis,

ha el akarjuk dnteni a wL(G) krdst, w= esetn meg kell vizsglnunk, hogy S szerepel-e a szablyok kztt, w esetn pedig meg kell vizsglnunk azt, hogy az ismtlds nlkli, |w|- nl hosszabb szavakat nem tartalmaz (vges sok, -nl nem nagyobb szm) levezetsek kzt

van-e olyan, melynek az utols lpseknt w addik. Ha igen, wL(G), klnben pedig wL(G). Ezzel bizonytsunk vghez rtnk. Itt hvjuk fel a figyelmet, hogy a rekurzi-mentes normlformj nyelvtanok esetn eleve kizrhat, hogy ismtld mondatforma lpjen fel egy levezets sorn. Ha a lehetsges levezetseket a mestersges intelligenciban llapottr grfnak nevezett grffal reprezentljuk, akkor a rekurzimentes normlforma esetn a grf teht krmentes lesz, gy akr egy visszalpses keres, aminek lpsszmkorltja a mondatforma hossznak fggvnye, is kpes a szproblma eldntsre. A szproblmra a krnyezetfgg esetben nincs (nem ismert) hatkony algoritmus, a problma, hogy tetszleges krnyezetfgg nyelvet generl (akr valamely ismertetett normlformban lev) nyelvtan generl-e egy adott szt ltalnosan PSPACE-teljes problma (vagyis hiba elg legfeljebb ngyzetes tr a determinisztikus, illetve lineris tr a nemdeterminisztikus esetben, a problma a legbonyolultabb problmk kzt van, melyek megoldshoz polinomilis trra van szksg (lsd Bonyolultsgi osztlyok)).

8.7.2. Zrtsgi tulajdonsgok


69. Ttel. A krnyezetfgg nyelvek osztlya zrt a regulris mveletekre. Bizonyts. Konstruktv: legyen adott L1 s L2 krnyezetfgg nyelvek. Legyen adva (N1, T, S1, H1) s (N2, T, S2, H2) kt Kuroda normlformj nyelvtan, amely L1 s L2 resszmentes rszt generlja, ahol N1 s N2 diszjunktak. Konstruljuk meg a (N1N2{S}, T, S, H) nyelvtant, ahol S j szimblum, nem szerepel sem N1, sem N2 elemei kzt, H pedig a kvetkezkppen definilt: H=H1H2{S S1, S S2}, illetve legyen S benne a H- ban pontosan akkor ha az L1 s L2 nyelvek legalbb egyike tartalmazza az resszt. Knnyen belthat, hogy az j nyelvtan megfelel a monoton nyelvtan defincijnak s ppen L1 s L2 unijt generlja. Tekintsk most a (N1N2{S}, T, S, H) nyelvtant, ahol S j szimblum, nem szerepel sem N1, sem N2 elemei kzt, H pedig a kvetkezkppen definilt: H=H1H2{S S1S2}, ha sem L1 sem L2 nem tartalmazza az resszt, H=H1H2{S S1S2, S S1} ha L2 tartalmazza az resszt, de L1 nem, H=H1H2{S S1S2, S S2} ha L1 tartalmazza az resszt s L2 nem, H=H1H2{S S1S2, S S1, S S2, S } ha az L1 s L2 nyelvek mindegyike tartalmazza az resszt. Knnyen belthat, hogy az j nyelvtan megfelel a monoton nyelvtan defincijnak s ppen L1 s L2 konkatencijt generlja. Legyen most L krnyezetfgg nyelv s legyen adva (N1, T, S1, H1) s 204

Krnyezetfgg nyelvek (N2, T, S2, H2) kt Kuroda normlformj nyelvtan, amelyek L resszmentes rszt generljk, ahol N1 s N2 diszjunktak. Tekintsk most a (N1N2{S, S '}, T, S, H) nyelvtant, ahol S s S ' j szimblumok, egyikk sem szerepel sem N1, sem N2 elemei kzt, s H=H1H2{S , S S1, S S1S2, S S1S2S ', S ' S1, S ' S1S2, S ' S1S2S '}. Az gy megkonstrult nyelvtan monoton s az L* nyelvet generlja. 70. Ttel. A krnyezetfgg nyelvek osztlya zrt a halmazmveletekre: az uni mveleten kvl a metszet s komplementer mveletekre nzve is.

8.8. Nvekv krnyezetfgg nyelvek


E fejezetben vgezetl a krnyezetfgg nyelvek egy specilis osztlyt mutatjuk be. Nvekv krnyezetfgg (GCS: Growing Context-Sensitive) egy G=(N, T, S, H) nyelvtan, ha S nem szerepelhet egyetlen szably jobb oldaln sem, s ha minden (nem S p alak, ahol p(NT)* ) szablyra teljesl, hogy ha pqH, akkor |p|<|q|.

8.13. plda - Egy nvekv krnyezetfgg nyelv


Legyen G=({S, A, B, F, H, I, L}, {a}, S, {S a, S aa, S aaaa, S FHAL, FH FBH, BHA BBBH, BHL BBIL, IL IAL, BIA IAAA, FBI FHAA, FH aaH, aHA aaaH, aHL aaaa, IL Iaa, BIa Iaaa, FBa aaaa}). Ez a nyelvtan nvekv krnyezetfgg s pontosan azokat a szavakat generlja az {a} egybets bc felett, amelyek hossza a 2- nek valamilyen egsz kitevs hatvnya. Ez a nyelv kztudottan nem tesz eleget a konstansnvekmny tulajdonsgnak. A nvekv krnyezetfgg nyelvek osztlya szigoran rszhalmaza a krnyezetfgg nyelvek osztlynak, ezekre a nyelvekre a szproblma determinisztikus polinomilis idben eldnthet. A nvekv krnyezetfgg nyelvek osztlya halmazelmleti szempontbl nem sszemrhet a permutcis nyelvekkel a tartalmazsi (rszhalmaz) relcira nzve.

8.9. Irodalmi megjegyzsek


A Kuroda normlforma bevezetse [Kuroda 1964]-ben jelent meg. A krnyezetfgg egyb normlformkkal kapcsolatos eredmnyek nagy rsze az 1970-es vekbl szrmazik: a Cremers-fle normlforma [Cremers 1973], a Penttonen-fle [Penttonen 1974] jelent meg. A Rvsz-fle egyoldali normlforma megtallhat [Rvsz 1983,1989] knyvekben. A rekurzimentes normlforma [Nagy, Varga 2009]-ben jelent meg. A levezetsi fk s a legbaloldalibb levezets [Nagy 2006b, 2010b], az rnykveremautomata bevezetse pedig [Nagy 2006c, 2010c] cikkekben trtnt. A linerisan korltozott automata bevezetse s annak bizonytsa, hogy ppen a krnyezetfgg nyelvosztlyt tudjk elfogadni szintn [Kuroda 1964]-ben jelent meg. A permutcis nyelvekkel kapcsolatos eredmnyek [Mkinen 1985], [Nagy 2009a] jelentek meg. Annak a bizonytsa, hogy a 3 hosszsg permutcis szablyokkal tbb nyelv generlhat, mint a csak 2 hosszsgakat felhasznlva [Nagy 2010a]-ban tallhat. A permutcis s regulris nyelvek metszeteknt elll nyelveket vizsglja a [Nagy 2009b, 2011a]. A nvekv krnyezetfgg nyelvekkel kapcsolatos eredmnyeket pl. [Buntrock, Otto 1995] tartalmaz.

205

9. fejezet - Rekurzvan felsorolhat nyelvek s Turing-gpek


Ebben a fejezetben a mondatszerkezet nyelvtanok ltal generlt nyelvosztlyt fogjuk megvizsglni, vagyis azon nyelvek osztlyt, amelyek generatv nyelvtannal generlhatak. A mondatszerkezet nyelvtanok esetn a levezetseket grffal tudjuk szemlltetni hasonlan a krnyezetfgg, illetve a monoton esethez. Ezeket a tovbbiakban nem rszletezzk. Megjegyezzk viszont, hogy a grf kinzete specilis lehet, ha klnbz normlformt kvetelnk meg a nyelvtantl. A fejezetben, ahogy a cmben is szerepel, kzponti szerepet jtszik a Turing-gp fogalma.

9.1. A Turing-gp
A Turing-gp (TM: Turing Machine) fogalmt Alan Turing (ejtsd: tyuring) vezette be bizonyos automatikusan vgrehajthat szmtsok tanulmnyozsra 1936-ban, jval az els programvezrls elektronikus szmtgpek megjelense eltt. Egyszersge ellenre a Turing-gp elg j modellnek bizonyult bizonyos szmtgpekkel kapcsolatos vizsglatokban, gy pldul a szmtgpek szmtsi kapacitsnak elvi korltai kutatsban. A Turing-gp egy potencilisan vgtelen szalagmemrival s egy r-olvas fejjel elltott vges automata. A szalagmemria pozcikra van osztva, s minden egyes pozci mint memria-egysg az gynevezett szalagbc pontosan egy betjnek trolsra kpes. Kezdetben a Turing-gp egy specifiklt kezdllapotban van, s a szalagon egy vges hosszsg input sz helyezkedik el. Az eddig trgyalt automatkhoz hasonlan ez a modell is szekvencilis mkds. Mkdsnek kezdetekor a Turing-gp r-olvas feje az input sz els betjn ll. Az input sz eltti s utni (vgtelen sok) szalagpozci egy specilis betvel, a szkzzel (res betvel) van feltltve, ami nem tvesztend ssze az resszval. Tbbek kztt azrt is, hogy az input sz elklnthet lehessen a szalag tbbi rszn trolt mindkt irnyban vgtelen szm szkztl, felttelezzk, hogy az input sz utols betje nem lehet szkz. Az input sz teht az r-olvas fej alatti bettl (jobbra haladva) tart a szalag utols nem res betjig. Specilisan, res input sz is elkpzelhet. Ez esetben a szalag minden egyes pozcija szkzzel van feltltve, s az r-olvas fej ezek egyikre mutat. (Utols szkztl klnbz bet pedig ekkor rtelemszeren nincs.) A Turing-gp diszkrt idskla mentn, elklntett idpillanatokban hajt vgre egy-egy elemi mveletet, mely az r-olvas fej alatti bet olvassbl, ezen bet fellrsbl, a bels llapot vltoztatsbl, s az r-olvas fej egy pozcival val balra avagy jobbra mozgatsbl, vagy ppen a fej helybenhagysbl ll. Amennyiben a Turinggp eljut egy vgllapotba, megll.

206

Rekurzvan felsorolhat nyelvek s Turing-gpek

Formlisan, a Turing-gp egy TM=(Q, T, V, q0, #, d, F) rendezett hetes, ahol Q a gp bels llapotainak (vges) halmaza, q0Q a kezd llapot, V a szalagbc, TV az inputbc #(VT) a szkz bet, FQ a vgllapotok halmaza, d:QV 2QV{Bal, Jobb, Helyben} a gp mozgsfggvnye, mint szoksos, 2QV{Bal, Jobb, Helyben} jelli a QV{Bal, Jobb, Helyben} halmaz sszes rszhalmazainak halmazt. Ha teht a TM Turing-gp egy qQ llapotban van s az r-olvas fej alatt valamely aV jel ll, akkor- ha d(q, a) nem res - a d(q, a)- beli hrmasok egyikeszolgltatja a gp operci utni j llapott, a szalagjelet fellr szimblumot (mely nem felttlen klnbz a fellrt szimblumtl), illetve az elmozduls irnyt. Ha d(q, a)=, azt gy interpretljuk, hogy ha a gp a q llapotban azr-olvas fej alatt az a bett tallja, tovbbi mkdstfelfggeszti (megll). Megjegyezzk, hogy br a gp szalagjt mindkt irnyban vgtelennek tekintjk, mindig csak vges sok #- tl klnbz jel lehet rajta. Vegyk szre, hogy a krnyezetfgg nyelveknl definilt s trgyalt linerisan korltozott automata (lsd LBA), tulajdonkppen a Turing-gp egy olyan vltozata, ahol a szmtsra fordthat szalagterlet az input ltal lefoglalt terletre korltozdik. Ily mdon a szmts bonyolultsga van korltozva (lsd Bonyolultsgi osztlyok). Az egyszerbb rsmd kedvrt a tovbbiakban fel fogjuk ttelezni azt az egybknt megfelel rsmddal elrhet, m jelentktelen megszortst, hogy QV=. Egy pillanatnyi konfigurci (u, q, av) alak, ahol aV{}, u, vV*, qQ s uV+ esetn u nem kezddhet, vV+ esetn pedig v nem vgzdhet szkzzel. (Termszetesen u=, v=, uv= brmelyike elfordulhat.) Az (u, q, av) konfigurci azt jelenti, hogy a gp q bels llapotban van, mikzben a feje ppen egy a jel felett ll, mikzben a szalag "rtelmes tartalma" ppen uav, vagyis a szalagon u ll a fejtl balra s v jobbra (termszetesen a bevezet, illetve folytat szkz jeleket nem szmtva). Ha q=q0 s u= akkor kezdkonfigurcirl, ha pedig qF, akkor vgkonfigurcirl beszlnk. (Sok esetben nem is szoktk elklnteni a Turing-gp vgllapotait a tbbi llapottl. Ilyenkor vgkonfigurci alatt azokat a (u, q, av), konfigurcikat szoksrteni, ahol d(q, a)=. Ilyenkor a szmts "eredmnye" a szalagrl olvashat le a megllskor.) Amennyiben valamely (u, q, av), qQF pillanatnyi konfigurci esetn {(q, a, Helyben)}=d(q, a), akkor azt mondjuk, hogy a TM Turing-gp a tekintett pillanatnyi konfigurciban egyszer vgtelen ciklusba esik. Minden egyes W=(ub, q, av), qQ, u, vV*, aV, b(V{#}){} pillanatnyi konfigurcihoz (ahol ha ub, akkor ub nem kezddhet, ha pedig v, akkor av nem vgzdhet szkzzel) rendeljk hozz a kvetkezkpp definilt (W) kifejezst. 207

Rekurzvan felsorolhat nyelvek s Turing-gpek (W)= ubqav, ubq#, #qav, #q#, ha a, bV{#} ha bV, a=#, v= ha ub=, aV{#} ha ub=v=, a=#.

Vilgos, hogy ez a hozzrendels klcsnsen egyrtelm. Mondjuk azt, hogy a W1 pillanatnyi konfigurcibl a W2 pillanatnyikonfigurci ( TM- ben) kzvetlenl (vagy egy lpsben) levezethet(jelekben W1TMW2, vagy ha egyrtelm mely TM gprl van sz, egyszerbben W1W2 ),ha W1=(ub, q, av) esetna kvetkez felttelek valamelyike teljesl. (I) W2=(u, q ', ba 'v) s (q ', a ', Bal)d(q, a), (II) W2=(uba ', q ', v) s (q ', a ', Jobb)d(q, a), (III) W2=(ub, q ', a 'v) s (q ', a ', Helyben)d(q, a). A W pillanatnyi konfigurcibl a W ' pillanatnyi konfigurci(a TM -ben) levezethet (jelekben WTM*W ', vagy rviden W*W ' ), ha van a pillanatnyikonfigurciknak olyan W0, , Wn sorozata, hogy WiWi+1, i=0, , n-1 mellett W0=W, Wn=W '. Specilisan, minden W pillanatnyi konfigurcirafeltesszk W*W fennllst. Szoksosan, ha ki akarjuk hangslyozni,hogy W*W ' s WW ', hasznljuk a W+W ' jellst is. A TM Turing gp ltal elfogadottnyelven rtjk az L(TM)={wT*|(, q0, w)*W, W vgkonfigurci } nyelvet. 11. Megjegyzs. Jellje CTM a TM=(Q, T, V, q0, #, d, F) Turing-gp sszes pillanatnyi konfigurciinak halmazt. Vegyk szre, hogy a fentiekben tekintett TM Turing-gp ltal elfogadott nyelv egybeesik a kvetkez G nyelvtan ltal elfogadott nyelvvel: G=(Q, T, q0, H), ahol H=H1H2 s H1={q |qF}, H2={bqa (W)|qQ, b, a(V{#}){}, WCTM, (b, q, a)W}. Tekintsnk egy TM=(Q, T, V, q0, #, d, F) s egy TM '=(Q ', T ', V ', q'0, #', d ', F ') Turing-gpet.Akkor mondjuk, hogy TM izomorf TM '- vel, haaz llapotok s a szalagbc betinek alkalmas klcsnsen egyrtelm tjellsvel a kt gp meg fog egyezni. Formlisan, ha ltezik olyan 1:Q Q ' s 2:V V ' klcsnsen egyrtelm lekpezs-pr, hogy fennllnak a kvetkezk: (i) 1(q0)=q'0, 2(#)=#'; (ii) minden qQ- ra qF akkor s csak akkor ha 1(q)F '; (iii) valahnyszor (p, b, Irny ) d(q, a), mindannyiszor (1(p), 2(b), Irny )d '(1(q), 2(a)) s viszont. rvnyes a kvetkez ttel: 71. Ttel. A mondatszerkezet nyelvek osztlya egybeesik a Turing gpek ltal elfogadott nyelvek osztlyval. Amennyiben a mozgsfggvny kphalmaza a QV{Bal, Jobb, Helyben} halmaz (s nem annak rszhalmazainak halmaza), akkor determinisztikus Turing gprl beszlnk, s rvnyes a kvetkez ttel. 72. Ttel. A determinisztikus Turing gpek ltal elfogadott nyelvek osztlya egybeesik a nemdeterminisztikus Turing gpek ltal elfogadott nyelvek osztlyval. A Turing-gpeknek tbb vltozata is ismert, most ezek kzl mutatunk be nhnyat. Van olyan definci, ahol a fej a {Bal, Jobb} irnyokba lphet, s nem maradhat helyben. Belthat, hogy egy ilyen Turing-gp szimullni tudja az eddigiekben ismertetett vltozatnak a fejet helyben 208

Rekurzvan felsorolhat nyelvek s Turing-gpek hagy lpseit is: pl. egyet balra lp a fej, s egy olyan llapotba kerl az automata, amiben brmit is olvas a szalagon, azt nem vltoztatja meg, viszont jobbra visszalp s az eredeti automata llapotnak megfelelel llapotba kerl. Ugyancsak szoksos a csak egyirnyban vgtelen szalag Turing-gp hasznlata, amelyik szintn kpes az ltalnos vltozat szimulcijra. Ekkor a szalag els karaktere egy specilis jel, amibl a gp rjn, hogy erre nem mehet tovbb a fej. Ekkor egy olyan specilis llapotba kerl, aminek hatsra jobbra lp, elszr lerja azt a jelet, ami eredetileg a specilis szimblum helyre rt volna (ha a szalag mindktirnyban vgtelen lenne), majd az itt olvasott karaktert eggyel jobbra, s gy tovbb, vagyis a szalag teljes (rtelmes) tartalmt eggyel jobbra msolja, ezutn (szlelve a felhasznlt trterlet jobb szlt), a fej vissza mozog a baloldalra, aholis a gp folytatja az eredetileg tervezett szmtst. Sokszor az egyszerbb lers kedvrt tbbszalagos Turing-gpet hasznlunk: TMk=(k, Q, T, V, q0, #, d, F) k- szalagos Turing-gp, ahol k termszetes szm, ennyi szalagja van aTuring-gpnek; s a d tmenetfggvny alakja a kvetkez: d:QVk QVk{Bal, Jobb, Helyben}k. Mkdst tekintve a tbbszalagos Turing-gp egy lpsben olvashat/rhat egyszerre tbb szalagra is. Kezd konfigurciban az egyik szalagon (input-szalag) van a feldolgozand adat, a tbbi szalag pedig res. Tbbszalagos gpek esetn szoks egy szalagot az outputnak is fenntartani, ekkor a szmts vgn azon a szalagon olvashat az eredmny, illetve sokszor az input szalag csak olvashat. Minden tbbszalagos Turing-gp mkdse szimullhat egyszalagos Turing-gppel, vagyis egyszalagos Turing-gp is el tudja vgezni azt a szmtst amit egy tbbszalagos Turing-gp. Megklnbztethetnk kiszmt s eldnt Turing-gpeket a kvetkez definci alapjn. Amennyiben a Turing-gp clja adott fggvny kiszmtsa a megadott bemen rtkekkel, akkor a gp a megllsakor az (output)szalagon a megfelel eredmnyt hagyja. Ezzel szemben vannak olyan szmtsok, amikor a vlaszt egy igen-nem krdsre keressk, ezesetben eldnt Turing-gprl beszlnk. Az eldnt Turing-gpekkel lehet pl. egy L nyelvet elfogadtatni a kvetkezkppen: bemenet egy wT* sz, a Turing-gp szmtsnak eredmnye pontosan akkor "igen" ha wL teljesl. (Ugyanez a hats rhet el, ha csak akkor engedjk vgllapotba jutni a gpet, ha elfogad.) A kvetkez brn egy ktszalagos Turing-gp vzlata lthat.

209

Rekurzvan felsorolhat nyelvek s Turing-gpek A tovbbiakban, ha mst nem mondunk, Turing-gp alatt determinisztikus Turing-gpet rtnk. A pldkban a fej mozgst jelent szavakat azok kezdbetivel rvidtjk.

9.1. plda - Turing gpek 1.feladat


Adjunk meg olyan Turing-gpet, amely az {a,b} feletti tkrszavakat ismeri fel!

Megolds: llapodjunk meg abban, hogy a kezd konfigurciban az input sz els betjn ll az r/olvas fej, s az input sz eltt s utn "#" van. Ha a Turing gp qi llapotban t-t olvas, v-t r, tmegy qj llapotba s m irnyba tovbb lpteti a fejet, azaz (qj,v,m)d(qi,t), akkor jelljk ezt (qi,t,v,qj,m) tssel! A fej mozgsnak irnyt pedig annak kezdbetjvel rvidtjk. Legyen a T=({q0,q1,q2,q3,q4,q5,qa},{a,b},{a,b,#},q0,#,,{qa}), ahol a kvetkez: (q0,a,#,q1,J) Ha az els bet a, akkor q1 llapotba megy a gp (q0,b,#,q2,J) Ha az els bet b, akkor q2 llapotba megy a gp (q0,#,#,qa,J) Ha az els bet # (az ressz van a szalagon), akkor qa llapotba megy a gp (q1,a,a,q1,J) (q1,b,b,q1,J) (q1,#,#,q3,B) Vgig megy a gp az input szn, majd annak utols betjre ll q3 llapottal (q2,a,a,q1,J) (q2,b,b,q1,J) (q2,#,#,q4,B) Vgig megy a gp az INPUT szn, majd annak utols betjre ll q4 llapottal (q3,a,#,q5,B) Ha az utols bet a, akkor trljk, s mehet a gp a sz elejre q5 llapottal (q4,b,#,q5,B) Ha az utols bet b, akkor trljk, s mehet a gp a sz elejre q5 llapottal (q3,#,#,qa,B) (q4,#,#,qa,B) Ha az input sz pratlan hossz volt, akkor elfogadjuk (q5,a,a,q5,B) (q5,b,b,q5,B) (q5,#,#,q0,J) jra a sz elejre s a kezdllapotba megynk! A tkrszavakat felismer Turing-gpet mkds kzben mutatja a kvetkez bra:

210

Rekurzvan felsorolhat nyelvek s Turing-gpek

211

Rekurzvan felsorolhat nyelvek s Turing-gpek

9.2. plda - Turing gpek 2.feladat


Adjunk meg olyan Turing-gpet, amely az L={A2 | n 0} nyelvet ismeri fel!
n

Megolds: Ezt a feladatot ms oldalrl kzeltjk meg, mint elsre az logikusnak tnne! Els krben az A-k szmt brzoljuk binris formban, majd megnzzk, hogy a kapott szm csak 1 darab 1-es szmjegyet s utna esetleg 0-kat tartalmaz-e. T=({q0,q1,q2,q3,q4,qa},{A},{A,X,0,1,#},q0,#,,{qa}), ahol a kvetkez: (q0,A,X,q1,B) Az els A-t trjuk X-re, majd eggyel balra lpnk (q1,#,1,q2,J) (q1,0,1,q2,J) (q1,1,0,q1,B) A legbaloldalabbi X eltti binris szmot nveljk 1-gyel, majd q2 llapotba megynk (q2,1,1,q2,J) (q2,0,0,q2,J) (q2,X,X,q2,J) (q2,A,A,q0,H) Megkeressk a legbaloldalabbi A-t, majd tmegynk a kezdllapotba (q2,#,#,q3,B) Nincs tbb A, a fejtl balra csak X-ek s egy binris szmunk van. tmegy a gp q3 llapotba. (q3,X,#,q3,B) Trljk az X-eket (q3,0,0,q3,B) A 0-kon tmegynk q3 llapottal (q3,1,1,q4,B) Ha egy 1-est tallunk, tmegynk q4-be (q4,#,#,qa,H) Ha az 1-es eltt # van, akkor elfogadjuk a szt!

212

Rekurzvan felsorolhat nyelvek s Turing-gpek

9.3. plda - Turing gpek 3.feladat


Adjunk meg olyan Turing-gpet, amely az L={anbncn| n 0} nyelvet ismeri fel!

Megolds: Az els a-t trjuk A-v, majd ms llapotba megynk, az els b-ig. Az els b-t trjuk B-v, majd ms llapotba megynk, az els c-ig. Az els c-t trjuk C-v, majd ms llapotba megynk visszafel az els a-ig. Az A,B,C betkn csak tovbb megynk mindig. Ha a vgn csak # marad, akkor felismeri a gp a szt! Legyen T3=({q0, q1, q2, q3, qa},{a,b,c}, {a,b,c,A,B,C,#},q0,#,,{qa}), ahol a kvetkez: (q0, #, #, qa, B) resszn llunk q0-nl, akkor a beolvasott szt felismeri a gp (q0, a, A, q1, J) a legbaloldalibb a-t trjuk A-v, s tmegynk q1-be (q0, B, B, q0, J) (q0, C, C, q0, J) a B s C betkn csak jobbra tmegynk q0-lal (q1, a, a, q1, J) (q1, B, B, q1, J) az a-kon s a B-ken jobbra haladva tmegynk az els b-ig (q1, b, B, q2, J) a legbaloldalibb b-t trjuk B-v, s tmegynk q2-be (q2, b, b, q2, J) (q2, C, C, q2, J) a b-ken s a C-ken jobbra haladva tmegynk az els c-ig (q2, c, C, q3, B) a legbaloldalibb c-t trjuk C-v, s tmegynk q3-ba, majd balra lpnk egyet (q3, a, a, q3, B) (q3, b, b, q3, B) (q3, c, c, q3, B) (q3, B, B, q3, B) (q3, C, C, q3, B) q3 llapottal elmegynk a legbaloldalibb A-ig, majd jobbra lpnk 1-et (q3, A, A, q0, J) az els A-t kvet karakteren llunk kezdllapotban. Az L={anbncn| n 0} nyelvet felismer Turing-gp mkds kzben lthat:

213

Rekurzvan felsorolhat nyelvek s Turing-gpek

9.4. plda - Turing gpek 4. feladat


Ksztsnk olyan Turing-gpet, amely egy binris szm kettes komplemenst lltja el. Megolds:

214

Rekurzvan felsorolhat nyelvek s Turing-gpek

9.2. A Turing-gpek megllsi problmja s az algoritmikusan eldnthetetlen feladatosztlyok kapcsolata


A matematikban s az informatikban gyakran foglalkozunk igen/nem problmaosztlyokkal, vagyis olyan problmk osztlyval, amelyeknl a megolds mindig vagy "igen," vagy "nem." Ezeknl azt vizsgljuk, hogy ltezik-e algoritmus (kiszmtsi md) az illet osztly sszes problmjnak megoldsra. Church tzise szerint egy Turing-gppel ekvivalens erej szmtsi modellel, a parcilis rekurzv fggvnnyel kiszmthat feladatok tekinthetk effektve kiszmthatnak. Ezek szerint a Turing-gp a lehet legltalnosabb szmtsi eszkz, azaz minden, ami effektve kiszmthat, kiszmthat Turing-gppel is. Ez utbbi tfogalmazst Church-Turing tzisnek is hvjk a szakirodalomban. A Church tzist, miszerint az effektve kiszmthat fggvnyek osztlya megegyezik a parcilis rekurzv fggvnyek osztlyval, Alonzo Church fogalmazta meg 1936-ban. (Mg azt is hozztette, hogy aki ezzel nem rtene egyet, annak ez a tzis legyen kihvs.) Ezt a tzist, illetve annak ekvivalens megfelelit, gy a Church-Turing tzist is ma a szakemberek tbbsge elfogadja. Tzisrl, teht egy olyan nem bizonytott lltsrl van sz, melynek igazolsa formlis matematikai eszkzkkel nem lehetsges. rvnyessgt a gyakorlat verifiklja. A Church-Turing tzis rtelmben egy igen/nem problmaosztlyt megoldhatnak hvjuk, ha ltezik olyan rgztett algoritmus (Turing-gp), mely az osztly tetszleges problmja mint bemen adat esetn eredmnyknt megadja a helyes "igen" vagy "nem" vlaszt. 1936-ban Turing azt az akkor meglep eredmnyt kapta, hogy ltezik ebben az rtelemben megoldhatatlan feladatosztly. Az eredeti bizonyts helyett mi Minsky 1967-ben kzlt bizonytst trgyaljuk. Akkor mondjuk, hogy egy Turing-gp valamely input sz hatsra megll, ha az input sz eleme a tekintett Turing-gp ltal felismert nyelvnek, azaz az input szhoz tartoz kezd konfigurcibl kiindulva eljut egy vgkonfigurciba. Mondjuk azt, hogy a Turing-gpek megllsi problmja megoldhat, ha ltezik olyan TM ' Turing-gp, melynek egy alkalmas kdolsi algoritmussal egy tetszleges TM Turing-gp lerst s a TM gp egy w input szavnak kdolt alakjt input szknt megadva megll, s megllva a TM ' szalagjn olyan sz keletkezik, melyre alkalmas dekdolsi eljrst alkalmazva egyrtelmen megllapthat, hogy wLTM ', avagy sem. Ms szval, egyrtelmen megllapthat, hogy a lert TM Turing-gp a krdses w sz mint input sz hatsra el tud-e jutni egy vgkonfigurciba, avagy sem. Ha ilyen TM ' Turing-gp nem ltezik, akkor mondjuk azt, hogy a Turing-gpek megllsi problmja megoldhatatlan. 73. Ttel. (Turing ttel) A Turing-gpek megllsi problmja megoldhatatlan. Bizonyts. Elszr eltekintnk a bekdols krdsnek vizsglattl, s feltesszk, hogy ltezik olyan ltalnos kdolsi algoritmus, mely tetszleges TM Turing-gp s annak w input szava esetn megad a gp egy l(TM) lerst s a w ltal meghatrozott alkalmas c(l(TM), w) kdolt alakot mint egy rgztett bc feletti szt. A bizonyts indirekt. Tegyk fel, hogy ltezik olyan TM ' Turing-gp, mely a c(l(TM), w) szt input szknt megkapva (a) megll s ekkor az "IGEN" vlasz kdolt alakja olvashat a szalagjn, ha TM meglla w inputra, (b) megll s ekkor a "NEM" vlasz kdolt alakja olvashat a szalagjn, ha TM nem llmeg a w inputra. Ha TM ' ltezik, megszerkeszthet az a TM '' Turing-gp, mely az l(TM) input sz hatsra ellltja a c(l(TM), l(TM)) input szt, majd ezutn erre az input szra a TM ' Turing-gp mkdst utnozza egyetlen mdostssal: valahnyszor a TM ' igen megllst r el, a TM '' gp egyszer vgtelen ciklusba esik. Figyelembe vve a TM ' eredeti viselkedst, kapjuk: 215

Rekurzvan felsorolhat nyelvek s Turing-gpek TM '' az l(TM '') input sz hatsra pontosan akkor ll meg, ha TM '' a l(TM '') input sz hatsra nem ll meg. Ez nyilvnval ellentmonds, amivel (felttelezve, hogy ltezik az univerzlis kdolsi eljrs,) a ttel igazolst nyert. 74. Ttel. Ltezik univerzlis algoritmus, mely izomorfizmustl eltekintve egyrtelmen megadja brmely Turing-gp s annak input szava lerst. Bizonyts. A bizonyts sorn alkalmazott meggondolst Gdel-szmozsnak, a kdolt alakot pedig a Turing-gp Gdel szmnak hvjuk. Megjegyezzk, hogy ismeretesek ezen mdszernl jval hatkonyabb univerzlis kdolsi mdszerek is. (Az ismertetett mdszert Gdel eredetileg aximarendszerek vizsglatra hasznlta fel.) Ismeretes, hogy minden termszetes szm sorrendtl eltekintve egyrtelmen felrhat prmhatvny tnyezs alakba (azaz pronknt klnbz prmszmok hatvnyainak szorzataknt). Ezt a tnyt fogjuk felhasznlni. Tekintsnk egy TM=(Q, T, V, q0, #, d, F) Turing-gpet, s legyen q0, , qm-1 az llapotok egy olyan (kezdllapottal kezdd) felsorolsa, ahol alkalmas 0 k m-1 mellett {q0, , qk}=QF. Jellje tovbb a1, , an a szalagbc betinek egy felsorolst, s vgl legyen D1=(q0, a1), , Dk+1=(qk, a1), Dk+2=(q0, a2), , D2(k+1)=(qk, a2), , Dn(k+1)=(qk, an). (Megtesszk azt a nem tl lnyeges megjegyzst, hogy a q0, , qk s az a1, , an felsorolsok mr egyrtelmenmeghatrozzk a D1, , Dn(k+1) felsorolst. Utbbi alkalmazst csupn a mdszer knnyebb megrtse kedvrt vezettk be.) Kpezzk az TM Turing-gphez s ezekhez az elrendezsekhez a

(tetszlegesen rgztett szmrendszerbeli, pldul tzes szmrendszerbeli) termszetes szmot, aholis 2 hatvnya az llapotok szmt, 3 hatvnya a nem-vgllapotok szmt, 5 hatvnya a szalagbc betinek szmt jelli, s minden tovbbi , , , i=1, , n(k+1) prmhatvny-hrmas esetn, aholis alkalmas qs{q0, , qk}(=QF), at{a1, , an} mellett Di=(qs, at) ll fenn, (ui, vi, wi)=(0, 0, 0) ha d(qs, at) nincs rtelmezve, ha pedig d(qs, at) rtelmezve van, akkor d(qs, at)=(qs', at', Merre ) esetn ui=s '+1, vi=t ', tovbb, mondjuk, wi=1 ha Merre=Bal, wi=2 ha Merre=Jobb, illetve wi=3 ha Merre=Helyben. Az gy meghatrozott gTM szmot a TM Turing-gp Gdel-szmnak fogjuk hvni. Amennyiben a w input sz w=ai1aif alak, a c(l(TM), w) kdolt alak legyen (a rgztett szmrendszerbeli) gTM(pn(k+1)+4)i1(pn(k+1)+d)if termszetes szm. Lthat, hogy a szban forg kdols (izomorfizmustl eltekintve) egyrtelm, s ha a nyert c(l(TM), w) termszetes szm pldul tzes szmrendszerbenvan megadva, akkor egy alkalmas tizenegy bemen jeles gpnek inputknt megadhat (tizenegyedik bemen jel a szkz jel).

9.2.1. Univerzlis Turing-gp


Ebben a rszben a Turing-gpeknek egy specilis fajtjval, az n. univerzlis Turing-gppel fogunk foglalkozni. Az univerzlis Turing-gp tbbflekppen is megadhat, mi itt most az egyik ilyen megvalstst mutatjuk be. Az UTM Turing-gpet univerzlisnak nevezzk a Turing-gpek osztlyra nzve, ha minden TM Turing-gphez van olyan vT*, hogy minden sT*- ra a TM futsnak eredmnye az s inputon megegyezik az UTM futsnak eredmnyvel a vXs inputon (ahol XVT ). A TM "programja" v (az UTM nyelvn), s pedig egy tetszlegessz. Ha TM az s inputot kapja, akkor ugyanazt csinlja, mint UTM a v programmal az s- en. 216

Rekurzvan felsorolhat nyelvek s Turing-gpek Az univerzlis Turing-gp tulajdonkppen egy ltalnos, elvont szmtgp, ami minden Turing-gpet kpes szimullni, vagyis elvileg a programjnak megfelelen feldolgozni az input szt. Ez azt jelenti, hogy van olyan gp, ami minden kiszmthat fggvnyt ki tud szmolni. Az albbiakban egy pldt adunk az univerzlis Turing-gpre. Tulajdonkppen a d tmenetfggvnyt kell megadnunk ami a QV vges rtelmezsi tartomnyon s a QV{Bal, Jobb, Helyben} vges rtkkszleten van rtelmezve, illetve egy msik Turing-gp lersnak (program) kdolst. Legyen TM valamilyen Turing-gp, melynek n darab bels llapotavan, s a szalagbcje m bett tartalmaz. Tegyk fel, hogy TM -etkdolt formban adtuk meg (jellje [TM] ezt a lerst). A tovbbiakban vzlatosan ismertetjk, hogy hogyan tudjuk modellezni TM mkdst egy UTM univerzlis Turing-gppel. Tegyk fel, hogy TM a v inputon (ennek kdja [v] )dolgozik. Elszr azt kell megadnunk, hogy adott [TM] s [v] esetn ezeket az informcikat mikppen troljuk az UTM szalagjn (azaz mi lesz UTM kezdkonfigurcija), majd pedig azt, hogy ezek hatsra UTM hogyan fog mkdni. Jelljnk ki a szalagon egy mezt, s rjunk ebbe a mezbe egy rgztett X jelet a szalagbcbl. A szalagnak a kivlasztottmeztl jobbra es felt hrom rszre osztjuk. Az els rszt nevezzk pufferterletnek; ez kzvetlenl az X jel utnkezddik, legalbb n+m+2 mezt tartalmaz, s ezek mindegyikbe 0van rva. A pufferterlettl jobbra es szalagrsz legels mezjbe egy Y jelet tesznk a szalagbcbl, utna berjuk TM kdolt formjt, [TM]-et, hrom 0-t tve a vgre. A szalagnak ezen rszt nevezzk TM kdolsi terletnek. A harmadik rsz a msodik rsztl jobbra helyezkedik el. Az els mezjbe egy rgztett Z jelet runk a szalagbcbl, majd a v bemeneti sz [v] kdolsa kvetkezik. A szalagnak e hrom rszen kvl es mezi (kezdetben) resek. A pufferterlet arra szolgl, hogy mialatt TM valamelyik lpst szimulljuk, ide msolhassuk TM pillanatnyi bels llapotnak, illetve az ppen leolvasott TM -beli szalagjelnek a kdjt. Az Y jel ltalban az eltt a rendezett ts eltt fog llni, amely azt hatrozza meg, hogy milyen bels llapotban van TM , milyen szalagjelet olvasunk ppen, mivel kell ezeket kicserlni (j llapot s j szalagjel), s ekzben milyen irnyban mozduljon el TM olvasfeje a szalagon. A Z jel az TM szalagjra felrt jelekkzl jelli ki azt, amelyiket ppen olvasunk. Az UTM -ben lezajl szmtsi folyamatot, mellyel a TM Turing-gp mkdst szimulljuk az v bemeneti szval, olyan szakaszokrabonthatjuk, melyek sorra megfelelnek a TM egyes konfigurcii kztti tmeneteknek. Az UTM mkdsnek egy ilyen szakasza az albbi mdon zajlik le. Az UTM univerzlis Turinggp elszr a pufferterlet elejre msolja azt az 1-esekbl ll blokkot, amely kzvetlenl az Y jel utnkvetkezik - nevezzk ezt Y- blokknak -, majd a vgre odar mgegy X jelet. Ezutn kitrli Y- t, s jobbra haladva megkeresi a Z- t tartalmaz mezt. Amikor ezt megtallta, akkor a Z utnkvetkez 1-esekbl ll blokkot ( Z- blokkot) is tmsolja apufferterletre az elbb bert msodik X jel utn, majdvisszarja Y- t a TM kdolt lersa, [TM] el. gy apufferterletre az aktulis bels llapot s a szalagrl ppen beolvasott jel kdja kerlt. A kvetkez lpsekben UTM az Y jelutn kvetkez kt 1-es blokkot hasonltja ssze a pufferterleten levkkel. Ezltal azt ellenrzi, hogy a TM gp soron kvetkez konfigurcitmenett az a rendezett ts hatrozza-e meg, amelynek kdja az Y jel utn van lerva. Ha a blokkokmegegyeznek, ez azt jelenti, hogy megtalltuk a keresett tst. Ha nem, akkor UTM thelyezi az Y jelet a kvetkez rendezett tskdolsa el, majd jrakezdi a blokkok sszehasonltst. Abban az esetben, ha a TM lersban szerepl tsk kzl egyik sem felel meg, UTM lell a mkdsvel (az eredeti TM is ugyanezt tenn a v inputra). Ha viszont megtalljuk a keresett tst, akkor UTM kitrli a pufferterletet, majd az Y jelet tteszi az tsben szereplharmadik elem el. Ezutn kicserli a Z utn kvetkez blokkotaz Y utni blokkal, majd Y- t jobbra mozdtja el a rendezettts negyedik elem el. Miutn UTM leolvasta ezt a negyedik elemet is, mely a TM olvasfejnek elmozdulsi irnyt hatrozza meg, UTM tteszi a jelet az elem mg, az tdik elem el. Attl fggen, hogy a negyedik blokkban kt vagy csak egy darab 1-est tallt-e, az UTM egy blokkal jobbra vagy egy blokkal balra tolja el Z- t. Ha Z eredetileg a szalagsz bal szln volt, s TM -nek balra kellettlpnie, akkor UTM a sz kdolst jobbra tolja, s egy res mez kdjelt rja be a Z utn. Ha pedig Z a szalagsz jobb szlnllt, s jobbra kellene elmozgatni, akkor UTM a sz 217

Rekurzvan felsorolhat nyelvek s Turing-gpek vgre rja egy res mez kdjt. Amikor teht mindezzel vgeztnk, az Y jelutn ll 1-es blokk a TM aktulis bels llapott jelzi, a Z utni blokk pedig azt a szalagjelet, amelyet TM -nek a kvetkez lpsben be kellene olvasnia. Minden kszen ll teht arra, hogy a TM kvetkez lpst szimull szakasz megkezddhessen. Az UTM mkdsnek egyes szakaszai gy TM egy-egy lpst modellezik. UTM ezeken kvl mg a kvetkezket hajtja vgre: a munka legelejn a szalag mindhrom rszben a 0-kat a sajt res-jeleire cserli, a munka vgeztvel pedig, olyankor, amikor TM lellna, UTM mg ellenrzi, hogy TM -nek vgllapota-e az az llapot, amelyben megllt, s ettl fggen kerl sajt maga is vgllapotba, ill. nem vgllapotba. Minden Turing-gp mkdse szimullhat olyan Turing-gppel, amiben a szalagbc binris, vagyis ={0, 1}. Az Univerzlis Turing-gp ltezse azt mutatja, hogy elvileg konstrulhat olyan szmtsi eszkz, amely programozhat s mindent ki tud szmtani, ami kiszmthat. A gyakorlati megvalsuls fel a kvetkez lps a Neumann elv, amit a kvetkez alfejezetben ismtlnk t. Az absztrakt szmtgp utn lssuk a valdi gpek milyen ezzel nagyon rokon elveken mkdnek.

9.2.1.1. A Neumann-elv
A hagyomnyos szmtgpek atyjnak tekinthetjk Neumann Jnost, aki sok ms tudomnyos tevkenysge mellett, a klasszikus szmtgpek mkdsnek alapelveit is megadta. Ezek az elvek, amelyeknek megfelelen plt a legtbb szmtgp, a kvetkezek: A program legyen a bels memriban (trolt program elve): A programot alkot utastsok kifejezhetk szmokkal, azaz adatknt kezelhetk. Ezek a bels memriban trolhatk, mint brmelyik ms adat. Ezltal a szmtgp nllan kpes mkdni, hiszen az adatokat s az utastsokat egyarnt a memribl veszi el. A memria a numerikus adatokkal egytt trolja a programot is, a vezrlegysg pedig vgrehajtja az utastsok sorozatt. A szmtgp hasznlja a kettes szmrendszert s legyen teljesen elektronikus: A kettes szmrendszert s a rajta rtelmezett aritmetikai ill. logikai mveleteket knny megvalstani ktllapot ramkrkkel (pl.: 1- magasabb feszltsg, 0 - alacsonyabb feszltsg). A szmtgp legyen soros (szekvencilis) mkds: A gp az egyes utastsokat egyms utn, egyenknt hajtsa vgre. A szmtgpnek legyen bels memrija: A szmtgp gyors mkdse miatt nincs lehetsg arra, hogy minden egyes lps utn a kezel beavatkozzon a szmts menetbe. A bels memriban trolhatk az adatok s az egyes szmtsok rszeredmnyei, gy a gp bizonyos mveletsorokat automatikusan el tud vgezni. A szmtgp legyen univerzlis: A szmtgp klnfle feladatainak elvgzshez nem kell specilis berendezseket kszteni. Ugyanis Turing bebizonytotta, hogy az olyan gp, amely el tud vgezni nhny alapvet mveletet, elvileg brmilyen szmts elvgzsre is alkalmas (Turinggp). Lthatjuk, hogy a Turing-gp j sszhangban van a Neumann elvvel s ezrt mltn tekinthet a szmtgpek elmleti modelljnek.

9.3. A szproblma - rekurzv s rekurzvan felsorolhat nyelvek


A 0-tpus nyelvek esetn a wL relci ltalban algoritmikusan nem eldnthet. Ez a fejezetezt a problmakrt vizsglja meg rszletesebben. (Lsd a A Turing-gpek megllsi problmja s az algoritmikusan eldnthetetlen feladatosztlyok kapcsolata fejezetet is.) 218

Rekurzvan felsorolhat nyelvek s Turing-gpek Egy L nyelvet rekurzvnak neveznk, ha a wL tartalmazsiproblma algoritmikusan eldnthet. Egy L nyelvet rekurzvan felsorolhatnak neveznk, ha van olyan eljrs, amely az sszes wL szt valamilyen sorrendben (esetleg ismtlsekkel) felsorolja. 12. Megjegyzs. Minden rekurzv nyelv nyilvn rekurzvan felsorolhat. Nem kell ugyanis mst tennnk, mint rendre megvizsglni az sszes wT* szt alkalmazva rjuk az eldntsi algoritmust, s egy w szt belevesznk a felsorolsba, ha igen vlaszt kapunk, egybknt elhagyjuk. 75. Ttel. Egy L nyelv akkor s csak akkor rekurzv, ha mind az L mind az rekurzvan felsorolhat.

Bizonyts. Ha L rekurzv, akkor a wL problma algoritmikusan eldnthet, akkorugyanez ll az nyelvre is, hiszen wL akkor s csak akkor teljesl, ha w . Eszerint ugyanazt az eldntsi algoritmust hasznlhatjuk az - re, azzal a klnbsggel, hogy amit L esetn elfogadtunk azt most nem, s fordtva. Msik irny: Tegyk fel, hogy mind az L mind az rekurzvan felsorolhat. Kombinljuk az L s az felsorolst biztost eljrsokat gy, hogy vltakozva hol az egyikkel, hol a msikkal lltunk el egy-egy szt, miltal egy olyan w0, w1, felsorolst kapunk, ahol w2iL, w2i+1 minden i=0, 1, 2 rtkre. Mivel afelsorols teljes, ezrt a w keresett sznak valahol el kell fordulnia, gycsak azt kell eldntennk, hogy pros vagy pratlan pozciban fordul-e el, gy tulajdonkppen egy dntsi algoritmust adtunk meg az L- re. 76. Ttel. Minden 1-tpus nyelv rekurzv, s minden 0-tpus nyelv rekurzvan felsorolhat. 77. Ttel. Van olyan rekurzv nyelv, amely nem 1-tpus. Bizonyts. Minden 1-tpus nyelvtant megadhatunk gy, hogy felsoroljuk a szablyait. Feltehetjk, hogy a nyelvtanban terminlisok csak A a alak szablyban fordulnak el ( AN, aT ). A nemterminlis bct a szablyok implicit mdon definiljk. Ezek utn tekintsk azt az 1-tpus nyelvtant, amelynek terminlis bcje T={0, 1}. Kdoljuk a nemterminlis jeleket a 01, 011, 0111, jelsorozatokkal, ahol az S kezdszimblumnak mindig a 01 kd feleljen meg. Kdoljuk tovbb a 0 s az 1 terminlis jeleket 00 s 001 szavakkal, a s a # (elvlaszt-) jeleket 0011, illetve 00111 szavakkal. Ezek alapjn minden nyelvtant kifejezhetjk egy {0, 1}*- beli szval. Rendezzk az sszes {0, 1}*- beli szt valamilyen mdon (ezzel a nyelvtanokat is sorbarendeztk). Legyen wi a {0, 1}* megadott rendezs rtelmben az i- edik eleme a {0, 1}*- nak s definiljuk az L nyelvet gy, hogy L={wi | wiL(Gi)} ahol Gi az i- edik nyelvtant jelenti. Az L nyelv rekurzv, mert a wL vges sok lpsben eldnthet. Ugyanis egy adott w- rl eldnthetjk, hogy hnyadik eleme a rendezett halmaznak. Legyen ez i, akkor meghatrozzuk a Gi- t, ami gy trtnik, hogy rendre ellltjuk a {0, 1}*- beli szavakat (clszerenugyanabban a rendezsi sorrendben, mint amit az elbb hasznltunk), s mindegyikrl egyenknt eldntjk, hogy ez a kdols megfelel-e egy 1-tpus nyelvtannak vagy sem. Ez szintn megtehet vges lpsben. Miutn meghatroztuk a Gi- t, eldnthetjk, hogy wL(Gi) teljesl-e, ami szintnvges szm lpsben megtehet. Most beltjuk, hogy L nem 1-tpus. Ha ugyanis az volna, akkor volna egy olyan Gj a fenti felsorolsban, amelyre L=L(Gj). Tekintsk a {0, 1}* j- edik elemt, amit wj- vel jelltnk. Ha wjL(Gj), akkor az L defincija rtelmben wjL=L(Gj) ami ellentmonds. Ha wjL(Gj), akkor wjL=L(Gj) szintn ellentmonds, teht L nem 1-tpus. 78. Ttel. A rekurzvan felsorolhat nyelvek osztlya megegyezik a 0-tpus nyelvek osztlyval. Az angol Recursively Enumerable nv alapjn jelljk e nyelvosztlyt RE-vel. Amint lttuk a Turing gpek lersa rekurzvan felsorolhat, vagyis csak megszmllhatan vgtelen sok Turing gp, s ennek megfelelen megszmllhatan vgtelen sok rekurzvan felsorolhat nyelv ltezik. 219

Rekurzvan felsorolhat nyelvek s Turing-gpek Ugyancsak megszmllhatan vgtelen sok szt tartalmaz T* brmilyen vges, nemres T esetn.Ezzel szemben egy megszmllhatan vgtelen halmaz lehetsges rszhalmazainak szma nem megszmllhat vgtelen, hanem tbb annl. Teht egy adott T bc feletti nyelvek szma tbb, mint ahnyat Turing-gppel el lehet fogadni;vagy rdekesebben hangz megfogalmazssal: tbb, mint amennyit fel lehet sorolni. Ezek alapjn az itt trgyalt nyelvosztlyokra a kvetkez hierarchia teljesl: CSRREAL, ahol CS a krnyezetfgg nyelvek, R rekurzv nyelvek, RE a rekurzvan felsorolhat nyelvek osztlya, AL pedig az sszes nyelv osztlyt jelenti. Itt emlkezznk vissza arra, hogy a jegyzet elejn trgyalt Markov-fle algoritmus (lsd Markovfle norml algoritmus [15]) ugyancsak univerzlis szmtsi modell, vagyis minden rekurzvan felsorolhat nyelv elfogadtathat ilyen algoritmusokkal, s mivel formlis modellrl van sz, pontosan ezek fogadtathatak el ily mdon.

9.3.1. Bonyolultsgi osztlyok


Teht a rekurzv fggvnyek, illetve rekurzv nyelvek osztlya megadja a kiszmthatsg hatrt, az ezen kvl es fggvnyek, illetve nyelvek esetn nem garantlt, hogy valaha is befejezdik a szmts egy adott inputra s megll a Turing-gp. Viszont a rekurzv osztlyon bell sem egyformk a problmk, vannak amelyek egyszeren megoldhatak, s vannak amelyek bonyolultak. Ebben az alfejezetben rviden ttekintjk a legfontosabb bonyolultsgi fogalmakat. Ha TM egy determinisztikus Turing-gp, vVk input (vagyis vV* s |v|=k ), a szmts idignynek a tTM(v) fggvnyt nevezzk, mely a kvetkez alak: tTM(v)=max{n, |v|)}=max{n, k}, ha TM a v inputon n lpsutn megll, egybknt pedig . Egy konkrt szmtsi folyamat idignynek meghatrozsa utn olyan idigny-fogalmat vezetnk be, amely egy egsz problmra, s nem csak annak egyes pldnyaira vontkozik. Az idignyt a bemenet hossznak fggvnyben fogjuk megadni. Azt mondjuk, hogy egy determinisztikus TM Turing-gp idignye (legfeljebb) f(n), ha TM futsi ideje egyetlen n hossz bementre sem tbb f(n)- nl. Ha egy f(n) idignyTuring-gp elfogad egy L nyelvet,akkor azt mondjuk, hogy LTIME(f(n)). TIME(f(n)) egy bonyolultsgi osztly, ami tartalmazza azokat a nyelveket, amelyek f(n) idben eldnthetek. Formlisan teht a TM Turing-gp idbonyolultsga (maximlis idbonyolultsga): tTM(n)={tTM(w), ahol |w| n}. A trbonyolultsg a szmtsok kzben a szalagokon elfordul leghosszabb sztring hossza (vagyis a nem szkz jelek szma). Az eddig itt trgyalt Turing-gpek determinisztikus mkdsek (ahogy napjaink szmtgpei is azok). A Turing-gpeknek a nemdeterminisztikus verzijt is emltettk mr. A nemdeterminisztikus verziban a d "fggvny" tulajdonkppennem egyrtelmen adja meg az j llapot, j szalagjel, fejmozgs hrmas(oka)t (vagyis a d a QV{Bal, Jobb, Helyben} halmaz rszhalmazaiba kpez).Itt a kiszmthatsgot gy definiltuk, hogy van olyan szmtsi sorozat amely az eredmnyt szolgltatja. 220

Rekurzvan felsorolhat nyelvek s Turing-gpek Szmtsi "erejt" tekintve a nemdeterminisztikus verzi sem tud tbbet a determiniztikus vltozatoknl, vagyis minden ami nemdeterminisztikusan kiszmthat kiszmthat determinisztikusan is. (A msik irny trivilis.) A nemdeterminisztikus vltozat szmtsi sebessge, hatkonysga viszont lehet jobb a determinisztikusnl. Ez azt jelenti, hogy pl. "tallgatssal" hamarabb tallhatunk megoldst. A kvetkez rszben rviden kitekintnk arra, hogy milyen problmk milyen kltsggel oldhatk meg determinisztikus, illetve nemdeterminisztikus Turing-gp segtsgvel. A tovbbiakban nhny fontos bonyolultsgi osztlyt emltnk meg. A bonyolultsgi osztlyok meghatrozshoz szksgnk lesz a szmtsi mdra, amely lehet determinisztikus vagy nemdeterminisztikus. Ezenkvl arra, hogy mely erforrst (id, tr: szalag) korltozzuk. Mint az elz rszben bevezettk, a determinisztikus mdon, f(n) idkorltozssal szmolTuring gpekkel kiszmthat nyelvek a TIME(f(n)) bonyolultsgi osztlyt alkotjk.ltalban az f(n) nemnegatv egszekhez nemnegatv egszeket rendel fggvnytl megkveteljk, hogy monoton nvekv legyen. Ha f(n)=c egy c konstansra, akkor a nyelv brmely v szavtmaximum |v| +c lpsben eldnti a TM Turing-gp. Szoksos a lineris fggvny( f(n)=cn ), illetve az n tetszleges polinmjnak hasznlata(ahol n a bemeneti sz hossza).Azon nyelvek (problmk) unijt, amelyekhez van olyan determinisztikus Turing-gp, ami ezek szavait valamilyen polinomfggvnnyel megadhat idben eldnti (kiszmtja), P bonyolultgi osztlynak nevezzk. Legyen most TM egy nemdeterminisztikus Turing-gp. Azt mondjuk, hogy TM f(n) idben eldnti/ felismeri az L nyelvet, ha brmely vL szval indtvaa kezdkonfigurcibl van olyan szmts, amely elfogadja v- t legfeljebb f(n) lps utn ( n=|v| ). Azon nyelvek unijt, amelyekhez van olyan nemdeterminisztikus Turing-gp, ami a ezek szavait valamilyen polinomfggvnnyel megadhat idben eldnti (kiszmtja), NP bonyolultgi osztlynak nevezzk. A szmtgptudomny egyik legfontosabb nem tisztzott problmja a P s NP bonyolultsgi osztlyok viszonynak eldntse, vagyis mivel P NP, ezrt a krds P?NP alakba rhat. ltalban elfogadott az a felttelezs, hogy a kt osztly nem egyezik meg, egyelre azonban nem ismert olyan feladat (nyelv) ami NP-ben van s bizonytottan nincs P-ben. Minden NP-beli nyelvre (problmra) igaz, hogy minden szavra ltezik egy "tmr bizonytk" (ami polinomilis idben ellenrizhet) arra, hogy az adott sz benne van a nyelvben. Az NP osztly rengeteg termszetes s a gyakorlatban is fontos szmtsi problmt tartalmaz. Pldul sok tervezsi problma (utak, kirtkelsek, egyenletek megoldsai, VLSI tervrajzok) ilyen. Amikor optimlis (egy adott felttelt kielgt) megoldst keresnk, akkor a keresett objektum maga lesz a bizonytk. Ezek a bizonytkok gyakran fizikai objektumok vagy azok matematikai absztrakcii, amelyek nem tl nagyok a problma mrethez kpest s a felttelek is gyakran polinomilis idben ellenrizhetek. Azokat a problmkat nevezzk NP-teljesnek, amelyek legkevsb felttelezhetek, hogy egyben P-beliek is. Egy L problmt NP-teljesnek neveznk, ha abbl, hogy L P az kvetkezik, hogy P = NP. Ez azt jelenti, hogy ha valaki determinisztikusan polinomilis idben tud megoldani egy NP-teljes problmt, akkor minden NP-beli problmt meg lehet oldani polinomilis idben determinisztikusan is.

9.3.1.1. Egy NP-teljes problma: a SAT


A SAT (angol: satisfiability, kielgthetsg szbl) problma alapvet szerepet jtszik a bonyolultsgelmletben, ugyanis ez az egyik legismertebb NP-teljes problma. A feladat maga rviden a kvetkez: adott egy propozicionlis logikai formula, dntsk el, hogy kielgthet-e (vagyis lehet-e a propozicionlis vltozknak gy igaz-hamis rtket adni, hogy a formula igaz legyen). A feladatnak tbbfle specilis megfogalmazsa is ltezik, s hasznlt mind az elmletben, mind a gyakorlatban. Az els specilis alak, amikor a formula konjunktv normlformban adott. A feladat gy is NP-teljes. A kvetkez, mg specilisabb alak, amikor a konjunktv normlforma mellett az is adott, hogy az egyes tagok hny literlt tartalmaz(hat)nak. A feladat ilyen megszortssal trtn megfogalmazst nevezik n- SAT problmnak. Az n- SAT n 3 esetn NP-teljes, mg a 2-SAT problma P-beli. A tmr 221

Rekurzvan felsorolhat nyelvek s Turing-gpek bizonytk ez esetben egy kielgt kirtkels, amely megadja mely Boole-vltoz rtke legyen igaz s melyek legyenek hamisak. Tovbbi fontos bonyolultsgi osztlyok a PSPACE: determinisztikus Turing-gppel polinomilis szalagignnyel kiszmolhat problmk osztlya; NPSPACE: nemdeterminisztikus mdon polinomilis szalagignnyel kiszmolhat problmk osztlya; EXP: determinisztikusan exponencilis idben kiszmolhat problmk osztlya. Ismert, hogy a PSPACE s az NPSPACE problmaosztly egybeesik. Itt jegyezzk meg, hogy a krnyezetfgg nyelvosztlyra a szproblma PSPACE-teljes, viszont nemdeterminisztikusan lineris trhelyen is megoldhat. Mint jeleztk a krnyezetfgg nyelveknl a Szproblma fejezetben, az viszont nem ismert, hogy determinisztikusan is megoldhat-e lineris trhelyen. Az albbi brn a fent emltett bonyolultsgi osztlyok egymshoz kpesti viszonya lthat.

9.4. Normlformk a mondatszerkezet nyelvtanokhoz


A monoton nyelvtanok defincijbl kitnik, hogy valjban csak a trlsek (rvidtsek) lehetsge az amivel a mondatszerkezet nyelvtanok tbbet tudhatnak. Ez valban gy is van, vagyis ha megengednk akr egyetlen uBv uv, ( BN, u, v(NT)* ) alak szablyt, vagy egy (N, T, S, H) nyelvtanban az S H hasznlata esetn megengedjk, hogy S szerepeljen szablyok jobb oldaln is, akkor a generl er megn, nem krnyezetfgg nyelvek is generlhatak. Ide kapcsolhat a kvetkez eredmny, melyet bizonyts nlkl kzlnk: 79. Ttel. Minden rekurzvan felsorolhat nyelv generlhat olyan szablyokkal, amelyek mindegyike krnyezetfgg ( uBv urv, BN, u, v, r(NT)*, r ), kivve egyetlen A alak szablyt. A Penttonen normlformt is kiterjeszthetjk ez alapjn mondatszerkezet nyelvtanokhoz: 24. Definci. Egy mondatszerkezet nyelvtant Penttonen normlformjnak hvunk, ha minden szablya az albbi formjak egyike: Aa, A BC, AB AC, A ( A, B, CN, aT). 222

Rekurzvan felsorolhat nyelvek s Turing-gpek 80. Ttel. Minden rekurzvan felsorolhat nyelv generlhat Penttonen normlformj mondatszerkezet nyelvtannal. Szorosan ide kapcsoldik a kvetkez ttel is, amely azt mutatja, hogy a krnyezetfgg s a mondatszerkezet nyelvek osztlya kztt nem is olyan nagy a klnbsg. 81. Ttel. Legyen LT* egy rekurzvan felsorolhat nyelv, ekkor van olyan L ' krnyezetfgg nyelv, hogy T kiegszthet egy j betvel: V=T{c} ( cT ), hogy L 'c*L s minden wL szra van olyan n 0, hogy cnwL '. Vagyis, ha egy LBA linerisan korltozott automatnak adjuk oda egy tetszleges rekurzvan felsorolhat nyelv szavait, akkor minden egyes szra a trhelyet elgg megnvelve, LBA el tudja fogadni pontosan a nyelv szavait (illetve azok meghosszabbtott, de informcit nem tartalmaz vltozatait). Termszetesen a megnvelt trhely igny automata mr nem felttlenl linerisan korltozott. A kvetkez ttel ezzel sszefggsben hatkonyan hasznlhat annak eldntsre, hogy egyes nyelvek krnyezetfggek. 82. Ttel. (Trhely ttel) Ha egy adott G mondatszerkezet nyelvtanra teljesl, hogy ltezik olyan k konstans, hogy benne brmely tetszleges wL(G) nemres szt levezetve van olyan levezets amiben a mondatforma hossza soha nem hosszabb a k|w| rtknl, akkor L(G) krnyezetfgg. Ebben a fejezetben tbb fontos tovbbi normlformt mutatunk be (bizonyts nlkl), amelyek a mondatszerkezet s egyb nyelvosztlyok kapcsolatra is rvilgtanak.

9.4.1. Rvsz-fle normlalak


A kvetkez normlalak a Kuroda-fle normlalak Rvsz-fle szrevtellel kiegsztett alakjnak ltalnostsa a mondatszerkezet nyelvtanokra. 83. Ttel. Minden rekurzvan felsorolhat nyelv generlhat olyan nyelvtannal, amelyben a szablyok alakja a kvetkez htfle alakak lehetnek: S, Aa, AB, ABC, AB AC, AB CB, ABB, ahol aT, A, B, CN, s az S mondatszimblum nem fordul el egyik szably jobboldaln sem.

9.4.2. Geffert-fle normlformk


V. Geffert bizonytotta, hogy a trl (rvidt) szablyok s a krnyezetfgg (monoton) nyelvtanoknak az tulajdonsga, hogy egy szably bal oldaln egynl tbb bet is llhat, akr egy kzs szablyalakkal is figyelembe vehet. Az itt bemutatand normlformk kzs tulajdonsga, hogy bennk a krnyezetfggetlen szablyok mellett csak olyan szablyok jelennek meg, melyek jobboldala az ressz. 84. Ttel. Minden rekurzvan felsorolhat nyelv generlhat olyan (N, T, S, H) nyelvtannal, amelyben 5 nemterminlis van (N={S,A,B,C,D}), minden szably Sv alak (vagyis krnyezetfggetlen s a startszimblum van a bal oldalon); s mg kt szably: AB , CD . 223

Rekurzvan felsorolhat nyelvek s Turing-gpek 85. Ttel. Minden rekurzvan felsorolhat nyelv generlhat olyan (N, T, S, H) nyelvtannal, amelyben 4 nemterminlis van (N={S,A,B,C}), minden szably S v alak (vagyis krnyezetfggetlen alak s a startszimblum van a bal oldalon); s mg kt szably: AB , CC . 86. Ttel. Minden rekurzvan felsorolhat nyelv generlhat olyan (N, T, S, H) nyelvtannal, amelyben 3 nemterminlis van (N={S,A,B}), minden szably S v alak (vagyis krnyezetfggetlen s a startszimblum van a bal oldalon); s mg kt szably: AA , BBB . 87. Ttel. Minden rekurzvan felsorolhat nyelv generlhat olyan (N, T, S, H) nyelvtannal, amelyben 3 nemterminlis van (N={S,A,B}), minden szably S v alak (vagyis krnyezetfggetlen s a startszimblum van a bal oldalon) egy kivtelvel: ABBBA . 88. Ttel. Minden rekurzvan felsorolhat nyelv generlhat olyan (N, T, S, H) nyelvtannal, amelyben 4 nemterminlis van (N={S,A,B,C}), minden szably S v alak (vagyis krnyezetfggetlen s a startszimblum van a bal oldalon) egy kivtelvel: ABC .

9.5. Zrtsgi tulajdonsgok


Ebben a fejezetben a rekurzvan felsorolhat nyelvek zrtsgi tulajdonsgait vizsgljuk meg. 89. Ttel. A rekurzvan felsorolhat nyelvek osztlya zrt a regulris mveletekre nzve. Bizonyts. A bizonyts sorn ttelezzk fel, hogy L1=L(G1), L2=L(G2), ahol G1=(N1, T, S1, H1) s G2=(N2, T, S2, H2), N1N2= ; valamint terminlis csak Aa alak szablyban fordul el (AN1N2, aT). A bizonytst az egyes mveletekre kln-kln vgezzk el. Uni. S legyen egy olyan nemterminlis, amelyeddig nem szerepelt sem N1- ben, sem N2- ben. A G=(N1N2{S}, T, S, H1H2{S S1, S S2}) generatv nyelvtan ekkor az L1L2 nyelvet generlja.A levezets sorn els lpsknt alkalmazhat S S1, illetve S S2 szably vlasztsval eldntjk, hogy melyik nyelvbl szeretnnk generlni; ezutn pedig, mivel N1 s N2 diszjunkt halmazok, csak a megfelel H1, illetve H2- beli szablyok alkalmazhatak a levezets sorn. Konkatenci. Legyen ismt SN1N2. Ekkor a G=(N1N2{S}, T, S, H1H2{S S1S2}) nyelvtan az L1L2 nyelvet generlja, hiszenaz elslpsben generlt S1S2 mondatformban S1- bl egy L1- beli sz, S2- bl pedig egy L2- beli sz generlhat egymstl fggetlenl, hiszen N1N2=, terminlisok pedig nem fordulnak el szablyok bal oldaln. Kleene-csillag (konkatenci lezrsa). A kvetkezkben egy tetszleges rekurzvan felsorolhat L nyelvhez elksztjk azt a G* nyelvtant, amely az L* nyelvet generlja. Legyenek adottak G1=(N1, T, S1, H1) s G2=(N2, T, S2, H2) Rvsz normlformj nyelvtanok, amelyekre N1N2= s L(G1)=L(G2)=L{}. (Ha L, akkor G1, illetve G2 L-et generlja, s nem szerepel benne S1 (illetve S2 ) szably; ha pedig L, akkor ez csak az S1 (illetve S2 ) szablyokkal lehetsges, ekkor egyszeren elhagyjuk ezeket a szablyokat, gy generlva az L resszmentes rszt.) Legyen SN1N2 j (modat)szimblum. Tekintsk most a G*=(N1N2{S, S '}, T, S, H) nyelvtant, ahol H=H1H2{S , S S1, S S1S2, S S1S2S}. Az gy megkonstrult nyelvtan ppen az L* nyelvet generlja, amit teljes indukcival bizonythatunk. A fejezet htralev rszben tovbbi halmazmveleteket vizsglunk. 90. Ttel. A rekurzvan felsorolhat nyelvek osztlya zrt a metszetkpzsre. Bizonyts. Vegyk azokat a Turing-gpeket, amelyek elfogadjk az L1 s L2 nyelveket olymdon, hogy a szalagnak csak az input ltal elfoglalt, illetve ettl jobbra es rszt hasznljk. Ksztsk 224

Rekurzvan felsorolhat nyelvek s Turing-gpek most el azt a Turing gpet, amely elszr egy msolatot kszt az inputrl (vagyis a w inputbl a w#w j inputot kszti el), majd a jobboldali msolaton vgrehajtja (szimullja) az L1- et elfogad gp szmtst, elfogads esetn letrli (vagyis szkzkkel fellrja) a szalagon hagyott rszszmtsokat csak a baloldali w- t meghagyva, amelyre az L2- t elfogad gp mkdst hajtja vgre. Vilgos, hogy pont akkor fogja az gy megkonstrult Turing-gp elfogadni az inputot, ha mindkt nyelvhez tartoz Turing-gp kln-kln is elfogadn. Hasonlan, megfelel Turing-gpek segtsgvel, bizonythatak a rekurzv nyelvekre a zrtsgi tulajdonsgok: 91. Ttel. A rekurzv nyelvek osztlya zrt a regulris (uni, konkatenci, Kleene-csillag) s a halmaz- (uni, metszet, komplementer) mveletekre. Korbban mr volt sz a rekurzv s a rekurzvan felsorolhat osztlyok klnbzsgrl (lsd Szproblma - rekurzv s rekurzvan felsorolhat nyelvek). 6. Kvetkezmny. A rekurzvan felsorolhat nyelvek halmaza nem zrt a komplementerkpzsre.

9.6. Irodalmi megjegyzsek


A Turing-gp koncepcija [Turing 1936]-ban jelent meg. Ugyanebben az idben jelentek meg ms hasonl kifejezerej szmtsi modellek: A. Church, S.C. Kleene, illetve E. Post munkjaknt. A szmtselmlettel kapcsolatban ajnljuk magyar nyelven a [Demetrovics et al 1989] tanknyvet, mg angolul a [Minsky 1967], [Hopcroft, Ullman 1979] s [Sipser 2005] knyveket. A bonyolultsgi osztlyokkal kapcsolatosan a [Papadimitriu 1995], illetve a [Rnyai et al 1998] knyveket ajnljuk. Az NP-teljes problmkrl rszletesen szl [Garey, Johnson 1979]. A Rvsz-fle normlalak megtallhat [Rvsz 1989]-ben, amg a Geffert-fle normlformk [Geffert 1988]-ban jelentek meg.

225

10. fejezet - Nyelvtanrendszerek (Grammatikarendszerek)


A klasszikus formlis nyelvek s automatk elmletben a nyelvek s az automatk klasszikus szmtsi eszkzket modelleztek. Ezek kzpontostottak voltak a szmtsokat egy kzponti gens (egysg) vgezte. gy a klasszikus formlis nyelvek elmlete szerint egy nyelvet egy grammatika kszt, vagy egy automata ismer fel. A modern szmtstudomnyban az elosztott szmtsok fontos szerepet jtszanak. Az elosztott rendszerek megfigyelse szmtgpes hlzatokban, elosztott adatbzisokban, stb., olyan fogalmakhoz vezetett, mint prhuzamossg, konkurencia s kommunikci. A nyelvtanrendszerek elmletben vizsglt formlis rendszerek az elosztott szmtsok szintaktikai modelljei, melyekben ezek a fogalmak rtelmezhetek s tanulmnyozhatak. A nyelvtanrendszer nyelvtanok egy csoportja, amelyben a nyelvtanok meghatrozott protokoll szerint kzsen dolgoznak egyetlen nyelv ltrehozsn. Tbb indok szl ilyen generatv mechanizmus ltrehozsa mellett, tbbek kzt, az eloszts modellezse, a generl er nvelse, a (lersi) bonyolultsg cskkentse. A kritikus rsz itt az egyttmkdsi protokoll. A nyelvtanrendszerek elmlett tekinthetjk egyfajta formlis egyttmkdsi protokollok elmletnek. A kzponti problma a meghatrozott protokollokat hasznl rendszerek mkdsnek lersa, s a klnbz protokollok a megfigyelt rendszerek klnbz tulajdonsgaira gyakorolt hatsnak elemzse. A nyelvtanrendszerek ktfle alapvet osztlyba sorolhatak: szekvencilisak vagy prhuzamos mkdsek, ezek alapjn megklnbztetjk a kooperatv elosztott (angolul: cooperating distributed, rviden CD) s a prhuzamos kommunikl (angolul: parallel communicating, rviden PC) rendszereket. Ebben a fejezetben rviden ismertetjk ezen rendszereket.

10.1. Nyelvtanok kooperatv elosztott rendszerei CD nyelvtanrendszerek


(Cooperating Distributed Grammar Systems CD grammar systems) A nyelvtanok kooperatv elosztott rendszere szekvencilis mkds: egymst kvet lpseken alapul. A rendszert alkot sszes nyelvtan egy adott, kzs mondatformn dolgozik. Minden egyes idpillanatban csak egyetlen nyelvtan aktv, ami trja az aktulis mondatformt. Azokat a krdseket, hogy melyik komponens lehet aktv egy adott pillanatban, s mikor vlik inaktvv egy aktv (mveleteket vgz) nyelvtan az aktulis mondatformt tadva a tbbi, a rendszert alkot nyelvtan valamelyiknek az egyttmkdsi protokoll hatrozza meg. Pldk megllsi felttelekre (inaktvv vlsra). Egy lps egy levezetsi szably alkalmazst jelenti. Az aktv komponensnek pontosan k lpst kell vgrehajtania. Az aktv komponensnek legalbb k lpst kell vgrehajtania. Az aktv komponensnek legfeljebb k lpst kell vgrehajtania. Az aktv komponensnek annyi lpst kell vgrehajtania, amennyit tud. Az aktv komponens tetszleges szm lpst hajthat vgre. A rendszer ltal generlt nyelv az gy generlt terminlis szavak nyelve lesz. A CD nyelvtanrendszerek felptse egy iskolai tbla hasznlathoz hasonlthat, ha azt problmamegoldshoz hasznljk. A kzs mondatforma az iskolai tbla tartalma (a kzs adatszerkezet, amely a megoldand problma aktulis llapott tartalmazza). A nyelvtanok a tudsforrsok (gensek, feldolgoz egysgek, eljrsok, klnbz kpessg dikok, stb.) amelyek hozzjrulnak a problma megoldshoz azzal, hogy megvltoztatjk a tbla tartalmt a kpessgeiknek megfelelen. Az 226

Nyelvtanrendszerek (Grammatikarendszerek) egyttmkdsi protokollban van kdolva a tudsforrsok irnytsa (pldul a sorrend, amelyben a tudsforrsok hozzjrulhatnak a megoldshoz). 25. Definci. A (krnyezetfggetlen) nyelvtanok kooperatv elosztott rendszere egy n rend (n 1) rendszer, felptse: CD=(N, T, S, H1, , Hn) Ahol N s T diszjunkt bck, V=NT, SN, s H1, , Hn pedig krnyezetfggetlen levezetsi szablyok vges halmazai. Az N elemei a nemterminlisok, a T elemei a terminlisok; S a mondatszimblum, H1, , Hn pedig a rendszer komponensei. Az iskolai tbla pldjnl maradva a komponensek a tblnl a problmt megold genseknek felelnek meg. A szablyok megfeleltethetek az gensek ltal vgrehajtott mveleteknek, ezek eredmnye lehet a tbla tartalmnak, vagyis a mondatformnak a megvltoztatsa. Az S axima a tbln tallhat problma kezdeti llapotnak formlis megfelelje. A T bc tartalmazza azokat a betket, amelyek megfelelnek az olyan tuds-rszleteknek, amelyek elfogadhatak megoldsknt, illetve a megolds rszeiknt. A nemterminlisok "krdsekknt" rtelmezhetek, amelyekre vlaszt keresnk. Egy komponens ltal feltett krdsek, s egy msik ltal trtak felfoghatak az egyik komponens ltal feltett krdsnek, amelyre egy msik komponens vlaszol. gy a komponensek kommuniklhatnak a megolds pillanatnyi llapotba illesztett zenetekkel, mintegy a mondatformba (a tbla tartalmba) kdolva. Ha konkrtan olyan grammatikt akarunk definilni, ami egy CD nyelvtanrendszer rsze, akkor felrhatjuk a CD- t ilyen formban: CD=(N, T, S, G1, , Gn), ahol Gi=(N, T, S, Hi), 1 i n. 26. Definci. Legyen CD=(N, T, S, H1, , Hn) egy CD nyelvtanrendszer. Ekkor 1. Minden egyes i{1, , n}- re az i- edik komponens * mdbeli levezetst i*- gal jelljk, s a kvetkezkppen definiljuk: pi*q akkor s csakis akkor, ha pGi* q. 2. Minden egyes i{1, , n}- re az i- edik komponens terminl levezetst it- vel jelljk, s

a kvetkezkppen definiljuk: pitq akkor s csakis akkor, ha pi*q s nincs olyan r(NT)* amire qir (rq). a kvetkezkppen definiljuk: pi=kq akkor s csakis akkor, ha van olyan r1, , rk+1(NT)* amely p=r1, q=rk+1, s minden egyes j- re ( 1 j k ), rjirj+1. jelljk, s a kvetkezkppen definiljuk: pi kq akkor s csakis akkor, ha pi=jq valamely j k rtkre. jelljk, s a kvetkezkppen definiljuk: pi kq akkor s csakis akkor, ha pi=jq valamely j k rtkre.

3. Minden egyes i{1, , n}- re az i- edik komponens k lpses levezetst pi=kq- val jelljk, s

4. Minden egyes i{1, , n}- re az i- edik komponens legfeljebb k lpses levezetst pi kq- val

5. Minden egyes i{1, , n}- re az i- edik komponens legalbb k lpses levezetst pi kq- val

A *- mdbeli levezets, pi*q, olyan mkdsi formt jell, amelyben az gensek addig dolgoznak a tblnl, ameddig akarnak. A t- mdbeli levezets annak a stratginak felel meg, amelyben egy gensnek addig kell hozzjrulnia a megoldsi folyamathoz a tblnl, ameddig csak tud (maximlisan kihasznlva a hatskrt). Akkor beszlnk =k levezetsi mdrl, ha k egymst kvet kzvetlen levezetsi lpsben hasznljuk fel az i- edik komponens szablyait, ez k mveletet jelent egy gens szmra a tblnl. A k levezetsi md idkorltnak felel meg, mivel egy gens maximum k- lpst hajthat vgre. A k levezetsi mdban legalbb k lpst kell vgrehajtania az gensnek. A levezetsi mdok a fentiek alapjn feltteleznek bizonyos minimlis kompetencit az gensek rszrl. 227

Nyelvtanrendszerek (Grammatikarendszerek) Legyen D={*, t}{ k, =k, k | k pozitv egsz}. 27. Definci. Egy CD=(N, T, S, H1, , Hn) nyelvtanrendszer ltal generlt nyelv valamely fD levezetsi mdban: Lf(CD)={wT* | Si1fp1i2fp2imfpm=w, m 1, 1 ij n, 1 j m}.

Az elz defincival szmos nyelvet trstottunk egy CD-rendszerhez, felhasznlva a klnbz Dbeli megllsi feltteleket. A Hi egy komponense elkezdhet dolgozni (futsa engedlyezett lesz) egy p mondatformn, amikor p tartalmazza egy Hi- beli szably baloldalt. Az, hogy melyik engedlyezett komponens kapja meg az ppen aktulis mondatformt, egy nemdeterminisztikus vlaszts alapjn dl el. Elkpzelhetnk klnbz kezdfeltteleket is, pldul, ha egy komponens csak akkor lesz engedlyezett egy mondatformn val munkra, ha bizonyos felttelek teljeslnek, esetleg egy kls vezrl egysg (pldul egy grf, vagy verem meghatrozva a komponensek engedlyezsi sorrendjt) irnyt.

10.1. plda - CD nyelvtanrendszer


Legyen CD=({S, A, B, C, D}, {a, b, c}, S, {SS, S AC}, {A aBb, C cD}, {B aAb, D cC}, {A ab, B ab, C c, D c}). Knnyen belthat, hogy ez a nyelvtanrendszer =2, 2 s tmdban az {anbncn|n>0} nyelvet, mg k (brmely k 1 esetn), =1 s * mdban a {anbncm|n, m>0} nyelvet generlja; ha pedig k>2 akkor k mdban az res nyelv az eredmny.

10.2. plda - CD nyelvtanrendszer


Legyen CD=({S, A}, {a}, S, {S AA}, {A SS}, {A a, S a}). Knnyen belthat, hogy ez a nyelvtanrendszer t- mdban a {a2 |n 0} nyelvet generlja.
n n

Ahogy az elz pldkban lthattuk a krnyezetfggetlen nyelvtanok generl ereje megn, ha ket

CD-rendszerben hasznljuk: sem a {anbncn|n>0}, sem a {a2 |n 0} nyelv nem krnyezetfggetlen, st a msodik nyelv nem is konstansnvekmny (nem szemilineris).

10.3. plda - CD nyelvtanrendszerek - Gyakorl feladat


Adjunk meg olyan CD-rendszert, amely valamilyen mdban a {ww|w{a, b}*} nyelvet tudja generlni.

10.2. Nyelvtanok prhuzamos kommunikl rendszerei PC nyelvtanrendszerek


(Parallel Communicating Grammar Systems PC grammar systems) Ebben az alfejezetben generatv nyelvtanok PC rendszereibe nyjtunk rvid betekintst. 28. Definci. Egy PC nyelvtanrendszer egy n rend (n 1) rendszer PC=(N, K, T, (S1, H1), , (Sn, Hn)), ahol N s T a nemterminlis s a terminlis bck, K={Q1, , Qn} krdszimblumok, az iedik komponenshez Qi, ( N, T s K pronknt diszjunkt halmazok), a Hi halmazok levezetsi szablyok vges halmazai (NTK) bc felett gy, hogy K-beli elem nem llhat szably bal oldaln. Valamint a komponensek mondatszimblumai SiN (minden 1 i n esetben). 29. Definci. Adott egy PC nyelvtanrendszer PC=(N, K, T, (S1, H1), , (Sn, Hn)). A (p1, , pn) s (q1, , qn) kt elem n-esre, ahol pi, qi(NTK)* minden 1 i n- re s p1T*- ra, a kzvetlen levezethetsg fennll, ezt (p1, , pn)(q1, , qn) alakba rjuk, ha a kvetkez kt eset egyike fennll: 1. Minden i rtkre (1 i n) pi(NT)*, tovbb piqi a Hi egy levezetsi szablya segtsgvel, vagy pi=qi ha piT*. 228

Nyelvtanrendszerek (Grammatikarendszerek) 2. Amennyiben van olyan i, amelyre pi tartalmaz K- beli elemet, akkor minden ilyen i- re jrjunk el a kvetkezkppen: legyen pi=ri, 1Qi, 1ri, 2Qi, 2ri, kQi, kri, k+1 (valamilyen k 1 mellett), ahol ri, * * j(NT) minden j- re ( 1 j k+1 ). Ha pi, j(NT) minden j rtkre ( 1 j k+1 ), akkor legyen qi=ri, 1pi, 1ri, 2pi, 2ri, kpi, kri, k+1, s legyen qi, j=Sj minden j rtkre ( 1 j k+1 ). Minden egyb esetben legyen qi=pi. A ( p1, , pn ) elem n- est a PC rendszer konfigurcijnak hvjuk. Teht a ( p1, , pn ) konfigurcibl kzvetlenl levezethet a ( q1, , qn ) a kvetkez kt esetben: Az els eset, amikor egyik aktulis mondatforma sem tartalmaz K- beli szimblumot, a levezets komponensenknt zajlik, kivve azokat a pi mondatformkat, amik csak terminlisokat tartalmaznak, ugyanis azok vltozatlanul maradnak. A msodik eset, amikor krdszimblum fordul el valamely mondatformban. Ekkor a kvetkez kommunikcis lps zajlik le: a Qi minden elfordulsnak helyre pi kerl (feltve hogy pi nem tartalmaz krdszimblumot). Pontosabban egy krdszimblumot tartalmaz mondatforma csak akkor mdosul, ha benne minden krdszimblum olyan mondatformra utal, amely nem tartalmaz krdszimblumot. Egy kommunikcis lpsben pj- vel helyettestjk a Qj szimblumot (a Qj krdst megvlaszoltuk), s a j- edik komponens ellrl kezdi a szmtst az Sj aximjbl (vagyis a kezdszimblumbl). A kommunikcis lpsben nem zajlik komponensenknti levezets, levezetsi szablyokat nem alkalmazhatunk, ha valamely mondatforma tartalmaz krdszimblumot. Ha egy krdszimblumot nem tudunk megvlaszolni egy adott lpsben, elfordulhat, hogy a kvetkez lpsben meg tudjuk vlaszolni. Fontos, hogy a rendszerben nem lehet olyan szably, aminek a baloldaln krdszimblum fordul el, gy a krdsek csak kommunikcis lpssel vlaszolhatak meg, a levezets csak gy folytatdhat. Ugyancsak fontos, hogy nincs definilva a kzvetlen levezets arra az estre, ha p1T*. A kzvetlen levezets tranzitv s reflexv lezrtjt *- al jelljk s, szoksos mdon, levezetsnek nevezzk. Egy PC rendszer mkdse sorn a kvetkez holtponti szitucik jhetnek ltre: 1. Nincs krdszimblum, de valamely piT* mondatformra nincs alkalmazhat levezetsi szably. 2. Krbe-krdezs jn ltre, vagyis pi, 1- ben szerepel Qi, 2, pi, 2- ben viszont Qi, 3, s gy tovbb, amg valamely pi, k a Qi, 1- et tartalmazza. Ilyenkor sem kommunikcis lps, sem komponensenknti levezets nem alkalmazhat. 30. Definci. Adott egy PC nyelvtanrendszer PC=(N, K, T, (S1, H1), , (Sn, Hn)). Ekkor az ltala generlt nyelv L(PC)={wT* | (S1, S2, , Sn)*(w, p2, , pn) valamely pi(NTK)* mondatformkra ( 2 i n ) }. Teht kiindulunk a mondatszimblumokbl s komponensenknti levezetsi, illetve kommunikcis lpsekkel haladunk, amg az els komponens nem terminl (vagy holtpontra nem jut a rendszer). Az els komponens teht megklnbztetett szereppel br, mesternek nevezzk. 31. Definci. Ha egy PC=(N, K, T, (S1, H1), , (Sn, Hn)) PC nyelvtanrendszerben csak az els (mester) komponens vezethet be krdszimblumot, akkor kzpontostott PC rendszerrl beszlnk, egybknt a PC rendszer nem kzpontostott. Kzpontostott rendszer esetn az ltalunk fentebb ismertetett msodik tpus holtpont nem llhat el. Egy PC rendszert akkor neveznk linerisnak, krnyezetfggetlennek, stb., ha minden komponense lineris, krnyezetfggetlen, stb. Visszatrve az iskolai tblhoz, a PC rendszert a kvetkez tpus problmamegoldsnak tekinthetjk: adott a csoportvezet (a tanr), aki a tblnl dolgozik, s a tbbiek (csapattagok), akik rszszmtsokat vgeznek (pl. a sajt fzetkben). A CD-rendszerek "egyenl" tagjaival ellenttben, itt hierarchikus a felpts, ami centralizlt rendszer esetn mg szembetnbb: csak a tanrnak van 229

Nyelvtanrendszerek (Grammatikarendszerek) joga krdezni, ekkor a rszszmtsok eredmnyeit behelyettesti a sajt maga ltal ksztett (kzponti) szmtsba.

10.4. plda - PC nyelvtanrendszer


Legyen PC=({S1, S2}, {Q1, Q2}, {a, b}, (S1, {S1 S1, S1 Q2Q2}), (S2, {S2 aS2, S2 bS2, S2 })). Knnyen belthat, hogy L(PC)={ww | w{a, b}*}. Lthatjuk, hogy egy PC rendszernek a generl ereje meghaladhatja a komponensek generl erejt: az elz pldban krnyezetfggetlen szablyokkal generltunk nem krnyezetfggetlen nyelvet.

10.5. plda - PC nyelvtanrendszer gyakorl feladat


Ksztsnk olyan krnyezetfggetlen PC rendszert, amely az {anbmanbm|n, m 1} nem krnyezetfggetlen nyelvet generlja. A CD s PC rendszereket nem csak generatv nyelvtanokra, de egyb formlis szmtsi modellekre, mint pl. automatkra, is definilhatjuk (az automataelmletnl ismertetett tltszbets automatk (lsd tltszbets felismer automata) pl., mint nagyon specilis jraindul automatk CD-rendszere volt eredetileg definilva, ksbb kszlt el az tltszbets tfogalmazs). Itt jegyezzk meg ismt, hogy vannak olyan nyelvtan-, illetve automatarendszerek, ahol egy aktv komponens utn valamilyen tovbbi adatszerkezet, pl. verem, sor segt a kvetkez aktv komponens kivlasztsban (akr determinisztikus mdon).

10.3. Irodalmi megjegyzsek


A nyelvtanrendszerek alap monogrfija a [Csuhaj-Varj et al 1994], de ms, a formlis nyelvek elmlett sszefoglal szerkesztett mvekben is tallhat olyan fejezet, amely e tmakr j lerst adja, pl. [Rozenberg, Salomaa 1997], [Martn-Vide et al 2004]. A CD rendszerekkel kapcsolatos els eredmnyek [Csuhaj-Varj, Dassow 1990]-ben tallhatk. A PC rendszerekkel kapcsolatban rgi, illetve jabb eredmnyekrt lsd pl. [Vaszil 1997], [Csuhaj-Varj, Vaszil 2001], [Csuhaj-Varj, Salomaa 2001] cikkeket. Eredetileg jraindul automatk CD rendszereiknt lettek definilva az tltszbets automatk is [Nagy, Otto 2010a, 2010b, 2010c, 2011a].

230

11. fejezet - Irodalomjegyzk


[Afonin, Golomazov 2009] Sergey Afonin, Denis Golomazov: Minimal Union-Free Decompositions of Regular Languages. LNCS 5457, LATA 2009, 83-92. [Aho 1968] A. V. Aho: Indexed Grammars - An Extension of Context-Free Grammars, Journ. of ACM, 15 (1968), 647-671. [Amar, Putzolu 1964] V. Amar, G.R. Putzolu: On a Family of Linear Grammars. Information and Control 7(3) (1964), 283-291. [Amar, Putzolu 1965] V. Amar, G.R. Putzolu: Generalizations of Regular Events. Information and Control 8(1) (1965), 56-63. [Babcsnyi 2007] Babcsnyi Istvn: Automatk, nyelvek, kdok, BME, Matematika Intzet, Algebra Tanszk, 2007 (elektronikus jegyzet: http://www.math.bme.hu/~babcs/aut.pdf). [Bach 2002] Bach Ivn: Formlis nyelvek, Typotex kiad, 2002 (elektronikusan: http:// www.typotex.hu/download/formalisnyelvek.pdf). [Backus 1959] J.W. Backus: The syntax and semantics of the proposed international algebraic language of the Zurich ACM-GAMM coference, Proc. Intl. Conf. on Information Processing (1959), UNESCO, 125-132. [Bar-Hillel et al 1961] Y. Bar-Hillel, M. Perles, E. Shamir: On formal properties of simple phrase structure grammars, Z. Phonetik. Sprachwiss. Komm., 14 (1961) 143-172. [Bel-Enguix et al 2008] G. Bel-Enguix, M.D. Jimnez-Lpez, C. Martn-Vide (eds.): Recent Developments in Formal Languages and Applications. Springer, Berlin, 2008. [Buntrock, Otto 1995] G. Buntrock, F. Otto: Growing context-sensitive languages and Church-Rosser languages, 12th STACS, Lecture Notes in Computer Science 900 (1995), 313-324. [Chomsky 1956] N. Chomsky: Three Models for the Description of Language. IRE Transactions on Information Theory IT-2, no. 3 (September 1956): 113-24. (Reprinted in Readings in Mathematical Psychology 2, edited by R. Luce, R. Bush, E. Galanter, 105-24. New York: Wiley and Sons, 1965.) [Chomsky 1959] N. Chomsky: On Certain Formal Properties of Grammars. Information and Control 2 (June 1959): 137-67. (Reprinted in Readings in Mathematical Psychology 2, edited by Luce, Bush, Galanter, 125-55. New York, Wiley and Sons, 1965.) [Cremers 1973] Armin B. Cremers: Normal Forms for Context-Sensitive Grammars, Acta Informatica 3 (1973) 59-73. [Csuhaj-Varj et al 1994] E. Csuhaj-Varj, J. Dassow, J. Kelemen, Gh. Paun: Grammar Systems: A grammatical approach to distribution and cooperation. Gordon and Breach Science Publishers, Topics in Computer Mathematics 5, Yverdon, 1994. [Csuhaj-Varj, Dassow 1990] Erzsbet Csuhaj-Varj, Jrgen Dassow: On Cooperating/Distributed Grammar Systems. Elektronische Informationsverarbeitung und Kybernetik 26 (1/2) (1990) 49-63. [Csuhaj-Varj, Salomaa 2001] Erzsbet Csuhaj-Varj, Arto Salomaa: Networks of Language Processors: Parallel Communicating Systems. Current Trends in Theoretical Computer Science, Entering the 21th Century, World Scientific (2001) 791-810. [Csuhaj-Varj, Vaszil 2001] E. Csuhaj-Varj, Gy. Vaszil: On context-free parallel communicating grammar systems: synchronization, communication, and normal forms. Theoretical Computer Science 255 (2001), 511-538. [Dassow, Paun 1989] J. Dassow, Gh. Paun: Regulated Rewriting in Formal Language Theory. EATCS Monographs in Theoretical Computer Science 18, Springer, 1989. 231

Irodalomjegyzk [Dassow et al 1994] J. Dassow, M. Ito, Gh. Paun: On the Subword Density of Languages, SEA Bull. Math., 18 (1994), 49-61. [Demetrovics et al 1989] Demetrovics Jnos, Jordan Denev, Radiszlav Pavlov: A szmtstudomny matematikai alapjai, Tanknyvkiad, Budapest, 1989. [Dmsi 1995] Dmsi Pl: Formlis Nyelvek s Automatk, egyetemi jegyzet, Debrecen, 1995. [Dmsi et al, 1996] P. Dmsi, M. Ito, M. Katsura, C. Nehaniv: New pumping property of contextfree languages, Combinatorics, Complexity and Logic, Proc. International Conference on Discrete Mathemtics and Theoretical Computer Science - DMTCS'96, Springer, Singapore, 187-193. [Dmsi et al 2004] Dmsi P., Fazekas A., Horvth G., Mecsei Z.: Formlis nyelvek s automatk, egyetemi jegyzet, MobiDik, 2004. [Dmsi, Nehaniv 2005] P. Dmsi, C. Nehaniv: Algebraic theory of automata networks: an introduction, SIAM Monographs on Discrete Mathematics and Applications 11, 2005. [Earley 1970] J. Earley: An efficient context-free parsing algorithm, Communications of the Association for Computing Machinery (ACM), 13 (1970) 94-102. [sik et al 2006] Zoltn sik, Carlos Martn-Vide, Victor Mitrana (eds.): Recent Advances in Formal Languages and Applications, Springer 2006. [Flp 2005] Flp Zoltn: Formlis nyelvek s szintaktikus elemzsk, Polygon jegyzettr (3. kiads, 2005) [Garey, Johnson 1979] M.R. Garey, D.S. Johnson: Computers and Intractability: A Guide to the Theory of NP-Completeness, Freeman, 1979. [Geffert 1988] Viliam Geffert: Context-Free-Like Forms for the Phrase-Structure Grammars. LNCS 324, MFCS 1988, 309-317. [Greibach 1965] Sheila A. Greibach: A New Normal-Form Theorem for Context-Free Phrase Structure Grammars. J. ACM 12(1) (1965) 42-52. [Harrison 1978] Michael A. Harrison: Introduction to Formal Language Theory, Addison-Wesley, 1978. [Hayashi 1973] T. Hayashi: On Derivation Trees of Indexed Grammars - An Extension of the uvwxy - Theorem, Publ. RIMS, Kyoto Univ., 9 (1973), 61-92. [Hopcroft, Ullman 1979] J. E. Hopcroft, J. D. Ullmann: Introduction to Automata Theory, Languages, and Computation, Addison-Wesley, Reading, Massachusetts, Menlo Park, California, London, Amsterdam, Don Mils,Ontario, Sidney, 1979. [Horvth et al 2004] Horvth G., Mecsei Z., Nagy B.: Formlis nyelvek s automatk gyakorlati sszefoglal, egyetemi jegyzet, Mobidik, Debrecen, 2004. [Horvth, Nagy 2010] Horvth G., Nagy B.: Pumping lemmas for linear and nonlinear context-free languages, Acta Univ. Sapientiae, Informatica, 2/2 (2010), 194-209. [Huffman 1954] D.A. Huffman: The synthesis of sequential switching circuits, J. Franklin Inst. 257 (1954), 161-190 s 275-303. [Kleene 1956] S.C. Kleene: Representation of events in nerve nets and finite automata, in: C.E. Shannon, J. McCarthy: Automata Studies, Princeton Univ. Press, (1956), 3-42. [Kuroda 1964] S.-Y. Kuroda: Classes of languages and linear-bounded automata, Information and Control 7 (1964), 207-223. 232

Irodalomjegyzk [Leupold, Nagy 2010] P. Leupold, B. Nagy: 5' 3' Watson-Crick automata with several runs, Fundamenta Informaticae 104 (2010) 71-91. [Lindenmayer 1968] A. Lindenmayer: Mathematical models for cellular interaction in development I. Filaments with one-sided inputs. Journal of Theoretical Biology 18 (1968) 280-289. [Linz 2006] P. Linz: An introduction to formal languages and automata, Fourth edition, Jones and Bartlett Publishers 2006. [Mkinen 1985] E. Mkinen: On permutative grammars generating context-free languages, BIT 25 (1985), 604-610. [Martn-Vide et al 2004] C. Martn-Vide, V. Mitrana, Gh. Paun, (eds.): Formal Languages and Applications. Springer, Berlin, 2004. [Mealy 1955] G.H. Mealy: A method for synthesizing sequential circuits, Bell System Technical Journal 34 (1955), 1045-1079. [Minsky 1967] M. Minsky: Computation: Finite and Infinite Machines, Prentice-Hall 1967. [Moore 1956] E.F. Moore: Gedanken experiments on sequential machines, in: C.E. Shannon, J. McCarthy: Automata Studies, Princeton Univ. Press, (1956), 129-153. [Nagy 2004] Nagy B.: A Normal Form for Regular Expressions, DLT'04, Eighth International Conference on Developments in Language Theory, Auckland, New Zealand, (CDMTCS-252) 10 pages (2004). [Nagy 2005] Nagy B.: j elv szmtgpek (Bevezets az j szmtsi modellekbe s a nemklasszikus "szmtgpek" tudomnyba), egyetemi jegyzet, Mobidik, Debrecen, 2005. [Nagy 2006a] Nagy B.: Union-free languages and 1-cycle-free-path-automata, Publicationes Mathematicae Debrecen 68 (2006), 183-197. [Nagy 2006b] Nagy B.: Left-most derivation and shadow-pushdown automata for context-sensitive languages (2006), Proceedings of the 10th WSEAS International Conference on Computers, Athens, Greece, 962-967. [Nagy 2006c] Nagy B.: Shadow-Pushdown Automata, WSEAS Transactions on Computers 5/11 (2006), 2565-2570. [Nagy 2008]: Nagy B.: On 5'3' sensing Watson-Crick finite automata, DNA 13, Revised Selected Papers, Lecture Notes in Computer Science - LNCS 4848 (2008), 256-262. [Nagy 2009a] Nagy, B.: Languages generated by context-free grammars extended by type ABBA rules, Journal of Automata, Languages and Combinatorics 14 (2009), 175-186. [Nagy 2009b] Nagy, B.: Permutation languages in formal linguistics, IWANN 2009, Lecture Notes in Computer Science 5517 (2009), 504-511. [Nagy 2010a] Nagy, B.: On a hierarchy of permutation languages, in: (editors: M. Ito, Y. Kobayashi, K. Shoji) Automata, Formal Languages and Algebraic Systems, World Scientific, Singapore (2010), 163-178. [Nagy 2010b] Nagy, B.: Derivation trees for context-sensitive grammars, in: (editors: M. Ito, Y. Kobayashi, K. Shoji) Automata, Formal Languages and Algebraic Systems, World Scientific, Singapore (2010), 179-199. [Nagy 2010c] Nagy B.: An automata-theoretic characterization of the Chomsky-hierarchy, TAMC 2010, Lecture Notes in Computer Science - LNCS 6108 (2010), 361-372. [Nagy 2010d] Nagy B.: On Union-complexity of Regular Languages, CINTI 2010, 11th IEEE International Symposium on Computational Intelligence and Informatics, 177-182. 233

Irodalomjegyzk [Nagy 2010e] Nagy, B.: Pumping lemmas for special linear languages, ICAI 2010, Eger, Hungary, vol. II. 73-81. [Nagy 2011a] Nagy B.: Linguistic power of permutation languages by regular help, in: Linguistics, Biology and Computer Science: Interplays, Cambridge Scholars (2011), 135-152. [Nagy 2011b] Nagy, B.: A class of 2-head finite automata for linear languages, TRIANGLE (2011), megjelens alatt [Nagy 2011c] Nagy, B.: On a hierarchy of 5'3' sensing Watson-Crick finite automata languages, Journal of Logic and Computation (Oxford University Press), 2011, kzlsre elfogadva [Nagy, Otto 2010a] Nagy B., F. Otto: CD-Systems of Stateless Deterministic R(1)-Automata Accept all Rational Trace Languages, LATA 2010, Lecture Notes in Computer Science - LNCS 6031 (2010), 463-474. Springer, Heidelberg [Nagy, Otto 2010b] Nagy B., F. Otto: On CD-systems of stateless deterministic R-automata with window size one, Kasseler Informatikschriften 2010, 2, Kassel University, Germany [Nagy, Otto 2010c] Nagy B., F. Otto: CD-Systems of Stateless Deterministic R(1)-Automata Governed by an External Pushdown Store, Kasseler Informatikschriften 2010, 4, Kassel University, Germany [Nagy, Otto 2011a] Nagy B., F. Otto: An automata-theoretical characterization of context-free trace languages, SOFSEM 2011, Lecture Notes In Computer Science - LNCS 6543 (2011), 406-417. [Nagy, Otto 2011b] Nagy B., F. Otto: Finite-State Acceptors with Translucent Letters, ICAART 2011 - 3rd International Conference on Agents and Artificial Intelligence, BILC 2011 - 1st International Workshop on AI Methods for Interdisciplinary Research in Language and Biology, 3-13. [Nagy, Otto 2011c] Nagy B., F. Otto: CD-Systems of Stateless Deterministic R(1)-Automata Governed by an External Pushdown Store, RAIRO - Theoretical Informatics and Applications, RAIRO-ITA, 2011, megjelens alatt [Nagy, Otto 2011d] Nagy B., F. Otto: On CD-systems of stateless deterministic R-automata with window size one, Journal of Computer and System Sciences - JCSS, megjelens alatt [Nagy, Varga 2009] Nagy B., Varga P.: A New Normal Form for Context-Sensitive Grammars, SOFSEM 2009: (35th Conference on Current Trends in) Theory and Practice of Computer Science, Spindleruv Mlyn, Czech Repulic, Volume II, 60-71. Iteration-free Normal Form for Context-Sensitive Grammars, Tech. Rep., Dept. Math. and Fac. Inf., Univ. Debrecen, 2007/8. [Oettinger 1961] A.G. Oettinger: Automatic syntactic analysis and the pushdown store, Proc. Symposia on Applied Math. 12 (1961), AMS, Providence, RI. [Papadimitriou 1995] Christos H. Papadimitriou: Szmtsi bonyolultsg, Addison-Wesley, 1995., magyar fordts: Novadat Bt. 1999. [Paun et al 1998] Gheorge Paun, Grzegorz Rozenberg, Arto Salomaa: DNA Computing - New Computing Paradigms. Springer-Verlag, 1998. [Pek 1988] Pek Istvn: Bevezets az automatk elmletbe I., Tanknyvkiad, Budapest, 1988. [Pek 1989] Pek Istvn: Bevezets az automatk elmletbe II., Tanknyvkiad, Budapest, 1989. [Pek 1990] Pek Istvn: Bevezets az automatk elmletbe III., Tanknyvkiad, Budapest, 1990. [Penttonen 1974] M. Penttonen: One-sided and two-sided context in formal grammars. Information and Control 25 (1974), 371-392. [Prusinkiewicz, Lindenmayer 1990] P. Prusinkiewicz, A. Lindenmayer: The Algorithmic Beauty of Plants, Springer-Verlag, 1990, 1996. (elektronikusan: http://algorithmicbotany.org/papers/#abop) 234

Irodalomjegyzk [Rabin, Scott 1959] M.O. Rabin, D. Scott: Finite automata and their decision problems, IBM J. Res. Dev. 3 (1959), 114-125. [Rvsz 1983] Gy. E. Rvsz: Introduction to Formal Languages, McGraw-Hill, New York, St Louis, San Francisco, Auckland, Bogota, Hamburg, Johannesburg, London, Madrid, Mexico, Montreal, New Delhi, Panama, Paris, Sao Paulo, Singapore, Sydney, Tokyo, Toronto, 1983. [Rvsz 1989] Rvsz Gyrgy: Bevezets a formlis nyelvek elmletbe, Tanknyvkiad, Budapest, 1989. [Rnyai et al 1998] Rnyai L., Ivanyos G., Szab R.: Algoritmusok, Typotex 1998. [Rosenfeld 1979] A. Rosenfeld: Picture Languages, Formal Models for Picture Recognition, Academic Press, New York, 1979. [Rozenberg, Salomaa 1997] G. Rozenberg, A. Salomaa (eds.): Handbook of formal languages, Springer, Berlin, Heidelberg, 1997. 3 volumes. [Salomaa 1973] A. Salomaa: Formal Languages, Academic Press, New York, London, 1973. [Salomaa 1981] A. Salomaa: Jewels of formal language theory, Computer Science Press, Rockville, Maryland, 1981. [Scheinberg 1960] S. Scheinberg: Note on the boolean properties of context-free languages, Information and Control 3 (1960), 372-375. [Schutzenberger 1963] M.P. Schutzenberger: On context-free languages and pushdown automata, Information and Control 6 (1963), 246-264. [Sempere, Garca 1994] J. M. Sempere, P. Garca: A characterization of even linear languages and its application to the learning problem, Proc. Second International Colloquium, ICGI-94, Lecture Notes in Artificial Intelligence, 862 (1994) 38-44. [Sipser 2005] M. Sipser: Introduction to the Theory of Computation, Course Technology, 2005. [Shallit 2009] J. Shallit: A Second Course in Formal Languages and Automata Theory, Cambridge University Press, 2009. [Shyr 1991] H.J. Shyr: Free Monoids and Languages, National Chung-Hsing University, Taichung, Taiwan, R.O.C., Ho Min Book Company, 1991. [Turing 1936] A.M. Turing: On computable numbers with an application Entscheidungsproblem, Proc. Londom Math. Society 2 (1936), 230-265. s 544-546. to the

[Vaszil 1997] Gy. Vaszil: Various communications in PC grammar systems, Acta Cybernetica 13 (1997), 173-196. [Younger 1967] D.H. Younger: Recognition and parsing of context-free languages in time n3, Information and Control 10 (1967), 189-208.

235

You might also like