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

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

Säännöllisen kielen tunnistavat Turingin koneet

5.3 Ratkeavia ongelmia

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Täydentäviä muistiinpanoja laskennan rajoista

2. Laskettavuusteoriaa

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

2. Laskettavuusteoriaa

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Rekursiiviset palautukset [HMU 9.3.1]

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

Lisää pysähtymisaiheisia ongelmia

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

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.

Algoritmin määritelmä [Sipser luku 3.3]

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Turingin koneen laajennuksia

1. Universaaleja laskennan malleja

Muita vaativuusluokkia

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

7. Aikavaativuus. Ohjelmistotekniikan laitos OHJ-2300 Johdatus tietojenkäsittelyteoriaan, syksy

6.1 Rekursiiviset palautukset

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

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

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

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

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

Automaatit. Muodolliset kielet

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

1. Universaaleja laskennan malleja

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

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

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

Ratkeavuus ja efektiivinen numeroituvuus

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

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:

Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen.

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Kertausta 1. kurssikokeeseen

Miten osoitetaan joukot samoiksi?

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

ICS-C2000 Tietojenkäsittelyteoria

3SAT-ongelman NP-täydellisyys [HMU ]

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

Pinoautomaatit. Pois kontekstittomuudesta

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

Laskennan teoria

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

3. Laskennan vaativuusteoriaa

= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko

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 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

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

Yhteydettömän kieliopin jäsennysongelma

10. Satunnaisalgoritmit

MS-C1340 Lineaarialgebra ja

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

1 Lukujen jaollisuudesta

Laskennan teoria

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

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

Determinantti 1 / 30

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

Rajoittamattomat kieliopit

Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan


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

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

Transkriptio:

135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren määräämiseksi Nykyisin tiedämme tämän ongelman olevan algoritmisesti ratkeamattoman Ilman täsmällistä määritelmää on mahdollista esittää algoritmeja, muttei osoittaa niiden olemassaoloa mahdottomaksi Vasta 1970 Matijasevi osoitti, ettei ole olemassa algoritmia sen testaamiseksi, onko polynomilla kokonaislukujuuri 136 Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri } Jos ajatellaan vain yhden muuttujan polynomeja, niin on helppo nähdä, kuinka kieli D voidaan tunnistaa Ainoan muuttujan oikean arvon löytämiseksi käydään sen mahdolliset kokonaislukuarvot läpi 0, 1, -1, 2, -2, 3, -3, Jos polynomin arvoksi tulee 0 millä tahansa tutkitulla muuttujan arvolla, niin syöte hyväksytään Vastaavasti voidaan toimia, kun muuttujia on useita 1

137 Yhden muuttujan polynomeilla juurien pitää olla välillä ±k(c max / c 1 ), missä k on polynomin termien lukumäärä, c max on itseisarvoltaan suurin kerroin ja c 1 on korkea-asteisimman termin kerroin Jos juurta ei löydy näiden rajojen puitteissa, niin Turingin kone voi hylätä syötteen Matijasevi 'n todistus osoittaa, ettei monen muuttujan polynomeille voi laskea vastaavia rajoja Kieli D on siis Turingin koneella tunnistettavissa, muttei ratkaistavissa (voi jäädä pysähtymättä) 138 5. Laskettavuusteoriaa Tarkastellaan ongelmien algoritmista ratkeavuutta S.o. ratkeavuutta Turingin koneilla Erotamme tapaukset, joissa formaalit kielet ovat tunnistettavissa jollain Turingin koneella, ja ne, joissa koneen vaaditaan pysähtyvän kaikilla syötteillä Osoittautuu, että on monia luonnollisia ja mielenkiintoisia ongelmia, joita ei voida ratkaista Turingin koneilla. Näin ollen Churchin-Turingin teesin perusteella nämä ongelmat ovat myös tietokoneilla ratkeamattomia! 2

139 Määritelmä Turingin kone on totaalinen, jos se pysähtyy kaikilla syötteillä. Formaali kieli on rekursiivisesti lueteltava (RE-kieli, Turingtunnistettava), jos se voidaan tunnistaa jollakin Turingin koneella. Formaali kieli on rekursiivinen (ratkeava), jos se voidaan tunnistaa jollakin totaalisella Turingin koneella. Kieltä A vastaava päätösongelma on ratkeava, jos A on rekursiivinen. Ongelma, joka ei ole ratkeava, on ratkeamaton Kieltä A vastaava päätösongelma on osittain ratkeava, jos A on RE-kieli Huom.: ratkeamaton ongelma voi olla osittain ratkeava. 5.1 Rekursiivisten ja RE-kielten perusominaisuuksia 140 Lause 5.1 Olkoot A, B * rekursiivisia kieliä. Tällöin myös kielet 1. = * \ A, 2.A Bja 3.A B ovat rekursiivisia. Todistus. 1. Olk. M A kielen A tunnistava totaalinen Turingin kone. Vaihtamalla M A :n hylkäävä ja hyväksyvä lopputila keskenään saadaan totaalinen Turingin kone, joka tunnistaa kielen. 3

141 M A Kielen A komplementin tunnistajakone 142 2. Olkoot M A ja M B kielet A ja B tunnistavat totaaliset Turingin koneet. Yhdistetään koneet siten, että ensin tarkastetaan hyväksyykö M A syötteen. Jos hyväksyy, niin yhdistetty konekin hyväksyy. Jos M A hylkää syötteen, niin se annetaan edelleen koneen M B tarkastettavaksi. Tässä tapauksessa M B tekee lopullisen päätöksen. M A :n tulee antaa M B :lle alkuperäinen syöte. Selvästi yhdistetty kone on totaalinen ja hyväksyy kielen A B = { x * x A x B } 3. (A B):n rekursiivisuus seuraa edellisistä kohdista, sillä A B A B 4

143 Kielten A ja B yhdisteen tunnistajakone: M A M B 144 Lause 5.2 Olkoot A, B * RE-kieliä. Tällöin myös kielet A B ja A B ovat RE-kieliä. Todistus. Laskuharjoitukset. Lauseen 5.3 seurauksena pätee seuraava tulos: Lause 5.4 Olkoon A * RE-kieli, joka ei ole rekursiivinen. Tällöin ei ole RE-kieli. 5

145 Lause 5.3 Kieli A * on rekursiivinen A ja ovat RE-kieliä. Todistus. Jos A on rekursiivinen, niin se on myös RE-kieli. Lauseen 5.1(1) perusteella sama pätee myös :lle. Olkoot M A ja M kielet A ja tunnistavat Turingin koneet. Kaikilla x * pätee joko x A tai x. Siis joko kone M A tai M pysähtyy syötteellä x. Yhdistämällä koneet M A ja M rinnakkain toimiviksi saadaan A:lle totaalinen tunnistajakone. 146 Totaalinen Turingin kone Kielen A tunnistamiseksi: M A M 6

147 5.2 Turingin koneiden koodaus Standardimallinen Turingin kone M =(Q,,,, q 0,accept,reject), missä = { 0, 1 }, voidaan esittää binäärijonona seuraavasti: Q = { q 0, q 1,, q n }, missä q n-1 =accept ja q n =reject ={a 0,a 1,, a m }, missä a 0 = 0, a 1 = 1, a 2 = Merk. 0 = L ja 1 = R Siirtymäfunktion säännön (q i, a j ) = (q r, a s, t ) koodi on c ij = 0 i+1 10 j+1 10 r+1 10 s+1 10 t+1 148 Koko koneen M koodi M on 111c 00 11c 01 11 11c 0m 11c 10 11 11c n-2, 0 11 11c n-2, m 111 Esim. seuraavan koneen koodi on M 1110101001010011010010000100100 111 ( q0, 0) ( q1,0, R) ( q0, 1) ( q3,1, R) Näin ollen jokaisella aakkoston { 0, 1 } jonkin kielen tunnistavalla standardimallisella Turingin koneella M on siis binäärikoodi M Toisaalta jokaiseen binäärijonoon c voidaan liittää jokin Turingin kone M c 7

149 Kielen { 0 2k k 0 } tunnistava Turingin kone: 0 / 0, R q 0 0 / 0, R q 1 /, L 1 / 1, R /, L 1 / 1, R (q 2 ) (q 3 ) 150 Kaikki binäärijonot eivät kuitenkaan ole Turingin koneiden koodeja Esimerkiksi 00, 011110, 111000111 ja 1110101010111 eivät ole edellisen koodauksen mukaisia Turingin koneiden koodeja Epäkelpoihin binäärijonoihin liitetään triviaali, kaikki syötteet hylkäävä kone M triv : M c M, M triv, jos c M on Turingin koneen M koodi muuten 8

151 Näin kaikki aakkoston { 0, 1 } Turingin koneet voidaan luetteloida: M, M 0, M 1, M 00, M 01, M 10, M 000, Samalla saadaan luettelointi aakkoston { 0, 1 } RE-kielille: L(M ), L(M 0 ), L(M 1 ), L(M 00 ), L(M 01 ), L(M 10 ), Kielet voivat esiintyä luettelossa useammin kuin kerran Nyt diagonalisointitekniikalla voidaan todistaa, ettei päätösongelmaa Hylkääkö annetun koodin c esittämä Turingin kone syötteen c? vastaava kieli D ole RE-kieli Näin ollen D:tä vastaava päätösongelma on ratkeamaton 152 Lemma 5.5 Kieli D = { c { 0, 1 }* c L(M c )}ei ole RE-kieli Todistus. Oletetaan, että D = L(M) jollakin standardimallisella Turingin koneella M. Olkoon d koneen M binäärikoodi. Siis D = L(M d ). Mutta nyt d D d L(M d ) = D. Tämä on ristiriita. Joten oletus ei pidä paikkaansa. Täten ei ole olemassa standardimallista Turingin konetta M s.e. D = L(M). Näin ollen D ei voi olla RE-kieli. 9