Professional Documents
Culture Documents
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
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
- 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
- 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
Krnyezetfgg Chomsky 1. tpus pl: prmszmhossz szavak nyelve [203] Alternatv definci: Monoton Alosztlyok: - Permutcis - Nvekv krnyezetfgg
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
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.
= 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).
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.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 = .
Formlis nyelvek
10
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.
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).
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.
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.
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}.
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.
16
17
18
19
20
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.
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
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).
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.
27
28
29
30
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
33
34
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.
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
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.
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.
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.
39
40
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.
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.
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.
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.
45
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.
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
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.
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)).
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).
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.
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.
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
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
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
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)
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 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
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
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 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.
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.
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.
A vges automatk elmletnek alapjai A jegyzetben a ksbbiekben nemvges (de vgesen definilhat, illetve lerhat) automatkrl is lesz sz.
74
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]).
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.
Regulris nyelvek
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:
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)).
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.
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).
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.
85
Regulris nyelvek
Az automata nemdeterminisztikus mkds sorn vgigolvassa az inputot, de a mkdst nem elfogad vgllapotban fejezi be:
86
Regulris nyelvek
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.
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
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 }).
89
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, b4, b5 },{ x, y ,z }, b0, ', { b1, b3, b4, b5 }).
Regulris nyelvek
(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
Regulris nyelvek 0 y b0 b3 b1 b1 b2 b0 b3 b1
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
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.
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
Megolds: G=({q0,q1,q2},{x,y},q0,H), H={ q0xq1, q0yq2, q1xq0, q1xq2, q1yq1, q1yq2, q2xq0, q2yq1, q2 }.
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
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
101
Regulris nyelvek
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}
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
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
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.
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*
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
109
Regulris nyelvek
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.
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.
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).
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.
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.
Regulris nyelvek
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.
118
Regulris nyelvek
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}).
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}).
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
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
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}).
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.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.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.
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 }
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 }
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 }
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 }
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.
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 }
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.
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.)
Lineris nyelvek
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
135
Lineris nyelvek
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.
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.
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
A konkatencinak nincs kln jele, egyszeren egyms utn rjuk a megfelel szvegelemeket. A nemterminlis jeleket < > zrjelek kz tesszk, s ::= definil egyenlsgjel segtsgvel definiljuk.
Krnyezetfggetlen nyelvek
141
Krnyezetfggetlen nyelvek
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.
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.
Krnyezetfggetlen nyelvek
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).
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 }
147
Krnyezetfggetlen nyelvek
148
Krnyezetfggetlen nyelvek
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
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
152
Krnyezetfggetlen nyelvek
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.
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
154
Krnyezetfggetlen nyelvek
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.
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.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.
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.
159
Krnyezetfggetlen nyelvek
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 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.
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.
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!
169
Krnyezetfggetlen nyelvek
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.
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.
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
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
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
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.
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.
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.
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.
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
Mivel S V6,1, ezrt a abbaab sz benne van a G grammatika ltal generlt nyelvben.
Mivel S V6,1, ezrt az abcacb sz nincs benne az adott grammatika ltal generlt nyelvben. 180
Krnyezetfggetlen nyelvek
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
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
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
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.
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.
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.
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
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.
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 }
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}
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 }
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.
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
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.
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:
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.
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.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.
201
Krnyezetfgg nyelvek
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.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)).
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.
205
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
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.
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
211
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
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
214
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).
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.
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.
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.
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.
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.
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 .
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.
225
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.
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).
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.
230
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