ICS-C2000 Tietojenkäsittelyteoria

Koko: px
Aloita esitys sivulta:

Download "ICS-C2000 Tietojenkäsittelyteoria"

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}.

δ : (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ätiedot

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

M = (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ätiedot

Turingin koneen laajennuksia

Turingin 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ätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-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ätiedot

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

on 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ätiedot

1. Universaaleja laskennan malleja

1. 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ätiedot

Lisää pysähtymisaiheisia ongelmia

Lisää 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ätiedot

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

vaihtoehtoja 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ätiedot

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

TIEA241 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ätiedot

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

Laskennan 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ätiedot

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

Kielenä 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ätiedot

5.3 Ratkeavia ongelmia

5.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ätiedot

6.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 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ätiedot

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

Laskennan 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ätiedot

Säännöllisen kielen tunnistavat Turingin koneet

Sää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ätiedot

ICS-C2000 Tietojenkäsittelyteoria

ICS-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ätiedot

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

Laskennan 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ätiedot

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

TIEA241 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ätiedot

Rajoittamattomat kieliopit

Rajoittamattomat 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ätiedot

1. Universaaleja laskennan malleja

1. 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ätiedot

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

Laskennan 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

(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ätiedot

Rekursiiviset palautukset [HMU 9.3.1]

Rekursiiviset 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ätiedot

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Laskennan 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ätiedot

Output. Input Automaton

Output. 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ätiedot

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Muunnelmia 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ätiedot

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

4. 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ätiedot

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Tä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ätiedot

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

9.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ätiedot

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

Turingin 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ätiedot

Algoritmin määritelmä [Sipser luku 3.3]

Algoritmin 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ätiedot

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

Laskennan 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ätiedot

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

Testaa: 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ätiedot

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

Turingin 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ätiedot

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

Todistus: 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ätiedot

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

TIEA241 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ätiedot

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

uv 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ätiedot

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

S 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ätiedot

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

Sää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ätiedot

2. Laskettavuusteoriaa

2. 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ätiedot

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Laskennan 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ätiedot

Turingin kone on kuin äärellinen automaatti, jolla on käytössään

Turingin 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ätiedot

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

TIEA241 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ätiedot

Rajoittamattomat kieliopit (Unrestricted Grammars)

Rajoittamattomat 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ätiedot

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

TIEA241 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ätiedot

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

ICS-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ätiedot

Täydentäviä muistiinpanoja laskennan rajoista

Tä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ätiedot

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

TIEA241 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ätiedot

Automaatit. Muodolliset kielet

Automaatit. 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ätiedot

Pinoautomaatit. Pois kontekstittomuudesta

Pinoautomaatit. 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ätiedot

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

TIEA241 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ätiedot

ICS-C2000 Tietojenkäsittelyteoria

ICS-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ätiedot

ICS-C2000 Tietojenkäsittelyteoria

ICS-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ätiedot

2. Laskettavuusteoriaa

2. 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ätiedot

Epä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 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ätiedot

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

3. 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ätiedot

Chomskyn hierarkia ja yhteysherkät kieliopit

Chomskyn 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 Ää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ätiedot

Yhteydettömän kieliopin jäsennysongelma

Yhteydettö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ätiedot

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

Pinoautomaatit. 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ätiedot

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

TIEA241 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ätiedot

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

TIEA241 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ätiedot

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Hahmon 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ätiedot

ICS-C2000 Tietojenkäsittelyteoria 4. TURINGIN KONEET. Turingin koneet

ICS-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ätiedot

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Pysä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ätiedot

Kertausta 1. kurssikokeeseen

Kertausta 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ätiedot

Rekursiivinen 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ää 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ätiedot

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

DFA: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ätiedot

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

TIEA241 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ätiedot

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

TIEA241 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ätiedot

Laskennan teoria

Laskennan 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ätiedot

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

Olkoon 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ätiedot

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

Rekursiolause. 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ätiedot

Muita universaaleja laskennan malleja

Muita 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ätiedot

6.1 Rekursiiviset palautukset

6.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ätiedot

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

M =(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ätiedot

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

TKT20005 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ätiedot

Säännöllisten kielten sulkeumaominaisuudet

Sää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ätiedot

Laskennan teoria

Laskennan 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ätiedot

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

TIEA241 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ätiedot

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

Pinoautomaatit. 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ätiedot

Ratkeavuus ja efektiivinen numeroituvuus

Ratkeavuus 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ätiedot

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

TIEA241 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ätiedot

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

Automaattiteoria 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ätiedot

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

Chomskyn 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ätiedot

Formalisoimme nyt edellä kuvatun laskennan.

Formalisoimme 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ätiedot

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa

Lisätiedot

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

Se 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ätiedot

S BAB ABA A aas bba B bbs c

S 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ätiedot

Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?

Laskennanteoria: 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ätiedot

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

TIEA241 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ätiedot

Muita vaativuusluokkia

Muita 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ätiedot

Ongelma(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? 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ätiedot

Jos 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)). 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ätiedot

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

Yllä 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ätiedot

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:

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: 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ätiedot

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

Tarkastelemme 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ätiedot

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

T 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ätiedot

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa

Lisätiedot

8. Kieliopit ja kielet

8. 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