Itseopiskelukurssin tehtävät lv. 2013 2014 TIEA241 Automtit j kieliopit Tehtävien tekeminen on suositeltv, j siihen knnustetn mm. trjomll rvosnn korotus kurssisivustoll kerrotull tvll. Kikki tehtäviä ei kuitenkn trvitse tehdä; tee sen verrn, kuin ktsot sopivksi. Os tehtävistä on merkitty tähdellä ( ). Niiden tekemistä erityisesti suosittelen. Os tehtävistä on merkitty -merkillä; ne on trkoituksell hstvi j sttvt vti enemmän tieto kuin kurssill vditn. Suosittelen tekemään kutkin luento koskevt tehtävät ennen seurvn luentovideon ktsomist. Lähetä vstuksesi kommentoitvksi osoitteeseen ntti-juhni.kijnho@jyu.fi (liitetiedostoiss, ellei erikseen sovit, käytä vin tiedostomuotoj TXT, PDF, JPG, PNG sekä lähdekoodin tvnomisi tiedostomuotoj); voit myös jättää tehtävät pperill postiltikkooni (huoneess Ag C418.1; muist kirjoitt jok pperiin nimesi j sähköpostiosoitteesi). Pyrin vstmn muutmss päivässä. Luento 1 1. Ldi luennon esimerkkien (on/off-kytkin, kioskiutomtti, ydinvoimln hätäpysäytysjärjestelmä) kltinen kuvus kuppkeskuksen utomttisen ulko-oven toiminnst. 2. Ldi regexp, jonk vull egrep-ohjelm löytää tekstitiedostost kikki () vähintään kolme ääkköstä (å, ä, ö) sisältävät rivit () HTTP-urlin sisältävät rivit (älä kuitenkn trkist urlin muodollist oikeellisuutt) (c) HTTP- ti HTTPS-urlin sisältävät rivit (älä kuitenkn trkist urlin muodollist oikeellisuutt) (d) Jv-kommentin loittvt ti lopettvt rivit Test ne egrep-ohjelmll. 3. Regexpin lkuun voidn lisätä sirkumfleksi (^) trkoittmn rivin lkmist. Vstvsti regexpin loppuun voidn kirjoitt dollrimerkki ($) merkitsemään rivin loppu. Näin regexp ^42$ löytää täsmälleen ne rivit, jotk sisältävät luvun 42 eikä mitään muut. Rivinvihtomerkkiä ei lsket näihin riveihin mukn. Kirjoit regexp, jonk vull egrep-ohjelm löytää tekstitiedostost kikki () tyhjät rivit () rivit, joill on täsmälleen yksi merkki (c) rivit, joiss ei esiinny ääkkösiä Test ne egrep-ohjelmll. 4. Tutustu Jv-kielen regexp-kirjstoon jv.util.regex ti jonkin muun vlitsemsi kielen vstvn kirjstoon j kirjoit sen vull ohjelm, jok lskee Jv-lähdekooditiedoston sellisten rivien lukumäärän, joill lk kommentti. Test ohjelmsi. Luento 2 5. Olkoot v = 012, w = 234, u = 024. () Mikä on pienin merkistö Σ, jolle v, w, u Σ j v = w = u = 3 pätevät? () Mikä merkkijono on v(w R )uu? (c) Pljonko on v(w R )uu? 6. Ldi DFA, jok hyväksyy ne merkistön {, } merkkijonot, j vin ne, joiss () on täsmälleen kksi :tä (esimerkiksi j, mutt ei ). () on vähintään kksi :tä (esimerkiksi, j, mutt ei ) (c) on enintään kksi :tä (esimerkiksi, j, mutt ei ). 1
Toteut yksi ltimistsi utomteist vlitsemllsi ohjelmointikielellä. 7. Piirrä seurvlle DFA:lle mhdollisimmn selkeä grfinen esitys: ({0, 1, 2, 3, 4, 5}, {1, 2}, δ, 0, {3}) q + 1 jos q {0, 1, 3, 4} j c = 1 q 2 jos q {2, 5} j c = 1 missä δ : (q, c) q + 3 jos q {0, 1, 2} j c = 2 q 3 jos q {3, 4, 5} j c = 2 8. Ldi DFA, jok hyväksyy ne merkistön {, } merkkijonot, j vin ne, joiss () on peräkkäisiä :itä (esim j mutt ei ). () :iden määrä ei ole kolmell jollinen 1 (esim., j, mutt ei eikä ). Toteut yksi ltimistsi utomteist vlitsemllsi ohjelmointikielellä. 9. () Ldi DFA, jok hyväksyy kikki ei-negtiivisten kokonislukujen yhteenlskutehtävät (joiss ei käytetä sulkeit), j vin ne. () Toteut tuo DFA vlitsemllsi ohjelmointikielellä. (c) Ljenn ltimsi ohjelm siten, että se lskee lskutehtävän tuloksen. 10. Olkoon (Q, Σ, δ, q 0, F ) äärellinen utomtti. Määritellään merkintä q q trkoittmn kikill q, q Q sm kuin w Σ : δ (q, w) = q. () Todist, että on kikill utomteill refleksiivinen. () Todist, että on kikill utomteill trnsitiivinen. (c) Onko kikill utomteill symmetrinen? (d) Onko kikill utomteill ntisymmetrinen? 11. Ldi DFA, jok hyväksyy ne merkistön {, } merkkijonot, j vin ne, joiss () jok toinen 2 merkki on (esimerkiksi ε,,,,, j, mutt ei ). () esiintyy osjono 3 (esimerkiksi, j, mutt ei ). (c) esiintyy osjono mutt ei osjono (esimerkiksi mutt ei ). Luento 3 12. Etsi virhe seurvst todistuksest. Väite: Kikki äärellisessä hevosjoukoss olevt hevoset ovt smnvärisiä. Todistus: Induktioll joukon koon suhteen. Jos joukko on tyhjä, väite on trivilisti tosi. Sm pätee, jos siinä on yksi hevonen. Perustpus on siis OK. Tehdään nyt induktio-oletus, että kikiss hevosjoukoiss, joiden koko on k, ovt hevoset smnvärisiä, j osoitetn, että väite pätee kikille hevosjoukoille H, joiss on 1 Luku n Z on kolmell jollinen, jos jollin k Z pätee n = 3k. Erityisesti noll on kolmell jollinen. 2 Jok toinen trkoitt tässä jokinen prillisess indeksissä ti jokinen prittomss indeksissä olev. Se ei set rjoitust merkkijonon pituudelle. 3 Määritellään: merkkijono v Σ on merkkijonon w Σ osjono, jos on olemss merkkijonot w 1, w 2 Σ, joille pätee w = w 1 vw 2. 2
k+1 hevost. Muodostetn uusi joukko H 1 poistmll H:st yksi hevonen. Induktiooletuksest seur, että H 1 :ssä kikki hevoset ovt smnvärisiä. Muodostetn nyt joukko H 2 poistmll H:st jokin muu hevonen. Edelleen induktio-oletuksest seur, että H 2 :ss kikki hevoset ovt smnvärisiä. Erityisesti se (ino) H:n hevonen, jok ei ole H 1 :ssä (mutt on H 2 :ss) on smnvärinen kuin H 1 :n hevoset; näin ollen kikki H:n hevoset ovt smnvärisiä. 13. Ldi DFA, jok tunnist kielen { w {, } w sisältää prillisen määrän :it j korkeintn kksi :tä }. Luku n Z on prillinen, jos on olemss luku k Z, jolle pätee n = 2k. Erityisesti 0 on prillinen luku. 14. Todist, että edellisen tehtävän vstuksesi on oikein. 15. Lue sivult 12 deterministisen äärellisen trnsduktorin (DFT) kuvus. () Ldi DFA:n viisikkomääritelmää vpsti mukillen mtemttinen määritelmä DFT:lle. () Ldi DFA:n käyttäytymisen määritelmää vpsti mukillen mtemttinen määritelmä sille, kuink DFT muutt syötemerkkijonon tulostemerkkijonoksi. (c) Äärellisten utomttien snotn tunnistvn kieliä. Mikä nloginen ominisuus on äärellisillä trnsduktoreill? Mikä on tuo ominisuus liitteen esimerkkitrnsduktorill? 16. Ldi DFT (ks. sivu 12), jok lskee {,, c}-merkistöisessä syötteessä ennen ensimmäistä c-merkkiä olevien -merkkien lukumäärän modulo 3 (eli tulost jkojäännöksen lskutehtävästä :iden lukumäärä jettun kolmell). Luento 4 17. Ldi DFA, jok tunnist smn kielen kuin seurv NFA: 1, 2 18. Esitä todistuksen ide seurville väitteille: () Jos A, B Σ ovt säännöllisiä kieliä, niin AB on säännöllinen kieli. () Jos A on säännöllinen kieli, niin A R = { w R w A } on säännöllinen kieli. (c) Jos A on säännöllinen kieli, niin A + on säännöllinen kieli. 19. Ldi NFA, jok hyväksyy täsmälleen ne merkkijonot, joihin sisältyy osjonon merkkijono (esimerkiksi mutt ei ). Muunn se DFA:ksi. 20. Ldi DFA, jok tunnist smn kielen kuin seurv NFA: 1 ε 3, 2 3
21. Miten käy tehtävän 19 NFA DFA-muunnoksen työläydelle, jos -toistoj vdittisiin enemmän kuin kksi? Luento 5 22. Ldi kusskin kohdss säännöllinen luseke (ei Unix-regex) seurville merkistön {, } kielille: () Kielen jokisen merkkijonon jok toinen merkki on. () Kielen jokisess merkkijonoss esiintyy osjono. 23. Olkoot r, r 1 j r 2 mielivltisi säännöllisiä lusekkeit. Todist: () r = = r () r = r (c) εr = r = rε (d) (r(r 1 r 2 )) = ((rr 1 )r 2 ) 24. Muodost NFA, jok tunnist kielen, jot kuv säännöllinen luseke ( )( 0 1). 25. Osoit rkenneinduktioll, että jokisess säännöllisessä lusekkeess on sm lukumäärä loittvi j päättäviä sulkeit. Rkenneinduktioss perustpukset ovt, ε j c Σ. Loput ovt induktiivisi tpuksi, jolloin induktio-oletus snoo, että väite pätee kikille lusekkeen oslusekkeille, esim. (r 1 r 2 ):n tpuksess r 1 :lle j r 2 :lle. 26 27. Kirjoit ohjelm (voit käyttää grep-luentoesimerkkiä pohjn, jos hlut), jok selvittää nnettu NFA:t vstvn säännöllisen lusekkeen. Luento 6 28. Muodost seurv determinististä äärellistä utomtti vstv minimiutomtti käytten luennoill esitettyä lgoritmi. 0 1 2 5 3 4 29. Muodost seurv determinististä äärellistä utomtti vstv minimiutomtti käyttäen luennoill esitettyä lgoritmi. Merkitse näkyviin väliviheet. 1 2 3 5 4 4
30. Tee luentoklvoill ollut mutt luennoll tekemättä jäänyt tehtävä: selvitä, tunnistvtko seurvt utomtit smn kielen: M A A M B 1 3 B 2 31. DFA:n til on turh, jos siihen ei voi päästä lkutilst seurmll tilsiirtymiä. Todist, että turhien tilojen poistminen ei muut utomtin tunnistm kieltä. 32. Todist: Olkoon M = (Q, Σ, δ, q 0, F ) DFA j olkoot c Σ j v Σ. Tällöin kikill q Q pätee δ (q, cv) = δ (δ(q, c), v). Muistin virkistykseksi δ :n määritelmä: { δ q, jos w = ε (q, w) = δ(δ(q, v), c) jos w = vc Luento 7 33. Ldi kontekstiton kielioppi, jok tuott kikki merkistön {, } plindromit (siis merkkijonot, joille pätee w = w R ). 34. Todist: Olkoon Σ merkistö, joss on vähintään kksi merkkiä. Tällöin kieli { w Σ w = w R } (siis kieli, jonk kikki merkkijonot ovt plindromej) on ei-säännöllinen. 35. Trkstelln kieltä A = { i j c k i, j, k 0 (i = 1 j = k) } () Osoit, että A:lle on olemss k N, jolle jokisell s A, s k, on olemss v, u, w {,, c}, joille pätee: i. s = vuw ii. u ε iii. vu k iv. i N: vu i w A () Osoit, että A ei ole (tästä huolimtt) säännöllinen kieli. 36. Esitä todistuksen ide: Jos A j B ovt kontekstittomi kieliä, niin () A B = { w w A w B } () AB = { wv w A v B } (c) A, jok sisältää jokisen merkkijonon, jok sdn littmll mielivltinen, mhdollisesti noll, määrä A:n merkkijonoj peräkkäin on kontekstiton kieli. 37. Esitä luentoklvojen säännöllisten lusekkeiden kieliopist inkin yksi johto kullekin seurvist merkkijonoist (,, c j d ovt kieliopin knnlt kikki c:itä): 5
() ( c) () c d (c) c 38. Kontekstiton kielioppi on oikelinerinen, jos kikki produktiot ovt muoto A ε tikk A C (missä A j C ovt mitä vin välikesymoleit j on mikä thns päätesymoli). Todist: kieli on säännöllinen jos j vin jos se voidn kuvt oikelinerisell kontekstittomll kieliopill. 39. Olkoot Σ 1 j Σ 2 merkistöjä. Kuvus h : Σ 1 Σ 2 on homomorfismi, jos kikill v, w Σ 1 pätee h(vw) = h(v)h(w). Todist: Jos A on kontekstiton kieli j h on homomorfismi, niin h[a] = { h(w) w A } on kontekstiton kieli. 40. Kontekstiton kielioppi on vsenlinerinen, jos sen kikki produktiot ovt muoto A ε tikk A Bc (missä A j B ovt mitä vin välikesymoleit j c on mikä thns päätesymoli). Todist: kieli on säännöllinen jos j vin jos se voidn kuvt vsenlinerisell kontekstittomll kieliopill. Luento 8 41. Trkstelln seurvnlist merkistön {if, else, true, flse, print, ;, (, )} kontekstitont kielioppi: S print E; S if (E) S S if (E) S else S E true E flse E (E) () Piirrä kikki merkkijonon if (true) if (flse) print true; else print flse; jäsennyspuut. () Keksi kksi muut kyseisen kieliopin tuottm merkkijono j piirrä kullekin inkin yksi jäsennyspuu. 42. Trkstelln seurvnlist merkistön {c, +,, (, )} kontekstitont kielioppi: E F E E + F F P F F P P c P (E) () Piirrä kikki merkkijonon c + c c jäsennyspuut. () Keksi kksi muut kyseisen kieliopin tuottm merkkijono j piirrä kullekin inkin yksi jäsennyspuu. 43. Kirjoit tehtävän 41 kielioppi 6
() formliin nelikkomuotoon () ABNF-muotoon 44. Kontekstiton kielioppi on Chomskyn normlimuodoss, jos sen produktiot ovt muoto S ε, A BC ti A c, missä S on kieliopin loitussymoli, A, B j C ovt mielivltisi välikesymoleit j c on mielivltinen päätesymoli. Hhmottele todistus väitteelle, että jokiselle kontekstittomlle kielelle on Chomskyn normlimuodoss olev kielioppi. Luento 9 45. Ldi pinoutomtti, jok tunnist kielen { ww R w {, } }. 46. Määritellään A B = { vw v A w B v = w }. Todist: Jos A j B ovt säännöllisiä kieliä, niin A B on kontekstiton kieli. 47. Trkstelln seurv kontekstitont kielioppi: S NP VP NP A NP NP N VP V P VP V A pienet vihreät värittömät N idet lehdet miehet V nukkuvt herättävät tippuvt P rivoissti hyvin hitsti () Ldi kksi kieliopin tuottm sisällöllisesti järkevää suomen kielen lusett. () Ldi kieliopin tuottm suomen kielen luse, jok ei ole sisällöllisesti järkevä. (c) Ldi suomen kielen luse, jok ei kuulu kieliopin tuottmn kieleen, käyttäen kieliopin päätemerkistöä. 48. Merkkijono w Σ on merkkijonon v Σ etuliite (engl. prefix), jos on olemss s Σ, jolle pätee ws = v. Kielellä A Σ on etuliiteominisuus (engl. prefix property) jos mikään A:n merkkijono ei ole A:n muun merkkijonon etuliite. Todist: Deterministisen pinoutomtin pinons tyhjentämällä tunnistmll kielellä on etuliiteominisuus. 49. Todist: On olemss säännöllinen kieli, jot mikään deterministinen pinoutomtti ei tunnist pinons tyhjentämällä. (Vihje: tehtävä 48.) 50. Selvitä Erleyn tunnistint sovelten, kuuluuko merkkijono 1 + 1 seurvn kieliopin kuvmn kieleen: E 0 1 E + E Luento 10 51. Trkstelln seurv loogisten kvojen kielioppi ( trkoitt totuutt j epätotuutt): B B B B B B B B B (B) Tulkitse tämä operttorikieliopiksi j yksiselitteistä se. 52 53. Trvittess poist edellisen tehtävän vstuksestsi vsenrekursio. Ldi sitten sille NULLABLE, FIRST j FOLLOW. 7
Luento 11 54. Trkstelln seurv kielioppi R 1 R 2 R 1 R 1 ε R 2 R 1 R 2 ε R 3 R 2 R 3 R 4 R 3 R 3 ε R 3 R 4 c (R 1 ) j siitä ldittuj seurvi NULLABLE, FIRSTiä j FOLLOWi: NULLABLE FIRST FOLLOW R 1, c, (, ), R 1 ), R 2, c, (, ), R 3, c, (, c, (,, ), R 3, c, (,, ), R 4, c, (,, c, (,, ), Ldi niiden pohjlt ennustv jäsennystulukko. 55 58. Ldi vlitsemllsi ohjelmointikielellä j edellisen tehtävän vstustsi hyödyntäen ohjelm, jok lukee syötteenä säännöllisiä lusekkeit j tulost niiden jäsennyspuun josskin ihmisluettvss muodoss. 59 60. Tee sm ohjelm kuin edellisessä tehtävässä mutt tällä kert käyttäen vlitsemsi LR- ti LALR-jäsennystyöklu (esimerkiksi Ycc, CUP 4, SleCC 5, GPPG 6 ti Hppy 7 ). Voit käyttää seurv vsenrekursiivist versiot säännöllisten lusekkeiden kieliopist: R 1 R 2 R 1 R 2 R 2 ε R 2 R 3 R 3 R 4 R 3 R 4 c (R 1 ) 61. Lisää seurvn kielioppiin ttriuutit j lskentsäännöt, joiden vull voi selvittää, kuink mont vv suljett lusekkeess yhteensä on. E c E + E (E) Luento 12 62. Todist: Kieli { ww w {, } } ei ole kontekstiton. 63. Ldi kontekstinen ti yleinen kielioppi edellisen tehtävän kielelle. 64. Todist: Merkistön {,, #} kieli { w#v w, v {, } w on v:n osjono } ei ole kontekstiton. 65. Ldi kontekstinen ti yleinen kielioppi edellisen tehtävän kielelle. 8
Luento 13 66. Trkstelln seurv stndrdimuotoist Turingin konett: /,R B/B,R 0 /A,R /,L /,L B/B,R C/C,R 1 6 /,R C/C,R c/c,r /B,R /A,R 2 c/c,r 5 4 B/B,R A/A,R 3 /,L c/c,l C/C,L B/B,L /,L /,L Näytä, miten se käyttäytyy syötteillä c j c. 67. Esitä edellisen tehtävän Turingin kone mtemttisess khdeksikkomuodss. 68. Kun Turingin konett käytetään lskimen, luonnollinen luku k esitetään merkkijonon 01 k. Ldi lskimen toimiv stndrdimuotoinen Turingin kone, jok lskee yhteen kksi luonnollist luku. 69. Muistthn, että kieli on rekursiivinen, jos j vin jos on olemss Turingin kone, jok rtkisee sen eli jok tunnist kyseisen kielen j pysähtyy kikill syötteillä. Todist: () Rekursiivisen kielen A Σ komplementti A = Σ A on rekursiivinen. () Khden rekursiivisen kielen yhdiste on rekursiivinen. (c) Khden rekursiivisen kielen leikkus on rekursiivinen. 70. Todist: Jokinen kontekstiton kieli on rekursiivinen. Luento 14 71 72. Ldi Turingin kone, jok tunnist kielen { ww w {, } }. 73. Ldi epädeterministinen Turingin kone, jok hyväksyy merkistön {,, #} kielen { w#v w, v {, } w on v:n osjono }. 74. Todist: jokinen while-kielinen ohjelm voidn muokt selliseksi, että siinä ei käytetä if-lusett, ohjelmn käyttäytymisen 8 muuttumtt. 75. Ldi while-kielinen ohjelm, jok lskee khden kokonisluvun tulon. 76 79. Ldi vlitsemllsi kielellä ohjelm, jok lukee tiedostost stndrdimuotoisen Turingin koneen kuvuksen (josskin järkevässä muodoss) j sen jälkeen käyttäytyy kuten kyseinen kone, jos kikki muistinvrukset onnistuvt. 80 83. Ldi vlitsemllsi kielellä ohjelm, jok lukee tiedostost while-kielisen ohjelmn j sen jälkeen käyttäytyy kuten kyseinen ohjelm. Voit rjoitt yksittäisen muuttujn sisältämän kokonisluvun koon esimerkiksi välille 2 31... 2 31 1. 4 http://www2.cs.tum.edu/projects/cup/ 5 http://slecc.org/ 6 http://gppg.codeplex.com/ 7 http://www.hskell.org/hppy/ 8 Kksi ohjelm käyttäytyvät smll tvll jos ne jokisell mhdollisell syötteellä tulostvt smn tulosteen j joko molemmt pysähtyvät ti kumpikn ei pysähdy. 9
84. Ldi epädeterministinen äärellinen trnsduktori (ks. sivu 12), jok muutt ASCIImerkkijonon, jok näyttää while-kielen kieliopin päätemerkkien (joiden välissä voi oll välilyöntejä) jonolt, while-kielen kieliopin päätemerkkien jonoksi. (Huom: ASCII-merkkijonon while on viisi merkkiä pitkä mutt while-kielen päätemerkkijonon vin yksi merkkiä pitkä.) Luento 15 85. Ldi pienin mhdollinen inäärijono, jok on jonkin sellisen Turingin koneen inääriesitys, jonk lkutil ei ole hyväksyvä eikä hylkäävä til. Minkä koneen inääriesitys se on? 86. Todist: ei ole olemss while-kielistä ohjelm, jok stun syötteenä while-kielisen ohjelmn j tälle trkoitetun syötteen selvittää (kikill syötteellä pysähtyen), pysähtyykö kyseinen ohjelm kyseisellä syötteellä. (Ot mlli vstvst TM-todistuksest mutt älä veto siihen.) 87. Ldi vlitsemllsi ohjelmointikielellä tietokoneohjelm, jok ott syötteenä Turingin koneen inääriesityksen j tulost kyseisen koneen siirtymätulukon (riveillä tilt, srkkeill nuhmerkit, kusskin soluss siirtymän tulos eli uusi til, uusi nuhmerkki j lukupään siirtosuunt). 88. Todist: Jos A Σ j sen komplementti A = Σ A ovt molemmt rekursiivisesti lueteltvi, ne ovt molemmt rekursiivisi. Luento 16 89. Kääntäjäpj Oyj on knsinvälisesti tunnettu ohjelmointikielten kääntäjien toimittj. Olet yrityksen teknologijohtj. Uusi toimitusjohtj, jok os ohjelmoid mutt ei ole opiskellut l sen pidemälle, nt sinulle tehtäväksi huolehti, että kikki yrityksen tuottmt kääntäjät tuottvt vrmsti optimlist (eli niin nope kuin on mhdollist) koodi. Mitä teet j miksi? 90. Olkoon A kieli. Määritellään A R = { w R w A }. Todist, että ongelm Päteekö L(M) = L(M) R nnetull Turingin koneell M? ei ole rtkev. 91. Trkstelln Turingin koneen muunnelm (kutsutn sitä multimedi-tm:ksi), joss on khdenlisi tiloj: sellisi, joihin tullessn kone soitt pilliä, j sellisi, joihin tullessn kone väläyttää vlo. Todist, että ongelm Soittko nnettu multimedi-tm koskn pilliä? ei ole rtkev. 92. Mitä voit sno päätösongelmn Onko nnettu rekursiivisesti lueteltv kieli säännöllinen? rtkevuudest? Perustele. 93. Olkoot A, B j C kieliä. Todist: () Jokinen kieli plutuu lskettvsti itseensä. () Jos A plutuu lskettvsti B:hen j B plutuu lskettvsti C:hen, niin A plutuu lskettvsti C:hen. 94. Olkoot A j B kieliä. Todist: () Jos A plutuu lskettvsti B:hen j B on rekursiivisesti lueteltv, niin A on rekursiivisesti lueteltv. () Jos A plutuu lskettvsti B:hen j B on rekursiivinen, niin A on rekursiivinen. 10
95. Todist: Pinokoneill, joiss on kksi toisistn riippumtont pino, voidn tunnist rekursiivisesti lueteltvt kielet. 96. Lskurikone on kone, jok koostuu yhdestä ti usemmst toisistn riippumttomst lskurist (kukin sisältää yhden ei-negtiivisen kokonisluvun). Lskurikoneen tilsiirtymä vlitn kulloisenkin syötemerkin (ε-siirtymä on sllittu) j kunkin lskurin tilnteen (noll vi ei noll) perusteell. Tilsiirtymän pitää kullekin lskurille määritellä, lisätäänkö vi vähennetäänkö sitä yhdellä, viko pidetäänkö se smn (jos lskuri on noll, vähentäminen säilyttää lskurin nollss). Koneen käynnistyessä kikki lskurit ovt nolli. Todist: Kolmelskurisill lskurikoneill voidn tunnist rekursiivisesti lueteltvt kielet. 97. Todist: Jokiselle kolmilskuriselle lskurikoneelle on olemss kksilskurinen kone, jok tunnist smn kielen j pysähtyy smoill syötteillä. Luento 17 98. Todist: luonnollisten lukujen kertolsku on primitiivirekursiivinen funktio. 99. Asetetn λ-lskennoss seurvt määritelmät: 1 = λfλx(fx) 2 = λfλx(f(fx)) plus = λnλmλfλx(n f (m f x)) Osoit, että plus 1 1 = β 2 pätee. 11
Liite: Deterministinen äärellinen trnsduktori Deterministinen äärellinen trnsduktori (DFT) on determinististä äärellistä utomtti muistuttv vekotin. Toisin kuin äärellinen utomtti, trnsduktori ei hyväksy eikä hylkää merkkijonoj vn se muunt merkkijonon toiseksi. Tämän toteuttmiseksi siirtymään ei liity vin syötemerkkiä vn myös tulostemerkkijono, j siirtymän vikutuksen siirtymän tulostemerkkijono lisätään tulosteeseen. Seurvss on esimerkki trnsduktorist, jonk syötemerkistö on {0, 1} j tulostemerkistö {, A}. 1/ I 0/ε 0/ε 1/A II 0 1 I II, ε I, II I, ε II, A Kuten huomt, grfiesityksessä siirtymän merkkinä on c/w, missä c on syötemerkki j w on tulostemerkkijono. Tulukkoesityksessä puolestn kusskin tiln j syötemerkin osoittmss soluss on minittu sekä uusi til että tulostemerkkijono. Kummsskin esityksessä siis yllä trnsduktori ollessn tilss I j stun syötemerkin 1 siirtyy tiln I j tulost merkin. Yllä olev trnsduktori käyttäytyy merkkijonoll 101101 seurvsti: j tulost siten merkkijonon AA. I 1/ I 0/ε II 1/A II 1/A II 0/ε I 1/ I 12