Lisää pysähtymisaiheisia ongelmia

Samankaltaiset tiedostot
Rekursiiviset palautukset [HMU 9.3.1]

2. Laskettavuusteoriaa

2. Laskettavuusteoriaa

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

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

Säännöllisen kielen tunnistavat Turingin koneet

Täydentäviä muistiinpanoja laskennan rajoista

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

1. Universaaleja laskennan malleja

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

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

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

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.

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

Turingin koneen laajennuksia

Laskennan teoria

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

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

Muita vaativuusluokkia

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Rajoittamattomat kieliopit

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

Laskennan teoria

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

1. Universaaleja laskennan malleja

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

Laskennan teoria

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Rajoittamattomat kieliopit (Unrestricted Grammars)

Chomskyn hierarkia ja yhteysherkät kieliopit

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

6.1 Rekursiiviset palautukset

Algoritmin määritelmä [Sipser luku 3.3]

Muita universaaleja laskennan malleja

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

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

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)

Yhteydettömän kieliopin jäsennysongelma

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

3. Laskennan vaativuusteoriaa

Ratkeavuus ja efektiivinen numeroituvuus

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

Pinoautomaatit. Pois kontekstittomuudesta

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

Laskennan teoria

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

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

Entscheidungsproblem

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

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

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2009

Output. Input Automaton

Laskennan teoria

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

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

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

Ei-yhteydettömät kielet [Sipser luku 2.3]

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

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

Miten osoitetaan joukot samoiksi?

811120P Diskreetit rakenteet

Automaatit. Muodolliset kielet


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

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

Entscheidungsproblem

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

Vieruskaverisi on tämän päivän luennolla työtoverisi. Jos sinulla ei ole vieruskaveria, siirry jonkun viereen. Esittäytykää toisillenne.

Matematiikan tukikurssi, kurssikerta 2

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

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

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

Transkriptio:

Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti H voidaan esittää muodossa H = H E missä E = { z { 0, 1 } n z ei ole w111x millään validilla koodilla w }. selvästi E rekursiivinen siis jos H olisi rekursiivisesti lueteltava, myös H = H E olisi H on rekursiivisesti lueteltava, joten jos H myös olisi, niin H olisi rekursiivinen; ristiriita. siis H ei voi olle rekursiivisesti lueteltava 97

Ohjelmointikielen pysähtymisongelma Turingin koneet ovat analogisia jollain ohjelmointikielellä kirjoitettujen ohjelmien kanssa: Turingin kone -formalismi jonkin ohjelmointikieli Turingin kone tällä kielellä kirjoitettu ohjelma Turingin koneen koodi ohjelma käännettynä konekielelle universaali Turingin kone konekielen tulkki joitain ohjelmointikielten ratkeamattomuustuloksia voidaan kätevästi osoittaa suoraan (kuten johdannossa C-kielen pysähtymisongelma) voidaan myös käyttää hyväksi Turingin koneiden ja minkä tahansa yleisohjelmointikielen samaa ilmaisuvoimaa ja siirtää tulokset Turingin koneista ohjelmointikieliin sama ilmaisuvoima tarkoittaa tässä, että mikä tahansa ongelma voida ratkaista Turingin koneella jos ja vain jos se voidaan ratkaista kyseisellä ohjelmointikielellä 98

Esimerkki: C-kielen pysähtymisongelma rajoitutaan tarkastelemaan C-kielen funktioita jotka saavat parametrinä yhden merkkijonon ja palauttavat 0 tai 1 elleivät jää silmukkaan sanotaan että tällainen funktio f hyväksyy merkkijonon x jos f(x) palauttaa 1, ja on totaalinen jos f(x) pysähtyy kaikilla x ollaan valmiit uskomaan, että kieli A voidaan tunnistaa (totaalisella) Turingin koneella jos ja vain jos se voidaan tunnistaa tällaisella (totaalisella) C-funktiolla tämän uskomuksen tarkka perusteleminen vaatisi tietysti C-kielen semantiikan tarkkaa läpikäymistä, mutta intuitiivisesti se on selvästi totta (vrt. RAM-malli) Halutaan osoittaa Turingin koneiden pysähtymisongelmalle analoginen tulos: mikään totaalinen C-funktio ei tunnista kieltä H C = { w x w on C-funktio joka syötteellä x pysähtyy } 99

Argumentti menee pääpiirtessään seuraavasti: koska C on yhtä ilmaisuvoimainen kuin Turingin koneet, voidaan Turingin koneiden universaalikieli L u tunnistaa jollain (ei-totaalisella) C-funktiolla univt siis kysymykset Turingin koneen M w toiminnasta syötteellä x palautuvat kysymyksiksi C-funktion univt toiminnasta syötteellä w111x. erityisesti jos jokin C-funktio halts ratkaisisi C-funktioiden pysähtymisongelman, niin tätä kautta se ratkaisisi myös Turingin koneiden pysähtymisongelman koska toisaalta Turingin koneet ovat yhtä ilmaisuvoimaisia kuin C-funktiot, funktiota halts voitaisiin simuloida Turingin koneella näin saataisiin ratkaistuksi Turingin koneiden pysähtymisongelma; ristiriita 100

Esitetään sama hieman yksityiskohtaisemmin. Vastaoletus siis on, että jokin totaalinen C-funktio haltsc ratkaisee C-kielen pysähtymisongelman. on olemassa C-funktio f u joka simuloi universaalia Turingin konetta U siis f u hyväksyy merkkijonon w111x jos ja vain jos x L(M w ) lisäksi f u syötteellä w111x pysähtyy jos ja vain jos M w syötteellä x pysähtyy olkoon haltst C-funktio joka syötteellä z tekee kutsun haltsc(p*z) missä p on funktion f u teksti siis haltst on totaalinen ja haltst(w111x) = 1 jos ja vain jos x L(M w ) on olemassa totaalinen Turingin kone joka simuloi funktiota haltst ja siis ratkaisee Turingin koneiden pysähtymisongelman; ristiriita 101

Rekursiiviset palautukset Yleiskäyttöinen työkalu ratkeamattomuusongelmien todistamiseen Idea: Määritellään laskennallisten ongelmien relaatio A B, ongelma A voidaan palauttaa ongelmaan B Intuitiivinen tulkinta: Kun A B niin B on ainakin yhtä vaikea kuin A ongelma A voidaan ratkaista ongelman B avulla Tyypillinen käyttötapa: Halutaan osoittaa ongelma B vaikeaksi. Osoitetaan A B jollain vaikeaksi tunnetulla A. Palautuksen käsite voidaan määritellä useilla idealtaan samansuuntaisilla mutta ei-yhtäpitävillä tavoilla. Tässä tarkasteltava palautustyyppi perustuu rekursiivisiin funktioihin. 102

Rekursiiviset funktiot Olkoon f osittaisfunktio joukosta Σ joukkoon Γ. Siis sallitaan että f(x) on määrittelemätön joillain x Σ. Turingin kone M laskee osittaisfunktion f, jos syötteellä x mikäli f(x) on määritelty, niin M pysähtyy, ja tällöin sen nauhalla on f(x) (ja tyhjämerkkejä) muuten M ei pysähdy Tällöin merkitään f = f M. Osittaisfunktio f: Σ Γ on osittaisrekursiivinen jos jokin Turingin kone laskee sen. Jos funktio on lisäksi totaalinen (eli määritelty koko joukossa Σ ), se on rekursiivinen. Jatkossa tarvitaan lähinnä totaalisia funktioita (ja yleensä funktio tarkoittaa totaalista funktioita). Osittaisrekursiiviset funktiot ovat kuitekin tärkeitä laskennan teoriassa. 103

Olkoot A Σ ja B Γ. Funktio f: Σ Γ on rekursiivinen palautus kielestä A kieleen B (eli kielen A rekursiivinen palautus kieleen B) jos f on rekursiivinen ja kaikilla x Σ pätee x A jos ja vain jos f(x) B. Tällöin merkitään f: A m B. Kieli A palautuu rekursiivisesti kieleen B jos on olemassa rekursiivinen palautus kielestä A kieleen B. Tällöin merkitään A m B. Lause: Olkoon A m B ja B rekursiivinen (rekursiivisesti lueteltava). Tällöin A on rekursiivinen (vast. rekursiivisesti lueteltava). Todistus: Helppo. 104

Oletetaan f: A m B. Idea: jos ongelmalla x B? on ratkaisualgoritmi, niin saamme heti algoritmin myös ongelmalla x A? : 1. laske y = f(x) 2. ratkaise y B? Mutta: Tässä määritelty palautuksen käsite m ei suinkaan ole ainoa mahdollinen. Voitaisiin esim. sallia laskennan aikana useampi kuin yksi muotoa y B? -tyyppinen kysymys. Siis A m B on vahvempi väite kuin pelkästään että A voidaan ratkaista B:n avulla. On olemassa muita palautuksen käsitteitä joita ei kuitenkaan tällä kurssilla käsitellä. (Alaindeksi m tulee termistä many-one, koska tässä sallitaan sama arvo f(x) = f(y) eri alkioille x y.) 105

B A fa A fa B Σ Γ Periaatekuva palautuksesta f: A m B 106

Epätyhjyysongelma Esimerkkinä palautustekniikasta, ja johdatuksena yleisempään Ricen lauseeseen, tarkastellaan kieltä L ne = { w { 0, 1 } L(M w ) }. Ongelmana on siis päättää annetusta Turingin koneesta, hyväksyykö se ylipäänsä mitään merkkijonoja. Lause: Kieli L ne on rekursiivisesti lueteltava mutta ei rekursiivinen. Todistus Kiinnostavampi puoli väitteestä on ei-rekursiivisuus, mutta tarkastetaan kuitenkin ensin rekursiivinen lueteltavuus. Tämä käy helpoimmin konstruoimalla epädeterministinen Turingin kone M jolle L ne = L(M). 107

Koneen M laskenta etenee seuraavasti: 1. Kirjoita nauhalle syötteen w jatkoksi 111 ja epädeterministisesti generoitu mielivaltainen x { 0, 1 }. 2. Palaa nauhan alkuun ja simuloi universaalikonetta U syötteellä w111x. Nyt w L ne x L(M w ) jollain x { 0, 1 } w111x L(U) jollain x { 0, 1 } w L(M). /2 108

Ei-rekursiivisuus osoitetaan palautuksella universaalikielestä L u. siis muodostetaan funktio f jolle f(z) L ne jos ja vain jos z L u lisäksi funktio f on rekursiivinen. nyt f: L u m L ne, joten jos L ne olisi rekursiivinen niin myös L u olisi; ristiriita. Funktion f pitää siis annetulla syötteellä z = w111x muodostaa Turingin kone M (tai oikeastaan sen koodi) siten, että jos x L(M w ) niin M ei hyväksy yhtään merkkijonoa jos x L(M w ) niin M hyväksyy ainakin jonkin merkkijonon tässä itse asiassa käy niin että jos x L(M w ) niin M hyväksyy kaikki merkkijonot 109

Tarkastellaan jotain kiinteää z = w111x. Syötteellä y kone M toimii seuraavasti: Pyyhi syöte y pois nauhalta; nauha on nyt tyhjä. Kopioi nauhalle merkkijono x; palauta nauhapää alkuun. Simuloi konetta M w. Konstruktion perusteella on ilmeistä että jos w111x L u niin L(M) = Σ jos w111x L u niin L(M) = Siis jos on olemassa rekursiivinen funktio joka syötteellä z tuottaa koodin v siten, että kone M v toimii kuten M yllä, todistus on valmis. 110

Tarkastellaan nyt tarkemmin, millaisia tiloja ja siirtymiä ylläkuvatussa koneessa M = M v pitäisi olla. Olkoon z = w111x missä x = x 1... x n. pohjana toimii kone M w lisätään alkutilaksi uusi tila ˆq 0, jossa kone kirjoittaa nauhalle tyhjää niin kauan kuin ei-tyhjämerkkejä riittää. Kun tulee vastaan tyhjä, siirrytään uuteen tilaan ˆq 1. lisätään tilat ˆq i, i = 1,..., n, missä tilassa ˆq i, 1 i n 1, kone kirjoittaa merkin x i, siirtyy tilaan ˆq i+1 ja siirtää nauhapäätä oikealla. tilasta ˆq n siirrytään uuteen tilaan ˆq n+1 jossa kone siirtää nauhapäätä takaisin vasemmalle kunnes taas löytyy tyhjämerkki tilasta ˆq n+1 siirrytään alkuperäisen koneen M w alkutilaan siirtymät koneen M w alkuperäisten tilojen välillä säilyvät ennallaan, samoin lopputilat 111

selvästi yllä kuvattu M = M v toimii kuten väitetään palautus on nyt funktio f joka laskee syötteen z = w111x perusteella koodin v ylläkuvatulle koneelle on intuitiivisesti selvää että tämä f voidaan laskea Turingin koneella. Siis f: L u m L ne ; kieli L ne ei ole rekursiivinen. 112