TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. maaliskuuta 2012
Sisällys
Sisällys
Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on muotoa Onko x:llä ominaisuus P(x)? Rajoitutaan tarkastelemaan, joissa kaikilla relevanteilla x:illä on olemassa äärellinen esitys (merkkijonona). 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 rekursiivisesti 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 rekursiivisesti 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 rekursiivinen
Ratkeavia päätös 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 Olkoon M = (Q, {0, 1}, Γ,, δ, q 0, q yes, q no ) standardimuotoinen 1 Turingin kone. Numeroidaan tilat: q 1 = q yes q 2 = q no {q3,..., q Q 1 } = Q \ {q 0, q yes, q no } Numeroidaan nauhamerkit: {c 0,..., c Γ 1 } = Γ. Numeroidaan suunnat: 0 = L ja 1 = R. Koodataan tilasiirtymä δ(q i, c j ) = (q k, c 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 11w 0,1 11 11w 0, Γ 1 11 11w Q 3, Γ 1 111 Huomaa, että samalla koneella on useita binäärikoodauksia. Tällä ei ole jatkossa olennaista merkitystä. 1 Jos kone ei ole standardimuotoinen, se on ensiksi muutettava sellaiseksi.
Huomioita 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.
Sisällys
Universaalikieli Lause Päätösongelma Onko merkkijono w esitettävissä muodossa w = w M v, missä M on standardimallinen 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 tai RA-kone. Olisiko mahdollista luoda Turingin kone (tai RA-kone), joka saa tehtävänkuvauksen syötteenään? Sellaista sanotaan universaalikoneeksi. Tarkastellaan kysymystä Turingin koneiden näkökulmasta. 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. 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. 4. Siirrä kaikki lukupäät kunkin nauhan alkuun. 5. Olkoon 0 i+1 kolmosnauhan sisältö ja olkoon 0 j+1 1 kakkosnauhan lukupään kohdalla. 6. Jos i = 1, pysähdy ja hyväksy syöte. 7. Jos i = 2, pysähdy ja hylkää syöte. 8. Etsi 1. nauhalta 110 i+1 10 j+1 10 k+1 10 l+1 10 m+1. 9. Kirjoita kolmosnauhan alkuun 0 k+1. 10. Korvaa 0 j+1 1 nauhan 2 lukupään kohdalla 0 l+1 1:llä. 11. Siirrä kakkosnauhan lukupää yksi koodattu merkki vasemmalle (m = 0) tai oikealle (m = 1). 12. Hyppää askeleeseen 5.
Mikään universaalikone ei pysähdy aina Taululla.
Sisällys
Turingin koneiden pysähtymisongelma Lause Päätösongelma Pysähtyykö standardimallinen TM M syötteellä w? on puoliratkeava mutta ei ratkeava.
Epätyhjyysongelma Lause Päätösongelma Onko standardimallisen TM:n tunnistama kieli epätyhjä? on puoliratkeava mutta ei ratkeava.