TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. lokakuuta 2016
Sisällys
Harjoitustehtävätilastoa Tilanne 17.10.2016 klo 15:07 passed waiting redo submitters vk1 h1 344 0 34 103 h2 176 0 29 71 h3 128 0 34 60 h4 184 0 16 58 h5 74 0 7 32 h6 48 4 2 22 h7 41 9 1 26 h8 16 2 2 13 vk2 h9 29 2 3 23 h10 41 11 6 22 h11 13 6 6 14 h12 7 3 0 8 h13 30 7 2 15 pt h14 17 0 4 17 h15 9 6 4 13 h16 3 3 2 6
Harjoitustehtävätilastoa Tilanne 17.10.2016 klo 15:07 Hyväksytty vähintään Opiskelijoita 10 % 57 20 % 37 40 % 9 60 % 4 80 % 1 Viikko Palauttaneita opiskelijoita 2016 2015 1 5. 11.9. 79 59 12. 18.9. 61 53 19. 25.9. 52 48 26.9. 2.10. 48 41 3. 9.10. 35 30 10. 16.10. 38 24 1 Vuoden 2015 data on demorukseja vastaavalla kurssiviikolla.
Simuloivan koneen toiminta 1. Kopioi ensimmäinen nauha toiselle nauhalle. 2. Siirrä kaikkien nauhojen lukupää nauhan alkuun. 3. Siirry simuloitavan automaatin alkutilaan. 4. Olkoon q automaatin nykyinen tila, c toisen nauhan lukupään kohdalla oleva merkki ja i kolmannen nauhan lukupään kohdalla oleva merkki. Jos i =, niin tee tilasiirtymä δ i (q, c) ja siirrä kolmannen nauhan lukupäätä yksi askel oikealle; jos siirtymä onnistui, suorita tämä askel uudestaan. 5. Jos ollaan simuloitavan koneen hyväksyvässä tilassa, siirry simuloivan koneen hyväksyvään tilaan. 6. Olkoon w kolmannen nauhan sisältö blankomerkit pois lukien. Kirjoita kolmannelle nauhalle sanakirjajärjestyksessä w:tä seuraava merkistön {0,..., n 1} merkkijono. 7. Tyhjennä toinen nauha ja hyppää askeleeseen 1.
TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1. On olemassa yleinen kielioppi G, jolle A = L(G). 2. On olemassa Turingin kone M, jolle A = L(M). Seuraus Kieli on laskettavasti lueteltava, jos on olemassa Turingin kone, joka tunnistaa sen. Huomautus Aiemmin jo määriteltiin, että kieli on laskettava, jos on olemassa Turingin kone, joka ratkaisee sen.
Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on muotoa Onko x:llä ominaisuus P(x)? Rajoitutaan tarkastelemaan ongelmia, joissa kaikilla relevanteilla x:illä on olemassa äärellinen esitys (merkkijonona), josta tuon x:n voi lukea. Määritellään ominaisuutta vastaava kieli L(P) = { x Σ P(x) }. Päätösongelma onko x:llä ominaisuus P(x) voidaan siten muotoilla muotoon: Kuuluuko merkkijono x kieleen L(P)?
Esimerkkejä päätösongelmista Sopiiko merkkijono w säännölliseen lausekkeeseen s? Onko jono (w 1,..., w n ) aakkosjärjestyksessä? Onko lauselogiikan kaava ϕ tautologia? Onko predikaattilogiikan kaava ϕ tautologia? Onko laskettavasti lueteltava kieli A tyhjä? Pysähtyykö Turingin kone M syötteellä w?
Päätösongelman ratkeavuus Päätösongelma on puoliratkeava (engl. semidecidable), jos on olemassa Turingin kone M, joka tunnistaa sitä vastaavan kielen. toisin sanoen: jos sitä vastaava kieli on laskettavasti lueteltava Päätösongelma on ratkeava (engl. decidable), jos on olemassa Turingin kone M, joka ratkaisee sitä vastaavan kielen. toisin sanoen: jos sitä vastaava kieli on laskettava
Ratkeavia päätösongelmia Kuuluuko annettu merkkijono tiettyyn kontekstittomaan kieleen? Kuuluuko annettu merkkijono kieleen { a i b i c i i N }?
Turingin koneen tutkiminen Turingin koneella Joissakin tilanteissa voi olla hyvä pystyä antamaan Turingin koneelle syötteenä Turingin kone. Kone pitää kuitenkin ensiksi muuttaa Turingin koneen luettavaan muotoon eli merkkijonoksi. Yksinkertaisuuden vuoksi rajoitutaan TM:iin, joiden syötemerkistö on {0, 1}.
Turingin koneen binäärikoodaus 3 Olkoon M = ({q 0, q 1,..., q nq 1}, {0, 1}, {0, 1, 2,..., n Γ 1}, 2, δ, q 0, {q 1 }) standardimuotoinen Turingin kone, 2 jolla Numeroidaan suunnat: 0 = S, 1 = L, 2 = R. Koodataan tilasiirtymä δ(q i, j) = (q k, l, m ) binäärijonona w i,j = 0 i+1 10 j+1 10 k+1 10 l+1 10 m+1. M voidaan koodata binäärijonoksi w M = 111w 0,0 11 11w 0,nΓ 111 11w nq 1,n Γ 1111 (jättäen pois ne w i,j :t, joita ei ole määritelty). 2 Huomaa, että jokainen standardimuotoinen TM voidaan muuttaa tällaiseksi, kunhan tilat ja nauhamerkit numeroidaan sopivasti ja syöte muutetaan binäärikoodatuksi. 3 Korjattu luennon jälkeen. Korjaukset merkitty.
Merkintöjä Kaikilla k {0, 1} joille on olemassa M, jolle pätee k = w M, merkitään M k = M. Kaikilla k {0, 1} joille ei ole olemassa M, jolle pätisi k = w M, merkitään M k :lla TM:ää, joka hylkää kaikki syötteet.
Diagonaalikieli Lause Päätösongelma Onko k {0, 1} sellaisen TM:n M binäärikoodaus, joka ei hyväksy omaa koodaustaan? ei ole (puoli)ratkeava. Todistus...
Universaalikieli Lause Päätösongelma Onko merkkijono w tulkittavissa w = w M v, missä M on binäärikoodattu TM, joka hyväksyy syötteen v? on puoliratkeava mutta ei ratkeava. Huomautuksia Kyseistä ongelmaa vastaa ns. universaalikieli U = { kv v L(M k ) }. Turingin kone M, jolle pätee L(U) = M, on universaalikone. Universaalikone on Turingin koneen binääriesityksen (metasirkulaarinen) tulkki.
Universaalikone Tähän mennessä aina kun halutaan ratkaista uusi ongelma, on pitänyt luoda uusi Turingin kone Olisiko mahdollista luoda Turingin kone, joka saa tehtävänkuvauksen syötteenään? Sellaista sanotaan universaalikoneeksi. Universaalikoneen syöte on w M v, missä M on ongelmakuvauksena toimiva Turingin kone ja v on sille tarkoitettu syöte. Universaalikone sitten käyttäytyy kuten M syötteellä v. Se hylkää syötteet, jotka eivät ole tulkittavissa tuohon tapaan. Merkitään mielivaltaista universaalikonetta M U.
Eräs kolminauhainen universaalikone 1. Pysähdy ja hylkää syöte, jos sen alussa ei ole minkään Turingin koneen binäärikoodausta. 2. Kopioi syötteen loppuosa kakkosnauhalle käyttäen koodausta c j 0 j+1 1. 3. Kirjoita kolmosnauhalle merkki 0 ja siirrä kaikki lukupäät kunkin nauhan alkuun. 4. Olkoon 0 i+1 kolmosnauhan sisältö ja olkoon 0 j+1 1 kakkosnauhan lukupään kohdalla. 5. Etsi 1. nauhalta 110 i+1 10 j+1 10 k+1 10 l+1 10 m+1. 6. Jos ei löydy, pysähdy. Hyväksy joss i = 1. 7. Kirjoita kolmosnauhan alkuun 0 k+1. 8. Korvaa 0 j+1 1 nauhan 2 lukupään kohdalla 0 l+1 1:llä. 9. Jos m = 0, siirrä kakkosnauhan lukupää yksi koodattu merkki vasemmalle (m = 1) tai oikealle (m = 2). 10. Hyppää askeleeseen 4.
Mikään universaalikone ei pysähdy aina Taululla.