TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 7. joulukuuta 2015
Sisällys
Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/ multimedia/imagegallery/places/e49-54. html Alan Turing pyrki muodostamaan täsmällisen määritelmän mekaaniselle laskennalle. taustalla Hilbertin Entscheidungsproblem A. M. Turing: On computable numbers, with an application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, Series 2, 42 (1), 1937. http://plms.oxfordjournals.org/ content/s2-42/1/230.extract
Standardimuotoisessa Turingin koneessa on Nauha (engl. tape), joka matkii ihmisen laskennassa käyttämää suttupaperia yksiulotteinen jaettu ruutuihin, kuhunkin mahtuu yksi merkki tilaa rajattomasti, mutta vain äärellinen määrä ruutuja voi olla kerralla käytössä merkitään nauhapaikan puuttuvaa merkkiä Nauhan lukupää, joka matkii ihmisen kykyä keskittyä vain rajalliseen määrään asioita kerrallaan ilmaisee, mitä nauhan ruutua tarkastellaan Äärellinen tilojen joukko, joka matkii ihmisen rajallista muistia alkutila kaksi lopputilaa: hyväksyvä ja hylkäävä Tilasiirtymätaulukko, joka matkii ihmisen käyttämää laskentakaavaa.
Käyttäytyminen Standardimuotoinen Turingin kone käynnistetään seuraavanlaisessa lähtötilanteessa: kone on alkutilassaan nauhalle on kirjoitettu syöte eikä mitään muuta. lukupää osoittaa nauhan alkuun Turingin koneen siirtymä määräytyy koneen tilan sekä lukupään kohdalla olevan merkin mukaan kirjoittaa jonkin merkin lukupään kohdalla olevaan ruutuun ja siirtää lukupäätä yhden askeleen vasemmalle tai oikealle Turingin kone pysähtyy (engl. halt), jos se päätyy lopputilaan. Hyväksynnän tai hylkäyksen voi lukea lopputilan valinnasta. Mahdollinen tuloste on nauhalla.
Esimerkki 0 a/a,r /,L a/a,r B/B,R /,L B/B,R C/C,R 1 6 b/b,r C/C,R c/c,r 2 b/b,r c/c,r /,L a/a,r A/A,R 5 4 c/c,l B/B,R C/C,L 3 B/B,L b/b,l a/a,l
Turingin koneen rakenne Määritelmä Kahdeksikko M = (Q, Σ, Γ,, δ, q 0, q yes, q no ) on (standarimuotoinen) Turingin kone (TM) (engl. Turing machine), jos seuraavat pätevät: Q on äärellinen joukko (tilat) Γ on äärellinen joukko (nauhamerkistö) Σ Γ on epätyhjä joukko (syötemerkistö) Γ \ Σ (blanko, tyhjämerkki) Q Γ = q 0 Q (alkutila) q yes Q (hyväksyvä lopputila) q no Q (hylkäävä lopputila) δ : Q Γ Q Γ {L, R} (siirtymäfunktio) jossa Q = Q \ {q yes, q no }
Tilanteet Merkintä wqv, jossa w, v Γ ja q Q, on tilanne (engl. configuration, instantaneous description). w on nauhan sisältö lukupään vasemmalla puolella v kuvaa nauhan sisällön lukupään kohdalta alkaen oikealle ääretön blankojen jono poislukien nauhan sisällön ajatellaan olevan wv q on koneen tämänhetkinen tila. Alkutilanne (engl. initial configuration) on q 0 w, jossa w Σ on koneelle annettu syöte.
Siirtymät Olkoot w, v, w, v, w, v Γ, q, q, q Q ja c, c, d Γ. Määritellään tilanteiden välinen relaatio seuraavasti: wqcv wc q v jos δ(q, c) = (q, c, R) wdqcv wq dc v jos δ(q, c) = (q, c, L) qcw q c w jos δ(q, c) = (q, c, L) wq wcq jos δ(q, ) = (q, c, R) wdq wq dc jos δ(q, ) = (q, c, L) q q c jos δ(q, ) = (q, c, L) Määritellään tilojen välinen relaatio kuten pinoautomaattien tapauksessa.
Lopputulokset Olkoon M = (Q, Σ, Γ,, δ, q 0, q yes, q no ) standardimuotoinen Turingin kone. M hyväksyy syötteen u Σ, jos pätee w, v Γ : q 0 u wq yes v M hylkää syötteen u Σ, jos pätee w, v Γ : q 0 u wq no v M pysähtyy syötteellä u Σ, jos se joko hyväksyy tai hylkää sen.
Turingin koneen kieli Olkoon M = (Q, Σ, Γ,, δ, q 0, q yes, q no ) standardimuotoinen Turingin kone. M tunnistaa (engl. recognizes) kielen { u Σ w, v Γ : q 0 u wq yes v } M ratkaisee (engl. decides) kielen A Σ, jos se tunnistaa A:n ja pysähtyy kaikilla syötteillä. Tällaista kieltä kutsutaan usein laskettavaksi tai rekursiiviseksi.
Esimerkki a/a,r B/B,R 0 a/a,r /,L /,L B/B,R C/C,R 1 6 b/b,r C/C,R c/c,r b/b,r a/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 b/b,l a/a,l Tarkastellaan konetta syötteellä aabbcc.
Huomioita Graafiesityksessä siirtymä q 1 c 1 /c 2, q 2 tarkoittaa siirtymää δ(q 1, c 1 ) = (q 2, c 2, ). Kaksoisympyröity, nimeämätön tila on q yes ; huomaa, että näitä on aina tasan yksi! Merkitsemättä jätetyt siirtymät tilasta q merkillä c ovat siirtymiä hylkäävään tilaan: δ(q, c) = (q no, c, R). Tarvittaessa siirtymä hylkäävään tilaan voidaan piirtää käyttämällä symbolia hylkäävän tilan q no merkkinä:
Ratkaisin vs laskin vs luetteloin Edellä asetettu Turingin koneiden määritelmä mahdollistaa vain niiden käyttämisen ratkaisimena (engl. decider): kone vastaa kyllä tai ei. Voidaan haluttaessa määritellä, että koneen nauhan sisältö lukupäästä vasemmalle, kun kone on pysähtynyt hyväkyvään tilaan, on koneen tuloste. Tällöin kone on laskin. Laskinta voidaan käyttää niinkin, että se käynnistetään uudestaan (alkutilasta mutta nauhaan tai nauhapäähän koskematta) kun se on pysähtynyt hyväksyvään tilaan. Kukin vastaus on luettavissa lukupäästä vasemmalle, kun kone on hyväksyvässä tilassa. Tällöin kone on luetteloin (engl. enumerator).
Eräs laskin-tm 1/1,R 1/1,R A 0/0,R B 0/0,R C 1/1,L F 1/,L E 1/,L D /,L 0/,R I,,L J 0/1,L G 0/,L 1/0,R H /,L 0/0,R 1/1,R Tarkastellaan syötettä 0111011.
Eräs luetteloin-tm A /1,R B
Mikä tahansa matemaattinen funktio, joka on ylipäätään mekaanisesti laskettavissa, on laskettavissa (standardimuotoisella) Turingin koneella.
Huomioita stä Väite ei ole matemaattisesti todistettavissa eikä kumottavissa. Käsitteellis-filosofinen kumoaminen lienee periaatteessa mahdollista osoittamalla jokin mekaaninen laskentamenetelmä, joka kykenee laskemaan sellaisia matemaattisia funktioita, joita TM ei kykene laskemaan. Väite rajoittuu vain matemaattisten funktioiden laskemiseen! Esimerkiksi interaktiiviseen toimintaan standardimuotoinen Turingin kone ei kykene.
Churchin Alonzo Church julkaisi oman määritelmänsä (λ-laskento) mekaaniselle laskettavuudelle muutama kuukausi ennen Turingia. Church ehdotti myös Gödelin rekursioteoriaa hieman laajennettuna mekaanisen laskettavuuden määritelmäksi. Turing todisti, että hänen ja Churchin määritelmät ovat yhtä vahvat. Turingin kone on intuitiivisesti vakuuttavin. 1 Mutta usein puhutaan Churchin stä: Jokainen mekaanisesti laskettavissa oleva matemaattinen funktio on laskettavissa yhtä lailla Turingin koneella, Churchin λ-laskennolla ja yleisrekursiivisilla funktioilla. 1 Intuitiivinen vakuuttavuus on varsin oleellista, kun täsmällinen todistus tai kumoaminen ei ole mahdollista!
Moniraitainen TM k-raitainen Turingin kone (k 1) on Turingin kone, jonka nauhan lokeroissa on k nauhamerkkiä (järjestettynä jonona) kussakin ja joka lukee tai kirjoittaa kaikki k merkkiä samanaikaisesti. Käynnistettäessä syöte on ensimmäisellä raidalla, muut raidat ovat tyhjiä. Erikoistapaus k = 1 on standardimuotoinen TM. Simulointi standardimuotoisella TM:llä on lähes triviaalia: jos Γ 1,..., Γ k on k-raitaisen TM:n raitakohtaiset nauhamerkistöt, simuloivan koneen nauhamerkistö on (Γ 1 Γ k ) Γ 1. Syöte pitää toki kopioida nauhalta ensimmäiseen raitaan ennen simuloinnin alkua. Moniraitainen TM on siis yhtä vahva kuin standardimuotoinen TM.
Moninauhainen TM k-nauhainen Turingin kone (k 1) on Turingin kone, jossa on k toisistaan riippumatonta nauhaa. Lukupäitä ei ole pakko liikuttaa siirtymässä. Erikoistapaus k = 1, jossa lukupäätä liikutetaan aina, on standardimuotoinen TM. Voidaan simuloida esimerkiksi 2k-raitaisella Turingin koneella, jossa raita 2i sisältää nauhan i sisällön ja jossa raita 2i + 1 sisältää merkin, joka kertoo, missä kohtaa nauhan i lukupää on. Moninauhainen TM on siis yhtä vahva kuin moniraitainen TM ja siis kuin standardimuotoinen TM.
Epädeterministinen TM Epädeterministinen Turingin kone on yksinauhainen ja yksiraitainen Turingin kone, jossa sallitaan useampi kuin yksi siirtymä samasta tilasta samalla nauhamerkillä. Jos on mahdollista valita siirtymät siten, että laskenta päättyy hyväksyvään tilaan, epädeterministinen Turingin kone hyväksyy syötteen. Standardimuotoinen TM on epädeterministisen TM:n erikoistapaus. Mitä luulet? Voidaanko epädeterminististä TM:ää simuloida standardimuotoisella TM:llä?
Epädeterministisen TM:n rakenne Määritelmä Kahdeksikko M = (Q, Σ, Γ,, δ, q 0, q yes, q no ) on epädeterministinen Turingin kone (TM) (engl. nondeterministic Turing machine), jos siirtymäfunktiolle pätee δ : Q Γ P(Q Γ {L, R}), jossa Q = Q \ {q yes, q no }, ja jos M täyttää muilta osin standardimuotoisen TM:n määritelmän.
Epädeterministisen TM:n käyttäytyminen Tilanteet määritellään kuten standardimuotoiselle TM:lle. Määritellään tilanteiden välinen relaatio seuraavasti: wqcv wc q v jos δ(q, c) (q, c, R) wdqcv wq dc v jos δ(q, c) (q, c, L) qcw q c w jos δ(q, c) (q, c, L) wq wcq jos δ(q, ) (q, c, R) wdq wq dc jos δ(q, ) (q, c, L) q q c jos δ(q, ) (q, c, L) Määritellään lisäksi normaaliin tapaan.
Epädeterministisen TM:n kielet M hyväksyy merkkijonon w Σ, jos on olemassa γ, γ Γ, joille q 0 w γq yes γ pätee. M hylkää merkkijonon w Σ, jos on olemassa γ, γ Γ, joille q 0 w γq no γ pätee. M:n tilanne γ 1 qγ 2 on hyväksyvästi (hylkäävästi) ratkeava, jos joko q = q yes (q = q no ) pätee tai kaikki tilanteet γ 1 q γ 2, joille pätee γ 1qγ 2 γ 1 q γ 2, ovat hyväksyvästi (hylkäävästi) ratkeavia. M ratkaisee merkkijonon w Σ, jos tilanne q 0 w on hyväksyvästi tai hylkäävästi ratkeava. M tunnistaa kielen, joka koostuu sen hyväksymistä merkkijonoista. M on ratkaisija eli ratkaisee tunnistamansa kielen, jos se ratkaisee kaikki merkkijonot.
Epädeterminismin simulointi Olkoon Q simuloitavan koneen tilojen joukko, Γ sen nauhamerkistö ja δ sen siirtymäfunktio. Olkoon n = max δ(q, c). q Q,c Γ Laaditaan kaikille i = 0,..., n 1 funktiot δ i siten, että kaikilla q Q, c Γ pätee δ(q, c) = n 1 i=0 δ i (q, c) ja kaikilla i = 0,..., n 1 pätee δ i (q, c) 1. Simuloiva TM on kolminauhainen. Ensimmäisellä pidetään syötettä. Toisella simuloidaan simuloitavan koneen nauhaa, alussa tyhjä. Kolmannella pidetään kirjaa tehtävistä valinnoista, alussa tyhjä.
Simuloivan koneen tilat Jokaista simuloitavan koneen tilaa vastaa jokin tietty simuloivan koneen tila. Lisäksi simuloivassa koneessa on aputiloja seuraavalla kalvolla esitettävän käyttäytymisen toteuttamiseksi. Simuloitavan koneen alku- ja lopputilat eivät ole simuloivan koneen alku- ja lopputiloja.
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.
Huomioita Epädeterministinen TM on siten yhtä vahva kuin standardimuotoinen TM. Koska TM:n variantit ovat yleensä yhtä vahvoja kuin standardimuotoinen TM, ei ole väliä, mitä TM:n varianttia käytetään.