ICS-C2000 Tietojenkäsittelyteoria
|
|
- Eero Juusonen
- 6 vuotta sitten
- Katselukertoja:
Transkriptio
1 ICS-C2000 Tietojenkäsittelyteoria Luento 8: Turingin koneet Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016
2 Alue ja aiheet: Orposen prujun luvut , 6.1 Turingin koneiden perusteet Moniuraiset Turingin koneet ja niiden simulointi standardimallisilla koneilla Moninauhaiset Turingin koneet ja niiden simulointi standardimallisilla koneilla Epädeterministiset Turingin koneet ja niiden simulointi deterministisillä Rekursiiviset ja rekursiivisesti numeroituvat kielet 2/60
3 Turingin koneet 3/60
4 4. TURINGIN KONEET Alan Turing nauha: T U R I N G nauhapää: q1 q2 ohjausyksikkö: q0 δ Turingin kone on kuin äärellinen automaatti, jolla on käytössään nauha. Mutta kone voi siirtää nauhapäätä sekä oikealle että vasemmalle Samoin se voi paitsi lukea myös kirjoittaa nauhapään kohdalla olevan merkin. Lisäksi nauha on oikealle rajaton. Churchin Turingin teesi Mikä tahansa mekaanisesti ratkeava ongelma voidaan ratkaista Turingin koneella. 4/60
5 Turingin koneen kanssa ekvivalentteja laskentamalleja: Gödelin Kleenen rekursiivisesti määritellyt funktiot (1936), Churchin λ-kalkyyli (1936), Postin (1936) ja Markovin (1951) merkkijonomuunnossysteemit, kaikki nykyiset ohjelmointikielet (kun muistin määrää ei ole rajattu). Turingin koneet ohjelmointikieli. 5/60
6 Määritelmä 4.1 Turingin kone on seitsikko missä: M = (Q,Σ,Γ,δ,q 0,q acc,q rej ), Q on koneen tilojen äärellinen joukko; Σ on koneen äärellinen syöteaakkosto; Γ Σ on koneen äärellinen nauha-aakkosto (ol. että, / Γ); δ : (Q {q acc,q rej }) (Γ {, }) Q (Γ {, }) {L,R} on koneen siirtymäfunktio; q 0 Q on koneen alkutila (q 0 q acc ja q 0 q rej ); q acc Q on koneen hyväksyvä ja q rej Q sen hylkäävä lopputila (q rej q acc ). 6/60
7 Siirtymäfunktion arvon tulkinta: δ(q,a) = (q,b, ) Ollessaan tilassa q ja lukiessaan nauhamerkin (tai alku- tai loppumerkin) a, kone siirtyy tilaan q, kirjoittaa lukemaansa paikkaan merkin b, ja siirtää nauhapäätä yhden merkkipaikan verran suuntaan (L left, R right ). 7/60
8 Lisäksi sallittuja kirjoitettavia merkkejä ja siirtosuuntia on rajoitettu: Siirtymäfunktion arvo on aina määrittelemätön, kun q = q acc tai q = q rej. Joutuessaan jompaan kumpaan näistä tiloista kone pysähtyy heti. Kaikille siirtymille δ(q,a) = (q,b, ) vaaditaan: jos a =, niin b = ja = R Eli nauhan aloitusmerkkiä ei ylikirjoiteta eikä siirrytä sen vasemmalle puolelle jos b =, niin a = Eli ei kirjoiteta uusia nauhan aloitusmerkkejä jos b =, niin a = ja = L Eli ei kirjoiteta uusia nauhan lopetusmerkkejä (vaan ne tulevat automaattiseti siirryttäessä oikealle nauhan kirjoittamattomaan osaan) 8/60
9 Koneen tilanne on nelikko (q,u,a,v) Q Γ (Γ {ε}) Γ, missä voi olla a = ε, mikäli myös u = ε tai v = ε. Tulkinta: kone on tilassa q, nauhan sisältö sen alusta nauhapään vasemmalle puolelle on u, nauhapään kohdalla on merkki a ja nauhan sisältö nauhapään oikealta puolelta käytetyn osan loppuun on v. Mahdollisesti on a = ε, jos nauhapää sijaitsee aivan nauhan alussa tai sen käytetyn osan lopussa. Ensimmäisessä tapauksessa ajatellaan, että kone havaitsee merkin ja toisessa tapauksessa merkin. Alkutilanne syötteellä x = a 1 a 2...a n on nelikko (q 0,ε,a 1,a 2...a n ). Tilannetta (q, u, a, v) merkitään yleensä yksinkertaisemmin (q,uav), ja alkutilannetta syötteellä x yksinkertaisesti (q 0,x). 9/60
10 Tilanne (q,w) johtaa suoraan tilanteeseen (q,w ), merkitään (q,w) M (q,w ), jos jokin seuraavista ehdoista täyttyy: jos δ(q,a) = (q,b,r), niin (q,uacv) M (q,ubcv); jos δ(q,a) = (q,b,l), niin (q,ucav) M (q,ucbv); jos δ(q, ) = (q,,r), niin (q,εcv) M (q,cv); jos δ(q, ) = (q,b,r), niin (q,uε) M (q,ubε); jos δ(q, ) = (q,b,l), niin (q,ucε) M (q,ucb); jos δ(q, ) = (q,,l), niin (q,ucε) M (q,uc). missä q,q Q, u,v Γ, a,b Γ ja c Γ {ε} Tilanteet, jotka ovat muotoa (q acc,w) tai (q rej,w) eivät johda mihinkään muuhun tilanteeseen. Näissä tilanteissa kone pysähtyy. 10/60
11 Tilanne (q,w) johtaa tilanteeseen (q,w ), merkitään (q,w) M (q,w ), jos on olemassa tilannejono (q 0,w 0 ), (q 1,w 1 ),..., (q n,w n ), n 0, siten että (q,w) = (q 0,w 0 ) M (q 1,w 1 ) M M (q n,w n ) = (q,w ). Turingin kone M hyväksyy merkkijonon x Σ, jos muuten M hylkää x:n. (q 0,x) M (q acc,w) jollakin w Γ ; Koneen M tunnistama kieli on: L(M) = {x Σ (q 0,x) M (q acc,w) jollakin w Γ } 11/60
12 Esimerkki: Kieli {a 2k k 0} voidaan tunnistaa Turingin koneella M = ({q 0,q 1,q acc,q rej },{a},{a},δ,q 0,q acc,q rej ), missä Kaavioesitys: δ(q 0,a) = (q 1,a,R), δ(q 1,a) = (q 0,a,R), δ(q 0, ) = (q acc,,l), /, L q0 a/a, R a/a, R q1 /, L δ(q 1, ) = (q rej,,l). 12/60
13 Kaavioesityksessä käytetyt merkinnät: q Tila q q 0 Alkutila Hyväksyvä lopputila (qacc) Hylkäävä lopputila (q rej ) a/b, q q Tilasiirtymä δ(q, a) = (q, b, ) 13/60
14 a/a, R q0 q1 /, L a/a, R /, L Koneen M laskenta esimerkiksi syötteellä aaa etenee seuraavasti: (q 0,aaa) M (q 1,aaa) M (q 0,aaa) (q 1,aaaε) (q rej,aaa). M M Kone pysähtyy tilassa q rej, joten aaa / L(M). (Huom: koska tämä kone vain siirtyy oikealle ja joko hyväksyy tai hylkää syötteen lopussa, kyseessä on käytännöllisesti katsoen äärellinen automaatti.) 14/60
15 Esimerkki: (Ei-yhteydettömän) kielen {a k b k c k k 0} tunnistava Turingin kone: /, L a/a, R b/b, R B/B, R C/C, R q 0 a/a, R q 1 b/b, R q 2 a/a, R c/c, L q 4 A/A, R q 3 Selkeyden vuoksi ei koneen hylkäävää lopputilaa q rej ole tässä esitetty eksplisiittisesti. Tulkinta on tällöin, että kaikki kaaviosta puuttuvat kaaret johtavat tähän tilaan. /, L q 5 B/B, R B/B, R C/C, R C/C, L b/b, L B/B, L a/a, L 15/60
16 Koneen laskenta 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). /, L /, L B/B, R C/C, R a/a, R B/B, R a/a, R b/b, R q0 q1 q2 q5 q4 a/a, R B/B, 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 16/60
17 Koneen laskenta syötteellä aabcbc: (q 0,aabcbc) (q 1,Aabcbc) (q 1,Aabcbc) (q 2,AaBCbc) (q 3,AaBCbc) (q 3,AaBCbc) /, L (q 3,AaBCbc) (q 4,AaBCbc) (q 1,AABCbc) (q 1,AABCbc) (q rej,aabcbc). /, L B/B, R C/C, R a/a, R B/B, R a/a, R b/b, R q0 q1 q2 q5 q4 a/a, R B/B, 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 17/60
18 Huom! Tunnistamisessa ei vaadita koneen pysähtymistä hylkäävään tilaan syötteillä, jotka eivät kuulu kieleen. Esimerkki: Turingin kone, joka jää ikuiseen silmukkaan joillakin syötteillä: q1 a/b,r b/a,r b/a,l a/b,l q2 c/c,r acc Laskenta 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)... Kone tunnistaa aakkoston {a, b, c} kielen, joka voidaan kuvata säännöllisellä lausekkeella (a b)c(a b c). 18/60
19 Esimerkki: Turingin kone, joka jää ikuiseen silmukkaan ja käyttää määrättömästi nauhaa joillakin syötteillä: 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 Laskenta 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 Turingin koneiden laajennuksia 20/60
21 4.2 Turingin koneiden laajennuksia Voitaisiinko saada vielä vahvempia laskennan malleja laajentamalla Turingin koneiden määritelmää uusilla ominaisuuksilla? Voisimme esim. sallia useamman luku/kirjoitusnauhan tai epädeterminismin (kuten äärellisillä automaateilla) Seuraavassa tutustutaan joihinkin tälläisiin laajennuksiin ja... näytetään, että kaikki kielet, jotka laajennetuilla automaateilla pystytään tunnistamaan, voidaan tunnistaa myös alkuperäisillä Turingin koneilla Churchin Turingin teesi Mikä tahansa mekaanisesti ratkeava laskennallinen ongelma voidaan ratkaista Turingin koneella. 21/60
22 1. Moniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askeleessa A L A N # M A T H I T U R I N nauhapää: # S G # # O N # # Koneen siirtymäfunktion arvot ovat tällöin muotoa: δ(q,(a 1,...,a k )) = (q,(b 1,...,b k ), ), missä a 1,...,a k ovat urilta 1,...,k luetut merkit, b 1,...,b k niiden tilalle kirjoitettavat merkit, ja {L, R} on nauhapään siirtosuunta. Laskennan aluksi tutkittava syöte sijoitetaan ykkösuran vasempaan laitaan; muille urille tulee sen kohdalle erityisiä tyhjämerkkejä #. 22/60
23 Formaalisti k-urainen Turingin kone on seitsikko M = (Q,Σ,Γ,δ,q 0,q acc,q rej ), missä muut komponentit ovat kuten standardimallissa, paitsi siirtymäfunktio: δ : (Q {q acc,q rej }) (Γ k {, }) Q (Γ k {, }) {L,R}. Seuraajatilannerelaation M, alkutilan jne. määritelmät ovat pieniä muutoksia lukuunottamatta samanlaiset kuin standardimallissa. 23/60
24 Esimerkki: 2-urainen Turingin kone rewind, joka kelaa nauhapään nauhan alkuun: (x, y)/(x, y), L /, R q 0 q 1 Lyhennysmerkintä (x,y)/(x,y),l tarkoittaa kaikkia siirtymiä, mitkä saadaan korvaamalla muuttujat x ja y jollakin nauha-aakkosella. 24/60
25 Esimerkki: 2-urainen Turingin kone succ, joka laskee uralla 1 olevan binäärinumeron (pienin bitti ensin) seuraajan uralle 2: (1, x)/(1, 1), R (0, x)/(0, 0), R (0, x)/(0, 1), R (#, x)/(#, #), R q 0 q 1 q 4 (1, x)/(1, 0), R (0, x)/(0, 1), R (x, y)/(x, #), L q 2 q 3 (#, x)/(#, 1), R (1, x)/(1, 0), R 25/60
26 Koneen ( laskenta numerolla ) 3 10 = (nauhalla pienin bitti ensin): # q 0, # # # # ( ) # q 2, 0 # # # ( ) # q 2, 0 0 # # ( ) # q 1, # ( ) # q 4, ε # 26/60
27 Esimerkki: 2-uraisten koneiden succ ja rewind peräkkäin kytkentä: succ rewind ja sama laajennettuna: (1, x)/(1, 1), R (0, x)/(0, 0), R (x, y)/(x, y), L (0, x)/(0, 1), R (#, x)/(#, #), R /, R (1, x)/(1, 0), R (0, x)/(0, 1), R (x, y)/(x, #), L (#, x)/(#, 1), R (1, x)/(1, 0), R 27/60
28 Lause 4.1 Jos formaali kieli L voidaan tunnistaa k-uraisella Turingin koneella, se voidaan tunnistaa myös standardimallisella Turingin koneella. Todistus Olkoon M = (Q,Σ,Γ,δ,q 0,q acc,q rej ) k-urainen Turingin kone, joka tunnistaa kielen L. Vastaava standardimallinen kone M muodostetaan seuraavasti: M = ( Q,Σ, ˆΓ, ˆδ, ˆq 0,q acc,q rej ), missä Q = Q {ˆq 0, ˆq 1, ˆq 2 }, ˆΓ = Σ Γ k ja kaikilla q Q on ] ] [ a1 [ b1 ˆδ(q,. a k kun ) = (q,. b k, ), δ(q,(a 1,...,a k )) = (q,(b 1,...,b k ), ). 28/60
29 Koneen M laskennan aluksi täytyy syötejono nostaa ykkösuralle, so. korvata nauhalla merkkijono a 1 a 2...a n merkkijonolla a 1 #. # a 2 #. # Tätä operaatiota varten liitetään M:stä kopioidun siirtymäfunktion osan alkuun vielä pieni esiprosessori : x/ x # #, R x # # a n #. # / x # #., L ˆq 0 /, L ˆq 1 /, R q 0 29/60
30 2. Moninauhaiset koneet 1. A L A N 2. M A T H I S O N 3. T U R I N G q1 q2 q0 δ Sallitaan, että Turingin koneella on k toisistaan riippumatonta nauhaa, joilla on kullakin oma nauhapäänsä. Kone lukee ja kirjoittaa kaikki nauhat yhdessä laskenta-askelessa. Laskennan aluksi syöte sijoitetaan ykkösnauhan vasempaan laitaan ja kaikki nauhapäät nauhojensa alkuun. 30/60
31 Tällaisen koneen siirtymäfunktion arvot ovat muotoa δ(q,a 1,...,a k ) = (q,(b 1, 1 ),...,(b k, k )), missä a 1,...,a k ovat nauhoilta 1,...,k luetut merkit, b1,...,b k niiden tilalle kirjoitettavat merkit, ja 1,..., k {L,R,S} nauhapäiden siirtosuunnat (S eli stay ei siirrä lukupäätä). Formaalisti k-nauhainen Turingin kone on seitsikko M = (Q,Σ,Γ,δ,q 0,q acc,q rej ), missä muut komponentit ovat kuten standardimallissa, paitsi siirtymäfunktio: δ : (Q {q acc,q rej }) (Γ {, }) k Q ((Γ {, }) {L,R,S}) k. Seuraajatilannerelaatio ym. peruskäsitteet määritellään pienin muutoksin entiseen tapaan. 31/60
32 Esimerkki: Kolminauhainen Turingin kone Rew2, joka siirtää toisen nauhan lukupään alkuun (ei tee mitään muille nauhoille): x,z,y/(x,s),(z,l),(y,s) when z rew x,,y/(x,s),(,r),(y,s) acc Tässä x, y ja z ovat jälleen lyhennysmerkintäparametreja ja esim. siirtymä x,z,y/(x,s),(z,l),(y,s) when z kuvaa kaikkia mahdollisia siirtymiä, jotka saadaa korvaamalla x, y ja z millä tahansa nauhaaakkosella (pl. tapaus z = ). 32/60
33 Esimerkki: Kolminauhainen kone 4Succ2, joka laskee nauhalla 2 olevan ;- terminoidun 4-kantaisen, vähiten merkitsevä numero ensin -esitetyn, luvun seuraajan. Kone tulee käynnistää tilanteessa, jossa nauhan 2 lukupää on alussa ja se jättää lukupään johonkin kohtaa nauhaa. 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) s x,;,y/(x,s),(1,r),(y,s) t x,z,y/(x,s),(;,s),(y,s) acc Esim. luvun 33 4 (eli ) seuraajan laskenta: abba abba abba s, 33; s, 03; s, 00; 111; 111; 111; abba acc, 001; 111; t, abba 001ε 111; 33/60
34 Esimerkki: Koneiden 4Succ2 ja Rew2 peräkkäin kytkentä, joka laskee nauhalla 2 olevan ;-terminoidun 4-kantaisen, vähiten merkitsevä numero ensin - esitetyn, luvun seuraajan ja siirtää lukupään nauhan 2 alkuun. Kone tulee käynnistää tilanteessa, jossa nauhan 2 lukupää on alussa. 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) when z x,;,y/(x,s),(1,r),(y,s) x,z,y/(x,s),(;,s),(y,s) x,,y/(x,s),(,r),(y,s) acc 34/60
35 Lause 4.2 Jos formaali kieli L voidaan tunnistaa k-nauhaisella Turingin koneella, se voidaan tunnistaa myös standardimallisella Turingin koneella. Todistus Olkoon M = (Q,Σ,Γ,δ,q 0,q acc,q rej ) k-nauhainen Turingin kone, joka tunnistaa kielen L. Konetta M voidaan simuloida 2k-uraisella koneella M siten, että koneen M parittomat urat 1,3,5,...,2k 1 vastaavat M:n nauhoja 1,2,...,k, ja kutakin paritonta uraa seuraavalla parillisella uralla on merkillä merkitty vastaavan nauhan nauhapään sijainti A M T L A U q1 A N T H R I q2 q0 δ # I N # S G # O # # N # 35/60
36 Simuloinnin aluksi syötemerkkijono sijoitetaan normaalisti koneen M ykkösuralle. Ensimmäisessä siirtymässään M merkitsee nauhapääosoittimet parillisten urien ensimmäisiin merkkipaikkoihin. Tämän jälkeen M toimii pyyhkimällä nauhaa edestakaisin sen alkuja loppumerkin välillä. Vasemmalta oikealle pyyhkäisyllä M kerää tiedot kunkin osoittimen kohdalla olevasta M:n nauhamerkistä. Kun kaikki merkit ovat selvillä, M simuloi yhden M:n siirtymän, ja takaisin oikealta vasemmalle suuntautuvalla pyyhkäisyllä kirjoittaa -osoittimien kohdalle asianmukaiset uudet merkit ja siirtää osoittimia. 36/60
37 3. Epädeterministiset koneet Formaalisti epädeterministinen Turingin kone on seitsikko M = (Q,Σ,Γ,δ,q 0,q acc,q rej ), missä muut komponentit ovat kuten deterministisessä standardimallissa, paitsi siirtymäfunktio: δ : (Q {q acc,q rej }) (Γ {, }) P (Q (Γ {, }) {L,R}). Siirtymäfunktion arvon δ(q,a) = {(q 1,b 1, 1 ),...,(q k,b k, k )} tulkinta on, että ollessaan tilassa q ja lukiessaan merkin a kone voi toimia jonkin kolmikon (q i,b i, i ) mukaisesti. 37/60
38 Epädeterministisen koneen tilanteet, tilannejohdot jne. määritellään formaalisti samoin kuin deterministisenkin koneen tapauksessa, paitsi että ehdon δ(q,a) = (q,b, ) sijaan kirjoitetaan (q,b, ) δ(q,a). Tämän muutoksen takia seuraajatilannerelaatio M ei ole enää yksiarvoinen: koneen tilanteella (q, w) voi nyt olla useita vaihtoehtoisia seuraajia, so. tilanteita (q,w ), joilla (q,w) M (q,w ). Koneen M tunnistama kieli määritellään: L(M) = {x Σ (q 0,x) M (q acc,w) jollakin w Γ } Epädeterministisen koneen M tapauksessa siis merkkijono x kuuluu M:n tunnistamaan kieleen, jos jokin M:n kelvollinen tilannejono johtaa alkutilanteesta syötteellä x hyväksyvään lopputilanteeseen. 38/60
39 Esimerkki: Yhdistettyjen lukujen tunnistaminen epädeterministisillä Turingin koneilla. Ei-negatiivinen kokonaisluku n on yhdistetty, jos sillä on kokonaislukutekijät p,q 2, joilla pq = n. Luku, joka ei ole yhdistetty, on alkuluku. Oletetaan, että on jo suunniteltu deterministinen kone CHECK_MULT, joka tunnistaa kielen L(CHECK_MULT) = {n#p#q n, p, q binäärilukuja, n = pq}. Olkoon lisäksi GO_START deterministinen Turingin kone, joka siirtää nauhapään osoittamaan nauhan ensimmäistä merkkiä. 39/60
40 Olkoon edelleen GEN_INT seuraava mielivaltaisen ykköstä suuremman binääriluvun (eniten merkitsevä bitti ensin) nauhan loppuun tuottava epädeterministinen Turingin kone: 0/0, R 1/1, R /#, R /1, R /0, R /0, R /1, R /1, R 40/60
41 Koneen GEN_INT laskentoja syötteellä 0 : q 1,0 q 1,0ε q 2,0#ε q 3,0#1ε q 4,0#10ε q 3,0#10ε q 4,0#11ε q 3,0#11ε.... q 4,0#100ε q 3,0#100ε q 4,0#101ε q 3,0#101ε /60
42 Epädeterministinen Turingin kone TEST_COMPOSITE, joka tunnistaa kielen L(TEST_COMPOSITE) = {n n on binäärimuotoinen yhdistetty luku} voidaan muodostaa näistä komponenteista yhdistämällä: n n#p n#p#q n#p#q GEN INT GEN INT GO START CHECK MULT Yhdistetty kone hyväksyy syötteenä annetun binääriluvun n, jos ja vain jos on olemassa binääriluvut p,q 2, joilla n = pq siis jos ja vain jos n on yhdistetty luku. 42/60
43 Huom. Yleinen kaaviomerkintä Turingin koneiden yhdistämiselle: M 1 M 0 M 2 43/60
44 Lause 4.3 Jos formaali kieli L voidaan tunnistaa epädeterministisellä Turingin koneella, se voidaan tunnistaa myös standardimallisella deterministisellä Turingin koneella. Todistus (idea) Olkoon M = (Q,Σ,Γ,δ,q 0,q acc,q rej ) epädeterministinen Turingin kone, joka tunnistaa kielen L. Konetta M voidaan simuloida kolmenauhaisella deterministisellä koneella M, joka käy systemaattisesti läpi M:n mahdollisia laskentoja (tilannejonoja), kunnes löytää hyväksyvän jos sellainen on olemassa. Kone M voidaan edelleen muuntaa standardimalliseksi edellisten lauseiden konstruktioilla. 44/60
45 Yksityiskohtaisemmin: Nauhalla 1 M säilyttää kopiota syötejonosta ja nauhalla 2 se simuloi koneen M työnauhaa. Kunkin simuloitavan laskennan aluksi M kopioi syötteen nauhalta 1 nauhalle 2 ja pyyhkii pois nauhalle 2 edellisen laskennan jäljiltä mahdollisesti jääneet merkit. Nauhalla 3 M pitää kirjaa vuorossa olevan laskennan järjestysnumerosta i i D1 n n p W u O R K D3 D2 D2 D1 D4 q1 q0 δ q2 t D3 45/60
46 Tarkemmin sanoen, olkoon r suurin M:n siirtymäfunktion arvojoukon koko. Tällöin M:lla on erityiset nauhamerkit D 1,...,D r, joista koostuvia jonoja se generoi nauhalle 3 kanonisessa järjestyksessä: ε, D 1, D 2,..., D r, D 1 D 1, D 1 D 2,..., D 1 D r, D 2 D 1,.... Kutakin generoitua jonoa kohden M simuloi yhden M:n osittaisen i i D1 n n p W u O R K D3 D2 D2 D1 D4 q1 q0 q2 t D3 laskennan, jossa epädeterministiset valinnat tehdään kolmosnauhan koodijonon ilmaisemalla tavalla. δ 46/60
47 Esimerkiksi jos kolmosnauhalla on jono D 1 D 3 D 2, niin ensimmäisessä siirtymässä valitaan vaihtoehto 1, toisessa vaihtoehto 3, kolmannessa vaihtoehto 2. Ellei tämä laskenta johtanut M:n hyväksyvään lopputilaan, generoidaan seuraava koodijono D 1 D 3 D 3 ja aloitetaan alusta. Jos koodijono on epäkelpo, so. jos siinä jossakin kohden on tilanteeseen liian suuri koodi, simuloitu laskenta keskeytetään ja generoidaan seuraava jono i i D1 n n p W u O R K D3 D2 D2 D1 D4 q1 q0 δ q2 t D3 47/60
48 1. i n p u t 2. i n W O R K 3. D1 D3 D2 D2 D1 D4 D3 q1 q2 q0 δ Selvästi tämä systemaattinen koneen M laskentojen läpikäynti johtaa koneen M hyväksymään syötejonon, jos ja vain jos koneella M on syötteen hyväksyvä laskenta. Jos hyväksyvää laskentaa ei ole, kone M ei pysähdy. a a Simuloiva kone voisi hylätä syötteen, jos jollakin laskennan pituudella kaikki laskennat johtavat simuloitavan koneen hylkäävään lopputilaan; luonnollisesti tämä ei takaa pysähtymistä silloin, kun simuloitavalla koneella on päättymättömiä laskentoja. 48/60
49 Laskettavuusteoriaa 49/60
50 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. 50/60
51 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 (engl. decidable), jos sitä vastaava formaali kieli A Π on rekursiivinen, ja osittain ratkeava (engl. semi-decidable), jos A Π on rekursiivisesti numeroituva. Ongelma, joka ei ole ratkeava, on ratkeamaton (engl. undecidable). (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ä. 51/60
52 Esimerkki: Aakkoston {a, b, c} kieli {a n b n c n n 0} on sanallisesti kuvattuna päätösongelmana Annettuna aakkoston {a, b, c} merkkijono x. Onko x muotoa a n b n c n jollekin n 0? 52/60
53 Esimerkki: Aakkoston {0, 1,#} kieli {n#p#q n,p,q {0,1} binäärilukuja ja n = pq} on sanallisesti kuvattuna päätösongelmana Annettuna aakkoston {0, 1,#} merkkijono x. Onko x muotoa n#p#q, missä n,p,q {0,1}, ja pätee n = pq kun n,p,q tulkitaan binäärilukuina? tai vielä epämuodollisemmin Annettuna binääriluvut n,p,q. Päteekö n = pq? 53/60
54 Esimerkki: Aakkoston {0, 1} kieli {n n on binäärikoodattu alkuluku} on sanallisesti kuvattuna päätösongelmana Annettuna binääriluku n. Onko n alkuluku? 54/60
55 Esimerkki: Aakkoston {0x00, 0x01,..., 0xff} kieli {p p on UTF-8-koodattu merkkijono, joka kuvaa Python-ohjelmaa, jonka suoritus pysähtyy kaikilla syötteillä} on sanallisesti kuvattuna päätösongelmana Annettuna Python-ohjelma p. Pysähtyykö p:n suoritus kaikilla syötteillä? 55/60
56 Turingin pysähtymisongelma, ensimmäinen kohtaaminen 56/60
57 1.8 Ekskursio: Turingin pysähtymisongelma Väite Voidaan näyttää (seuraava kierros), että formaaleja kieliä on äärettömästi enemmän kuin Turingin koneita (tai C/Python/...-ohjelmia) Koska kieli laskennallinen päätösongelma, kaikkia päätösongelmia ei voida ratkaista Entä jokin konkreettinen esimerkki tällaisesta? Tunnetuin esimerkki on ns. Turingin pysähtymisongelma (Alan Turing, 1936). C-ohjelmia käyttäen tulos voidaan muotoilla seuraavasti: Ei ole olemassa C-funktiota halt(p,x), joka saa syötteenään mielivaltaisen C-funktion tekstin p ja tälle tarkoitetun syötteen x ja tuottaa tuloksen 1, jos p:n suoritus pysähtyy syötteellä x, ja 0 jos p:n suoritus x:llä jää ikuiseen silmukkaan. Tässä oletetaan, että ohjelmilla on rajaton määrä muistia käytössään. 57/60
58 Todistus Oletetaan väitteen vastaisesti, että tällainen funktio halt voitaisiin laatia. Muodostetaan tätä käyttäen toinen funktio confuse (ks. alla). Merkitään funktion confuse ohjelmatekstiä C:llä ja tarkastellaan funktion confuse laskentaa tällä omalla kuvauksellaan. void confuse ( char * q ) { i n t h a l t ( char * p, char * x ) {... / * Code f o r the f u n c t i o n * / } i f ( h a l t ( q, q ) == 1) while ( 1 ) ; } Saadaan ristiriita: confuse(c) pysähtyy halt(c,c) == 1 confuse(c) ei pysähdy. Ristiriidasta seuraa, että oletettua pysähtymistestausfunktiota halt ei voi olla olemassa. Samansukuisia ns. ratkeamattomia ongelmia on itse asiassa paljon. Asiaan palataan seuraavilla kierroksilla. 58/60
59 Sama Pythonilla Tiedosto haltingtester.py, jossa kuvitteellinen pysähtymisentestausfunktio doeshalt: # (C) 2013 H. Ackerfrau def doeshalt ( sourcename, inputname ) : " " " Returns t r u e i f the program i n f i l e sourcename h a l t s when i t i s run on the i n p u t f i l e inputname, f a l s e otherwise. " " " f s = open ( sourcename, " r " ) f i = open ( inputname, " r " )... r e t u r n r e s u l t i f name == main : source = sys. argv [ 1 ] i n p u t = sys. argv [ 2 ] h a l t s = doeshalt ( source, i n p u t ) p r i n t ( source+ " h a l t s on " + i n p u t + " : " + h a l t s ) 59/60
60 Tiedosto confuse.py: # (C) 2013 H. Ackerfrau def doeshalt ( sourcename, inputname ) : " " " Returns t r u e i f the program i n f i l e sourcename h a l t s when i t i s run on the i n p u t f i l e inputname, f a l s e otherwise. " " " f s = open ( sourcename, " r " ) f i = open ( inputname, " r " )... r e t u r n r e s u l t i f name == main : sourceandinput = sys. argv [ 1 ] h a l t s = doeshalt ( sourceandinput, sourceandinput ) i f h a l t s : while True : pass p r i n t ( " I l l now h a l t : ) " ) Milloin komennon python confuse.py confuse.py suoritus pysähtyy? 60/60
δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.
42 Turingin koneiden laajennuksia 1 oniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askelessa: Koneen
LisätiedotM = (Q, Σ, Γ, δ, q 0, q acc, q rej )
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.
LisätiedotTuringin koneen laajennuksia
Turingin koneen laajennuksia Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k
LisätiedotICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.
Lisätiedoton rekursiivisesti numeroituva, mutta ei rekursiivinen.
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
Lisätiedot1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä
LisätiedotLisää pysähtymisaiheisia ongelmia
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
Lisätiedotvaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
LisätiedotLaskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 20. kesäkuuta 2013 Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on muotoa Onko
LisätiedotKielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }
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
Lisätiedot5.3 Ratkeavia ongelmia
153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,
Lisätiedot6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}
6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = {c w pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti
LisätiedotLaskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. maaliskuuta 2012 Sisällys Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on
LisätiedotSäännöllisen kielen tunnistavat Turingin koneet
186 Säännöllisen kielen tunnistavat Turingin koneet Myös säännöllisen kielen hyväksyvien Turingin koneiden tunnistaminen voidaan osoittaa ratkeamattomaksi palauttamalla universaalikielen tunnistaminen
LisätiedotICS-C2000 Tietojenkäsittelyteoria
ICS-C2000 Tietojenkäsittelyteoria Luento 10: Lisää ratkeamattomuudesta Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Aiheet: Pysähtymisongelma Epätyhjyysongelma Rekursiiviset
LisätiedotLaskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 17.10.2016 klo 15:07 passed waiting redo submitters
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en
LisätiedotRajoittamattomat kieliopit
Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet
Lisätiedot1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Esimerkkinä universaalista laskennan mallista tarkastellaan Turingin konetta muunnelmineen. Lyhyesti esitellään myös muita malleja. Tämän luvun jälkeen opiskelija tuntee
LisätiedotLaskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.
Lisätiedot(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3
T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w
LisätiedotRekursiiviset palautukset [HMU 9.3.1]
Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle
LisätiedotLaskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja
582206 Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja 1. Seuraavissa laskennoissa tilat on numeroitu sarakkeittain ylhäältä alas jättäen kuitenkin hyväksyvä tila välistä. Turingin koneen laskenta
LisätiedotOutput. Input Automaton
16 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite
LisätiedotMuunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja
sekä muita TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton
Lisätiedot4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:
T-79.148 Kevät 2004 Tietojenkäsittelyteorian perusteet Harjoitus 12 Demonstraatiotehtävien ratkaisut 4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: Hyväksyykö annettu Turingin kone
LisätiedotTäydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista
Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.
Lisätiedot9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko
9.5. Turingin kone Turingin kone on järjestetty seitsikko TM = (S, I, Γ, O, B, s 0, H), missä S on tilojen joukko, I on syöttöaakkosto, Γ on nauha-aakkosto, I Γ, O on äärellinen ohjeiden joukko, O S Γ
LisätiedotTuringin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen
LisätiedotAlgoritmin määritelmä [Sipser luku 3.3]
Algoritmin määritelmä [Sipser luku 3.3] Mitä algoritmilla yleensä tarkoitetaan periaatteessa: yksiselitteisesti kuvattu jono (tietojenkäsittely)operaatioita, jotka voidaan toteuttaa mekaanisesti käytännössä:
LisätiedotLaskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja
581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen
LisätiedotTestaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin
Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.
LisätiedotTuringin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 7. joulukuuta 2015 Sisällys Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/
LisätiedotTodistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.
Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,
LisätiedotTIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti
Lisätiedotuv n, v 1, ja uv i w A kaikilla
2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko
LisätiedotS uay uvaxy uv 2 Ax 2 y... uv i Ax i y uv i wx i y.
3.8 Yhtedettömien kielten rajoitksista Yhtedettömille kielille on oimassa säännöllisten kielten pmppaslemman astine. Nt kitenkin merkkijonoa on pmpattaa samanaikaisesti kahdesta paikasta. Lemma 3.9 ( -lemma
LisätiedotSäännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman
Lisätiedot2. Laskettavuusteoriaa
2. Laskettavuusteoriaa Käymme läpi ratkeamattomuuteen liittyviä ja perustuloksia ja -tekniikoita [HMU luku 9]. Tämän luvun jälkeen opiskelija tuntee joukon keskeisiä ratkeamattomuustuloksia osaa esittää
LisätiedotLaskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja
582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on
LisätiedotTuringin kone on kuin äärellinen automaatti, jolla on käytössään
4 TUINGIN KONEET Ala Turg 1935 36 auha Koe vo srtää auha: T U I N G auhapää: ohjausykskkö: Turg koe o ku äärelle automaatt, jolla o käytössää auhapäätä vasemmalle ta okealle; se vo myös lukea ta krjottaa
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016
ja ja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys ja ja Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/
LisätiedotRajoittamattomat kieliopit (Unrestricted Grammars)
Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015
ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:
LisätiedotICS-C2000 Tietojenkäsittelyteoria. Tähän mennessä: säännölliset kielet. Säännöllisten kielten pumppauslemma M :=
ICS-C2000 Tietojenkäsittelyteoria Luento 5: Säännöllisten kielten pumppauslemma; yhteydettömät kieliopit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Alue ja aiheet: Orposen prujun
LisätiedotTäydentäviä muistiinpanoja laskennan rajoista
Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4 a 5 00 k 11 i
LisätiedotAutomaatit. Muodolliset kielet
Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten
LisätiedotPinoautomaatit. Pois kontekstittomuudesta
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 1 eli pino Pino
LisätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. tammikuuta 2012 Sisällys Luennon pähkinä Millä tavalla voidaan rakentaa tietokoneohjelma (tai kirjasto), joka
LisätiedotICS-C2000 Tietojenkäsittelyteoria
ICS-C2000 Tietojenkäsittelyteoria Luento 2: Äärelliset automaatit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Kertausta: kielet ja automaatit Laskennallisen ongelman ratkaisevia
LisätiedotICS-C2000 Tietojenkäsittelyteoria
ICS-C2000 Tietojenkäsittelyteoria Luento 5: Säännöllisten kielten pumppauslemma; yhteydettömät kieliopit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Alue ja aiheet: Orposen
Lisätiedot2. Laskettavuusteoriaa
2. Laskettavuusteoriaa Kaymme lapi ratkeamattomuuteen liittyvia ja perustuloksia ja -tekniikoita [HMU luku 9]. Taman luvun jalkeen opiskelija tuntee joukon keskeisia ratkeamattomuustuloksia osaa esittaa
LisätiedotEpädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,
Lisätiedot3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia
3. Turingin koneet Turingin kone on alkuaan matemaattisen logiikan tarpeisiin kehitelty laskennan malli. Tarkoituksena oli vangita mahdollisimman laajasti, millaisia asioita voidaan (periaatteessa) laskea
LisätiedotChomskyn hierarkia ja yhteysherkät kieliopit
Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien
LisätiedotÄärellisten automaattien ja säännöllisten kielten ekvivalenssi
Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää
LisätiedotYhteydettömän kieliopin jäsennysongelma
Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa
LisätiedotPinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. kesäkuuta 2013 Sisällys Aikataulumuutos Tämänpäiväinen demotilaisuus on siirretty maanantaille klo 14:15 (Ag Delta).
LisätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. maaliskuuta 2012 Sisällys Ongelma-analyysiä Sisällys Ongelma-analyysiä Hypoteettinen ongelma The Elite Bugbusters
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4
LisätiedotHahmon etsiminen syotteesta (johdatteleva esimerkki)
Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux
LisätiedotICS-C2000 Tietojenkäsittelyteoria 4. TURINGIN KONEET. Turingin koneet
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
LisätiedotPysähtymisongelman ratkeavuus [Sipser luku 4.2]
Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,
LisätiedotKertausta 1. kurssikokeeseen
Kertausta. kurssikokeeseen. kurssikoe on to 22.0. klo 9 2 salissa A (tai CK2). Koealueena johdanto ja säännölliset kielet luentokalvot 3 ja nämä kertauskalvot harjoitukset 6 Sipser, luvut 0 ja Edellisvuosien.
LisätiedotRekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää
Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää S AB CA... A CB...... ja kutsua Derives(S, abcde), niin kutsu Derives(B,
LisätiedotDFA:n käyttäytyminen ja säännölliset kielet
säännölliset kielet TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2015 Sisällys toiminta formaalisti Olkoon M = (Q, Σ, δ, q 0, F) deterministinen
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015
TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen
LisätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e
LisätiedotLaskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2003 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa esitiedot käytännössä
LisätiedotOlkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};
3.6 Cocke-Younger-Kasami -jäsennysalgoritmi Osittava jäsentäminen on selkeä ja tehokas jäsennysmenetelmä LL(1)-kieliopeille: n merkin mittaisen syötemerkkijonon käsittely sujuu ajassa O(n). LL(1)-kieliopit
LisätiedotRekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
LisätiedotMuita universaaleja laskennan malleja
Muita universaaleja laskennan malleja Tällä kurssilla Turingin kone on valittu algoritmikäsitteen formalisoinniksi. Toisin sanoen tulkitsemme, että laskentaongelmalle on olemassa algoritmi, jos ja vain
Lisätiedot6.1 Rekursiiviset palautukset
6.1 Rekursiiviset palautukset Olk. = (Q, Σ, Γ, δ, q 0, q acc, q rej ) mv. standardimallinen Turingin kone ääritellään koneen laskema osittaisfunktio f : Σ Γ seur. u, jos q 0 w u q av, f (w) = q { q acc,
LisätiedotM =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)
Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.
LisätiedotTKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut
TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut Pisteytys on ilmoitettu välikoevaihtoehdon mukaan (joko tehtävät 1, 2 ja 3 välikokeen 1 uusintana tai tehtävät 4, 5 ja 6 välikokeen 2 uusintana).
LisätiedotSäännöllisten kielten sulkeumaominaisuudet
Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,
LisätiedotLaskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2003 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa esitiedot käytännössä
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. toukokuuta 2011 Sisällys engl. random-access machines, RAM yksinkertaistettu nykyaikaisen (ei-rinnakkaisen)
LisätiedotPinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
.. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. lokakuuta 2016 Sisällys. Harjoitustehtävätilastoja Tilanne 6.10.2016 klo 8:28 passed potential redo submitters
LisätiedotRatkeavuus ja efektiivinen numeroituvuus
Luku 6 Ratkeavuus ja efektiivinen numeroituvuus Proseduurit Olkoon A aakkosto. Proseduuri aakkoston A sanoille on mikä hyvänsä prosessi (algoritmi) P, jolle annetaan syötteeksi sana w A, ja joka etenee
LisätiedotTIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013
TIEA24 Automaatit ja kieliopit, kesä 3 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. toukokuuta 3 Sisällys Äärellisiä automaatteja ON PUSH PUSH OFF Q T J Q C C H S C,Q C,Q 0 40 60 80 00, 70 90 Deterministinen
LisätiedotAutomaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)
1.6 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite
LisätiedotChomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit
Chomskyn hierarkia Noam Chomskyn vuonna 1956 esittämä luokittelu kieliopeille niiden ilmaisuvoiman mukaan tyyppi kieli kielioppi tunnistaminen 0 rekurs. lueteltava rajoittamaton Turingin kone 1 kontekstinen
LisätiedotFormalisoimme nyt edellä kuvatun laskennan.
Formalisoimme nyt edellä kuvatun laskennan. Jos M = (Q, Σ, δ, q, F ) on äärellinen automaatti ja w = w... w n on n merkkiä pitkä aakkoston Σ merkkijono, niin automaatti M hyväksyy merkkijonon w, jos on
LisätiedotLaskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa
LisätiedotSe mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
LisätiedotS BAB ABA A aas bba B bbs c
T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama
LisätiedotLaskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?
Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti? Wilhelmiina Hämäläinen Johdatus tietojenkäsittelytieteeseen 1.-2.12. 2003 Tietojenkäsittelytieteen laitos Joensuun yliopisto 1 Johdanto
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
LisätiedotMuita vaativuusluokkia
Muita vaativuusluokkia Käydään lyhyesti läpi tärkeimpiä vaativuusluokkiin liittyviä tuloksia. Monet tunnetuista tuloksista ovat vaikeita todistaa, ja monet kysymykset ovat vielä auki. Lause (Ladner 1975):
LisätiedotOngelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?
Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? 2013-2014 Lasse Lensu 2 Algoritmit ovat deterministisiä toimintaohjeita
LisätiedotJos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).
Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)). Esimerkkejä: Σ koostuu kaikista aakkoston Σ merkkijonoista ja
LisätiedotYllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen
Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen suhteen, eli jos kielet A ja B ovat säännöllisiä, niin myös A B on. Tätä voi havainnollistaa seuraavalla kuvalla: P(Σ ) Säännölliset
LisätiedotC 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 3SAT p m VC Todistus. Olk. φ = C 1 C C m 3-cnf-kaava, jossa esiintyvät muuttujat x 1,..., x n. Vastaava solmupeiteongelman tapaus G, k muodostetaan seuraavasti. G:ssä on solmu kutakin literaalia
LisätiedotTarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.
Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen
LisätiedotT Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut
T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama
LisätiedotLaskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa
Lisätiedot8. Kieliopit ja kielet
8. Kieliopit ja kielet Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää siipiään" on kieliopillisesti
Lisätiedot