Laskennan teoria

Save this PDF as:

Koko: px
Aloita esitys sivulta:

Download "Laskennan teoria"

Transkriptio

1 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa ja bioinformatiikan ja laskennallisen biologian suuntautumisvaihtoehdossa esitiedot käytännössä Tietorakenteet, Ohjelmoinnin ja laskennan perusmallit, joitain matematiikan opintoja kurssin voi hyvin aloittaa vaikka Ohj. lask. perusmallit olisi kesken 1

2 Opetusmuodot luennot ma 10 12, ke harjoitukset (ks. opetusohjelma) 8 harjoituskertaa, 5 tehtävää per kerta 40 tehtävää kurssikoe to kello (tarkista aikanaan) harjoitukset pakollisia: ratkaistava väh. 25% tehtävistä luennoijan vast.otot ma, to huone B229a seuraava erilliskoe

3 Kurssin suorittaminen maksimi 60 pistettä: koe 54 p., harjoitukset 6 p. hyväksymisraja noin 30 p., arvosanan 3/3 raja noin 51 p. harjoituspisteet tehty pisteet hyl Hyväksymisrajaan suhtaudutaan vakavasti. Jos laskarien kertymisessä on ongelmia, selvitä ajoissa luennoijan kanssa. 3

4 Oppimateriaali Kurssikirja Hopcroft, Motwani, Ullman: Introduction to Automata Theory, Languages, and Computation (luvut 8 10; kurssikirjahyllyssä) Oheislukemisto Orponen: Laskennan teoria (luvut 4 7 kattavat kurssin asiat; myydään laitoksen monistemyynnissä) Muitakin kirjoja on paljon, esim. Sipser: Introduction to the Theory of Computation Luentomateriaali ilmestyy kurssin kotisivulle ja luentokansioon (C127) mutta ei ole täydellinen esitys kurssin asioista (eräs) suositeltava materiaali itseopiskeluun: kalvokopiot + kurssikirja merkinnällä ( ) varustetut luentojen kohdat eivät välttämättä löydy kurssikirjasta eivätkä kuulu koealueeseen 4

5 Motto Computational problems are not only things that have to be solved, they are also objects that can be worth studying. Christos Papadimitriou 5

6 Tavoitteet tutustua universaaleihin laskennan malleihin hallita Turingin koneiden peruskonstruktiot ymmärtää että laskennalliset ongelmat voivat olla ratkeamattomia tai työläitä ymmärtää NP-täydellisyyden merkitys (myös matemaattinen merkitys) tunnistaa tyypilliset ratkeamattomat ja NP-täydelliset ongelmat osata yksinkertaiset ratkeamattomuus- ja NP-täydellisyystodistukset 6

7 Miksi? (tehokkaan) laskennan perusolemuksen selvittämistä ratkeamattomia ongelmia esiintyy logiikassa ja siihen liittyen tekoälyssä, formaalissa verifioinnissa jne. työläitä ongelmia esiintyy kaikenlaisissa sovelluksissa (pakkaus, verkot,... ) nämä asiat ovat niin keskeisiä että ne pitää tuntea pintaa syvemmältä mistä tarkalleen on kysymys mihin väitteet perustuvat johdatusta teoreettisen tietojenkäsittelytieteen ajatteluun (ja esitystapaan) (Lyhyt vastaus: hauskaa ja hyödyllistä) 7

8 Sisältö 0. Johdanto: laskennalliset ongelmat, pysähtymisongelman ratkeamattomuus 1. Universaaleja laskennan malleja: Turingin koneet, rajoittamattomat kieliopit, Churchin-Turingin teesi 2. Laskettavuusteoriaa: rekursiiviset ja rekursiivisesti lueteltavat kielet, rekursiiviset funktiot ja palautukset, universaalit Turingin koneet, ratkeamattomuustuloksia 3. Vaativuusteoriaa: aika- ja tilavaativuus, epädeterministiset vaativuusluokat, polynomiset palautukset, NP-täydellisyys 8

9 0. Johdanto Merkintöjä ja konventioita [HMU luku 1.5]: Γ, Σ: äärellisiä aakkostoja; esim. Γ = { 0, 1 }, Σ = { a, b, c, d }. Σ : aakkoston koko; esim. Σ = 4. pienet kirjaimet a, b, c,...: akkosmerkkejä pienet kirjaimet x, y, z, u, v, w,...: merkkijonoja; esim. x = ab, y = bac. x : merkkijonon pituus; esim. x = 2. xy: merkkijonojen katenaatio; esim. xy = abbac. 9

10 Σ : aakkoston Σ (äärellisten) merkkijonojen joukko ε: tyhjä merkkijono (merkitään usein myös λ); siis ε = 0 esim. jos Σ = { 0, 1 } niin Σ = { ε, 0, 1, 00, 01, 10, 11, 000, 001,... } millä tahansa äärellisellä Σ joukko Σ on numeroituvasti ääretön; ts. on olemassa bijektio f: N Σ (intuitiivisesti aakkoston Σ merkkijonoja on yhtä paljon kuin luonnollisia lukuja) esim. f(0) = ε, f(1) = 0, f(2) = 1, f(3) = 00 jne.; leksikografinen järjestys kieli on mikä tahansa joukko merkkijonoja; esim. Primes = { x { 0, 1 } x on alkuluvun binääriesitys } siis Primes = { 10, 11, 101, 111, 1011,... } = { 2, 3, 5, 7, 11,... } (merkintä = tarkoittaa että joukot jossain mielessä esittävät samaa asiaa) 10

11 laskennallinen ongelma on mikä tahansa kuvaus π: Σ Γ millä tahansa Σ, Γ päätösongelma on laskennallinen ongelma jonka arvojoukko on { 0, 1 } ( = { ei, kyllä }); päätösongelma π samastetaan usein kielen { x π(x) = 1 } kanssa intuitiivisesti algoritmi ratkaisee ongelman π, jos millä tahansa syötteellä x Σ se tulostaa funktion arvon π(x) Γ (määritellään pian täsmällisemmin) olkoon P(X) joukon X osajoukkojen joukko; siis esim. P({ a, b }) = {, { a }, { b }, { a, b } } siis yllämainittu samaistus huomioonottaen P(Σ ) on aakkoston Σ päätösongelmien joukko yksinkertainen argumentti osoittaa, että päätösongelmia on enemmän kuin algoritmeja kaikilla (päätös)ongelmilla ei mitenkään voi olla ratkaisualgoritmia 11

12 Lukumääräargumentti hieman tarkemmin ( ): Java-ohjelmat ovat merkkijonoja, joten mahdollisia Java-ohjelmia on numeroituva määrä (eli korkeintaan yhtä paljon kuin luonnollisia lukuja) Tunnetuista joukko-opin tuloksista seuraa, että jos X on numeroituvasti ääretön niin P(X) on ylinumeroituva (eli ei ole surjektiota N P(X)) Intuitiivisesti, jos joukon X alkioita on yhtä paljon kuin luonnollisia lukuja, niin joukon X osajoukkoja on enemmän kuin luonnollisia lukuja Tämä perustuu oleellisesti samaan Cantorin kuuluisaan diagonalisointiargumenttiin kuin tulos, että reaalilukuja on enemmän kuin luonnollisia lukuja. Erityisesti jos valitaan Σ = ASCII merkit niin nähdään, että aakkoston Σ päätösongelmia on enemmän kuin Java-ohjelmia. Koska määritelmän mukaan mikään ohjelma ei voi ratkaista kuin yhden päätösongelman, niin on olemassa ASCII-aakkoston päätösongelmia joille ei riitä ne ratkaisevaa Java-ohjelmaa 12

13 Onko em. lukumääräargumentti relevantti: kenties kaikki ratkeamattomat ongelmat ovat keinotekoisia ja mielenkiinnottomia, tai kenties jokainen ongelma voidaan ratkaista jollain ohjelmointikielellä? Osoittautuu kuitenkin, että monet luonnostaan esiintyvät ongelmat ovat ratkeamattomia, ja ratkeamattomuuden käsite on suunnilleen sama kaikilla riittävän voimakkailla laskentaformalismeilla ( ohjelmointikielillä) Johtopäätöksellä on siis vakavasti otettavia seuraamuksia. 13

14 Pysähtymisongelman ratkeamattomuus (( )/ [HMU 8.1]) (Epämuodollinen johdatteleva esimerkki; yksityiskohtiin palataan.) Väite: ei ole olemassa C-funktiota halts(p, x) joka saa syötteenä mielivaltaisen C-funktion tekstin p ja tälle sopivan syötteen x, palauttaa 1 jos laskenta p(x) pysähtyy ja palauttaa 0 muuten. Huom. 1: halts ei siis saa millään parametreilla joutua ikuiseen silmukkaan. Huom. 2: syntaksivirheet p:n tekstissä jne. kohtaan muuten. 14

15 Todistus (hieman C:n syntaksia muokaten): Tehdään vastaoletus että tällainen halts on olemassa. Olkoon c seuraavan ohjelman confuse tekstiesitys: void confuse(char *p){ int halts(char *p, char *x){... /* funktion "halts" runko */ } if (halts(p, p)==1) while (1); } Nyt sovelletaan funktion halts spesifikaatiota: ristiriita. confuse(c) pysähtyy halts(c, c)==1 confuse(c) jää silmukkaan; 15

16 Johtopäätös: hyvinkin perustavanlaatuiset ohjelmointiin liittyvät kysymykset ovat ratkeamattomia. Seuraavaksi tarkastellaan tämäntyyppisiä ilmiöitä ohjelmointikielten sijaan formaaleilla laskennan malleilla, erityisesti Turingin koneilla. Formaalien mallien etuja: semantiikka helppo määritellä formaalisti vältetään ohjelmointikielten hankalat erikoispiirteet vältetään tulosten riippuvuus ohjelmointikielestä saadaan yleinen matemaattinen teoria joka on täysin riippumaton käytettävissä olevista laskentalaitteista 16

17 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 Turingin koneen ja sen muunnelmien peruskäsitteet, osaa laatia yksinkertaisia Turingin koneita, tuntee periaatetasolla tärkeimmät Turingin koneisiin liittyvät yleiset konstruktiot ja niiden merkityksen, ymmärtää Turingin koneen suhteen muihin (teoreettisiin ja käytännöllisiin) laskennan malleihin ja tuntee Churchin-Turingin teesin ja osaa arvioida laskennan malleja sen valossa. 17

18 Universaalilla laskennan mallilla tarkoitetaan tässä epämuodollisesti sellaista mallia, jonka avulla on tarkoitus pystyä formalisoimaan kaikki mahdolliset algoritmiset prosessi. Tarkoitus on siis vastata täsmällisesti kysymykseen Mikä on algoritmi? Käytännön tietojenkäsittelijälle tyypillisesti riittää vastaus Tunnen kyllä algoritmin, kun näen sellaisen. Täsmällistä määritelmää tarvitaan kuitenkin, jos halutaan tarkastella kysymyksiä tyyppiä Onko ongelmalle X olemassa ratkaisualgoritmi? Ilman täsmällistä määritelmää ei voitaisi erottaa tapauksia 1. algoritmi on olemassa, sitä vain ei vielä ole keksitty ja 2. algoritmia ei periaatteellisista syistä voi olla olemassakaan. Käytännössä ensin asetetaan algoritmille matemaattinen määritelmä (oikeastaan useita vaihtoehtoisia), katsotaan sitten mitä seuraa, ja keskustellaan lopuksi filosofisista ja käytännön seuraamuksista. 18

19 Historiallista taustaa 1900-luvun alkupuolella matemaatikot tarkastelivat kysymystä, voiko annetulle väitteelle löytää todistuksen annetuista aksioomista jollain mekaanisella menettelyllä. Turingin kone on alkujaan eräs tapa formalisoida mekaaninen tässä yhteydessä. Myös muita, lopulta Turingin koneen kanssa yhtäpitäviksi osoittautuneita, malleja esitettiin. Kun sittemmin keksittiin yleiskäyttöiset elektroniset tietokoneet, Turingin kone osoittautui myös hyväksi malliksi sille, mitä niillä periaatteessa voidaan laskea (olettaen rajoittamaton muistikapasiteetti). Erityisesti universaali Turingin kone [luvussa 2] vastaa käsitteellisellä tasolla ohjelmoitavaa yleiskäyttöistä tietokonetta: ohjelma voidaan tulkita osaksi syötettä, ja ohjelmaa vaihtamalla sama laite saadaan ratkaisemaan mikä tahansa ratkaistavissa oleva ongelma. (Yksinkertaistettu vastaus alkuperäiseen kysymykseen: todistamista ei voida mekanisoida.) 19

20 Turingin kone (Alan Turing, 1936) [HMU 8.2] q 3 q 0 q 3 q 2 q 1 Ohjausyksikkö: kone tilassa q 1 Nauhapää osoittaa merkkiä B Työnauha sis. merkkijonon ABAAB Koneen siirtymäfunktio määrää mikä merkki kirjoitetaan nauhapään kohdalle, mihin suuntaan nauhapää liikkuu ja mikä on seuraava tila kun on annettu nykyinen tila ja nauhapään alla oleva merkki. 20

21 Motivaatio: yritetään tehdä abstrakti malli siitä, millaista laskentaa matemaatikko (tms.) voi tehdä mekaanisesti : käytettävissä kynä, kumi ja rajattomasti paperia kerralla nähdään vain vakiokokoinen osa muistiinpanoista matemaatikon oma muisti on äärellinen Vaikuttaa vähän erilaiselta kuin tietokoneet, mutta vuonna 1936 ei ollut tietokoneita malli osoittautuu yhtä voimakkaaksi kuin suoremmin moderneja tietokoneita esittävät mallit (lisää tuonnempana) 21

22 Muodollisemmin Turingin kone (Turing machine, TM) on seitsikko missä M = (Q, Σ, Γ, δ, q 0, B, F ) Q on tilajoukko jonka on oltava äärellinen Γ on nauha-aakkosto ja Σ Γ syöteaakkosto (kumpikin äärellinen) δ on siirtymäfunktio q 0 Q on alkutila B Γ Σ on tyhjämerkki (blank) F Q on hyväksyvien tilojen joukko 22

23 δ on osittainen funktio joukolta Q Γ joukkoon Q Γ { L, R }. Siirtymäfunktion arvo δ(q, X) = (q, Y, D) tarkoittaa että jos M on tilassa q ja nauhapään alla on merkki X niin seuraavalla laskenta-askelella M siirtyy tilaan q, kirjoittaa nauhalle merkin Y (merkin X tilalle) ja siirtää nauhapäätä yhden askelen suuntaan D (L: vasen, R: oikea). Jos δ(q, X) on määrittelemätön niin M pysähtyy. 23

24 Intuitiivisesti jos M pysähtyy hyväksyvään tilaan se hyväksyy syötemerkkijonon jos M pysähtyy muunlaiseen tilaan se hylkää syötemerkkijonon. Turingin koneen M hyväksymä (tai tunnistama) kieli L(M) Σ on niiden merkkijonojen joukko jotka M hyväksyy. Huom. kieleen L M eivät kuulu ne syötteet joilla M jää ikuiseen silmukkaan. Huom. erityisesti siis vaihtamalla koneen M hyväksyvät ja ei-hyväksyvät tilat keskenään ei saada konetta joka hyväksyy kielen L(M) = Σ L(M) paitsi jos kone M on sellainen että se pysähtyy kaikilla syötteillä. Kieltä L Σ sanotaan rekursiivisesti lueteltavaksi (recursively enumerable, RE) jos L = L(M) jollain Turingin koneella M, ja rekursiiviseksi (recursive, REC) jos lisäksi M pysähtyy kaikilla syötteillä. (Tästä lisää myöhemmin.) 24

25 Turingin koneen tilannetta (configuration) merkitään merkkijonolla vqw missä q Q on koneen tila, v Γ on nauhan sisältö vasemmanpuolimmaisesta ei-tyhjästä merkistä nauhapään vasemmalla puolella olevaan merkkiin ja w Γ on nauhan sisältö nauhapään kohdalla olevasta merkistä oikeanpuolimmaiseen tyhjään merkkiin. Siis alussa ollut esimerkkitilanne merkitään Aq 1 BAAB. Jos nauhapään vasemmalla puolella on vain tyhjää, niin v = ε ja merkkijonon w alussa voi olla tyhjää; vastaavasti oikealla. Koneen alkutilanne syötteellä w Σ on q 0 w. Siis aluksi kone on alkutilassa, syöte on nauhalla tyhjien ympäröimänä ja nauhapää syötteen alussa. 25

26 Jos siirtymäfunktion mukaan tilannetta vqw seuraa tilanne v q w, merkitään Siis vqw M v q w. jos δ(q, a) = (q, b, R) niin vqaw vbq w kaikilla v, w Γ jos δ(q, a) = (q, b, L) niin vcqaw vq cbw kaikilla c Γ, v, w Γ Jos on olemassa tilannejono v 1 q 1 w 1 = vqw, v 2 q 2 w 2, v 3 q 3 w 3,..., v n q n w n = v q w missä v i q i w i v i+1 q i+1 w i+1, merkitään vqw M v q w. Siis jos hyväksyvistä tiloista ei ole siirtymiä (kuten yleensä ei ole), pätee L(M) = { x Σ q 0 x M vqw joillain q F, v, w Γ }. 26

27 Esimerkki Konstruoidaan Turingin kone joka hyväksyy kielen A = { 0 n 1 n n 1 }. Perusidea: Apumerkkeinä X ja Y. Toistetaan seuraavaa: vaihdetaan 0:n tilalle X siirrytään nauhalla oikealle kunnes tulee 1 vaihdetaan 1:n tilalle Y palataan vasemmalle kunnes löytyy X aloitetaan seuraava iteraatio tämän X:n oikealta puolelta 27

28 Muodollisemmin A = L(M) missä M = ({ q 0, q 1, q 2, q 3, q 4 }, { 0, 1 }, { 0, 1, X, Y, # }, δ, q 0, #, { q 4 }) ja δ on oheisen taulukon mukainen. merkki tila 0 1 X Y # q 0 (q 1, X, R) (q 3, Y, R) q 1 (q 1, 0, R) (q 2, Y, L) (q 1, Y, R) q 2 (q 2, 0, L) (q 0, X, R) (q 2, Y, L) q 3 (q 3, Y, R) (q 4, #, R) q 4 Havainnollisemmin asian voi esittää siirtymäkaaviona. 28

29 .. Y/Y, R Y/Y, L 0/0, R 0/0, L 0/X, R 1/Y, L q 0 q 1 q 2 Y/Y, R X/X, R #, #, R q 3 q 4 Y/Y, R.. Kielen { 0 n 1 n n 1 } tunnistaminen; siirtymäkaavio 29

30 Esimerkki 2 Tunnistetaan kieli { a k b k c k k 0 } Perusajatus: korvataan yksitellen jotkin a, b ja c merkeillä A, B ja C samalla tulee tarkastetuksi että a:t on ennen b:itä jne. kun a:t loppuvat, tarkastetaan ettei b- tai c-merkkejä jäänyt yli Huom. kieli ei ole kontekstiton. 30

31 . a/a, R a/a, R B/B, R b/b, R C/C, R. q 0 q 1 q 2 b/b, R #, #, L a/a, R c/c, L A/A, R q 6 q 4 q 3 #, #, L B/B, R C/C, L b/b, L B/B, L a/a, L q 5 B/B, R C/C, R.. Kielen { a n b n c n n 0 } tunnistaminen 31

32 Huom. Turingin koneen laskentavoima (se mitkä kielet ovat tunnistettavissa) on sama vaikka mallia muunneltaisiin paljonkin erilliset hylkäävä ja hyväksyvä lopputila nauha vain toiseen suuntaan ääretön sallitaan nauhapään pysyä paikallaan nauhalla useita uria useita nauhoja... Vielä oleellisempaa on, että Turingin kone on laskentavoimaltaan sama kuin aivan muista lähtökohdista johdetut formalismit (Kleenen rekursiiviset funktiot, yleiset kieliopit, RAM-koneet,... ). 32

33 monimutkaisia turinginkonekonstruktioita ei tietenkään voi käytännössä esittää siirtymäkaavion tarkkuudella myös Turingin koneista puhuttaessa voidaan käyttää aliohjelmia ja muita vastaavia ajattelumalleja perusteiden ymmärtämiseksi kurssilla käytetään jonkin verran aikaa yksinkertaisten Turingin koneiden tarkkaan käsittelyyn samalla Turingin koneen varianttien asema selvenee ja nähdään tarkemmin miten Turingin kone suhtautuu moderniin tietokoneeseen 33

34 Turingin koneen laajennuksia [HMU ] Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k uraan (track) joilla kuitenkin on yhteinen nauhapää. kontrolliyksikkö # K O L M E U R A I N E N # # # # T U R I N G I N # # # # # # # # # K O N E # # # # # # # 34

35 jokaisella askelella luetaan ja kirjoitetaan kullekin uralle samalle kohdalle mutta muuten toisista urista riippumatta formaalisti nyt siis siirtymäfunktio on δ: Q Γ k Q Γ k { L, R } alkutilanteessa syöte ensimmäisellä uralla, muilla urilla tyhjämerkkiä helppo simuloida yksiuraisella koneella: vaihdetaan aakkoston Γ tilalle Γ k, tyhjämerkiksi (#,..., #) jne. voidaan käyttää moniuraisia koneita silloin kun se tuntuu helpommalta 35

36 Moninauhaiset Turingin koneet: nyt meillä on k nauhaa joilla omat nauhapäät (voivat liikkua eri suuntiin, ja yksinkertaisuuden vuoksi myös pysyä paikallaan). kontrolliyksikkö # K O L M E N A U H A I N E N # # T U R I N G I N # # # # # # # # # K O N E # # # # # # # 36

37 formaalisti nyt siis siirtymäfunktio on δ: Q Γ k Q Γ k { L, R, S } k alkutilanteessa syöte ensimmäisellä nauhalla, muilla nauhoilla tyhjämerkkiä Osoitetaan että k-nauhaista konetta voi simuloida 2k-uraisella yksinauhaisella koneella Idea: merkataan ylimääräisille urilla nauhapäiden sijainnit # K O L M E N A U H A I N E N # # T U R I N G I N # # # # # # K O L M E N A U H - - X # # T U R I N G I N X # # # K O N E # # # - - X # # # # K O N E # # # # # # # 37

38 Moninauhaisen koneen yhden askelen simuloimiseksi luetaan koko nauha kerran läpi ja muistetaan (äärellistilaisessä kontrollissa) mitkä merkit ovat nauhapäiden kohdalla valitaan siirtymä ja kirjoitettavat merkit luetaan koko nauha uudestaan läpi ja tehdään asiaankuuluvat muutokset Oletetaan että syötteellä x simuloitava kone tekee t(x) siirtymää käsiteltävän nauhanosan pituus myös kork. t(x) merkkiä simuloiva kone suorittaa O(t(x)) askelta per simuloitava askel simuloiva kone tekee kaikkiaan O(t(x) 2 ) askelta 38

39 Johtopäätös: kieli voidaan tunnistaa standardimallisella Turinginkoneella jos ja vain jos se voidaan tunnistaa moniuraisella Turingin koneella jos ja vain jos se voidaan tunnistaa moninauhaisella Turingin koneella. Muita samantyyppisiä variaatioita: syöte erillisellä read only -nauhalla nauhoilla alkukohta jonka vasemmalle puolelle ei saa mennä Näissä tapauksissa on myös selvää että tunnistamiseen käytettävien laskenta-askelien määrä ei muutu liikaa. Epädeterministiset koneet, joita seuraavaksi käsitellään, ovat ilmaisuvoimaltaan samoja kuin deterministiset mutta laskenta-aikojen suhteen tilanne on ongelmallisempi. 39

40 Epädeterministiset Turingin koneet analoginen epädeterministisen äärellisen ja pinoautomaatin kanssa yhdestä tilanteesta voi olla useita vaihtoehtoisia siirtymiä intuitio: ajatellaan että kone osaa arvata vaihtoehdon joka johtaa lopulta hyväksyvään tilaan (jos mahdollista) epädeterminismi on näppärä ohjelmointitekniikka Erityyppinen variantti kuin moninauhaiset jne. koneet ei (kovin) realistinen laskennan malli ratkeavien ongelmien luokka ei muutu vaikka epädeterminismi sallitaan tilanne muuttuu oleellisesti jos puhutaan nopeasta ratkaisemisesta; tähän palataan kurssin loppupuoliskolla 40

41 Muodollinen määrittely: Epädeterministinen Turingin kone (Nondeterministic Turing machine, NTM) on seitsikko missä M = (Q, Σ, Γ, δ, q 0, B, F ) Q, Σ, Γ, q 0, B ja F kuten deterministisessä tapauksessa siirtymäfunktio on funktio missä δ: Q Γ P(Q Γ { L, R }) P(A) = joukon A potenssijoukko = { B B A } 41

42 Epädeterministisen koneen hyväksymä kieli määritellään tilanteet vqw kuten deterministisessä tapauksessa samoin seuraajarelaatio M ja sen sulkeuma M, paitsi että ehdot muotoa (q, Y, D) = δ(q, X) korvataan ehdoilla (q, Y, D) δ(q, X) voi päteä vqw M v q w nollalla, yhdellä tai useammalla v q w (kuitenkin kork. 2 Q Γ ) koneen M hyväksymä kieli on L(M) = { x Σ q 0 x M vqw joillain q F, v, w Γ } M hyväksyy jos sopivat seuraajatilanteen valinnat johtaisivat hyväksyvään tilaan 42

43 Olkoon M epädeterministinen Turingin kone. Osoitetaan nyt miten kieli L(M) voidaan tunnistaa deterministisellä Turingin koneella. Perusidea koneen M simuloimiseksi annetulle syötteellä: tutkitaan (mahdollisesti ääretöntä) verkkoa, jonka solmuina ovat alkutilanteesta saavutettavissa olevat koneen M tilanteet tilanteiden vqw ja v q w välillä on kaari jos vqw M v q w M hyväksyy jos alkutilanteesta on polku hyväksyvään tilanteeseen etsitään tällainen polku leveyssuuntaisesti 43

44 Tarkemmin: Oletetaan että M on yksinauhainen. Simuloidaan deterministisellä 3-nauhaisella konella M. nauha 1 on työnauha nauha 2 sisältää jonon (queue) jolla leveyshakua ohjataan nauhaa 3 käytetään tilanteiden monistamiseen jonon jatkoksi Jos koneen M nauha-aakkosto on Γ, otetaan uudeksi nauha-aakkostoksi Γ = Γ { } Q. Jono jossa tilanteet v 1 q 1 w 1,..., v n q n w n voidaan koodata nauhalle 2 muotoon... ### v 1 q 1 w 1 v 2 q 2 w 2... v n q n w n ###... 44

45 Simulaatio (eli polunetsintä) etenee vaiheittain. vaiheen 1 aluksi nauhalla 2 on syötettä x vastaava alkutilanne q 0 x jos vaiheen k aluksi nauhalla 2 on (tyhjämerkkien lisäksi) niin vaiheen k lopuksi nauhalla on v 1 q 1 w 1 v 2 q 2 w 2... v n q n w n v 2 q 2 w 2... v n q n w n v 1 q 1 w 1 v 2 q 2 w 2... v p q p w p missä v i q i w i, i = 1,..., p, ovat ne tilanteet joilla v 1q 1 w 1 M v i q i w i. jos joskus tulee kirjoitettavaksi koneen M hyväksyvän tilan koodi, niin M hyväksyy syötteen jos jono tyhjenee, niin M hylkää syötteen 45

46 Vaiheen k toteutus suunnilleen: tarkista kuinka monta seuraajaa tilanteella v 1 q 1 w 1 on (huom. tällä on vakioyläraja 2 Γ Q ) tee tilanteesta v 1 q 1 w 1 tämän mukainen määrä kopioita nauhalle 3 käy kopiot järjestyksessä läpi ja muuta kukin vastaamaaan oikeannumeroista seuraajaa kopioi nauhalta 3 nauhalle 2 46

47 Oletetaan että koneella M on jokin hyväksyvä kork. n askelen pituinen laskenta, ja millään tilanteella ei ole yli m seuraajaa. M vie ensin jonoon tilanteet yhden (koneen M) laskenta-askelen päässä alkutilanteesta, sitten kahden askelen jne. k askelen päässä olevan tilanteen löytämiseksi voidaan joutua käymään läpi 1 + m + m m k tilannetta siis riittää tutkia nm n tilannetta yhden koneen M tilanteen kuvaus on O(n) merkkiä selvästi M hyväksyy jossain äärellisessä ajassa 47

48 Johtopäätös: Jos A = L(M) jollain epädeterministisellä M, niin A = L(M ) eräällä deterministisellä M. Käänteinen suunta tietysti myös pätee. Siis kieli A voidaan tunnistaa epädeterministisellä Turingin koneella jos ja vain jos se voidaan tunnistaa deterministisellä Turingin koneella. Mutta edelläesitetyssä konstruktiossa laskenta-askelia voi tulla eksponentiaalisesti lisää; tätä ongelmapiiriä käsitellään kurssin loppupuoliskolla. Huom. Tässä vaiheessa olisi tarkoitus tuntua suunnilleen uskottavalta, että Turingin koneella voidaan ratkaista tasan ne ongelmat joille on olemassa algoritmi, siinä mielessä kuin sanaa algoritmi on käytetty esim. kurssilla Tietorakenteet. Tätä väittämää perustellaan pian tarkemmin. 48

49 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 jos se voidaan ratkaista Turingin koneella. Jotta tämä valinta ei tuntuisi aivan mielivaltaiselta, käymme lyhyesti läpi edustavan kokoelman muita algoritmikäsitteelle ehdotettuja formalismeja: Random Access Machine: idealisoitu moderni tietokone Rajoittamattomat kieliopit: mahdollisimman yleinen produktiosääntöhin perustuva malli Rekursiiviset funktiot: algoritmisesti ratkeavien ongelmien joukko määritellään sellaisten sulkeumaominaisuuksien kautta, joita sillä tulisi olla ( jos ongelmalla A on ratkaisualgoritmi, niin silloin myös siitä muodostetulla ongelmalla B pitäisi olla ratkaisualgoritmi ) Osoittautuu, että kaikki nämä lähestymistavat johtavat oleellisesti samaan algoritmin käsitteeseen kuin Turingin koneet. 49

50 Edellä on yksinkertaisuuden vuoksi rajoituttu päätösongelmiin. Seuraavaksi esiteltävistä formalismeista Random Access Machine ja rekursiiviset funktiot ovat luontevampia ajatella osittaisten funktioden kautta. Olkoon M deterministinen Turingin kone, jonka syöteaakkosto on Σ. Oletetaan lisäksi, että M pysähtyy vain muotoa vqw olevissa tilanteissa, missä v, w Σ. Koneen M laskema osittainen funktio f: Σ Σ määritellään nyt seuraavasti: jos M syötteellä x pysähtyy tilanteeseen vqw, niin f(x) = vw Σ jos M syötteellä x ei pysähdy, niin f(x) ei ole määritelty. (Jos M jollain syötteellä pysähtyy siten, että nauhalla on ylimääräisiä syöteaakkostoon kuulumattomia merkkejä, se ei siis ylipäänsä laske mitään osittaista funktiota. Funktion laskemisessa ei kiinnitetä huomiota siihen, pysähtyykö kone hyväksyvään vai ei-hyväksyvään tilaan.) Yleisessä tapauksessa f ei ole oikea funktio, koska se ei ole määritelty kaikilla argumentin arvoilla x. Niinpä laskettavuuden teoriassa esiintyy paljon osittaisia funktioita. Jos M pysähtyy kaikilla syötteillä, asiaa usein korostetaan sanomalla että se laskee totaalisen funktion. 50

51 Random Access Machine (RAM) ( ) abstraktin tietokoneen konekieliohjelma koneessa rajoittamaton määrä rekistereitä jotka voivat sisältää mielivaltaisen suuren kokonaisluvun merkitään rekisterin j sisältöä r j, j = 0, 1, 2,... rekisteri 0 akku; lisäksi käskyosoitin κ syötteenä luvut i 1, i 2, i 3,... tuloste on rekisterin 0 sisältö laskennan pysähtymishetkellä; jos laskenta ei pysähdy, tuloste ei ole määritelty 51

52 RAMin käskykanta käsky merkitys READ j r 0 := i j READ *j r 0 := i rj STORE j r j := r 0 STORE *j r rj := r 0 LOAD x r 0 := val(x) ADD x r 0 := r 0 + val(x) SUB x r 0 := r 0 val(x) käsky merkitys HALF r 0 := r 0 /2 JUMP j κ := j JPOS j jos r 0 > 0 niin κ := j JZERO j jos r 0 = 0 niin κ := j JNEG j jos r 0 < 0 niin κ := j HALT laskenta pysähtyy r j on rekisterin numero j sisältämä kokonaisluku x voi olla jokin vaihtoehdoista %j, j tai j missä j N. val(%j) = j, val(j) = r j ja val( j) = r rj 52

53 Turingin koneiden ja RAMin vertaamiseksi samastetaan luonnolliset luvut ja niiden binääriesitykset. Toisin sanoen olkoon b(n) { 0, 1 } luvun n binääriesitys, kun n N. Sanomme, että Turingin kone M laskee osittaisen funktion f: N N, jos M laskee osittaisen funktion ˆf: { 0, 1 } { 0, 1 }, missä jos x = b(n) jollain n ja f(n) = m N, niin ˆf(x) = b(m) muuten ˆf(x) ei ole määritelty. Lause: Osittainen funktio f: N N voidaan laskea Turingin koneella, jos ja vain jos se voidaan laskea RAMilla. Todistushahmotelma: Vain jos -suunta on helppo: RAMilla pitää ensin muuntaa syöteluku binääriesityksekseen ja sen jälkeen simuloida Turingin konetta. Tämä on suoraviivainen ohjelmointiharjoitus. Jos -suuntaa varten kontruoidaan annetulle RAMille sitä simuloiva 7-nauhainen Turingin kone. Seuraavassa esitetään vain nauhojen sisältö, yksityiskohdat sivuutetaan. 53

54 Nauha 1: syöteluvut sopivasti koodattuna Nauha 2: rekisterien sisältö koodattuna jonoiksi b(j) : b(r j ) missä siis b( ) tarkoittaa binääriesitystä; näiden jonojen välillä voi olla mielivaltainen määrä tyhjämerkkejä Nauha 3: käskyosoitin κ Nauha 4: se indeksi j jota vastaavaa r j ollaan etsimässä nauhalta 2 Nauhat 5 7: työnauhoja aritmetiikkaan jne. 54

55 Turingin kone vs. tietokone [HMU 8.6] Edellä esitetyn perusteella Turingin kone on sopiva malli modernille tietokoneelle, jolla on käytettävissään rajoittamaton määrä muistia. Reaalisissa tietokoneissa on aina jokin kiinteä yläraja käytettävissä olevan muistin määrälle. Periaatteessa oikea malli tietokoneelle, jossa on B bittiä muistia, olisi äärellinen 2 B -tilainen automaatti. Näin monitilaisen systeemin ajatteleminen äärellisenä automaattina ei kuitenkaan ole kovin intuitiivista. Kun systeemiä ajatellaan Turingin koneena, saavutetaan se etu, että kontrolliosa on pieni, hallittavissa oleva ja sama kaiken kokoisille syötteille. Tämän takia siedetään mallissa se epärealistinen piirre, että Turingin koneen simulaatio voi joillain syötteillä vaatia enemmän muistia kuin fyysisesti on käytettävissä. Millä tahansa yksittäisellä päättyvällä laskennalla tosin tarvitaan vain jokin äärellinen määrä muistia, mutta tätä määrää ei voi tietää ennakolta. 55

56 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 äärelliset automaatit kontekstittomat kieliopit pinoautomaatit Nyt saadaan yksi vastaava pari lisää: rajoittamattomat kieliopit Turingin koneet 56

57 Rajoittamaton kielioppi on nelikko G = (V, Σ, P, S) missä V aakkosto Σ päätemerkit; N = V Σ välikemerkit P (V { ε }) V produktiot S N lähtösymboli Produktiota (α, β) merkitään yleensä α β. Erona kontekstittomiin kielioppeihin, että produktion vasemmalla puolella voi olla mikä tahansa epätyhjä merkkijono. 57

58 Merkkijono γ V johtaa suoraan merkkijonon γ V jos voidaan kirjoittaa γ = αωβ ja γ = αω β missä ω ω P. Tällöin merkitään γ G γ. Merkkijono γ V johtaa merkkijonon γ V jos on olemassa γ 0 = γ, γ 1, γ 2,..., γ n = γ joille γ i 1 G γ i. Tällöin merkitään γ G γ. Kieliopin G tuottama kieli on L(G) = { } x Σ S x. G 58

59 Esimerkki: muodostetaan G = (V, Σ, P, S) jolle L(G) = { a k b k c k k 0 }. (Huom. kieli { a k b k c k k 0 } ei ole kontekstiton.) Siis Σ = { a, b, c }. Valitaan N = { S, X, T, A, B, C } ja otetaan produktiot S XT S ε T ABCT T ABC BA AB CA AC CB BC XA a aa aa ab ab bb bb bc bc cc cc 59

60 Siis merkkijonon a k b k c k tuottamiseksi tuotetaan X(ABC) k järjestetään A-, B- ja C-merkit aakkosjärjestykseen; tuloksena XA k B k C k korvataan isot kirjaimet pienillä vasemmalta alkaen. Tämä osoittaa että rajoittamattomilla kieliopeilla voidaan tuottaa muitakin kuin kontekstisia kieliä. Seuraavaksi käydään periaatetasolla läpi konstruktiot, jotka osoittavat että itse asiassa rajoittamattomilla kieliopeilla voidaan tuottaa tasan ne kielet, jotka voidaan tunnistaa Turingin koneella. 60

61 Lause: Jos kieli voidaan tuottaa rajoittamattomalla kieliopilla, niin se voidaan tunnistaa Turingin koneella. Todistus (periaate): Olkoon G rajoittamaton kielioppi. Aiemmin esitetyn perusteella riittää muodostaa kaksinauhainen epädeterministinen Turingin kone M jolle L(M) = L(G). Nauha 1 sisältää vain kopion syötejonosta. Nauhalle 2 tuotetaan (epädeterministisesti) lähtösymbolista tuotettavissa olevia merkkijonoja. Laskennan aluksi nauhalle 2 kirjoitetaan pelkkä lähtösymboli. Jos jossain vaiheessa nauhojen sisällöt ovat samat, hyväksytään. 61

62 Laskenta koostuu vaiheista joissa kussakin viedään epädeterministisesti nauhan 2 nauhapää mielivaltaiseen paikkaan valitaan epädeterministisesti mielivaltainen kieliopin G produktio jos nauhapään kohdalta löytyy produktion vasen puoli, kirjoitetaan sen paikalle produktion oikea puoli verrataan nauhojen 1 ja 2 sisältöjä Koska produktioita on äärellinen määrä, ne voidaan koodata Turingin koneen tiloihin. Tarkemmat yksityiskohdat sivuutetaan. 62

63 Lause: Jos kieli voidaan tunnistaa Turingin koneella, niin se voidaan tuottaa rajoittamattomalla kieliopilla. Todistus: Olkoon M = (Q, Σ, Γ, δ, q 0, #, F ) annettu. Idea on muodostaa kielioppi G = (V, Σ, P, S) joka tuottaa koneen M tilanteita. Välikkeiksi otetaan siis ainakin koneen M tilojen symbolit. Produktiot suunnitellaan siten että [vqw] G [v q w ] jos ja vain jos vqw M v q w missä [ ja ] ovat uusia välikesymboleja. Tämä on mahdollista koska vqw M v q w edellyttää että vqw ja v q w eroavat toisistaan vain merkin q lähiympäristössä. 63

64 Merkkijonon x L(M) tuottaminen tapahtuu kolmessa vaiheessa: 1. tuotetaan lähtösymbolista S merkkijono x[q 0 x]. 2. muunnetaan x[q 0 x] G x[vq f w] missä q f F 3. siistitään x[vq f w] G x Varsinainen työ tapahtuu vaiheessa 2 jossa G simuloi konetta M. Jos x L(M), niin G ei pysty tuottamaan muotoa x[vq f w] olevia merkkijonoja. 64

65 Esitetään vielä konstruktion yksityiskohdat. Aakkostona on (huom. Σ Γ). V = Γ Q { S, T, [, ], X, Y } { A a a Σ } Produktiot jakautuvat edelläesitettyjen vaiheiden mukaisesti kolmeen osakokonaisuuteen: Vaihe 1: alkutilanteen tuottaminen S T [q 0 ] T ε T at A a A a [q 0 [q 0 A a A a b ba a A a ] a] (kaikilla a, b Σ) 65

66 Vaihe 2: siirtymien simulointi (nämä niille a, b, c Γ jotka ilmenevät siirtymäfunktiosta) Siirtymä δ(q, a) = (q, b, R) δ(q, a) = (q, b, L) δ(q, #) = (q, b, R) δ(q, #) = (q, b, L) δ(q, a) = (q, b, L) Vastaava produktio qa bq cqa q cb q] bq ] cq] q cb] [qa [q #b Vaihe 3: lopputilanteen siistiminen (kaikille a Γ, q f F ) q f XY ax X [X ε Y a Y Y ] ε 66

67 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 kontekstinen lin. rajoitettu TM 2 kontekstiton kontekstiton pinoautomaatti 3 säännöllinen oikealle lin. äärellinen autom. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit kuvan täydentämiseksi käydään tässä lyhyesti läpi taso 1 67

68 Kontekstinen kielioppi: kuten rajoittamaton kielioppi mutta produktioiden muotoa rajoitetaan sallitaan produktiot α β missä β α lisäksi sallitaan produktio S ε olettaen että S ei esiinny minkään produktion oikealla puolella Nimi kontekstinen tulee siitä, että tällaiset kielet voidaan muuntaa muotoon jossa produktiot (pl. mahd. S ε) ovat tyyppiä αaβ αωβ missä A on välike ja ω ε. Siis intuitiivisesti produktiota A ω saadaan käyttää vain kontekstissa α β. 68

69 Lineaarisesti rajoitettu Turingin kone on epädeterministinen yksinauhainen Turingin kone joka ei koskaan kirjoita mitään muuta niiden tyhjämerkkien päälle jotka nauhalla on alkutilanteessa. Siis kone käyttää ainoastaan syötteen pituuden verran nauhatilaa. Lause Kieli voidaan tuottaa kontekstisella kieliopilla jos ja vain jos se voidaan tunnistaa lineaarisesti rajoitetulla Turingin koneella. (Todistus sivuutetaan.) Tämä on siis esimerkki laskennan mallista, jossa pelkästään syötteen koon perusteella saadaan yläraja sen vaatiman laskennan määrälle. Universaaleilla laskennan malleilla näin ei ole, vaan lyhytkin syöte voi johtaa pitkään laskentaan. 69

70 Rekursiiviset funktiot (Gödel ja Kleene 1936) ( ) Palautetaan mieliin: kieli A on rekursiivisesti lueteltava jos A = L(M) jollain Turingin koneella M A on rekursiivinen jos lisäksi M pysähtyy kaikilla syötteillä Käytetään taas luvun n binääriesitykselle merkintää b(n), ja oletetaan että A { 0, 1 } n on joukko tällaisia binääriesityksiä (jos x A niin x = b(n) jollain n N). Seuraavassa määritellään rekursiiviset funktiot f: N N joille osoittautuu pätevän A on rekursiivinen kieli jos ja vain jos π A on rekursiivinen funktio, missä π A (n) = 1 jos b(n) A ja π A (n) = 0 muuten. A on rekursiivisesti lueteltava jos ja vain jos jollain rekursiivisella f pätee A = { b(f(x)) x N } 70

71 Rekursiivisten funktioiden määritelmän idea on seuraava: tietyt alkeisfunktiot pitäisi ilman muuta osata laskea jos on annettu joitain perusfunktioita jotka osataan laskea, niin niistä tietyillä yksinkertaisilla operaatioilla muodostetut funktiot pitäisi myös osata laskea Rekursiivisia funktioita ovat tasan ne jotka tämän logiikan mukaan pitäisi osata laskea. Tässä on siis tavallaan deklaratiivinen määritelmä laskettavuudella, itse laskentaprosessista ei puhuta mitään. Tietysti intuitio laskentaprosesseista on vahvasti taustalla kun valitaan sopivat alkeisfunktiot ja operaatiot. 71

72 Määritellään ensin yleisemmin osittaisrekursiiviset funktiot N k N. Alkeisfunktiot nollafunktio Z: N N, Z(x) = 0 kaikilla x seuraajafunktio S: N N, S(x) = x + 1 kaikilla x kaikilla n N ja 1 i n projektiofunktio U n i : Nn N, U n i (x 1,..., x n ) = x i kaikilla x 1,..., x n N Nämä ovat kaikki totaalisia funktioita eli määritelty kaikilla argumenttien arvoilla 72

73 Määritellään nyt operaatioita uusien funktioiden muodostamiseksi. Sijoitus: kun on annettu f: N k N ja g 1,..., g k jotka ovat funktioita N m N, sijoitus tuottaa funktion h: N m N, h(x) = f(g i (x),..., g k (x)) Rekursio: kun on annettu funktiot f: N k N ja g: N k+2 N, rekursio tuottaa sen funktion h: N k+1 N jolle h(x, 0) = f(x) h(x, y + 1) = g(x, y, h(x, y)) Jos jollain argumentilla x esim. jokin g i (x) ei ole määritelty, niin myöskään sijoittamalla saatu h(x) ei ole määritelty tällä x jne. Jos annetut funktiot ovat totaalisia, myös sijoittamalla ja rekursiolla syntyvät funktiot ovat. 73

74 Primitiivirekursiivisten funktioiden joukko PR on pienin joukko joka sisältää funktiot Z, S ja U n i kaikilla i, n ja on suljettu sijoittamisen ja rekursion suhteen (ts. jos funktiot f ja g i ovat joukossa PR, myös niistä sijoituksella tai rekursiolla saadut funktiot ovat) Siis PR koostuu tasan niistä funktioista, jotka voidaan muodostaa alkeisfunktioista Z, S ja Ui n sijoitusta ja rekursiota käyttäen. Tästä seuraa että kaikki primitiivirekursiiviset funktiot ovat totaalisia. 74

75 Esimerkkejä Identiteettifunktio f(x) = x on sama kuin projektio U 1 1. Muodostetaan g yhdistämällä S ja U3 3, siis g(x, y, z) = z + 1. Yhteenlaskufunktio p(x, y) = x + y toteuttaa p(x, 0) = x p(x, y + 1) = p(x, y) + 1 joten se saadaan rekursiolla ylläolevista f ja g. Kertolaskufunktio m(x, y) = xy puolestaan toteuttaa m(x, 0) = 0 m(x, y + 1) = m(x, y) + x joten se saadaan edelleen rekursiolla yhteenlaskufunktion avulla. 75

76 Kaikki tavalliset aritmeettiset perusfunktiot nähdään helposti primitiivirekursiivisiksi. Yleisemmin primitiivirekursiivisia ovat täsmälleen ne funktiot, jotka voidaan laskea käyttäen vain for-silmukoita joissa iteraatioiden määrä pitää kiinnittää ennen silmukan suorituksen alkua. On kuitenkin funktioita joiden laskemiseen tarvitaan yleisempää while-silmukkaa. Esim. voidaan osoittaa että Ackermannin funktio ψ(0, y) = y + 1 ψ(x + 1, 0) = ψ(x, 1) ψ(x + 1, y + 1) = ψ(x, ψ(x + 1, y)) kasvaa nopeammin kuin mikään primitiivirekursiivinen funktio Siis universaaliin laskennan malliin tarvitaan jokin primitiivirekursiota voimakkaampi mekanismi 76

77 Minimointi: kun on annettu funktio f: N k+1 N, minimointi tuottaa funktion g: N N jolle 1. jos jollain y kaikki arvot f(x, 0),..., f(x, y) ovat määriteltyjä ja f(x, y) = 0, niin g(x) on pienin tällainen y 2. muuten g(x) ei ole määritelty Arvoa y = g(x) voi tietysti etsiä laskemalla järjestyksessä f(x, 0), f(x, 1), f(x, 2), f(x, 3),... ja pysähtymällä kun tulee nolla. Etukäteen ei kuitenkaan ole mitään arviota, kuinka pitkälle joudutaan laskemaan. 77

78 Osittaisrekursiivisten funktioiden joukko PR on pienin joukko joka sisältää funktiot Z, S ja U n i kaikilla i, n ja on suljettu sijoittamisen, rekursion ja minimoinnin suhteen Rekursiivisia ovat ne osittaisrekursiiviset funktiot jotka ovat totaalisia. Esim. Ackermannin funktio ja kaikki primitiivirekursiiviset funktiot ovat rekursiivisia. Kuten alussa todettiin, voidaan osoittaa (kun A on joukko binäärikoodeja) että A on rekursiivinen kieli jos ja vain jos π A on rekursiivinen funktio A on rekursiivisesti lueteltava jos ja vain jos jollain rekursiiviselle f pätee A = { b(f(x)) x N } lisäksi A on rekursiivisesti lueteltava jos ja vain jos π A on osittaisrekursiivinen, missä π A (x) = 1 jos b(x) A ja π A (x) ei ole määritelty muuten 78

79 Churchin-Turingin teesi [HMU 8.2.1] Turing esitti oman määritelmänsä matemaattisen logiikan tarpeisiin malliksi siitä, mitä ihminen voi laskea sääntöjä mekaanisesti seuraamalla. Samoihin aikoihin samoihin tarpeisiin esitettiin useita muitakin määritelmiä (Gödel & Kleene; Postin produktiojärjestelmät). Nämä kaikki osoittautuivat Turingin määritelmän kanssa yhtäpitäviksi. Myöhemmin Turingin kone osoittautui hyväksi malliksi myös nykyaikaiselle tietokoneelle. Tästä seuraava askel on Churchin-Turingin teesi: Turingin koneet on oikea malli sille, mitä ylipäänsä on mahdollista laskea mekaanisesti sääntöjä seuraamalla. Teesi ei tietenkään ole matemaattinen väittämä. Sitä voidaan pitää empiirisenä väittämänä, koska se on periaatteessa falsifioitavissa esittämällä laskulaite, joka laskee ei-rekursiivisia funktioita. Tämäkin on tosin hieman ongelmallista, koska käytännössä voidaan tarkastella vain rajoitetun kokoisia syötteitä. Nykyään teesi on varsin laajasti hyväksytty, mutta ideoita Turingin konetta voimakkaammista laskulaitteista esitetään toisinaan. 79

80 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ää tyypillisiä Turingin koneisiin liittyviä ongelmia formaalisti ja tarkastella niiden ratkeavuutta tunnettujen tulosten valosssa osaa yhdistää käytännön algoritmiongelmia tunnettuihin formaaleihin ratkeamattomuustuloksiin osaa tehdä yksinkertaisia ratkeamattomuustodistuksia 80

81 Palautetaan mieliin terminologiaa: Kieli L Σ on rekursiivisesti lueteltava jos A = L(M) jollain Turingin koneella M. Turingin kone on totaalinen jos se pysähtyy kaikilla syötteillä. (Joissain lähteissä käytetään termiä algoritmi spesifisti tällaisista koneista.) Kieli L Σ on rekursiivinen jos A = L(M) jollain totaalisella Turingin koneella M. Vastaavasti Päätösongelma π: Σ { 0, 1 } on osittain ratkeava jos vastaava kieli on rekursiivisesti lueteltava. A π = { x Σ π(x) = 1 } Päätösongelma π on ratkeava jos A π on rekursiivinen. 81

82 Termien selityksiä rekursiivinen tulee siitä että tämä kieliluokka historiallisesti vakiintui Kleenen ja Gödelin rekursiokonstruktion kautta lueteltava tulee siitä että A on rekursiivisesti lueteltava jos ja vain jos on olemassa algoritmi joka luettelee joukon A alkiot (ja vain ne) jos x A niin x esiintyy luettelossa jonkin äärellisen ajan kuluttua ja asia on selvä jos x A niin x ei tule koskaan esiintymään luettelossa, mutta tätähän ei voi tietää pelkästään katsomalla jotain luettelon äärellistä alkuosaa Luetteloimisidea esitetään myöhemmin yksityiskohtaisemmin. Huom. kaikista laskennallisista ongelmista vain häviävän pieni osa on edes osittain ratkeavia, mutta tietojenkäsittelytieteessä tietysti yleensä keskitytään ratkeaviin ongelmiin. 82

83 Churchin-Turingin teesin mukaan ratkeavuus tarkoittaa samaa, kuin että ongelma voidaan ratkaista jollain algoritmisella menettelyllä. Esitämme jatkossa joukon Turingin koneita koskevia eksakteja matemaattisia tuloksia, mutta jos uskomme C-T:n teesin, näillä on siis yleisempiä seurauksia. C-T:n teesi oikeastaan motivoi koko tämän tutkimusohjelman, koska muuten Turingin koneet eivät välttämättä olisi kovin kiinnostava tutkimuskohde. (Tosin voidaan kumminkin argumentoida, että Turingin kone on oikea malli sille mitä ihminen voi mekaanisesti laskea, ja mitä nykyiset tietokoneet voivat laskea.) Joka tapauksessa on kuitenkin selvää, että jos ongelma osataan ratkaista esim. Java-kielellä, se voidaan ratkaista myös Turingin koneella (vrt. RAM-malli luvussa 1). Samoin joka tapauksessa jonkin ongelman ratkeamattomuuden osoittaminen on aina ei-triviaalia, koska pitää osoittaa että mikään Turingin kone ei ratkaise sitä. 83

84 Formaalin logiikan todistuvuusongelma (Motivoiva esimerkki yleisellä tasolla; yksityiskohdat ks. esim. Matemaattinen logiikka) Annettu: ensimmäisen kertaluvun predikaattilogiikan kaava φ Kysymys: onko kaavalle φ olemassa todistus predikaattilogiikan aksioomista Voidaan helposti luetella ensin kaavat joilla on yhden askelen mittainen todistus, sitten ne joilla on kahden askelen mittainen todistus jne. Siis todistuksen omaavien kaavojen joukko on rekursiivisesti lueteltava, ja todistuvuusongelma osittain ratkeava. Kuitenkin osoittautuu, että todistuvuusongelma ei ole ratkeava. 84

85 Pysähtymisongelma (johdanto) [HMU 9.1] Intuitiivisesti on kysymys seuraavasta ongelmasta: Annettu: Turingin kone M, merkkijono x Kysymys: pysähtyykö kone M syötteellä x Tavoitteena on osoittaa tämä ongelma ratkeamattomaksi. Ensimmäinen osatavoite, puhtaasti tekninen ja käsitteellisesti yksinkertainen, on esittää Turingin koneet merkkijonoina. Muutenhan niistä ei olisi formaalisti mielekästä edes puhua algoritmin syötteenä tms. Esitämme siis seuraavaksi yksinkertaisen koodauksen, joka liittää jokaiseen Turingin koneeseen M = (Q,..., F ) merkkijonon w { 0, 1 } ja kääntäen. 85

86 Turingin koneiden koodaus Rajoittaudutaan yksinauhaisiin koneisiin ja syöteaakkostoon Σ = { 0, 1 }. Lisäksi oletetaan että hyväksyviä tiloja on tasan yksi ja se ei ole alkutila. Numeroidaan aakkoston { 0, 1 } merkkijonot siten, että merkkijonon w numero on 1w binääriluvuksi tulkittuna. Olkoon w i merkkijono numero i; siis w 1 = ε, w 2 = 0, w 3 = 1, w 4 = 00, w 5 = 01 jne. Oletetaan nyt M = (Q, { 0, 1 }, Γ, δ, q 1, #, F ) missä Q = k, Q = { q 1,..., q k } ja F = { q 2 } Γ = m 3, Γ = { X 1,..., X m }, X 1 = 0, X 2 = 1, X 3 = # suunnat on numeroitu L = D 1 ja R = D 2 86

87 Nyt kaikki muu paitsi δ on numeroitu. koodataan yksittäinen siirtymä δ(q i, X j ) = (q k, X l, D m ) jonoksi 0 i 10 j 10 k 10 l 10 m huom. i, j, k, l, m 1 joten tässä ei koskaan tule kahta ykköstä peräkkäin merkkijono C 1 11C C n 1 11C n on koodi koneelle jossa on n siirtymää joiden koodit ovat C 1,..., C n Huomaa että samalla koneella on tyypillisesti useita eri koodeja yksi merkkijono ei kuitenkaan voi koodata useita eri koneita jotkin merkkijonot eivät ole minkään koneen koodeja 87

88 Olkoon M triv jokin kiinteä Turingin kone joka hylkää kaikki syötteet. Määritellään kaikille w { 0, 1 } Turingin kone M w seuraavasti: jos w on jonkin koneen M koodi, niin M w on tämä M muuten M w = M triv Aputuloksena pysähtymisongelman ratkeamattomuustodistuksessa osoitetaan, että diagonaalikieli ei ole edes rekursiivisesti lueteltava. L d = { w { 0, 1 } w L(M w ) } Kieli L d on hieman keinotekoinen. Sen merkitys on lähinnä, että sen avulla voidaan osoittaa muita kiinnostavampia ongelmia ratkeamattomaksi. 88

89 Analogia: Koodit ja ohjelmointikielet Eräs mahdollinen analogia on seuraava: Tulkitaan, että ohjelma hyväksyy syötteen, jos sen suoritus päättyy normaalisti, ja hylkää jos suoritus päättyy virheeseen. Lisäksi ohjelma voi jäädä silmukkaan. Nyt Turingin kone M konekieliohjelma merkkijono w { 0, 1 } ASCII-merkkijono (esim. C-ohjelma) M w ohjelma w käännettynä M triv konekieliohjelma joka aina jää silmukkaan Lisäksi sovimme, että M w = M triv jos w ei ole syntaktisesti korrekti C-ohjelma. Nyt C-ohjelma kuuluu joukkoon L d, jos se ei pysähdy normaalisti, kun (se käännetään ja) siille annetaan syötteenä oma lähdekoodinsa. Huom. C-kieli ja konekieli ovat yhtä laskentavoimaisia, joten analogia voitaisiin ajatella toisinkin päin: konekieliohjelmasta voidaan kääntää C-ohjelma. 89

90 Lause 2.1: [HMU Thm. 9.2] Kieli L d = { w { 0, 1 } w L(M w ) } ei ole rekursiivisesti lueteltava. Todistus: Tehdään vastaoletus että L d = L(M) jollain M. Olkoon w jokin koneen M koodi; siis L d = L(M w ). Nyt w L d w L(M w ) w L d missä on ensin käytetty kielen L d määritelmää ja sitten koodin w valintaperustetta; ristiriita. Nyt olemme saaneet ensimmäisen konkreettisen ratkeamattomuustuloksen. Jatkossa osoitamme suurelle joukolle ongelmia X, että jos X osattaisiin ratkaista, niin L d voitaisiin tunnistaa. Tästä seuraa ongelman X ratkeamattomuus yo. lauseen nojalla. 90

91 Rekursiivisuuden perusominaisuuksia [HMU ] Ennen kuin ruvetaan tarkastelemaan varsinaisen pysähtymisongelman ratkeamattomuutta, on hyödyllistä tarkastella rekursiivisten kielten luokan joitain perusominaisuuksia. Oletetaan jatkossa että Turingin koneissa on tasan yksi hyväksyvä tila, ja tästä ei mitään siirtymiä tasan yksi sellainen ei-hyväksyvä tila, josta ei ole mitään siirtymiä (hylkäävä lopputila) muuten kaikki siirtymät määriteltyjä On helppo muuntaa mikä tahansa Turingin kone tällaiseen muotoon. 91

92 Lause 2.2: Olkoot A, B Σ rekursiivisia. Nyt myös A = Σ A, A B ja A B ovat rekursiivisia. Todistus: Olkoon A = L(M A ) ja B = L(M B ) missä M A ja M B ovat totaalisia. Esitetään Turingin koneet kaavamaisesti: alkutila M hyväksyvä hylkäävä 92

93 Kielen A hyväksyvä kone saadaan vaihtamalla koneen M A hyväksyvä ja hylkäävä lopputila keskenään Kielen A B hyväksymiseksi simuloidaan ensin konetta M A. jos M A hyväksyy, niin hyväksytään jos M A hylkää, niin simuloidaan konetta M B jonka ratkaisu jää voimaan (kuva seuraavalla sivulla) Tapaus A B seuraa koska A B = A B 93

94 M A M B Kielen A B tunnistaminen koneiden M A ja M B avulla 94

95 Lause 2.3: Olkoot A, B Σ rekursiivisesti lueteltavia. Nyt myös A B ja A B ovat rekursiivisesti lueteltavia. Todistus: Harjoitustehtävä. Sen sijaan yleisesti ei päde että rekursiivisesti lueteltavan kielen A komplementti A olisi rekursiivisesti lueteltava. Sen sijaan pätee Lause 2.4: Kieli A on rekursiivinen jos ja vain jos sekä A että A ovat rekursiivisesti lueteltavia. 95

96 Todistus: Jos A rekursiivinen, niin A on rekursiivinen, joten suunta vasemmalta oikealle on selvä. Olkoot toisaalta M A ja M A koneet jotka tunnistavat kielet A ja A. Muodostetaan kaksinauhainen kone M, joka on totaalinen ja tunnistaa kielen A. Kone M simuloi konetta M A käyttäen ykkösnauhaansa ja konetta M A käyttäen kakkosnauhaansa. Simulaatiot suoritetaan lomittain, aina yksi askel kerrallaan kumpaakin. Jos simuloitava M A hyväksyy, M hyväksyy. Jos simuloitava M A hyväksyy, M hylkää. Koska jokaisella x joko x L(M A ) tai x L(M A ), aina tasan yksi simulaatioista hyväksyy. (kuva seuraavalla sivulla) 96

97 M A M A Kielen A tunnistaminen totaalisella koneella jos A ja A ovat rekursiivisesti lueteltavia 97

98 Formalistisemmin tulos voidaan esittää seuraavasti: Olkoon RE rekursiivisesti lueteltavien kielten joukko: RE = { L(M) M mielivaltainen Turingin kone }. Olkoon co-re rekursiivisesti lueteltavien kielten komplemettien joukko: co-re = { A A RE }. Olkoon REC rekursiivisten kielten joukko: Edellä esitetyn mukaan REC = { L(M) M totaalinen }. REC = RE co-re. 98

99 Huomaa yhteys rekursiivisen luettelemisen ajatukseen: Oletetaan, että jokin algoritmi M A osaa luetella kielen A; samoin M A kielelle A. Kun halutaan tietää päteekö x A, listataan rinnakkain joukkoja A ja A. Koska joko x A tai x A, niin jonkin äärellisen ajan kuluttua x esiintyy jommassa kummassa listassa ja vastaus tiedetään. Myös A-lista tarvitaan jotta voidaan taata pysähtyminen myös kielteisessä tapauksessa. 99

100 Universaalikieli [HMU ] Seuraava askel kohti pysähtymisongelman ratkeamattomuutta on universaalikieli L u joka on muutenkin hyvin tärkeä: Huom. L u = { w111x { 0, 1 } x L(M w ) }. mikään Turingin koneen koodi ei sisällä merkkijonoa 111 siis merkkijono z { 0, 1 } voidaan esittää korkeintaan yhdellä tavalla muodossa z = w111x siten, että w on validi Turingin koneen koodi jos w ei ole validi koodi, edellä sovitun mukaan x L(M w ) kaikilla x Osoitamme nyt että universaalikieli on rekursiivisesti lueteltava, mutta ei rekursiivinen. Kielen L u tunnistavaa Turingin konetta U sanotaan universaaliksi Turingin koneeksi. (Universaalikone ei tietenkään ole yksikäsitteinen.) 100

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

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

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

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

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

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

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

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

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

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

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

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

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

Laskennan teoria

Laskennan teoria 581336-0 Laskennan teoria luennot kevatlukukaudella 2006 Jyrki Kivinen tietojenkasittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkasittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

3. Laskennan vaativuusteoriaa

3. Laskennan vaativuusteoriaa 3. Laskennan vaativuusteoriaa tähän asti puhuttu siitä, mitä on mahdollista laskea äärellisessä ajassa siirrytään tarkastelemaan laskemista kohtuullisessa ajassa vaihtoehtoisesti voidaan laskenta-ajan

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

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

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013 ja ja TIEA241 Automaatit ja kieliopit, kesä 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. kesäkuuta 2013 Sisällys ja ja on yksi vanhimmista tavoista yrittää mallittaa mekaanista laskentaa. Kurt

Lisätiedot

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

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä Edellä esitetyt kielten A TM ja HALT TM ratkeamattomuustodistukset ovat esimerkkejä palautuksesta (reduction). Intuitiivisesti ongelman A palauttaminen ongelmaan B tarkoittaa, että Oletetaan, että meillä

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

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

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

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

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

3SAT-ongelman NP-täydellisyys [HMU ] 3SAT-ongelman NP-täydellisyys [HMU 10.3.4] erotukseksi yleisestä CNF-esityksestä, kaikilla kaavoilla ei ole 3-CNF-esitystä; esim. x 1 x 2 x 3 x 4 esitämme muunnoksen, jolla polynomisessa ajassa mielivaltaisesta

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

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

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

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

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

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

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

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

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

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016 .. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 20. lokakuuta 2016 Sisällys. Turingin koneiden pysähtymisongelma. Lause Päätösongelma Pysähtyykö standardimallinen

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

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

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

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

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja 582206 Laskennan mallit (syksy 2008) 2. kurssikoe 11.12., ratkaisuja Tehtävän 1 tarkasti Harri Forsgren, tehtävän 2 Joel Kaasinen ja tehtävän 3 Jyrki Kivinen. Palautetilaisuuden 19.12. jälkeen arvosteluun

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

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

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

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

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen

Lisätiedot

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS

jäsentäminen TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho 26. marraskuuta 2015 TIETOTEKNIIKAN LAITOS TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. marraskuuta 2015 Sisällys Tunnistamis- ja jäsennysongelma Olkoon G = (N, Σ, P, S) kontekstiton kielioppi ja

Lisätiedot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Esimerkkejä polynomisista ja ei-polynomisista ongelmista Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia

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

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

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

582206 Laskennan mallit

582206 Laskennan mallit 582206 Laskennan mallit luennot syksylla 2006, periodit I{II Jyrki Kivinen tietojenkasittelytieteen aineopintokurssi, 6 op, paaaineopiskelijoille pakollinen esitietoina Tietorakenteet (ja sen esitiedot)

Lisätiedot

Johdatus matematiikkaan

Johdatus matematiikkaan Johdatus matematiikkaan Luento 7 Mikko Salo 11.9.2017 Sisältö 1. Funktioista 2. Joukkojen mahtavuus Funktioista Lukiomatematiikassa on käsitelty reaalimuuttujan funktioita (polynomi / trigonometriset /

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

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

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

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013 TIEA241 Automaatit ja kieliopit, kesä 2013 etenevä Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. kesäkuuta 2013 Sisällys etenevä etenevä Chomskyn hierarkia (ja muutakin) kieli säännöllinen LL(k) LR(1)

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

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

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

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }? Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa. Vastaus 2. Vertaillaan

Lisätiedot

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

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

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