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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

5.3 Ratkeavia ongelmia

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

Säännöllisen kielen tunnistavat Turingin koneet

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

2. Laskettavuusteoriaa

Rekursiiviset palautukset [HMU 9.3.1]

Täydentäviä muistiinpanoja laskennan rajoista

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

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

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.

Lisää pysähtymisaiheisia ongelmia

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

2. Laskettavuusteoriaa

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

1. Universaaleja laskennan malleja

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat kieliopit

Turingin koneen laajennuksia

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Algoritmin määritelmä [Sipser luku 3.3]

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

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

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

Kertausta 1. kurssikokeeseen

6.1 Rekursiiviset palautukset

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

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

Muita universaaleja laskennan malleja

Output. Input Automaton

Laskennan teoria

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

1. Universaaleja laskennan malleja

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

Pinoautomaatit. Pois kontekstittomuudesta

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

Ratkeavuus ja efektiivinen numeroituvuus

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Automaatit. Muodolliset kielet

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

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

Yhteydettömän kieliopin jäsennysongelma

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:

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

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

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

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

ICS-C2000 Tietojenkäsittelyteoria

Laskennan teoria

Säännöllisten kielten sulkeumaominaisuudet

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

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

Muita vaativuusluokkia

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Laskennan teoria


ICS-C2000 Tietojenkäsittelyteoria

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

S uay uvaxy uv 2 Ax 2 y... uv i Ax i y uv i wx i y.

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

Formalisoimme nyt edellä kuvatun laskennan.

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

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

ICS-C2000 Tietojenkäsittelyteoria

S BAB ABA A aas bba B bbs c

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

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

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

Laskennan teoria

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

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

Transkriptio:

6. LASKETTAVUUSTEORIAA Churchin Turingin teesi: Mielivaltainen (riittävän vahva) laskulaite Turingin kone. Laskettavuusteoria: Tarkastellaan mitä Turingin koneilla voi ja erityisesti mitä ei voi laskea. Tärkeä erottelu: Pysähtyvät ja ei-pysähtyvät Turingin koneet. Määritelmä 6.1 Turingin kone M = (Q, Σ, Γ, δ, q 0, q acc, q rej ) on totaalinen, jos se pysähtyy kaikilla syötteillä. Formaali kieli A on rekursiivisesti numeroituva, jos se voidaan tunnistaa jollakin Turingin koneella, ja rekursiivinen, jos se voidaan tunnistaa jollakin totaalisella Turingin koneella. Vaihtoehtoinen termistö: Palautetaan mieliin päätösongelmien (binäärivasteisten I/O-kuvausten) ja formaalien kielten vastaavuus: päätösongelmaa Π vastaava formaali kieli A Π koostuu niistä syötteistä x, joille ongelman Π vastaus on kyllä (so. toivottu vaste = 1). Päätösongelma Π on ratkeava, jos sitä vastaava formaali kieli A Π on rekursiivinen, ja osittain ratkeava, jos A Π on rekursiivisesti numeroituva. Ongelma, joka ei ole ratkeava, on ratkeamaton. (Huom.: ratkeamaton ongelma voi siis olla osittain ratkeava.) Toisin sanoen: päätösongelma on ratkeava, jos sillä on totaalinen, kaikilla syötteillä pysähtyvä ratkaisualgoritmi, ja osittain ratkeava, jos sillä on ratkaisualgoritmi joka kyllä -tapauksissa vastaa aina oikein, mutta ei -tapauksissa voi jäädä pysähtymättä. 6.2 Rekursiivisten ja rek. num. kielten perusominaisuuksia Lause 6.1 Olkoot A, B Σ rekursiivisia. Tällöin myös Ā = Σ A, A B ja A B ovat rekursiivisia. Todistus. (i) Olkoon totaalinen Turingin kone, jolla L( ) = A. Kielen Ā tunnistava totaalinen Turingin kone saadaan vaihtamalla :n hyväksyvä ja hylkäävä lopputila keskenään. (ii) Olkoot ja M B totaaliset Turingin koneet, joilla L( ) = A, L(M B ) = B. Kielen A B tunnistava totaalinen Turingin kone M saadaan yhdistämällä ja M B toimimaan peräkkäin: jos hyväksyy syötteen, myös M hyväksyy; jos päätyy hylkäämiseen, M simuloi vielä M B :tä. M B (iii) A B = Ā B.

Lause 6.2 Olkoot A, B Σ rekursiivisesti numeroituvia. Tällöin myös A B ja A B ovat rekursiivisesti numeroituvia. Todistus. A B kuten Lause 6.1 ja A B kuten Lause 6.3. (HT) Lause 6.3 Kieli A Σ on rekursiivinen, jos ja vain jos kielet A ja Ā ovat rekursiivisesti numeroituvia. Todistus. Väite vasemmalta oikealle seuraa lauseesta 6.1(i). Todistetaan väite oikealta vasemmalle. Olkoot ja MĀ Turingin koneet kielten A ja Ā tunnistamiseen. Kaikilla x Σ joko tai MĀ pysähtyy ja hyväksyy x:n. Muodostetaan ja MĀ rinnakkain yhdistämällä totaalinen kaksinauhainen tunnistajakone M: M simuloi ykkösnauhallaan konetta ja kakkosnauhallaan konetta MĀ. Jos ykkössimulaatio pysähtyy hyväksyvään lopputilaan, M hyväksyy syötteen; jos taas kakkossimulaatio hyväksyy, M hylkää syötteen. Seuraus 6.4 Olkoon A Σ rekursiivisesti numeroituva kieli, joka ei ole rekursiivinen. Tällöin kieli Ā ei ole rekursiivisesti numeroituva. M Ā 6.3 Turingin koneiden koodaus Tarkastellaan standardimallisia Turingin koneita, joiden syöteaakkosto on Σ = {0, 1}. Jokainen tällainen kone M = (Q, Σ, Γ, δ, q 0, q acc, q rej ) voidaan esittää binäärijonona: Oletetaan, että Q = {q 0, q 1,...,q n }, missä q acc = q n 1 ja q rej = q n ; ja että Γ {, } = {a 0, a 1,...,a m }, missä a 0 = 0, a 1 = 1, a 2 = ja a 3 =. Merkitään lisäksi 0 = L ja 1 = R. Siirtymäfunktion δ arvojen koodaus: säännön δ(q i, a j ) = (q r, a s, t ) koodi on Koko koneen M koodi on c ij = 0 10 10 r+1 10 s+1 10 t+1. c M = 111c 00 11c 01 11...11c 0m 11c 10 11...11c 1m 11...11c n 2,0 11...11c n 2,m 111. Kääntäen voidaan jokaiseen binäärijonoon c liittää jokin Turingin kone M c. Binäärijonoihin, jotka eivät ole edellisen koodauksen mukaisia Turingin koneiden koodeja, liitetään jokin triviaali, kaikki syötteet hylkäävä kone M triv. Määritellään siis: { kone M, jolla cm = c, jos c on kelvollinen konekoodi M c = kone M triv, muuten. Saadaan luettelo kaikista aakkoston {0, 1} Turingin koneista, ja epäsuorasti myös kaikista aakkoston {0, 1} rekursiivisesti numeroituvista kielistä. Koneet ovat kielet vastaavasti M ε, M 0, M 1, M 00, M 01,..., L(M ε ), L(M 0 ), L(M 1 ), L(M 00 ), L(M 01 ),... (indeksit kanonisessa järjestyksessä). Kukin kieli voi esiintyä luettelossa monta kertaa.

Eräs ei rekursiivisesti numeroituva kieli Lemma 6.5 Kieli D = {c {0, 1} c / L(M c )} ei ole rekursiivisesti numeroituva. Todistus. Oletetaan, että olisi D = L(M) jollakin standardimallisella Turingin koneella M. Olkoon d koneen M binäärikoodi, so. D = L(M d ). Tällöin on d D d / L(M d ) = D. Ristiriidasta seuraa, että kieli D ei voi olla rekursiivisesti numeroituva. Kieltä D vastaava päätösongelma: Onko niin, ettei annetun koodin c esittämä Turingin kone hyväksy syötettä c? Luontevampia esimerkkejä seuraa jatkossa. Kielen D muodostaminen kuvallisesti: jos kielten L(M ε ), L(M 0 ), L(M 1 ),... karakteristiset funktiot esitetään taulukkona, niin kieli D poikkeaa kustakin kielestä taulukon diagonaalilla: D L(M ε ) L(M 0 ) L(M 1 ) L(M 00 ) ε 0 1 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 00 0 0 0 0 1........ 6.4 Universaalit Turingin koneet Aakkoston {0, 1} universaalikieli U määritellään: U = {c M w w L(M)}. Olkoon A jokin aakkoston {0, 1} rekursiivisesti numeroituva kieli, ja olkoon M kielen A tunnistava standardimallinen Turingin kone. Tällöin on A = {w {0, 1} c M w U}. Myös kieli U on rekursiivisesti numeroituva. Kielen U tunnistavia Turingin koneita sanotaan universaaleiksi Turingin koneiksi. Lause 6.6 Kieli U on rekursiivisesti numeroituva. Todistus. Kielen U tunnistava universaalikone M U on helpointa kuvata kolmenauhaisena mallina. (Standardointi tavalliseen tapaan.) Laskennan aluksi tarkastettava syöte sijoitetaan koneen M U ykkösnauhan alkuun. Tämän jälkeen kone toimii seuraavasti: 1. Aluksi M U tarkastaa, että syöte on muotoa cw, missä c on kelvollinen Turingin koneen koodi. Jos syöte ei ole kelvollista muotoa, M U hylkää sen; muuten se kopioi merkkijonon w = a 1 a 2... a k {0, 1} kakkosnauhalle muodossa 00010 a 1+1 10 a 2+1 1... 10 a k+1 10000.

2. Jos syöte on muotoa cw, missä c = c M jollakin koneella M, M U :n on selvitettävä, hyväksyisikö kone M syötteen w. Tässä tarkoituksessa M U säilyttää ykkösnauhalla M:n kuvausta c, kakkosnauhalla simuloi M:n nauhaa, ja kolmosnauhalla säilyttää tietoa M:n simuloidusta tilasta muodossa q i 0 (aluksi siis M U kirjoittaa kolmosnauhalle tilan q 0 koodin 0). 3. Alkutoimien jälkeen M U toimii vaiheittain, simuloiden kussakin vaiheessa yhden koneen M siirtymän. Vaiheen aluksi M U etsii ykkösnauhalta M:n kuvauksesta kohdan, joka vastaa M:n simuloitua tilaa q i ja merkkiä a j. Olkoon ykkösnauhalla koodinkohta 0 10 10 r+1 10 s+1 10 t+1. Tällöin M U korvaa kolmosnauhalla merkkijonon 0 merkkijonolla 0 r+1, kakkosnauhalla merkkijonon 0 merkkijonolla 0 s+1, ja siirtää kakkosnauhan nauhapäätä yhden simuloidun merkin vasemmalle, jos t = 0, ja oikealle, jos t = 1. Jos ykkösnauhalla ei ole yhtään simuloituun tilaan q i liittyvää koodia, simuloitu kone M on tullut hyväksyvään tai hylkäävään lopputilaan; tällöin i = k + 1 tai i = k + 2, missä q k on viimeinen ykkösnauhalla kuvattu tila. Kone M U siirtyy vastaavasti lopputilaan q acc tai q rej. Lause 6.7 Kieli U ei ole rekursiivinen. Todistus. Oletetaan, että kielellä U olisi totaalinen tunnistajakone MU T. Tällöin voitaisiin Lemman 6.5 kielelle D muodostaa totaalinen tunnistajakone M D seuraavasti. Olkoon M OK totaalinen Turingin kone, joka testaa, onko syötteenä annettu merkkijono kelvollinen Turingin koneen koodi, ja olkoon M DUP totaalinen Turingin kone, joka muuntaa syötejonon c muotoon cc. Kone M D muodostetaan koneista M T U, M OK ja M DUP yhdistämällä seuraavan kaavion esittämällä tavalla: c M M cc M T U

Seuraus 6.8 Kieli c M M Selvästi kone M D on totaalinen, jos kone M T U cc M T U on, ja c L(M D ) c / L(M OK ) tai cc / L(M T U ) c / L(M c ) c D. Mutta lemman 6.5 mukaan kieli D ei ole rekursiivinen; ristiriita.. Ũ = {c M w w / L(M)} ei ole rekursiivisesti numeroituva. Todistus. Kieli Ũ on oleellisesti sama kuin universaalikielen U komplementti Ū; tarkasti ottaen on Ū = Ũ ERR, missä ERR on helposti tunnistettava rekursiivinen kieli ERR = {x {0, 1} x ei sisällä alkuosanaan kelvollista Turingin koneen koodia}. Jos siis kieli Ũ olisi rekursiivisesti numeroituva, olisi samoin myös kieli Ū. Koska kieli U on rekursiivisesti numeroituva, seuraisi tästä, että U on peräti rekursiivinen. Mutta tämä on vastoin edellisen lauseen tulosta, mistä päätellään, että kieli Ũ ei voi olla rekursiivisesti numeroituva.