on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

ICS-C2000 Tietojenkäsittelyteoria

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

Säännöllisen kielen tunnistavat Turingin koneet

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

5.3 Ratkeavia ongelmia

Lisää pysähtymisaiheisia ongelmia

Rekursiiviset palautukset [HMU 9.3.1]

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Täydentäviä muistiinpanoja laskennan rajoista

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

2. Laskettavuusteoriaa

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

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

2. Laskettavuusteoriaa

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

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

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

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

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

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

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

Algoritmin määritelmä [Sipser luku 3.3]

1. Universaaleja laskennan malleja

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

6.1 Rekursiiviset palautukset

Turingin koneen laajennuksia

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

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

Muita vaativuusluokkia

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

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

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Ratkeavuus ja efektiivinen numeroituvuus

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

Laskennan teoria

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

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Kertausta 1. kurssikokeeseen

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

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

1. Universaaleja laskennan malleja

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

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

Output. Input Automaton

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:

Sisältö. ICS-C2000 Tietojenkäsittelyteoria. Kertausta edellisistä kerroista...

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

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

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

Muita universaaleja laskennan malleja

Entscheidungsproblem

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

ICS-C2000 Tietojenkäsittelyteoria

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Automaatit. Muodolliset kielet

10. Satunnaisalgoritmit

Luonnollisen päättelyn luotettavuus

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

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

Yhteydettömän kieliopin jäsennysongelma

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Muodolliset kieliopit

Säännöllisten kielten sulkeumaominaisuudet

Laskennan teoria

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


S BAB ABA A aas bba B bbs c

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

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

Laskennan teoria

Pinoautomaatit. Pois kontekstittomuudesta

Entscheidungsproblem

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

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

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

LUKU II HOMOLOGIA-ALGEBRAA. 1. Joukko-oppia

Transkriptio:

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti numeroituva. Lauseen 6.6 todistuksessa esitetystä universaalikoneesta on helppo muokata kone, joka syötteellä simuloi koneen M laskentaa syötteellä w ja pysähtyy hyväksyvään lopputilaan, jos ja vain jos simuloitu laskenta ylipäätään pysähtyy. Osoitetaan sitten, että kieli H ei ole rekursiivinen. Oletetaan nimittäin, että olisi H = L(M H ) jollakin totaalisella Turingin koneella M H. Oletetaan lisäksi, että kone M H pysähtyessään jättää nauhalle alkuperäisen syötteensä, mahdollisesti tyhjämerkeillä jatkettuna. Olkoon lauseen 6.6 todistuksessa konstruoitu universaalikone. Kielelle U voitaisiin nyt muodostaa totaalinen tunnistaja yhdistämällä koneet M H ja seuraavasti: M H Lauseen 6.7 mukaan tällaista kielen U tunnistajakonetta ei kuitenkaan voi olla olemassa. Saatu ristiriita osoittaa, että H ei voi olla rekursiivinen. Seuraus 6.10 Kieli H = { M ei pysähdy syötteellä x} ei ole rekursiivisesti numeroituva. 6.7 Ricen lause Ricen lauseen mukaan kaikki Turingin koneiden tunnistamia kieliä, t. niiden laskemia I/O-kuvauksia koskevat epätriviaalit kysymykset ovat ratkeamattomia. Johdantona lauseen todistukseen tarkastellaan ensin yhtä sen erikoistapausta, Turingin koneiden tunnistamien kielten epätyhjyysongelmaa: Hyväksyykö annettu Turingin kone yhtään syötemerkkijonoa? Ongelman esitys formaalina kielenä on NE = {c {0,1} L(M c ) /0}. Lause 6.11 Kieli NE on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Todistus. Todetaan ensin, että kieli NE on rekursiivisesti numeroituva muodostamalla sille tunnistajakone M NE. Kone M NE on helpointa suunnitella epädeterministisenä. Olkoon M OK Turingin kone, joka testaa onko annettu syöte kelvollinen Turingin koneen koodi, ja olkoon M G epädeterministinen Turingin kone, joka kirjoittaa nauhalla jo olevan merkkijonon perään mielivaltaisen binäärijonon w. Kone M NE voidaan muodostaa yhdistämällä koneet M OK, M G ja universaalikone seuraavasti: c M OK M G cw c Selvästi on: M OK M G c L(M NE ) c on kelvollinen Tk-koodi ja w s.e. cw U c on kelvollinen Tk-koodi ja w s.e. w L(M c ) L(M c ) /0. cw Osoitetaan, ettei kieli NE ole rekursiivinen. Oletetaan, että kielellä NE olisi totaalinen tunnistajakone MNE T, ja muodostetaan sitä käyttäen totaalinen tunnistajakone MU T kielelle U. (Ristiriita.) Konstruktio perustuu syötteiden koodaamiseen Turingin koneiden ohjelmavakioiksi. Olkoon M mielivaltainen Turingin kone, jonka toimintaa syötteellä w = a 1 a 2...a k halutaan tutkia. Merkitään M w :llä konetta, joka aina korvaa todellisen syötteensä merkkijonolla w ja toimii sitten kuten M: Olkoon sitten M ENCODE Turingin kone, joka saa syötteenään mielivaltaisen Turingin koneen M koodista c M ja binäärijonosta w muodostuvan jonon ja jättää tuloksenaan nauhalle edellä kuvatun koneen M w koodin : M ENCODE a/a,l a/a 1,R a/a 2,R a/a k,r a/,l Koneen M w toiminta ei siis riipu lainkaan sen todellisesta syötteestä, vaan se joko hyväksyy tai hylkää kaikki merkkijonot, sen mukaan miten M suhtautuu w:hen: { {0,1} L(M w ) =, jos w L(M); /0, jos w / L(M). /,R M (Jos syöte ei ole muotoa cw, missä c on kelvollinen Turingin koneen koodi, kone M ENCODE päätyy hylkäävään lopputilaan.) Kone M ENCODE operoi siis Turingin koneiden koodeilla. Annetun koneen M koodiin se lisää siirtymäviisikoita ( konekäskyjä ) ja muuttaa tilojen numerointia siten, että koodi tulee koneen M sijaan esittämään konetta M w.

Universaalikielelle U voitaisiin nyt koneet M ENCODE ja hypoteettinen MNE T seuraavalla tavalla yhdistämällä muodostaa totaalinen tunnistajakone MU T : M ENCODE M T NE Kone MU T on totaalinen, jos MT NE on, ja L(MT U ) = U, koska: L(M T U ) L(MT NE ) = NE L(Mw ) /0 w L(M). Mutta kieli U ei ole rekursiivinen, joten tällainen totaalinen tunnistajakone MU T ei ole mahdollinen. Saadusta ristiriidasta päätellään, että myöskään kielellä NE ei voi olla totaalista tunnistajaa MNE T. Ricen lause Turingin koneiden semanttinen ominaisuus S on mikä tahansa kokoelma rekursiivisesti numeroituvia aakkoston {0, 1} kieliä; koneella M on ominaisuuss, jos L(M) S. Triviaalit ominaisuudet ovats = /0 (ominaisuus, jota ei ole millään koneella) jas = RE (ominaisuus, joka on kaikilla koneilla). Ominaisuus S on ratkeava, jos joukko codes(s ) = {c L(M c ) S } on rekursiivinen. Toisin sanoen: ominaisuus on ratkeava, jos annetusta Turingin koneen koodista voidaan algoritmisesti päätellä, onko koneella kysytty semanttinen ominaisuus. Lause 6.12 [Rice 1953] Kaikki Turingin koneiden epätriviaalit semanttiset ominaisuudet ovat ratkeamattomia. Todistus. Olkoon S mielivaltainen epätriviaali semanttinen ominaisuus. Voidaan olettaa, että /0 / S : toisin sanoen, että tyhjän joukon tunnistavilla Turingin koneilla ei ole tarkasteltavaa ominaisuutta. Jos nimittäin /0 S, voidaan ensin osoittaa, että ominaisuus S = RE S on ratkeamaton, ja päätellä edelleen tästä että myös ominaisuus S on ratkeamaton. (Koska codes( S ) = codes(s ).) KoskaS on epätriviaali, on olemassa jokin Turingin kone M A, jolla on ominaisuuss jolla siis L(M A ) /0 S. Olkoon nyt M ENCODE Turingin kone, joka muodostaa syötteenä w M start annetusta merkkijonosta M A seuraavanlaisen x Turingin koneen M w koodin. Jos syöte ei ole vaadittua muotoa, M ENCODE päätyy hylkäävään lopputilaan. Syötteellä x kone M w toimii ensin kuten M syötteellä w. Jos M hyväksyy w:n, M w toimii kuten kone M A syötteellä x. Jos M hylkää w:n, myös M w hylkää x:n. Kone M w tunnistaa siis kielen { L(M w L(MA ), jos w L(M); ) = /0, jos w / L(M). Koska oletuksen mukaan L(M A ) S ja /0 / S, on koneella M w ominaisuuss, jos ja vain jos w L(M).

Oletetaan sitten, että ominaisuus S olisi ratkeava, so. että kielellä codes(s ) olisi totaalinen tunnistajakone M T S. Tällöin saataisiin edellisen todistuksen tapaan totaalinen tunnistajakone kielelle U yhdistämällä koneet M ENCODE ja M T S seuraavasti: M ENCODE Selvästi kone M T U on totaalinen, jos MT S M T S on, ja L(M T U ) L(MT S ) = codes(s ) L(Mw ) S w L(M). Koska kieli U ei ole rekursiivinen, tämä on mahdotonta, mistä päätellään, ettei ominaisuus S voi olla ratkeava. 6.8 Muita ratkeamattomuustuloksia Lause 6.13 (Predikaattikalkyylin ratkeamattomuus; Church/Turing 1936) Ei ole olemassa algoritmia, joka ratkaisisi, onko annettu ensimmäisen kertaluvun predikaattikalkyylin kaava φ validi ( loogisesti tosi, todistuva predikaattikalkyylin aksioomista). Lause 6.14 ( Hilbertin 10. ongelma ; Matijasevitsh/Davis/Robinson/Putnam 1953 70) Ei ole olemassa algoritmia, joka ratkaisisi, onko annetulla kokonaislukukertoimisella polynomilla P(x 1,...,x n ) kokonaislukunollakohtia (so. jonoja (m 1,...,m n ) Z n, joilla P(m 1,...,m n ) = 0). Ongelma on ratkematon jo, kun n = 15 tai deg(p) = 4. Eräiden kielioppiongelmien ratkeavuus, kun annettuna on kieliopit G ja G Chomskyn hierarkian tietyltä tasolta i ja merkkijono w. Taulukossa R ratkeava, E ei ratkeava, T aina totta. Taso i: Ongelma: onko 3 2 1 0 w L(G)? R R R E L(G) = /0? R R E E L(G) = Σ? R E E E L(G) = L(G )? R E E E L(G) L(G )? R E E E L(G) L(G ) = /0? R E E E L(G) säännollinen? T E E E L(G) L(G ) tyyppiä i? T E T T L(G) tyyppiä i? T E T E 6.9 Rekursiiviset funktiot Turingin koneen M = (Q,Σ,Γ,δ,q 0,q acc,q rej ) laskema osittaiskuvaus (t. -funktio) f M : Σ Γ määritellään: { u, jos (q0,x) (q,uav) jollakin q {q acc,q rej },av Γ ; f M (x) = M määrittelemätön, muuten. Osittaisfunktio f : Σ A on osittaisrekursiivinen jos se voidaan laskea jollakin Turingin koneella ja (kokonais-)rekursiivinen, jos se voidaan laskea jollakin totaalisella Turingin koneella. Ekvivalentisti voitaisiin määritellä, että osittaisrekursiivifunktio f on rekursiivinen, jos sen arvo f(x) on määritelty kaikilla x.

Lause 6.15 (i) Kieli A Σ on rekursiivinen, jos ja vain jos sen karakteristinen funktio { 1, jos χ A : Σ x A; {0,1}, χ A (x) = 0, jos x / A on rekursiivinen funktio. (ii) Kieli A Σ on rekursiivisesti numeroituva, jos ja vain jos on A = /0 tai on olemassa rekursiivinen funktio g : {0,1} Σ, jolla A = {g(x) x {0,1} }. Todistus. HT.