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

Samankaltaiset tiedostot
Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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.

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

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

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

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

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

Turingin koneen laajennuksia

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. 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

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

Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

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

1. Universaaleja laskennan malleja

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

Täydentäviä muistiinpanoja laskennan rajoista

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

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

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

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

Rajoittamattomat kieliopit

Yhteydettömän kieliopin jäsennysongelma

1. Universaaleja laskennan malleja

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Lisää pysähtymisaiheisia ongelmia

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

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

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

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

formalismeja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 15. joulukuuta 2015 TIETOTEKNIIKAN LAITOS

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

Rekursiiviset palautukset [HMU 9.3.1]

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

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

Automaatit. Muodolliset kielet

5.3 Ratkeavia ongelmia

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

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

2. Laskettavuusteoriaa

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

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

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

Säännöllisen kielen tunnistavat Turingin koneet

Algoritmin määritelmä [Sipser luku 3.3]

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

Tietojenkäsittelyteorian alkeet, osa 2

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

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

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

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

Entscheidungsproblem

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Entscheidungsproblem

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

S BAB ABA A aas bba B bbs c

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

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Kertausta 1. kurssikokeeseen

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

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

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

Muita universaaleja laskennan malleja

ICS-C2000 Tietojenkäsittelyteoria

Rajoittamattomat kieliopit (Unrestricted Grammars)

2. Laskettavuusteoriaa

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

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

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

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

Tietotekniikan valintakoe

Bayesin pelit. Kalle Siukola. MS-E2142 Optimointiopin seminaari: Peliteoria ja tekoäly

Esimerkki 1: Kahviautomaatti.

811120P Diskreetit rakenteet

Formalisoimme nyt edellä kuvatun laskennan.

6.1 Rekursiiviset palautukset

C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:

Transkriptio:

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

Sisällys

Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters h1 334 1 33 101 h2 168 2 26 67 h3 125 0 27 57 h4 178 0 14 55 h5 63 0 4 26 h6 44 2 2 19 h7 37 4 1 22 h8 15 1 2 11 h9 10 8 2 15 h10 22 11 2 16 h11 8 7 1 8 h12 4 0 0 3 h13 13 9 1 9 h14 8 6 0 12

Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 Tehty vähintään Opiskelijoita 20 % 46 40 % 8 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. 26 24 1 Vuoden 2015 data on demorukseja vastaavalla kurssiviikolla.

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 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ä Seitsikko M = (Q, Σ, Γ,, δ, q 0, F) on epädeterministinen Turingin kone (NTM) (engl. nondeterministic Turing machine), jos siirtymäfunktiolle pätee δ : Q Γ P(Q Γ {L, S, R}), jos M täyttää muilta osin standardimuotoisen TM:n määritelmän.

Epädeterministisen TM:n käyttäytyminen Tilanteet ja niiden samuus määritellään kuten standardimuotoiselle TM:lle. Määritellään tilanteiden välinen relaatio seuraavasti: wqcv wq c v jos δ(q, c) (q, c, S) wqcv wc q v jos δ(q, c) (q, c, R) wdqcv wq dc v jos δ(q, c) (q, c, L) Määritellään lisäksi normaaliin tapaan.

Epädeterministisen TM:n lopputulokset M pysähtyy tilajoukkoon { q Q v, u Γ, c Γ : q 0 w vqcu δ(q, c) = } syötteellä w Σ. M hyväksyy syötteen jos se pysähtyy tilajoukkoon Q ja Q F =. M hylkää syötteen jos se pysähtyy epätyhjään tilajoukkoon Q ja Q F =. M tunnistaa (engl. recognizes) kielen { u Σ M hyväksyy u:n } M ratkaisee (engl. decides) kielen A Σ, jos se tunnistaa A:n ja pysähtyy epätyhjään tilajoukkoon kaikilla syötteillä.

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ädeterministiset TM:t kykenevät siten tunnistamaan samat kielet kuin standardimuotoiset TM:t. Harjoitustehtäväksi jää osoittaa, että epädeterministiset TM:t kykenevät ratkaisemaan samat kielet kuin standardimuotoiset TM:t. Koska TM:n variantit ovat yleensä yhtä vahvoja kuin standardimuotoinen TM, ei ole väliä, mitä TM:n varianttia käytetään. Harjoitustehtäväksi: osoita, että jokaiselle yleiselle kieliopille on olemassa NTM, joka tunnistaa sen kielen Näin ollen: TM:n tunnistamat kielet ovat laskettavasti lueteltavia

While-kieli Määritelmä While-kielen ohjelmat noudattavat seuraavaa kontekstitonta kielioppia: S ε S S S x := E; x := read; write E; S if B {S} while B {S} B E = E E E E < E E E E > E B B B B B (B) E E + E E E c x (E) missä x on mielivaltaista muuttujannimeä ja c mielivaltaista kokonaislukuvakiota edustava päätemerkki.

Semanttisia huomioita Sivuutetaan tässä tarkka merkitysopin määrittely. Muuttujat sisältävät kokonaislukuja; lukualue ei ole rajattu. read lukee syötteestä yhden merkin, ja tallettaa sen koodin muuttujaan. Nolla tarkoittaa syötteen loppua write kirjoittaa tulosteeseen yhden merkin sen, jonka koodi on lausekkeen arvo. Jos lausekkeen arvo ei ole minkään merkin koodi, lause ei tee mitään. Ohjelma pysähtyy, kun ohjelman viimeinen lause on tullut loppuun suoritettua. Ohjelma tunnistimena: tulostetaan Y tai N ja pysähdytään. 2 2 Y ja N voisivat olla mikä tahansa muukin merkkipari. Olennaista on, että sovitaan, mitkä merkit tarkoittavat mitäkin.

While-ohjelmat ja Turingin koneet Huomaa Mikä tahansa tietokoneohjelma, joka laskee matemaattisen funktion, on periaatteessa esitettävissä myös while-kielellä. Lause Jokaiselle Turingin koneelle on olemassa while-kielinen ohjelma, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä. Vastaavasti jokaiselle while-kieliselle ohjelmalle on olemassa Turingin kone, joka tunnistaa saman kielen ja pysähtyy samoilla syötteillä. Todistus Tarkastellaan ideatasolla taululla, tarkka todistus sivuutetaan.

For-kieli Jos while-kielestä poistetaan while-lause ja sen tilalle laitetaan rajoitettu for-silmukka S for E {S} jonka toistokertojen määrä luetaan (silmukan suorituksen alkaessa) lausekkeen arvosta, saadaan for-kieli. Jokainen for-kielinen ohjelma voidaan muuntaa while-kieliseksi ohjelmaksi. On olemassa while-kielisiä ohjelmia, joita ei voi esittää for-kielellä!