ICS-C2000 Tetojekästtelyteora Lueto 8: Turg koeet Aalto-ylopsto Perustetede korkeakoulu Tetotekka latos Kevät 2016 Alue ja aheet: Orpose pruju luvut 41 42, 61 Turg koede perusteet ouraset Turg koeet ja de smulot stadardmallslla koella oauhaset Turg koeet ja de smulot stadardmallslla koella Epädetermstset Turg koeet ja de smulot determstsllä Rekursvset ja rekursvsest umerotuvat kelet 2/60 Turg koeet 4 TURINGIN KONEET Ala Turg 1935 36 auha: T U R I N G auhapää: q2 ohjausykskkö: δ Turg koe o ku äärelle automaatt, jolla o käytössää auha utta koe vo srtää auhapäätä sekä okealle että vasemmalle Samo se vo pats lukea myös krjottaa auhapää kohdalla oleva merk Lsäks auha o okealle rajato Church Turg tees kä tahasa mekaasest ratkeava ogelma vodaa ratkasta Turg koeella 3/60 4/60
äärtelmä 41 Turg koe o setskko Turg koee kassa ekvvaletteja lasketamalleja: Gödel Kleee rekursvsest määrtellyt fuktot (1936), Church λ-kalkyyl (1936), Post (1936) ja arkov (1951) merkkjoomuuossysteemt, kakk ykyset ohjelmotkelet (ku must määrää e ole rajattu) Turg koeet ohjelmotkel mssä: = (Q,Σ,Γ,δ,q 0,q acc,q rej ), Q o koee tloje äärelle joukko; Σ o koee äärelle syöteaakkosto; Γ Σ o koee äärelle auha-aakkosto (ol että, / Γ); δ : (Q {q acc,q rej }) (Γ {, }) Q (Γ {, }) {L,R} o koee srtymäfukto; q 0 Q o koee alkutla (q 0 q acc ja q 0 q rej ); q acc Q o koee hyväksyvä ja q rej Q se hylkäävä lopputla (q rej q acc ) 5/60 6/60 Srtymäfukto arvo tulkta: δ(q,a) = (q,b, ) Ollessaa tlassa q ja lukessaa auhamerk (ta alku- ta loppumerk) a, koe srtyy tlaa q, krjottaa lukemaasa pakkaa merk b, ja srtää auhapäätä yhde merkkpaka verra suutaa (L left, R rght ) Lsäks sallttuja krjotettava merkkejä ja srtosuuta o rajotettu: Srtymäfukto arvo o aa määrttelemätö, ku q = q acc ta q = q rej Joutuessaa jompaa kumpaa ästä tlosta koe pysähtyy het Kaklle srtymlle δ(q,a) = (q,b, ) vaadtaa: jos a =, b = ja = R El auha alotusmerkkä e ylkrjoteta ekä srrytä se vasemmalle puolelle jos b =, a = El e krjoteta uusa auha alotusmerkkejä jos b =, a = ja = L El e krjoteta uusa auha lopetusmerkkejä (vaa e tulevat automaattset srryttäessä okealle auha krjottamattomaa osaa) 7/60 8/60
Koee tlae o elkko (q,u,a,v) Q Γ (Γ {ε}) Γ, mssä vo olla a = ε, mkäl myös u = ε ta v = ε Tulkta: koe o tlassa q, auha ssältö se alusta auhapää vasemmalle puolelle o u, auhapää kohdalla o merkk a ja auha ssältö auhapää okealta puolelta käytety osa loppuu o v ahdollsest o a = ε, jos auhapää sjatsee ava auha alussa ta se käytety osa lopussa Esmmäsessä tapauksessa ajatellaa, että koe havatsee merk ja tosessa tapauksessa merk Alkutlae syötteellä x = a 1 a 2 a o elkko (q 0,ε,a 1,a 2 a ) Tlaetta (q, u, a, v) merktää yleesä ykskertasemm (q,uav), ja alkutlaetta syötteellä x ykskertasest (q 0,x) Tlae (q,w) johtaa suoraa tlateesee (q,w ), merktää (q,w) (q,w ), jos jok seuraavsta ehdosta täyttyy: jos δ(q,a) = (q,b,r), (q,uacv) (q,ubcv); jos δ(q,a) = (q,b,l), (q,ucav) (q,ucbv); jos δ(q, ) = (q,,r), (q,εcv) (q,cv); jos δ(q, ) = (q,b,r), (q,uε) (q,ubε); jos δ(q, ) = (q,b,l), (q,ucε) (q,ucb); jos δ(q, ) = (q,,l), (q,ucε) (q,uc) mssä q,q Q, u,v Γ, a,b Γ ja c Γ {ε} Tlateet, jotka ovat muotoa (q acc,w) ta (q rej,w) evät johda mhkää muuhu tlateesee Nässä tlatessa koe pysähtyy 9/60 10/60 Tlae (q,w) johtaa tlateesee (q,w ), merktää (q,w) (q,w ), jos o olemassa tlaejoo (q 0,w 0 ), (q 1,w 1 ),, (q,w ), 0, ste että Kel {a 2k k 0} vodaa tustaa Turg koeella = ({q 0,q 1,q acc,q rej },{a},{a},δ,q 0,q acc,q rej ), (q,w) = (q 0,w 0 ) (q 1,w 1 ) (q,w ) = (q,w ) mssä Kaavoestys: Turg koe hyväksyy merkkjoo x Σ, jos (q 0,x) (q acc,w) jollak w Γ ; muute hylkää x: Koee tustama kel o: δ(q 0,a) = (q 1,a,R), δ(q 1,a) = (q 0,a,R), δ(q 0, ) = (q acc,,l), δ(q 1, ) = (q rej,,l) a/a, R a/a, R L() = {x Σ (q 0,x) (q acc,w) jollak w Γ } 11/60 12/60
a/a, R Kaavoestyksessä käytetyt merkät: q Tla q a/a, R q 0 Alkutla a/b, q q Hyväksyvä lopputla (qacc) Hylkäävä lopputla (q rej ) Tlasrtymä δ(q, a) = (q, b, ) Koee lasketa esmerkks syötteellä aaa eteee seuraavast: (q 0,aaa) (q 1,aaa) (q 0,aaa) (q 1,aaaε) (q rej,aaa) Koe pysähtyy tlassa q rej, jote aaa / L() (Huom: koska tämä koe va srtyy okealle ja joko hyväksyy ta hylkää syöttee lopussa, kyseessä o käytäöllsest katsoe äärelle automaatt) 13/60 14/60 (E-yhteydettömä) kele {a k b k c k k 0} tustava Turg koe: C/C, R a/a, R a/a, R b/b, R q 0 q 1 q 2 q 5 q 4 a/a, R A/A, R q 3 b/b, R C/C, R c/c, L C/C, L b/b, L B/B, L a/a, L Selkeyde vuoks e koee hylkäävää lopputlaa q rej ole tässä estetty eksplsttsest Tulkta o tällö, että kakk kaavosta puuttuvat kaaret johtavat tähä tlaa Koee lasketa syötteellä aabbcc: (q 0,aabbcc) (q 1,Aabbcc) (q 1,Aabbcc) (q 2,AaBbcc) (q 2,AaBbcc) (q 3,AaBbCc) (q 3,AaBbCc) (q 3,AaBbCc) (q 3,AaBbCc) (q 4,AaBbCc) (q 1,AABbCc) (q 1,AABbCc) (q 2,AABBCc) (q 2,AABBCc) (q 3,AABBCC) (q 3,AABBCC) (q 3,AABBCC) (q 3,AABBCC) (q 4,AABBCC) (q 5,AABBCC) (q 5,AABBCC) (q 5,AABBCC) (q 5,AABBCCε) (q acc,aabbcc) a/a, R a/a, R b/b, R q2 q5 q4 C/C, R a/a, R A/A, R q3 b/b, R C/C, R c/c, L C/C, L b/b, L B/B, L a/a, L 15/60 16/60
Koee lasketa syötteellä aabcbc: (q 0,aabcbc) (q 1,Aabcbc) (q 1,Aabcbc) (q 2,AaBCbc) (q 3,AaBCbc) (q 3,AaBCbc) (q 3,AaBCbc) (q 4,AaBCbc) (q 1,AABCbc) (q 1,AABCbc) (q rej,aabcbc) C/C, R a/a, R a/a, R b/b, R q2 q5 q4 a/a, R A/A, R q3 b/b, R C/C, R c/c, L C/C, L b/b, L B/B, L a/a, L Huom! Tustamsessa e vaadta koee pysähtymstä hylkäävää tlaa syöttellä, jotka evät kuulu kelee Turg koe, joka jää kusee slmukkaa jollak syöttellä: a/b,r b/a,r b/a,l a/b,l q2 c/c,r Lasketa syötteellä abc: (q 1,abc) (q 2,bbc) (q 1,bac) (q 2,aac) (q 1,abc) (q 2,bbc) (q 1,bac) (q 2,aac) acc 17/60 Koe tustaa aakkosto {a, b, c} kele, joka vodaa kuvata sääöllsellä lausekkeella (a b)c(a b c) 18/60 Turg koe, joka jää kusee slmukkaa ja käyttää määrättömäst auhaa jollak syöttellä: s1 a/b,r b/a,r /a,r s2 b/a,l a/b,l /a,l a/b,r b/a,r /a,r s3 c/c,r acc Turg koede laajeuksa Lasketa syötteellä a: (q 1,a) (q 2,bε) (q 3,baε) (q 1,baa) (q 2,bba) (q 3,bbbε) (q 1,bbba) (q 2,bbaa) (q 3,bbabε) (q 1,bbaba) 19/60 20/60
42 Turg koede laajeuksa Votasko saada velä vahvempa laskea malleja laajetamalla Turg koede määrtelmää uuslla omasuukslla? Vosmme esm salla useamma luku/krjotusauha ta epädetermsm (kute äärellsllä automaatella) Seuraavassa tutustutaa johk tälläs laajeuks ja äytetää, että kakk kelet, jotka laajeetulla automaatella pystytää tustamaa, vodaa tustaa myös alkuperäsllä Turg koella Church Turg tees kä tahasa mekaasest ratkeava laskealle ogelma vodaa ratkasta Turg koeella 1 ouraset koeet Salltaa, että Turg koee auha koostuu k:sta rakkasesta urasta, jotka kakk koe lukee ja krjottaa yhdessä lasketa-askeleessa A T L A U A T R N H I auhapää: Koee srtymäfukto arvot ovat tällö muotoa: I N S O N G δ(q,(a 1,,a k )) = (q,(b 1,,b k ), ), mssä a 1,,a k ovat urlta 1,,k luetut merkt, b 1,,b k de tlalle krjotettavat merkt, ja {L, R} o auhapää srtosuuta Laskea aluks tutkttava syöte sjotetaa ykkösura vasempaa lataa; mulle urlle tulee se kohdalle ertysä tyhjämerkkejä 21/60 22/60 Formaalst k-urae Turg koe o setskko = (Q,Σ,Γ,δ,q 0,q acc,q rej ), mssä muut kompoett ovat kute stadardmallssa, pats srtymäfukto: δ : (Q {q acc,q rej }) (Γ k {, }) Q (Γ k {, }) {L,R} Seuraajatlaerelaato, alkutla je määrtelmät ovat peä muutoksa lukuuottamatta samalaset ku stadardmallssa 2-urae Turg koe rewd, joka kelaa auhapää auha alkuu: (x, y)/(x, y), L /, R q 0 q 1 Lyheysmerktä (x,y)/(x,y),l tarkottaa kakka srtymä, mtkä saadaa korvaamalla muuttujat x ja y jollak auha-aakkosella 23/60 24/60
2-urae Turg koe succ, joka laskee uralla 1 oleva bäärumero (pe btt es) seuraaja uralle 2: (1, x)/(1, 0), R (1, x)/(1, 1), R (0, x)/(0, 0), R (0, x)/(0, 1), R (, x)/(, ), R q 0 q 1 q 4 (0, x)/(0, 1), R (x, y)/(x, ), L q 2 q 3 (, x)/(, 1), R Koee ( lasketa umerolla ) 3 10 = 011 2 (auhalla pe btt es): 1 1 0 q 0, ( ) 1 1 0 q 2, 0 ( ) 1 1 0 q 2, 0 0 ( ) 1 1 0 q 1, 0 0 1 ( ) 1 1 0 q 4, ε 0 0 1 (1, x)/(1, 0), R 25/60 26/60 2-uraste koede succ ja rewd peräkkä kytketä: succ ja sama laajeettua: (1, x)/(1, 0), R (1, x)/(1, 1), R (0, x)/(0, 0), R rewd (0, x)/(0, 1), R (, x)/(, ), R (0, x)/(0, 1), R (x, y)/(x, ), L (, x)/(, 1), R (x, y)/(x, y), L /, R Lause 41 Jos formaal kel L vodaa tustaa k-urasella Turg koeella, se vodaa tustaa myös stadardmallsella Turg koeella Todstus Olkoo = (Q,Σ,Γ,δ,q 0,q acc,q rej ) k-urae Turg koe, joka tustaa kele L Vastaava stadardmalle koe muodostetaa seuraavast: = ( Q,Σ, ˆΓ, ˆδ, ˆq 0,q acc,q rej ), mssä Q = Q {ˆq 0, ˆq 1, ˆq 2 }, ˆΓ = Σ Γ k ja kaklla q Q o [ ] [ ] a1 b1 ˆδ(q, ) = (q,, ), a k ku b k δ(q,(a 1,,a k )) = (q,(b 1,,b k ), ) (1, x)/(1, 0), R 27/60 28/60
2 oauhaset koeet Koee laskea aluks täytyy syötejoo ostaa ykkösuralle, so korvata auhalla merkkjoo a 1 a 2 a merkkjoolla a 1 a 2 Tätä operaatota varte ltetää :stä kopodu srtymäfukto osa alkuu velä pe esprosessor : x/ ˆq 0 x, R ˆq 1 x /, R a / x, L q 0 1 2 3 A L A N A T H I S O N T U R I N G δ q2 Salltaa, että Turg koeella o k tosstaa rppumatota auhaa, jolla o kullak oma auhapääsä Koe lukee ja krjottaa kakk auhat yhdessä lasketa-askelessa Laskea aluks syöte sjotetaa ykkösauha vasempaa lataa ja kakk auhapäät auhojesa alkuu 29/60 30/60 Tällase koee srtymäfukto arvot ovat muotoa δ(q,a 1,,a k ) = (q,(b 1, 1 ),,(b k, k )), mssä a 1,,a k ovat auholta 1,,k luetut merkt, b1,,b k de tlalle krjotettavat merkt, ja 1,, k {L,R,S} auhapäde srtosuuat (S el stay e srrä lukupäätä) Formaalst k-auhae Turg koe o setskko = (Q,Σ,Γ,δ,q 0,q acc,q rej ), mssä muut kompoett ovat kute stadardmallssa, pats srtymäfukto: δ : (Q {q acc,q rej }) (Γ {, }) k Q ((Γ {, }) {L,R,S}) k Seuraajatlaerelaato ym peruskästteet määrtellää pe muutoks etsee tapaa Kolmauhae Turg koe Rew2, joka srtää tose auha lukupää alkuu (e tee mtää mulle auholle): x,z,y/(x,s),(z,l),(y,s) whe z rew x,,y/(x,s),(,r),(y,s) acc Tässä x, y ja z ovat jällee lyheysmerktäparametreja ja esm srtymä x,z,y/(x,s),(z,l),(y,s) whe z kuvaa kakka mahdollsa srtymä, jotka saadaa korvaamalla x, y ja z mllä tahasa auhaaakkosella (pl tapaus z = ) 31/60 32/60
Kolmauhae koe 4Succ2, joka laskee auhalla 2 oleva ;- termodu 4-katase, vähte merktsevä umero es -estety, luvu seuraaja Koe tulee käystää tlateessa, jossa auha 2 lukupää o alussa ja se jättää lukupää johok kohtaa auhaa x,3,y/(x,s),(0,r),(y,s) x,0,y/(x,s),(1,s),(y,s) x,1,y/(x,s),(2,s),(y,s) x,2,y/(x,s),(3,s),(y,s) Koede 4Succ2 ja Rew2 peräkkä kytketä, joka laskee auhalla 2 oleva ;-termodu 4-katase, vähte merktsevä umero es - estety, luvu seuraaja ja srtää lukupää auha 2 alkuu Koe tulee käystää tlateessa, jossa auha 2 lukupää o alussa s x,;,y/(x,s),(1,r),(y,s) t x,z,y/(x,s),(;,s),(y,s) acc x,3,y/(x,s),(0,r),(y,s) x,0,y/(x,s),(1,s),(y,s) x,1,y/(x,s),(2,s),(y,s) x,2,y/(x,s),(3,s),(y,s) x,z,y/(x,s),(z,l),(y,s) whe z Esm luvu 33 4 (el 15 10 ) seuraaja 100 4 lasketa: abba abba abba s, 33; s, 03; s, 00; 111; 111; 111; abba acc, 001; 111; t, abba 001ε 111; x,;,y/(x,s),(1,r),(y,s) x,z,y/(x,s),(;,s),(y,s) x,,y/(x,s),(,r),(y,s) acc 33/60 34/60 Lause 42 Jos formaal kel L vodaa tustaa k-auhasella Turg koeella, se vodaa tustaa myös stadardmallsella Turg koeella Todstus Olkoo = (Q,Σ,Γ,δ,q 0,q acc,q rej ) k-auhae Turg koe, joka tustaa kele L Koetta vodaa smuloda 2k-urasella koeella ste, että koee parttomat urat 1,3,5,,2k 1 vastaavat : auhoja 1,2,,k, ja kutak partota uraa seuraavalla parllsella uralla o merkllä merktty vastaava auha auhapää sjat 1 2 3 4 5 6 A T L A U A T R δ H I q2 N I N S G O N Smulo aluks syötemerkkjoo sjotetaa ormaalst koee ykkösuralle Esmmäsessä srtymässää merktsee auhapääosottmet parllste ure esmmäs merkkpakkoh Tämä jälkee tom pyyhkmällä auhaa edestakas se alkuja loppumerk välllä Vasemmalta okealle pyyhkäsyllä kerää tedot kuk osottme kohdalla olevasta : auhamerkstä Ku kakk merkt ovat selvllä, smulo yhde : srtymä, ja takas okealta vasemmalle suutautuvalla pyyhkäsyllä krjottaa -osottme kohdalle asamukaset uudet merkt ja srtää osottma 35/60 36/60
3 Epädetermstset koeet Formaalst epädetermste Turg koe o setskko = (Q,Σ,Γ,δ,q 0,q acc,q rej ), mssä muut kompoett ovat kute determstsessä stadardmallssa, pats srtymäfukto: δ : (Q {q acc,q rej }) (Γ {, }) P (Q (Γ {, }) {L,R}) Srtymäfukto arvo δ(q,a) = {(q 1,b 1, 1 ),,(q k,b k, k )} tulkta o, että ollessaa tlassa q ja lukessaa merk a koe vo toma jok kolmko (q,b, ) mukasest Epädetermstse koee tlateet, tlaejohdot je määrtellää formaalst samo ku determstsek koee tapauksessa, pats että ehdo δ(q,a) = (q,b, ) sjaa krjotetaa (q,b, ) δ(q,a) Tämä muutokse taka seuraajatlaerelaato e ole eää yksarvoe: koee tlateella (q, w) vo yt olla useta vahtoehtosa seuraaja, so tlateta (q,w ), jolla (q,w) (q,w ) Koee tustama kel määrtellää: L() = {x Σ (q 0,x) (q acc,w) jollak w Γ } Epädetermstse koee tapauksessa ss merkkjoo x kuuluu : tustamaa kelee, jos jok : kelvolle tlaejoo johtaa alkutlateesta syötteellä x hyväksyvää lopputlateesee 37/60 38/60 Yhdstettyje lukuje tustame epädetermstsllä Turg koella E-egatve kokoasluku o yhdstetty, jos sllä o kokoaslukutekjät p,q 2, jolla pq = Luku, joka e ole yhdstetty, o alkuluku Oletetaa, että o jo suuteltu determste koe CHECK_ULT, joka tustaa kele L(CHECK_ULT) = {pq, p, q bäärlukuja, = pq} Olkoo lsäks GO_START determste Turg koe, joka srtää auhapää osottamaa auha esmmästä merkkä Olkoo edellee GEN_INT seuraava melvaltase ykköstä suuremma bäärluvu (ete merktsevä btt es) auha loppuu tuottava epädetermste Turg koe: 0/0, R 1/1, R /, R /1, R /0, R /0, R /1, R /1, R 39/60 40/60
Koee GEN_INT lasketoja syötteellä 0 : q 1,0 q 1,0ε q 2,0ε q 3,01ε Epädetermste Turg koe TEST_COPOSITE, joka tustaa kele L(TEST_COPOSITE) = { o bäärmuotoe yhdstetty luku} vodaa muodostaa ästä kompoetesta yhdstämällä: p pq pq q 4,010ε q 3,010ε q 4,011ε q 3,011ε GEN INT GEN INT GO START CHECK ULT q 4,0100ε q 3,0100ε q 4,0101ε q 3,0101ε Yhdstetty koe hyväksyy syötteeä aetu bäärluvu, jos ja va jos o olemassa bäärluvut p,q 2, jolla = pq ss jos ja va jos o yhdstetty luku 41/60 42/60 Huom Ylee kaavomerktä Turg koede yhdstämselle: Lause 43 Jos formaal kel L vodaa tustaa epädetermstsellä Turg koeella, se vodaa tustaa myös stadardmallsella determstsellä Turg koeella 1 Todstus (dea) Olkoo 0 = (Q,Σ,Γ,δ,q 0,q acc,q rej ) 2 epädetermste Turg koe, joka tustaa kele L Koetta vodaa smuloda kolmeauhasella determstsellä koeella, joka käy systemaattsest läp : mahdollsa lasketoja (tlaejooja), kues löytää hyväksyvä jos sellae o olemassa Koe vodaa edellee muutaa stadardmallseks edellste lausede kostruktolla 43/60 44/60
Ykstyskohtasemm: Nauhalla 1 sälyttää kopota syötejoosta ja auhalla 2 se smulo koee työauhaa Kuk smulotava laskea aluks kopo syöttee auhalta 1 auhalle 2 ja pyyhk pos auhalle 2 edellse laskea jäljltä mahdollsest jääeet merkt Nauhalla 3 ptää krjaa vuorossa oleva laskea järjestysumerosta 1 2 3 D1 p W u O R K D3 D2 D2 D1 D4 δ q2 t D3 Tarkemm saoe, olkoo r suur : srtymäfukto arvojouko koko Tällö :lla o ertyset auhamerkt D 1,,D r, josta koostuva jooja se geero auhalle 3 kaosessa järjestyksessä: ε, D 1, D 2,, D r, D 1 D 1, D 1 D 2,, D 1 D r, D 2 D 1, Kutak geerotua jooa kohde smulo yhde : osttase laskea, jossa epädetermstset valat tehdää kolmosauha koodjoo lmasemalla tavalla 1 2 3 D1 W O R K D3 D2 D2 D1 D4 p δ u q2 t D3 45/60 46/60 Esmerkks jos kolmosauhalla o joo D 1 D 3 D 2, esmmäsessä srtymässä valtaa vahtoehto 1, tosessa vahtoehto 3, kolmaessa vahtoehto 2 Elle tämä lasketa johtaut : hyväksyvää lopputlaa, geerodaa seuraava koodjoo D 1 D 3 D 3 ja alotetaa alusta Jos koodjoo o epäkelpo, so jos sä jossak kohde o tlateesee la suur kood, smulotu lasketa keskeytetää ja geerodaa seuraava joo 1 2 3 D1 p W u O R K D3 D2 D2 D1 D4 δ q2 t D3 1 2 3 D1 W O R K D3 D2 D2 D1 D4 p δ u q2 Selväst tämä systemaatte koee lasketoje läpkäyt johtaa koee hyväksymää syötejoo, jos ja va jos koeella o syöttee hyväksyvä lasketa Jos hyväksyvää lasketaa e ole, koe e pysähdy a a Smulova koe vos hylätä syöttee, jos jollak laskea ptuudella kakk laskeat johtavat smulotava koee hylkäävää lopputlaa; luoollsest tämä e takaa pysähtymstä sllo, ku smulotavalla koeella o päättymättömä lasketoja t D3 47/60 48/60
Church Turg tees: elvaltae (rttävä vahva) laskulate Turg koe Laskettavuusteora: Tarkastellaa mtä Turg koella vo ja ertysest mtä e vo laskea Tärkeä erottelu: Pysähtyvät ja e-pysähtyvät Turg koeet Laskettavuusteoraa äärtelmä 61 Turg koe = (Q,Σ,Γ,δ,q 0,q acc,q rej ) o totaale, jos se pysähtyy kaklla syöttellä Formaal kel A o rekursvsest umerotuva, jos se vodaa tustaa jollak Turg koeella, ja rekursve, jos se vodaa tustaa jollak totaalsella Turg koeella 49/60 50/60 Vahtoehtoe termstö: Palautetaa mel päätösogelme (bäärvasteste I/O-kuvauste) ja formaale kelte vastaavuus: päätösogelmaa Π vastaava formaal kel A Π koostuu stä syöttestä x, jolle ogelma Π vastaus o kyllä (so tovottu vaste = 1) Päätösogelma Π o ratkeava (egl decdable), jos stä vastaava formaal kel A Π o rekursve, ja ostta ratkeava (egl sem-decdable), jos A Π o rekursvsest umerotuva Ogelma, joka e ole ratkeava, o ratkeamato (egl udecdable) (Huom: ratkeamato ogelma vo ss olla ostta ratkeava) Tos saoe: päätösogelma o ratkeava, jos sllä o totaale, kaklla syöttellä pysähtyvä ratkasualgortm, ja ostta ratkeava, jos sllä o ratkasualgortm joka kyllä -tapauksssa vastaa aa oke, mutta e -tapauksssa vo jäädä pysähtymättä Aakkosto {a, b, c} kel {a b c 0} o saallsest kuvattua päätösogelmaa Aettua aakkosto {a, b, c} merkkjoo x Oko x muotoa a b c jollek 0? 51/60 52/60
Aakkosto {0, 1,} kel {pq,p,q {0,1} bäärlukuja ja = pq} o saallsest kuvattua päätösogelmaa Aettua aakkosto {0, 1,} merkkjoo x Oko x muotoa pq, mssä,p,q {0,1}, ja pätee = pq ku,p,q tulktaa bäärlukua? Aakkosto {0, 1} kel { o bäärkoodattu alkuluku} o saallsest kuvattua päätösogelmaa Aettua bäärluku Oko alkuluku? ta velä epämuodollsemm Aettua bäärluvut,p,q Päteekö = pq? 53/60 54/60 Aakkosto {0x00, 0x01,, 0xff} kel {p p o UTF-8-koodattu merkkjoo, joka kuvaa Pytho-ohjelmaa, joka suortus pysähtyy kaklla syöttellä} Turg pysähtymsogelma, esmmäe kohtaame o saallsest kuvattua päätösogelmaa Aettua Pytho-ohjelma p Pysähtyykö p: suortus kaklla syöttellä? 55/60 56/60
18 Ekskurso: Turg pysähtymsogelma Väte Vodaa äyttää (seuraava kerros), että formaaleja kelä o äärettömäst eemmä ku Turg koeta (ta C/Pytho/-ohjelma) Koska kel laskealle päätösogelma, kakka päätösogelma e voda ratkasta Etä jok kokreette esmerkk tällasesta? Tuetu esmerkk o s Turg pysähtymsogelma (Ala Turg, 1936) C-ohjelma käyttäe tulos vodaa muotolla seuraavast: E ole olemassa C-fuktota halt(p,x), joka saa syötteeää melvaltase C-fukto tekst p ja tälle tarkotetu syöttee x ja tuottaa tulokse 1, jos p: suortus pysähtyy syötteellä x, ja 0 jos p: suortus x:llä jää kusee slmukkaa Tässä oletetaa, että ohjelmlla o rajato määrä musta käytössää Todstus Oletetaa vättee vastasest, että tällae fukto halt votas laata uodostetaa tätä käyttäe toe fukto cofuse (ks alla) erktää fukto cofuse ohjelmatekstä C:llä ja tarkastellaa fukto cofuse lasketaa tällä omalla kuvauksellaa vod cofuse ( char * q ) { t h a l t ( char * p, char * x ) { / * Code f o r the f u c t o * / } f ( h a l t ( q, q ) == 1) whle ( 1 ) ; } Saadaa rstrta: cofuse(c) pysähtyy halt(c,c) == 1 cofuse(c) e pysähdy Rstrdasta seuraa, että oletettua pysähtymstestausfuktota halt e vo olla olemassa Samasukusa s ratkeamattoma ogelma o tse asassa paljo Asaa palataa seuraavlla kerrokslla 57/60 58/60 Sama Pytholla Tedosto haltgtesterpy, jossa kuvtteelle pysähtymsetestausfukto doeshalt: (C) 2013 H Ackerfrau def doeshalt ( sourcename, putname ) : " " " Returs t r u e f the program f l e sourcename h a l t s whe t s ru o the p u t f l e putname, f a l s e otherwse " " " f s = ope ( sourcename, " r " ) f = ope ( putname, " r " ) r e t u r r e s u l t f ame == ma : source = sys argv [ 1 ] p u t = sys argv [ 2 ] h a l t s = doeshalt ( source, p u t ) p r t ( source+ " h a l t s o " + p u t + " : " + h a l t s ) Tedosto cofusepy: (C) 2013 H Ackerfrau def doeshalt ( sourcename, putname ) : " " " Returs t r u e f the program f l e sourcename h a l t s whe t s ru o the p u t f l e putname, f a l s e otherwse " " " f s = ope ( sourcename, " r " ) f = ope ( putname, " r " ) r e t u r r e s u l t f ame == ma : sourceadiput = sys argv [ 1 ] h a l t s = doeshalt ( sourceadiput, sourceadiput ) f h a l t s : whle True : pass p r t ( " I l l ow h a l t : ) " ) llo komeo pytho cofusepy cofusepy suortus pysähtyy? 59/60 60/60