ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

5.3 Ratkeavia ongelmia

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

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

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

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

Säännöllisen kielen tunnistavat Turingin koneet

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Rekursiiviset palautukset [HMU 9.3.1]

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

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

Täydentäviä muistiinpanoja laskennan rajoista

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

Lisää pysähtymisaiheisia ongelmia

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

1. Universaaleja laskennan malleja

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

2. Laskettavuusteoriaa

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

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

Turingin koneen laajennuksia

Rajoittamattomat kieliopit

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

ICS-C2000 Tietojenkäsittelyteoria

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

Miten osoitetaan joukot samoiksi?

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

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

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

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

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

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

Ratkeavuus ja efektiivinen numeroituvuus

Vaihtoehtoinen tapa määritellä funktioita f : N R on

2. Laskettavuusteoriaa

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

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

Chomskyn hierarkia ja yhteysherkät kieliopit

Automaatit. Muodolliset kielet

saadaan kvanttorien järjestystä vaihtamalla ehto Tarkoittaako tämä ehto mitään järkevää ja jos, niin mitä?

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, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Säännöllisten kielten sulkeumaominaisuudet

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Algoritmin määritelmä [Sipser luku 3.3]

Yhteydettömän kieliopin jäsennysongelma

saadaan kvanttorien järjestystä vaihtamalla ehto Tarkoittaako tämä ehto mitään järkevää ja jos, niin mitä?

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

ICS-C2000 Tietojenkäsittelyteoria

JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 3, MALLIRATKAISUT

Johdatus matemaattiseen päättelyyn

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

1. Universaaleja laskennan malleja

6.1 Rekursiiviset palautukset

Output. Input Automaton

Kertausta 1. kurssikokeeseen

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

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Muita vaativuusluokkia

d ) m d (I n ) = 2 d n d. Koska tämä pätee kaikilla

Laskennan teoria

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

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

Johdatus matematiikkaan

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

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

Injektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.

1. Esitä rekursiivinen määritelmä lukujonolle

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

3 Lukujonon raja-arvo

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

Johdatus diskreettiin matematiikkaan (syksy 2009) Harjoitus 3, ratkaisuja Janne Korhonen

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

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

Ensimmäinen induktioperiaate

Matematiikan ja tilastotieteen laitos Reaalianalyysi I Harjoitus Malliratkaisut (Sauli Lindberg)

Ensimmäinen induktioperiaate

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

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

8. Kieliopit ja kielet

Todista raja-arvon määritelmään perustuen seuraava lause: Jos lukujonolle a n pätee lima n = a ja lima n = b, niin a = b.

Analyysi 1. Harjoituksia lukuihin 1 3 / Syksy Osoita täsmällisesti perustellen, että joukko A = x 4 ei ole ylhäältä rajoitettu.

3 Lukujonon raja-arvo

Transkriptio:

ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla. Demonstraatiotehtävien ratkaisut D: Todista monisteen Lause 6.5: (i) Kieli A Σ on rekursiivinen, jos ja vain jos sen karakteristinen funktio { χ A : Σ jos x A {0,}, χ A (x) = 0 jos x / A on rekursiivinen funktio. (ii) Kieli A Σ on rekursiivisesti numeroituva jos ja vain jos A = /0 tai on olemassa rekursiivinen funktio g : {0,} Σ, jolla Ratkaisu: A = {g(x) x {0,} }. Määritellään aluksi viisi yksinkertaista apukonetta: kirjoittaa nauhalle merkin, siirtää lukupäätä askeleen oikealle ja pysähtyy. 0 kirjoittaa nauhalle merkin 0, siirtää lukupäätä askeleen oikealle ja pysähtyy ja pysähtyy. C tyhjentää koneen syötenauhan, palauttaa lukupään nauhan alkuun ja pysähtyy. NEXT lukee nauhalla olevan merkkijonon x Σ ja korvaa sen leksikografisesti seuraavalla merkkijonolla. Cmp i, j vertailee moninauhaisen Turingin koneen nauhoja i ja j keskenään ja hyväksyy syötteen mikäli niiden sisältö on sama. Koneet ovat yksinkertaisia, joten niitä ei esitetä tässä. (i) [ ] Olkoon kieli A Σ rekursiivinen. Tällöin on olemassa Turingin kone siten, että: M A = Q,Σ,Γ,δ,q 0,q acc,q rej w Σ : w L (q 0,w) M A (q acc,α) w / L (q 0,w) M A (q rej,α) ja

Muodostetaan Turingin kone M yhdistämällä kone M A koneisiin, 0 ja C seuraavaan tapaan: M A C q 0 C 0 Mikäli w L, niin kone M A päätyy hyväksyvään tilaan, minkä jälkeen M tyhjentää nauhan ja kirjoittaa nauhalle luvun. Muussa tapauksessa nauhalle kirjoitetaan 0. Koska A on rekursiivinen, { M A pysähtyy aina, joten myös M pysähtyy aina, joten M,w A laskee funktion χ(w) =, joka on kielen A karakteristinen funktio. 0,w / A [ ] Seuraavaksi oletetaan, että funktio χ(w) on rekursiivinen. Tällöin on olemassa Turingin kone M χ, joka laskee sen arvon. Määritelmän mukaan M χ pysähtyy aina, ja laskennan tulos kirjoitetaan nauhalle lukupään vasemmalle puolelle. Muodostetaan Turingin kone M seuraavaan tapaan: M χ x, x/l, /R 0, 0/R Nyt kone M hyväksyy merkkijonon w aina, kun χ(w) =, ja hylkää sen, kun χ(w) = 0. Näin ollen M tunnistaa kielen A totaalisesti, joten A on rekursiivinen. (ii) Halutaan todistaa väite: Kieli A Σ on rekursiivisesti numeroituva jos ja vain jos A = /0 tai on olemassa rekursiivinen funktio g : {0,} Σ, jolla A = {g(x) x {0,} } Mikäli A = /0, niin triviaalisti pätee, että A on rekursiivisesti nukmeroituva ja g(x) = 0 on vastaava rekursiivinen funktio. Jos annetut ehdot täyttävä funktio g on olemassa, niin on olemassa totaalinen Turingin kone M g, joka laskee g:n. Tästä voidaan helposti muodostaa kaksinauhainen kone Mg,2, joka laskee g:n mutta tallettaa tuloksen toiselle nauhalle ensimmäisen asemasta. Muodostetaan -nauhainen Turingin kone M A seuraavasti: 2

NEXT 2 Mg 2, Cmp, Kone saa syötteensä ensimmäisellä nauhalla, ja sitä ei enää missään vaiheessa muuteta. Varsinaisessa laskentasilmukassa kone M A korvaa 2. nauhalla olevan bittijonon x leksikografisesti seuraavalla bittijonolla y, minkä jälkeen lasketaan g(y) ja talletetaan tulos. nauhalle. Lopuksi vertaillaan. ja. nauhojen sisältö keskenään. Mikäli nauhojen sisältö on sama, syötemerkkijono hyväksytään, muuten palataan alkuun. [ ] Tarkastellaan merkkijonoa w A. Oletetaan, että annetut ehdot täyttävä rekursiivinen funktio g on olemassa. Tällöin w = g(x) jollain x = x x 2 x n, missä n on äärellinen. Koska millä tahansa äärellisen mittaisella merkkijonolla on vain äärellinen määrä edeltäjiä leksikografisessa järjestyksessä, generoi NEXT lopulta x:n, jolloin Mg 2, laskee kolmannelle nauhalle merkkijonon w, ja kone hyväksyy. Näin ollen M A tunnistaa kielen A, joten A on rekursiivisesti numeroituva. [ ] Seuraavaksi oletetaan, että A on rekursiivisesti numeroituva ja A /0. Tällöin on olemassa Turingin kone M A, joka tunnistaa A:n. Määritellään apukone M A,i, joka simuloi koneen M A toimintaa i:n askeleen ajan. Kone M A,i hyväksyy syötteen x mikäli M A hyväksyy sen käyttäen korkeintaan i askelta, muuten se hylkää sen. Huomataan, että kone M A,i on totaalinen, eli se pysähtyy aina. Funktio g rakennetaan koneen M A,i avulla. Kaikki syötteet x ja rajat i koodataan funktion c(x,i) = 0 x 0 i avulla bittijonoiksi pareittain. Funktiota g määriteltäessä valitaan jokin kiinnitetty merkkijono x 0 A, joka palautetaan aina kun M A,i ei pysähdy tai jos g:n syöte on väärää muotoa. Konstruktion perusajatuksena on käydä läpi kaikki mahdolliset M A :n syötteet lomitettuina: ensin ajetaan M A :ta yhden askeleen verran ensimmäisellä syötteellä, sitten kaksi askelta ensimmäisellä syötteellä, yksi askel toisella syötteellä, jne. Alla olevassa kuvassa on tämä havainnollistettu aakkostolle Σ = {a,b}: Tässä samaistetaan Σ :n merkkijonot luonnollisten lukujen kanssa tavanomaiseen tapaan käyttäen leksikografista järjestystä.

i 4 2 ε a b aa ab... Esitetään vielä lopuksi todistus formaalimmin: Määritellään funktio g : {0,} {0,} seuraavasti: { g x, w = 0 x 0 i ja M A,i (x) pysähtyy (w) = x 0, muulloin, missä x 0 A. Lopuksi määritellään funktio g(x) = d(g (x)), missä d on funktio, joka kuvaa bittijonon 0 x joukon Σ x:nteen alkioon leksikografisessa järjestyksessä. Funktion g (x) arvo voidaan laskea äärellisessä ajassa, koska M A,i (x) ei voi jäädä ikuiseen silmukkaan. Näin ollen g on rekursiivinen, joten myös g:kin on. Tässä vaiheessa on huomattava, että vaikka g on aina olemassa, niin sitä ei ole välttämättä mahdollista löytää, sillä sopivan alkion x 0 A etsiminen on yleisessä tapauksessa ratkeamaton ongelma. D2: (a) Osoita, että mikä tahansa päätösongelma, jolla on vain äärellisen monta mahdollista syötettä, on ratkeava. (b) Osoita, että päätösongelma esiintyykö luvun π desimaalikehitelmässä jossain kohden sata peräkkäistä nollaa on ratkeava. Mitä tulos kertoo (i) π:n desimaalikehitelmästä, (ii) ratkeavuuden ja ratkeamattomuuden käsitteistä? Ratkaisu: (a) Jos päätösongelmalla on vain äärellisen monta mahdollista syötettä, on mahdollista luoda Turingin kone, jonka tiloihin on suoraan koodattu kaikki mahdolliset syötevaihtoehdot, ja jokaisen syötteen kuuluminen/kuulumattomuus kieleen. Siispä tällaiselle kielelle on aina mahdollista luoda totaalinen Turing-kone ja kieli on ratkeava. (b) Päätösongelmalla: Esiintyykö luvun π desimaalikehitelmässä jossain kohden sata peräkkäistä nollaa? on vain yksi syöte, π, joten a-kohdan perusteella ongelma on ratkeava. 4

Ongelmaa hankaloittaa se, että luonnollinen tapa ratkaista se olisi laskea desimaalikehitelmää luku kerrallaan, ja tarkistaa löytyykö sataa peräkkäistä nollaa. Tämä laskenta ei kuitenkaan välttämättä pysähdy! Mikäli vaadittua määrää nollia ei löydy, jatkaa se ikuisesti π:n desimaalien tarkastamista. Niinpä tällä menetelmällä voidaan päätösongelma ratkaista vain osittain. Ongelmalla on kuitenkin vain yksi vastaus: π:ssä joko on sata peräkkäistä nollaa tai sitten siinä ei ole niitä. Näin ollen toinen seuraavista Turingin koneista ratkaisee ongelman: M y Yes M n No Kone M y hyväksyy syötteen ja kone M n hylkää sen. Valitettavasti ei voida sanoa, kumpi koneista on oikea (tosin M y vaikuttaa todennäköisemmältä). Kuten yllä nähdään, ratkeavuuden käsite on hyvin heikko. Ongelma voi olla teoreettisesti ratkeava, vaikka sitä ei käytännössä pystyttäisikään ratkaisemaan. 5