M M ( ) ( ) M, Tehtävä 24. Muodot äännöllitä luekett (0 ) 0 (0 ) 0 = (0 ) (0 0) = (0 ) (0 0) vtv äärellinen utomtti. Tehtävä 25. Muodot C-kielen liukuluvut tunnitv utomtti äännöllietä luekkeet (d +.d.d + )( ((e E)(+ )d + )) d + (e E)(+ )d + jo d = {0,, 2, 3, 4, 5, 6, 7, 8, 9} ovt 0-järjetelmän numeromerkit. Toilt ekvivlentti äännöllinen lueke voidn eittää monell tp, j outomtit jot lopullinen rtkiu dn voivt oll erilii. Eli rtkiuj on erilii (iihen kk kunne on determinioitu j minimoitu). 4.0.2 Automtit äännöllinen lueke Lue 5. Jokinen äärelliellä utomtill tunnitettv kieli on äännöllinen. Toditu: Riittää elittää, miten nnetut äärellietä utomtit M voidn kirjoitt itä vtv äännöllinen lueke r M, jok trkoitt m kieltä, eli joll L(r M ) = L(M). Voimme olett, ettei utomti M ole -iirtymiä (kok voiimme enin poit ne, jo niitä iinä olii). 69
Voimme myö olett, että utomtin M tilt on numeroitu, 2, 3,..., n. (Ei ole väliä, miä järjetykeä.) Todituken ytimenä on muodot 3-ulotteinen tulukko, jonk indekeinä ovt nämä til(nnumero)t, j jonk pik R[i][j][k] on ellinen äännöllinen lueke, että yötemerkkijono c c 2 c 3...c m kuuluu luekkeen R[i][j][k] määrittelemään kieleen tämälleen illoin kun utomti M on jokin polku muoto c 2 c 3 c 4 c 5 cm c m j. (4) } {{ } mikään näitä välitiloit ei ole k+,k+2,k+3,...,n i c Toiin noen, R[i][j][k] ilmiee ne polut, joit pitkin lähtötilt i pääee kohdetiln j vierilemtt mtkn ikn miään kielletyitä välitiloit k +, k + 2, k + 3,...,n. Huom: S oll i > k (eli polku lähteä muuten kielletytä tilt) ti j > k (eli polku päättyä muuten kiellettyyn tiln). Nämä luekkeet R[i][j][k] voidn muodot induktioll indekin k uhteen. Tämä induktio lk rvoll k = 0. Siinä lähtötilt i on päätävä kohdetiln j vierilemtt mtkn ikn miään til. Vlitn ii { } c c: M iältää iirtymän i j kun i j R[i][j][0] = { } c (5) c: M iältää iirtymän i j {} kun i = j. Ylemmää hr i j ii luetelln yhtenä äännöllienä luekkeen kikki ne yötemerkit c, joill on iirtymä lähtötilt i kohdetiln j. Jo tällii c ei ole yhtään kpplett, niin tämä lueke on illoin ehän on opertion neutrlilkio. Alemm hr i = j otetn mukn myö kok illoinhn lähtötilt i päätään kohdetiln j myö pyymällä pikoilln. Oletetn itten induktiivie tpuke k > 0 että kikki luekkeet R[...][...][k ] on jo muodotettu, j muodotetn niiden vull hlutut luekkeet R[i][j][k] = vnh o {}}{ R[i][j][k ] uui o {}}{ R[i][k][k ] R[k][k][k ] R[k][j][k ]. (6) }{{}}{{}}{{} lkuo välio loppuo Millä eri tvoill pääemme lähtötilt i kohdetiln j kun mme nyt vierill myö ennen kielletyä välitil k? Voimme nytkin jättää vierilemtt välitil k. Siitä mme vnhn on. Uuden on poluill vierilln välitil k inkin kerrn. Aluki ellinen polku kulkee lähtötilt i enimmäieen vieriluun välitiln k kk. Siitä mme lkuon. 70
Kuv 4: Hyväkyvien tilojen yhditäminen yhdeki. Lopuki ellinen polku kulkee viimeietä vierilut välitiln k kohdetiln j. Siitä mme loppuon. Niiden väliä polku kulkee välitilt k poi j pl iihen tkiin. Siitä mme välion. Edetään näin kunne myö k = n on muodotettu. Olkoon itten utomtin M lkutiln numero j hyväkyvien tilojen numerot,, 3,..., q. Lopuki muodotmme hluttun vtukenmme luekkeen r M = R[][ ][n] R[][ 2 ][n] R[][ 3 ][n] R[][ q ][n] eli jokinen polku, jok kulkee lkutilt johonkin hyväkyvään tiln, j jok vierill miä välitil thn. Voimme lli utomti M myö -iirtymät: Yhtälöä (4) ei c c 2 c 3...c m enää oliikn yötemerkkijono, kok jotkut c i polun iirtymill oliivtkin nyt. Mutt ite menetelmä ei muutu. Näiden -iirtyminen myötä voimme myö olett, että utomti M on vin yki hyväkyvä til tätä ei lähde iirtymiä tämä on eri til kuin utomtin M lkutil. (Kuv 4.) Voimme kirjoitt tämän todituken kontruktion lgoritmin 7
or i, 2, 3,...,n 2 do or j, 2, 3,...,n 3 do yhtälö (5) 4 or k, 2, 3,...,n 5 do or i, 2, 3,...,n 6 do or j, 2, 3,...,n 7 do yhtälö (6) 8 return R[][][n] j d menetelmän, jok lkee nnetulle utomtille M itä vtvn luekkeen r M. Tämä lgoritmi on ite i uku kurin TRA II ihepiiriin kuuluvlle Wrhllin lgoritmille, jok lkee nnetun yöteverkon trnitiivien ulkeumn. On myö toinen tätä kevyempi j intuitiiviempi menetelmä muodot nnetut utomtit M itä vtv äännöllinen lueke r M. (Kirjlliuude on toki näiden khden liäki mont muutkin menetelmää!) Tämä toinen menetelmä etenee poitmll trpeettomiki käyneitä välitiloj utomtit M. Lueen 5 todituken menetelmähän eteni toiin päin: kvttmll llittujen välitilojen joukko, {}, {, 2}, {, 2, 3},... yki uui til k kerrlln. Menetelmän lähtökoht on m kuin yhtälöä (4): Seurtn utomti M polku en tilt i toieen tiln j, j kerätään polun iirtymilt niiden merkit c, c 2, c 3,...,c m iinä järjetykeä kuin ne kohdtn. Menetelmän edeteä tällinen kokoninen polku korvtn oikotiellä eli yhdellä iirtymällä uorn tilt i tiln j. Tälliell oikotiellä pitää yhä oll kikki ne mt merkkijonot c c 2 c 3...c m, jotk kerättäiiin, jo tilt i tiln j kuljettiiinkin ilmn oikoteitä, eli jo kuljettiiinkin lkuperäiiä iirtymiä pitkin. Niinpä oikotiell i merkkijonot. r j onkin kokoninen äännöllinen lueke r jok kuv nämä Menetelmää käytetään ii n. luekeutomttej: Ne ovt utomttej, joiden iirtymillä on kokoninen yötekkoton äännöllinen lueke pelkän yötemerkin ijt. Luekeutomtin intuitio on, että kun til i otetn iirtymä i r j, niin. enin luetn jäljellä olevn yötteen lut jokin luekkeen r mukinen merkkijono tää yhdeä kele 2. itten jtketn tilt j illä jäljellä olevn yötteen loppuoll jot ei vielä luettu. Tvlliet utomtit voidn tulkit elliiki luekeutomteiki, joiden luekkeet ovt mhdolliimmn ykinkertii: pelkkiä merkkejä. 72
p i j = i p q j q Kuv 5: Kki rinnkkit iirtymää yhdeki. Ohitmme kuitenkin tällä kurill niiden ormlin määritelmän, kok käytämme niitä vin tää menetelmää. Tällii oikoteitä voi vetää khdell tvll:. Jo utomti on kki eri rinnkkit iirtymää i p q j j i j, niin ne voi korvt yhdellä yhteiellä iirtymällä i p q j kuten kuv 5. Selväti tämä äilyttää moin ne merkkijonot, jotk kerättäiiin kulkemll näitä iirtymiä pitkin olmut i olmuun j: Uui lueke p q kuv tämälleen ne merkkijonot, jotk kuv inkin toinen vnhoit luekkeit p ti q. 2. Käytetään enin tp kunne rinnkkii iirtymiä ei enää ole. Sitten trktelln mielivltit välitil k,. p i Välitiln k tulee iirtymiä i k muult joi ii i k. Ti jo ei tule, niin välitil k voidn poit trpeettomn, kok iihen ei päätä lähtötilt. Välitilt k kulkee ilmukkiirtymä k q k tkiin iteenä. Ti jo ei kulje, niin itä vtv o q voidn jättää poi lopputuloket (7). Välitilt k lähtee iirtymiä k r j j muulle joi ii j k. Ti jo ei lähde, niin välitil k voidn poit trpeettomn, kok iitä ei pääe lopputiln. Silloin tämä nimenominen polku muult muulle tämän välitiln k kutt voidn korvt yhdellä oikotiellä i p iq r j j (7) kuten kuv 6. Smll perutelull kuin yhtälön (6) uude o voidn nytkin nähdä, että merkkijonot äilyvät moin: p i on lku-, q on väli- j r j on loppuo. S oll myö i = j k: illoin iirtymä (7) on ilmukk i p iq r i i. Kun on käyty läpi kikki tälläiet polut muult muulle tämän välitiln k kutt (eli kikki olmuprit i, j) j korvttu ne oikoteillä (7), niin tämä välitil k 73
q j i p i k r j.. p i q r j Kuv 6: Oikotie muult muulle. ekä kikki iihen liittyvät iirtymät voidn poit, kok niiden merkkijonot on eitetty näillä oikoteillä. Kun on käytetty tpoj j 2 niin mont kert kuin mhdollit, niin: Automti on jäljellä vin en lkutil j hyväkyvä til. Tilt on ilmukk q tkiin iteenä. Ti jo ei ole, niin itä vtv o q voidn jättää poi lopputuloket (8). Tilt on iirtymä r tiln. Ti jo ei ole, niin tilt ei pääe tiln, j illoin utomtin hyväkymä kieli onkin tyhjä kieli. Tilt ei lähde iirtymiä, kuten näkyy kuvt 4. Tämän kuv 7 olevn ykinkertituneen utomtin hyväkymä kieli on jok dn ykinkertitmll yhtälöä (7). q r (8) Eitetään tämä menetelmä vielä lgoritmin: 74
q r r q Kuv 7: Lueke kutituneet utomtit. liää kuvn 4 mukinen uui hyväkyvä til ellei ellit jo ole p q 2 while on rinnkkiet iirtymät i j j i j 3 do korv ne yhdellä yhteiellä iirtymällä i p q j 4 while on muitkin tiloj kuin lkutil j tämä 5 do k jokin (mikä thn) ellinen muu til p i 6 or ech iirtymä i k jo i k 7 do or ech iirtymä k r j j jo j k 8 do i on iirtymä k q k 9 then t p i q r j 0 ele t p i r j u i on iirtymä i j 2 then päivitä e muotoon i u t j 3 ele liää ellinen muoto i t j 4 poit til k j kikki nämä iihen liittyvät iirtymät 5 i on iirtymä r 6 then i on iirtymä q 7 then return q r 8 ele return r 9 ele return Tämä menetelmä on uein kevyempi j intuitiiviempi kuin lueen 5 todituken menetelmä, kok: 75
Automtit ovt uein modulrii eli niiä on tilrykelmiä, joiden iällä kulkee pljon iirtymiä, mutt joiden välillä kulkee vin vähän iirtymiä. Eimerkiki liukulukuvkion lukev utomti on modulit. lue kokonio 2. lue deimlio joit kumpikin on om ilmukkn, joi luetn numeromerkkejä, mutt iirtymä edellietä jälkimmäieen on vin deimlipiteellä.. Tällä menetelmällä voimme käydä tilt läpi moduli kerrlln mehän mme vlit tiln k kuten hlumme. Silloin tulokeen muodotuu näitä modulej vtvi liluekkeit, jolloin e heijt utomtin intuitiot. Todituken menetelmä ei (inkn uorn) hyödynnä tätä modulriuutt, vn tuott kikki yhteydet jokiet tilt jokieen tiln. Otetn eimerkki tätä menetelmätä: (i) lkuperäinen utomtti: (ii) liätään : 0 0 0 0 0 0 (iii) yhditetään rinnkkiet: (iv) poitetn til: 0 0 0 0 0 (0 ) (v) poitetn til: (vi) poitetn til: (0 )( (0 )) (0 )( (0 )) 0 0 Nyt voidn luke lopputulo (0 ) (0 )( (0 )) jot voidn vielä hiemn ieventää muotoon (0 ) (0 )( 0 ) jot voidn luke vtu: lkuperäinen utomtti hyväkyy ne inäärikkoton merkkijonot, joiden toieki ti kolmnneki viimeinen merkki on. 76
Voimme j knnttkin ievennellä luekkeit jo menetelmän ikn. Tehtävä 26. Lue äännöllinen lueke eurvt utomtit:, 2 3 4. Säännölliten kielten rjoitukit Kyymy: Kuink voidn hvit, ettei ongelm rtkekn äärelliillä utomteill? Eli ettei vtv ormlikieli olekn äännöllinen? Eimerkki 27. Onko tpinoiten ulkujonojen muodotm kieli L mtch = {( k ) k : k 0} äännöllinen? Yritetään tehdä ille utomtti: ( ( ( ( q 0 q q n q n ) ) ) ) q 2n q n+2 q n+ q 2n ) ( ( ( ( q 0 q q n q n ) ) ) ) Mutt entäpä jo iäkkäiiä ulkuprej onkin n + kpl.? 77