Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Samankaltaiset tiedostot
Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Pinoautomaatit. Pois kontekstittomuudesta

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Rajoittamattomat kieliopit

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016

1. Universaaleja laskennan malleja

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015

Yhteydettömän kieliopin jäsennysongelma

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

Täydentäviä muistiinpanoja laskennan rajoista

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

Turingin koneen laajennuksia

uv n, v 1, ja uv i w A kaikilla

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Chomskyn hierarkia ja yhteysherkät kieliopit

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 9. lokakuuta 2016

M = (Q, Σ, Γ, δ, q 0, q acc, q rej )

Automaatit. Muodolliset kielet

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}

Lisää pysähtymisaiheisia ongelmia

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Säännöllisten operaattoreiden täydentäviä muistiinpanoja

Muita universaaleja laskennan malleja

Rajoittamattomat kieliopit (Unrestricted Grammars)

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

Entscheidungsproblem

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

5.3 Ratkeavia ongelmia

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

jäsentämisestä TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 27. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

Rekursiiviset palautukset [HMU 9.3.1]

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut

1. Universaaleja laskennan malleja

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Attribuuttikieliopit

DFA:n käyttäytyminen ja säännölliset kielet

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};

Säännöllisten kielten sulkeumaominaisuudet

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

Kertausta 1. kurssikokeeseen

2. Laskettavuusteoriaa

S BAB ABA A aas bba B bbs c

Entscheidungsproblem

ICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M :=

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013


Säännöllisen kielen tunnistavat Turingin koneet

ICS-C2000 Tietojenkäsittelyteoria

Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 29. huhtikuuta 2011

Algoritmin määritelmä [Sipser luku 3.3]

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 16. helmikuuta 2012

LR-jäsennys. Antti-Juhani Kaijanaho. 3. lokakuuta 2016

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. lokakuuta 2016

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

Formalisoimme nyt edellä kuvatun laskennan.

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Transkriptio:

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2. Määritellään sen merkkijonoille sanakirjajärjestys ( ) (Σ ) 2 seuraavasti: ε ε w < v w v w = v c < d cw dv w = v c = d w v cw dv kaikilla v, w Σ ja c, d Σ. 2 Epädeterministinen Turingin kone Määritellään täsmällisesti jatkoa varten: Määritelmä 2. Kahdeksikko M = (Q, Σ, Γ,, δ, q 0, q yes, q no ) on epädeterministinen Turingin kone (TM) (engl. Turing machine), jos seuraavat pätevät: Q on äärellinen joukko ( tilat) Γ on äärellinen joukko ( nauhamerkistö) TIEA241 Automaatit ja kieliopit, kevät 2012 1

Σ Γ 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 Γ P(Q Γ {L, R}) ( siirtymäfunktio), jossa Q = Q \ {q yes, q no }. M:n tilanteet ovat merkkijonot muotoa wqv, missä w, v Γ ja q Q. 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 lisäksi normaaliin tapaan. M hyväksyy merkkijonon w Σ, jos on olemassa γ, γ Γ, joille q 0 w γq yes γ pätee. M pysähtyy aina merkkijonolla w Σ, jos ei ole olemassa ääretöntä tilanteiden jonoa I 0, I 1, I 2,... Γ QΓ siten, että I 0 = q 0 w on voimassa ja kaikilla i N pätee I i I i+1. Jos M pysähtyy aina w:llä mutta ei hyväksy sitä, se hylkää sen. M:n tunnistama ja ratkaisema kieli määritellään normaaliin tapaan. Lause 3. Jokaiselle epädeterministiselle Turingin koneelle on olemassa standardimuotoinen Turingin kone, joka hyväksyy ja hylkää samat merkkijonot. Vastaavasti jokaiselle standardimuotoiselle Turingin koneelle on olemassa epädeterministinen Turingin kone, joka hyväksyy ja hylkää samat merkkijonot. Todistus. Sivuutetaan siltä osin kuin asiaa ei ole käsitelty kalvoilla. 2

3 Kieliopit Lause 4. Kieli on rekursiivisesti lueteltava, jos ja vain jos on olemassa Turingin kone, joka tunnistaa sen. Todistus. Rekursiivisesti lueteltavalla kielellä on olemassa yleinen kielioppi, joka tuottaa sen. Saman kielen tunnistaa epädeterministinen Turingin kone, joka toimii seuraavasti: Kone etsii nauhalta osamerkkijonoa w, jolle löytyy kieliopista produktio v w jollakin v. Kun sellainen osamerkkijono löytyy, se epädeterministisesti joko valitsee jonkin sellaisen produktion taikka jatkaa etsimistä. Valittuaan produktion v w se korvaa löytämänsä osamerkkijonon w merkkijonolla v. Kone hyväksyy syötteen, mikäli se päätyy tilanteeseen, jossa nauhalla on pelkästään kieliopin aloitussymboli. Tarkka konstruktio ja todistus sivuutetaan teknisesti työläänä. Tarkastellaan nyt standardimuotoista Turingin konetta, ja rakennetaan yleinen kielioppi, joka tuottaa koneen tunnistaman kielen. Kieliopin päätesymboleita ovat koneen syötemerkit. Välikesymboleita ovat ne koneen nauhamerkit, jotka eivät ole päätesymboleita, nauhamerkistön ulkopuoliset merkit T, B, E, I X ja Y, nauhamerkistön ulkopuolinen aloitusmerkki S sekä jokaiselle päätemerkille c nauhamerkistön ulkopuolinen merkki A c. Kieliopin produktiot ovat seuraavat. Ensiksi alustus, joka tuottaa merkkijonon wbq 0 we, missä w Σ : S IT BE T ca c T ca c A c c c A c A c B Bc Ic ci IB Bq 0 Sitten Turingin koneen siirtymiä vastaavat säännöt: qc c q jos δ(q, c) = (q, c, R) dqc q dc jos δ(q, c) = (q, c, L) Bqc Bq c jos δ(q, c) = (q, c, L) qe cq E jos δ(q, ) = (q, c, R) dqe q dce jos δ(q, ) = (q, c, L) 3

BqE Bq ce jos δ(q, ) = (q, c, L) Lopuksi siivoussäännöt, jotka muuttavat merkkijonon wbvq yes v E merkkijonoksi w: q yes XY cx X BX ε Y c Y Y E ε Produktiot, joissa esiintyy A c, c, c, d, q tai q toistetaan kaikilla c, c, d Σ ja q, q Q. Tarkempi todistus sivuutetaan. Todistus kontekstiselle kielelle sivuutetaan, koska se on osittain demotehtää. 4 While-kieli Se, että jokaiselle Turingin koneelle on while-kielinen ohjelma, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä, on johdettavissa seuraavista aputuloksista: Kertolasku ja jakolasku (sekä osamäärä että jakojäännös) on mahdollista toteuttaa while-kielellä. While-kielellä on mahdollista simuloida taulukkomuuttujaa, jonka alkion koko on rajoitettu. Olkoot taulukon alkiot a 0,..., a n 1, ja päteköön jokaiselle alkiolle 0 a i < m. Tällöin taulukko voidaan esittää lukumuuttujana, jonka arvo on n 1 a i m i. i=0 Turingin koneen nauhan sisältö (lukuunottamatta ääretöntä blankojonoa sen lopussa) on mahdollista esittää taulukkona. Jokaiselle while-kieliselle ohjelmalle on rakennettavissa Turingin kone, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä, seuraavilla periaatteilla: 4

Muokataan ohjelma ensiksi muotoon, jossa jokaisen laskutoimituksen tai vertailun tulos tallennetaan muuttujaan, ja operandeina esiintyy vain muuttujia. Käytetään k + 2-nauhaista Turingin konetta, missä k on ohjelmassa esiintyvien muuttujien määrä. Nauhalla 1 on (ja pysyy) syöte. Nauhalle k + 2 kirjoitetaan tuloste. Muilla nauhoilla pidetään yllä muuttujien arvoja. Ohjelmalogiikka koodataan sopivalla tavalla tilasiirtymiksi. 5 Kielihierarkia Seuraavassa taulukossa kullakin rivillä tarkoitettu kieli on sitä ylemmillä riveillä tarkoitettujen kielten osajoukko: Kieli Kielioppi Tunnistava automaatti Tunnistava ohjelmointikieli Rekursiivisesti lueteltava Yleinen Turingin kone While-kieli Rekursiivinen joka syötteellä pysähtyvä TM Primitiivirekursiivinen For-kieli Kontekstinen Kontekstinen lineaarirajoitettu TM Kontekstiton Kontekstiton epädeterministinen pinoautomaatti Deterministinen kontekstiton LR(1) deterministinen pinoautomaatti Yacc ym. LL(k) LL(k) Antlr ym. Säännöllinen Vasen/oikealineaarinen äärellinen säännölliset lausekkeet Tunnistus hyväksyvällä tilalla eikä pinon tyhjentämällä Jokaisella k N pätee LL(k) LL(k + 1). LL(0) ei ole mielenkiintoinen: se pystyy kuvaamaan vain kielet, joissa on enintään yksi merkkijono. 5