Laskennan teoria

Koko: px
Aloita esitys sivulta:

Download "Laskennan teoria"

Transkriptio

1 Laskennan teoria luennot kevatlukukaudella 2006 Jyrki Kivinen tietojenkasittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkasittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa ja bioinformatiikan ja laskennallisen biologian suuntautumisvaihtoehdossa esitiedot kaytannossa Tietorakenteet, Ohjelmoinnin ja laskennan perusmallit, joitain matematiikan opintoja 1

2 Opetusmuodot luennot (11 3 tuntia) harjoitukset (ks. opetusohjelma) 11 harjoituskertaa, 4 tehtavaa per kerta ) 44 tehtavaa kurssikoe to 4.5. (tarkista aikanaan) harjoitukset pakollisia: ratkaistava vah. 25% tehtavista luennoijan vast.otot ke , pe seuraava erilliskoe

3 Kurssin suorittaminen maksimi 60 pistetta: koe 54 p., harjoitukset 6 p. hyvaksymisraja noin 30 p., arvosanan 3/3 raja noin 50 p. harjoituspisteet tehty 0{11 12{15 16{19 20{23 24{27 28{31 32{35 36{44 pisteet hyl Hyvaksymisrajaan suhtaudutaan vakavasti. Jos laskarien kertymisessa on ongelmia, selvita ajoissa luennoijan kanssa. 3

4 Oppimateriaali Kurssikirja Hopcroft, Motwani, Ullman: Introduction to Automata Theory, Languages, and Computation (luvut 8{10; kurssikirjahyllyssa) Oheislukemisto Orponen: Laskennan teoria (luvut 4{7 kattavat kurssin asiat) Muitakin kirjoja on paljon, esim. Sipser: Introduction to the Theory of Computation on suositeltava Luentomateriaali ilmestyy kurssin kotisivulle mutta ei ole taydellinen esitys kurssin asioista (eras) suositeltava materiaali itseopiskeluun: kalvokopiot + kurssikirja merkinnalla ( ) varustetut luentojen kohdat eivat valttamatta loydy kurssikirjasta eivatka kuulu koealueeseen 4

5 Vihjeita (?) opiskeluun Karkea kaavamainen tyomaaraarvio (esim. kurssipalautteen yhteydessa olisi mukava kuulla, paljonko aikaa kurssi todella vei): luennot 11 3 = 33 tuntia laskuharjoitustilaisuudet 11 1,5 = 16,5 tuntia harjoitustehtavien itsenainen ratkaiseminen 11 5 = 55 tuntia kertaaminen ja tentti 12,5 + 3 = 15,5 tuntia yhteensa 120 tuntia Asioiden omaksuminen edellyttaa riittavan maaran itsenaista pohdiskelua, esim. harjoitustehtavien ratkaisemista oppikirjaa apuna kayttaen. Pelkka luentojen seuraaminen ei tyypillisesti riita. Kurssin pakollisuus kannattaa ottaa vakavasti. Suorituksen lykkaaminen johtaa ongelmiin. 5

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

7 Tavoitteet tutustua universaaleihin laskennan malleihin hallita Turingin koneiden peruskonstruktiot ymmartaa etta laskennalliset ongelmat voivat olla ratkeamattomia tai tyolaita ymmartaa NP-taydellisyyden merkitys (myos matemaattinen merkitys) tunnistaa tyypilliset ratkeamattomat ja NP-taydelliset ongelmat osata yksinkertaiset ratkeamattomuus- ja NP-taydellisyystodistukset 7

8 Miksi? (tehokkaan) laskennan perusolemuksen selvittamista ratkeamattomia ongelmia esiintyy logiikassa ja siihen liittyen tekoalyssa, formaalissa verioinnissa jne. tyolaita ongelmia esiintyy kaikenlaisissa sovelluksissa (pakkaus, verkot,... ) nama asiat ovat niin keskeisia etta ne pitaa tuntea pintaa syvemmalta { mista tarkalleen on kysymys { mihin vaitteet perustuvat johdatusta teoreettisen tietojenkasittelytieteen ajatteluun (ja esitystapaan) (Lyhyt vastaus: hauskaa ja hyodyllista) 8

9 Sisalto 0. Johdanto: laskennalliset ongelmat, pysahtymisongelman 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, epadeterministiset vaativuusluokat, polynomiset palautukset, NP-taydellisyys 9

10 0. Johdanto Merkintoja ja konventioita [HMU luku 1.5]:, : aarellisia aakkostoja; esim. = f 0; 1 g, = f a; b; c; d g. j j: aakkoston koko; esim. j j = 4. pienet kirjaimet a; b; c; : : :: aakkosmerkkeja pienet kirjaimet x; y; z; u; v; w; : : :: merkkijonoja; esim. x = ab, y = bac. jxj: merkkijonon pituus; esim. jxj = 2. xy: merkkijonojen katenaatio; esim. xy = abbac. 10

11 : aakkoston (aarellisten) merkkijonojen joukko ": tyhja merkkijono (merkitaan usein myos ); siis j"j = 0 esim. jos = f 0; 1 g niin = f "; 0; 1; 00; 01; 10; 11; 000; 001; : : : g milla tahansa aarellisella joukko on numeroituvasti aareton; ts. on olemassa bijektio f: N! (intuitiivisesti aakkoston merkkijonoja on "yhta paljon" kuin luonnollisia lukuja) esim. f(0) = ", f(1) = 0, f(2) = 1, f(3) = 00 jne.; leksikogranen jarjestys kieli on mika tahansa joukko merkkijonoja; esim. Primes = f x 2 f 0; 1 g j x on alkuluvun binaariesitysg siis Primes = f 10; 11; 101; 111; 1011; : : : g 4 = f 2; 3; 5; 7; 11; : : : g (merkinta " 4 =" tarkoittaa etta joukot jossain mielessa esittavat samaa asiaa) 11

12 laskennallinen ongelma on mika tahansa kuvaus :! milla tahansa ; paatosongelma on laskennallinen ongelma jonka arvojoukko on f 0; 1 g ( 4 = f ei; kylla g); paatosongelma samastetaan usein kielen f x j (x) = 1 g kanssa intuitiivisesti algoritmi ratkaisee ongelman, jos milla tahansa syotteella x 2 se tulostaa funktion arvon (x) 2 (maaritellaan pian tasmallisemmin) olkoon P(X) joukon X osajoukkojen joukko; siis esim. P(f a; b g) = f ;; f a g ; f b g ; f a; b g g siis yllamainittu samaistus huomioonottaen P( ) on aakkoston paatosongelmien joukko yksinkertainen argumentti osoittaa, etta paatosongelmia on "enemman" kuin algoritmeja ) kaikilla (paatos)ongelmilla ei mitenkaan voi olla ratkaisualgoritmia 12

13 Lukumaaraargumentti hieman tarkemmin ( ): Java-ohjelmat ovat merkkijonoja, joten mahdollisia Java-ohjelmia on numeroituva maara (eli "korkeintaan yhta paljon" kuin luonnollisia lukuja) Tunnetuista joukko-opin tuloksista seuraa, etta jos X on numeroituvasti aareton niin P(X) on ylinumeroituva (eli ei ole surjektiota N! P(X)) Intuitiivisesti, jos joukon X alkioita on "yhta paljon" kuin luonnollisia lukuja, niin joukon X osajoukkoja on "enemman" kuin luonnollisia lukuja Tama perustuu oleellisesti samaan Cantorin kuuluisaan diagonalisointiargumenttiin kuin tulos, etta reaalilukuja on "enemman" kuin luonnollisia lukuja. Erityisesti jos valitaan = ASCII merkit niin nahdaan, etta aakkoston paatosongelmia on "enemman" kuin Java-ohjelmia. Koska maaritelman mukaan mikaan ohjelma ei voi ratkaista kuin yhden paatosongelman, niin on olemassa ASCII-aakkoston paatosongelmia joille ei "riita" ne ratkaisevaa Java-ohjelmaa 13

14 Onko em. lukumaaraargumentti relevantti: kenties kaikki ratkeamattomat ongelmat ovat keinotekoisia ja mielenkiinnottomia, tai kenties jokainen ongelma voidaan ratkaista jollain ohjelmointikielella? Osoittautuu kuitenkin, etta monet luonnostaan esiintyvat ongelmat ovat ratkeamattomia, ja ratkeamattomuuden kasite on suunnilleen sama kaikilla riittavan voimakkailla laskentaformalismeilla (ohjelmointikielilla) Johtopaatoksella on siis vakavasti otettavia seuraamuksia. 14

15 Pysahtymisongelman ratkeamattomuus (( )/ [HMU 8.1]) (Epamuodollinen johdatteleva esimerkki; yksityiskohtiin palataan.) Vaite: ei ole olemassa C-funktiota halts(p, x) joka saa syotteena mielivaltaisen C-funktion tekstin p ja talle sopivan syotteen x, palauttaa 1 jos laskenta p(x) pysahtyy ja palauttaa 0 muuten. Huom. 1: halts ei siis saa millaan parametreilla joutua ikuiseen silmukkaan. Huom. 2: syntaksivirheet p:n tekstissa jne. kohtaan "muuten". 15

16 "Todistus" (hieman C:n syntaksia muokaten): Tehdaan vastaoletus etta tallainen 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 spesikaatiota: confuse(c) pysahtyy, halts(c, c)==1, confuse(c) jaa silmukkaan; ristiriita. " " 16

17 Johtopaatos: hyvinkin perustavanlaatuiset ohjelmointiin liittyvat kysymykset ovat ratkeamattomia. Seuraavaksi tarkastellaan tamantyyppisia ilmioita ohjelmointikielten sijaan formaaleilla laskennan malleilla, erityisesti Turingin koneilla. Formaalien mallien etuja: semantiikka helppo maaritella formaalisti valtetaan ohjelmointikielten hankalat erikoispiirteet valtetaan tulosten riippuvuus ohjelmointikielesta saadaan yleinen matemaattinen teoria joka on taysin riippumaton kaytettavissa olevista laskentalaitteista 17

18 1. Universaaleja laskennan malleja Esimerkkina universaalista laskennan mallista tarkastellaan Turingin konetta muunnelmineen. Lyhyesti esitellaan myos muita malleja. Taman luvun jalkeen opiskelija tuntee Turingin koneen ja sen muunnelmien peruskasitteet, osaa laatia yksinkertaisia Turingin koneita, tuntee periaatetasolla tarkeimmat Turingin koneisiin liittyvat yleiset konstruktiot ja niiden merkityksen, ymmartaa Turingin koneen suhteen muihin (teoreettisiin ja kaytannollisiin) laskennan malleihin ja tuntee Churchin-Turingin teesin ja osaa arvioida laskennan malleja sen valossa. 18

19 Universaalilla laskennan mallilla tarkoitetaan tassa epamuodollisesti sellaista mallia, jonka avulla on tarkoitus pystya formalisoimaan kaikki mahdolliset algoritmiset prosessi. Tarkoitus on siis vastata tasmallisesti kysymykseen "Mika on algoritmi?" Kaytannon tietojenkasittelijalle tyypillisesti riittaa vastaus "Tunnen kylla algoritmin, kun naen sellaisen." Tasmallista maaritelmaa tarvitaan kuitenkin, jos halutaan tarkastella kysymyksia tyyppia "Onko ongelmalle X olemassa ratkaisualgoritmi?" Ilman tasmallista maaritelmaa ei voitaisi erottaa tapauksia 1. algoritmi on olemassa, sita vain ei viela ole keksitty ja 2. algoritmia ei periaatteellisista syista voi olla olemassakaan. Kaytannossa ensin asetetaan algoritmille matemaattinen maaritelma (oikeastaan useita vaihtoehtoisia), katsotaan sitten mita seuraa, ja keskustellaan lopuksi lososista ja kaytannon seuraamuksista. 19

20 Historiallista taustaa 1900-luvun alkupuolella matemaatikot tarkastelivat kysymysta, voiko annetulle vaitteelle loytaa todistuksen annetuista aksioomista jollain "mekaanisella" menettelylla. Turingin kone on alkujaan eras tapa formalisoida "mekaaninen" tassa yhteydessa. Myos muita, lopulta Turingin koneen kanssa yhtapitaviksi osoittautuneita, malleja esitettiin. Kun sittemmin keksittiin yleiskayttoiset elektroniset tietokoneet, Turingin kone osoittautui myos hyvaksi malliksi sille, mita niilla periaatteessa voidaan laskea (olettaen rajoittamaton muistikapasiteetti). Erityisesti universaali Turingin kone [luvussa 2] vastaa kasitteellisella tasolla ohjelmoitavaa yleiskayttoista tietokonetta: ohjelma voidaan tulkita osaksi syotetta, ja ohjelmaa vaihtamalla sama laite saadaan ratkaisemaan mika tahansa ratkaistavissa oleva ongelma. (Yksinkertaistettu vastaus alkuperaiseen kysymykseen: todistamista ei voida mekanisoida.) 20

21 Turingin kone (Alan Turing, 1936) [HMU 8.2] q 3 q 3 q 0 q 2 q 1 Ohjausyksikko: kone tilassa q 1 Nauhapaa osoittaa merkkia B Tyonauha sis. merkkijonon ABAAB Koneen siirtymafunktio maaraa mika merkki kirjoitetaan nauhapaan kohdalle, mihin suuntaan nauhapaa liikkuu ja mika on seuraava tila kun on annettu nykyinen tila ja nauhapaan alla oleva merkki. 21

22 Motivaatio: yritetaan tehda abstrakti malli siita, millaista laskentaa matemaatikko (tms.) voi tehda "mekaanisesti": kaytettavissa kyna, kumi ja rajattomasti paperia kerralla nahdaan vain vakiokokoinen osa muistiinpanoista matemaatikon oma muisti on aarellinen Vaikuttaa vahan erilaiselta kuin tietokoneet, mutta vuonna 1936 ei ollut tietokoneita malli osoittautuu yhta voimakkaaksi kuin suoremmin moderneja tietokoneita esittavat mallit (lisaa tuonnempana) 22

23 Muodollisemmin Turingin kone (Turing machine, TM) on seitsikko M = (Q; ; ; ; q 0 ; B; F) missa Q on tilajoukko jonka on oltava aarellinen on nauha-aakkosto ja syoteaakkosto (kumpikin aarellinen) on siirtymafunktio q 0 2 Q on alkutila B 2 on tyhjamerkki (blank) F Q on hyvaksyvien tilojen joukko 23

24 on osittainen funktio joukolta Q joukkoon Q f L; R g. Siirtymafunktion arvo (q; X) = (q 0 ; Y; D) tarkoittaa etta jos M on tilassa q ja nauhapaan alla on merkki X niin seuraavalla laskenta-askelella M siirtyy tilaan q 0, kirjoittaa nauhalle merkin Y (merkin X tilalle) ja siirtaa nauhapaata yhden askelen suuntaan D (L: vasen, R: oikea). Jos (q; X) on maarittelematon niin M pysahtyy. 24

25 Intuitiivisesti jos M pysahtyy hyvaksyvaan tilaan se hyvaksyy syotemerkkijonon jos M pysahtyy muunlaiseen tilaan se hylkaa syotemerkkijonon. On myos mahdollista, etta M ei lainkaan pysahdy. Turingin koneen M hyvaksyma (tai tunnistama) kieli L(M) on niiden merkkijonojen joukko jotka M hyvaksyy. Huom. kieleen L M eivat kuulu ne syotteet joilla M ei pysahdy. Huom. erityisesti siis vaihtamalla koneen M hyvaksyvat ja ei-hyvaksyvat tilat keskenaan ei saada konetta joka hyvaksyy kielen L(M) = L(M) paitsi jos kone M on sellainen etta se pysahtyy kaikilla syotteilla. 25

26 Kielta L sanotaan rekursiivisesti lueteltavaksi (recursively enumerable, RE) jos L = L(M) jollain Turingin koneella M, ja rekursiiviseksi (recursive, REC) jos lisaksi M pysahtyy kaikilla syotteilla. Termilla (osittain) rekursiivinen ei ole suoranaista yhteytta ohjelmointikielten rekursioon. Sen taustalla on Kleenen 30-luvulla esittamat -rekursiiviset funktiot, jotka ovat vaihtoehtoinen formalisointi algoritmin kasitteelle. Palaamme tahan myohemmin. Kuten muistetaan, paatosongelma on kuvaus :! f 0; 1 g, ja paatosongelma samaistetaan usein kielen f x 2 j (x) = 1 g kanssa. Paatosongelmaa sanotaan ratkeavaksi (decidable), jos vastaava kieli on rekursiivinen, ja osittain ratkeavaksi (semi-decidable), jos vastaava kieli on rekursiivisesti lueteltava. Jatkamme nyt Turingin koneen teknisten yksityiskohtien kasittelya. Intuitiona on, etta kaikilla syotteilla pysahtyva Turingin kone on matemaattinen formulaatio sille, mika on algoritmi. 26

27 Turingin koneen tilannetta (conguration) merkitaan merkkijonolla vqw missa q 2 Q on koneen tila, v 2 on nauhan sisalto vasemmanpuolimmaisesta ei-tyhjasta merkista nauhapaan vasemmalla puolella olevaan merkkiin ja w 2 on nauhan sisalto nauhapaan kohdalla olevasta merkista oikeanpuolimmaiseen tyhjaan merkkiin. Siis alussa ollut esimerkkitilanne merkitaan Aq 1 BAAB. Jos nauhapaan vasemmalla puolella on vain tyhjaa, niin v = " ja merkkijonon w alussa voi olla tyhjaa; vastaavasti oikealla. Koneen alkutilanne syotteella w 2 on q 0 w. Siis aluksi kone on alkutilassa, syote on nauhalla tyhjien ymparoimana ja nauhapaa syotteen alussa. 27

28 Jos siirtymafunktion mukaan tilannetta vqw seuraa tilanne v 0 q 0 w 0, merkitaan Siis vqw `M v 0 q 0 w 0 : jos (q; a) = (q 0 ; b; R) niin vqaw ` vbq 0 w kaikilla v; w 2 jos (q; a) = (q 0 ; b; L) niin vcqaw ` vq 0 cbw kaikilla c 2, v; w 2 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 0 q 0 w 0 missa v i q i w i ` v i+1 q i+1 w i+1, merkitaan vqw ` M v0 q 0 w 0 : Siis jos hyvaksyvista tiloista ei ole siirtymia (kuten yleensa ei ole), patee L(M) = x 2 j q 0 x ` M vqw joillain q 2 F, v; w 2 : 28

29 Esimerkki Konstruoidaan Turingin kone joka hyvaksyy kielen A = f 0 n 1 n j n 1 g. Perusidea: Apumerkkeina X ja Y. Toistetaan seuraavaa: vaihdetaan 0:n tilalle X siirrytaan nauhalla oikealle kunnes tulee 1 vaihdetaan 1:n tilalle Y palataan vasemmalle kunnes loytyy X aloitetaan seuraava iteraatio taman X:n oikealta puolelta 29

30 Muodollisemmin A = L(M) missa M = (f q 0 ; q 1 ; q 2 ; q 3 ; q 4 g ; f 0; 1 g ; f 0; 1; X; Y; # g ; ; q 0 ; #; f q 4 g) 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 esittaa siirtymakaaviona. 30

31 .. 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 f 0 n 1 n j n 1 g tunnistaminen; siirtymakaavio 31

32 Esimerkki 2 Tunnistetaan kieli a k b k c k j k 0 Perusajatus: korvataan yksitellen jotkin a, b ja c merkeilla A, B ja C samalla tulee tarkastetuksi etta a:t on ennen b:ita jne. kun a:t loppuvat, tarkastetaan ettei b- tai c-merkkeja jaanyt yli Huom. kieli ei ole kontekstiton. 32

33 . 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 f a n b n c n j n 0 g tunnistaminen 33

34 Huom. Turingin koneen laskentavoima (se mitka kielet ovat tunnistettavissa) on sama vaikka mallia muunneltaisiin paljonkin erilliset hylkaava ja hyvaksyva lopputila nauha vain toiseen suuntaan aareton sallitaan nauhapaan pysya paikallaan nauhalla useita uria useita nauhoja... Viela oleellisempaa on, etta Turingin kone on laskentavoimaltaan sama kuin aivan muista lahtokohdista johdetut formalismit (Kleenen rekursiiviset funktiot, yleiset kieliopit, RAM-koneet,... ). 34

35 monimutkaisia turinginkonekonstruktioita ei tietenkaan voi kaytannossa esittaa siirtymakaavion tarkkuudella myos Turingin koneista puhuttaessa voidaan kayttaa aliohjelmia ja muita vastaavia ajattelumalleja perusteiden ymmartamiseksi kurssilla kaytetaan jonkin verran aikaa yksinkertaisten Turingin koneiden tarkkaan kasittelyyn samalla Turingin koneen varianttien asema selvenee ja nahdaan tarkemmin miten Turingin kone suhtautuu moderniin tietokoneeseen 35

36 Turingin koneen laajennuksia [HMU 8.3{8.4] Turingin koneen maaritelmaan voidaan tehda erilaisia muutoksia siten etta edelleen voidaan tunnistaa tasan sama luokka kielia. Moniuraiset Turingin koneet: nauha jakautuu k uraan (track) joilla kuitenkin on yhteinen nauhapaa. kontrolliyksikko # K O L M E U R A I N E N # # # # T U R I N G I N # # # # # # # # # K O N E # # # # # # # 36

37 jokaisella askelella luetaan ja kirjoitetaan kullekin uralle samalle kohdalle mutta muuten toisista urista riippumatta formaalisti nyt siis siirtymafunktio on : Q k! Q k f L; R g alkutilanteessa syote ensimmaisella uralla, muilla urilla tyhjamerkkia helppo simuloida yksiuraisella koneella: vaihdetaan aakkoston tilalle k, tyhjamerkiksi (#; : : : ; #) jne. ) voidaan kayttaa moniuraisia koneita silloin kun se tuntuu helpommalta 37

38 Moninauhaiset Turingin koneet: nyt meilla on k nauhaa joilla omat nauhapaat (voivat liikkua eri suuntiin, ja yksinkertaisuuden vuoksi myos pysya paikallaan). kontrolliyksikko # 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 # # # # # # # 38

39 formaalisti nyt siis siirtymafunktio on : Q k! Q k f L; R; S g k alkutilanteessa syote ensimmaisella nauhalla, muilla nauhoilla tyhjamerkkia Osoitetaan etta k-nauhaista konetta voi simuloida 2k-uraisella yksinauhaisella koneella Idea: merkataan ylimaaraisille urilla nauhapaiden 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 # # # # # # # 39

40 Moninauhaisen koneen yhden askelen simuloimiseksi luetaan koko nauha kerran lapi ja muistetaan (aarellistilaisessa kontrollissa) mitka merkit ovat nauhapaiden kohdalla valitaan siirtyma ja kirjoitettavat merkit luetaan koko nauha uudestaan lapi ja tehdaan asiaankuuluvat muutokset Oletetaan etta syotteella x simuloitava kone tekee t(x) siirtymaa ) kasiteltavan nauhanosan pituus myos kork. t(x) merkkia ) simuloiva kone suorittaa O(t(x)) askelta per simuloitava askel ) simuloiva kone tekee kaikkiaan O(t(x) 2 ) askelta 40

41 Johtopaatos: 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 samantyyppisia variaatioita: syote erillisella read only -nauhalla nauhoilla alkukohta jonka vasemmalle puolelle ei saa menna Naissa tapauksissa on myos selvaa etta tunnistamiseen kaytettavien laskenta-askelien maara ei muutu "liikaa". Epadeterministiset koneet, joita seuraavaksi kasitellaan, ovat ilmaisuvoimaltaan samoja kuin deterministiset mutta laskenta-aikojen suhteen tilanne on ongelmallisempi. 41

42 Epadeterministiset Turingin koneet analoginen epadeterministisen aarellisen ja pinoautomaatin kanssa yhdesta tilanteesta voi olla useita vaihtoehtoisia siirtymia intuitio: ajatellaan etta kone osaa "arvata" vaihtoehdon joka johtaa lopulta hyvaksyvaan tilaan (jos mahdollista) epadeterminismi on nappara "ohjelmointitekniikka" Erityyppinen variantti kuin moninauhaiset jne. koneet ei (kovin) realistinen laskennan malli ratkeavien ongelmien luokka ei muutu vaikka epadeterminismi sallitaan tilanne muuttuu oleellisesti jos puhutaan nopeasta ratkaisemisesta; tahan palataan kurssin loppupuoliskolla 42

43 Muodollinen maarittely: Epadeterministinen Turingin kone (Nondeterministic Turing machine, NTM) on seitsikko missa M = (Q; ; ; ; q 0 ; B; F) Q,,, q 0, B ja F kuten deterministisessa tapauksessa siirtymafunktio on funktio missa : Q! P(Q f L; R g) P(A) = joukon A potenssijoukko = f B j B A g (Vrt. epadeterministinen aarellinen automaatti) 43

44 Epadeterministisen koneen hyvaksyma kieli Intuitiivisesti (q; X) sisaltaa kaikki mahdolliset siirtymat tilasta q merkilla X, ja jokin kaikkitietava agentti saa valita naista sopivat tavoitteena paatya hyvaksyvaan tilaan. Muodollisesti maaritellaan tilanteet vqw kuten deterministisessa tapauksessa samoin seuraajarelaatio `M ja sen sulkeuma ` M, paitsi etta ehdot muotoa (q 0 ; Y; D) = (q; X) korvataan ehdoilla (q 0 ; Y; D) 2 (q; X) ) voi patea vqw `M v 0 q 0 w 0 nollalla, yhdella tai useammalla v 0 q 0 w 0 (kuitenkin kork. 2jQjj j) koneen M hyvaksyma kieli on L(M) = x 2 j q 0 x ` M vqw joillain q 2 F, v; w 2 44

45 Olkoon M epadeterministinen Turingin kone. Osoitetaan nyt miten kieli L(M) voidaan tunnistaa deterministisella Turingin koneella. Perusidea koneen M simuloimiseksi annetulle syotteella: tutkitaan (mahdollisesti aaretonta) verkkoa, jonka solmuina ovat alkutilanteesta saavutettavissa olevat koneen M tilanteet tilanteiden vqw ja v 0 q 0 w 0 valilla on kaari jos vqw `M v 0 q 0 w 0 M hyvaksyy jos alkutilanteesta on polku hyvaksyvaan tilanteeseen etsitaan tallainen polku leveyssuuntaisesti 45

46 Tarkemmin: Oletetaan etta M on yksinauhainen. Simuloidaan deterministisella 3-nauhaisella konella M 0. nauha 1 on tyonauha nauha 2 sisaltaa jonon (queue) jolla leveyshakua ohjataan nauhaa 3 kaytetaan tilanteiden "monistamiseen" jonon jatkoksi Jos koneen M nauha-aakkosto on, otetaan uudeksi nauha-aakkostoksi 0 = [ f g [ 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 ### : : : 46

47 Simulaatio (eli polunetsinta) etenee vaiheittain. vaiheen 1 aluksi nauhalla 2 on syotetta x vastaava alkutilanne q 0 x jos vaiheen k aluksi nauhalla 2 on (tyhjamerkkien lisaksi) v 1 q 1 w 1 v 2 q 2 w 2 : : : v n q n w n niin vaiheen k lopuksi nauhalla on v 2 q 2 w 2 : : : v n q n w n v 0 1 q0 1 w0 1 v 0 2 q0 2 w0 2 : : : v 0 p q0 p w0 p missa v 0 i q0 i w0 i, i = 1; : : : ; p, ovat ne tilanteet joilla v 1 q 1 w 1 `M v 0 i q0 i w0 i. jos joskus tulee kirjoitettavaksi koneen M hyvaksyvan tilan koodi, niin M 0 hyvaksyy syotteen jos jono tyhjenee, niin M 0 hylkaa syotteen 47

48 Vaiheen k toteutus suunnilleen: tarkista kuinka monta seuraajaa tilanteella v 1 q 1 w 1 on (huom. talla on vakioylaraja 2j jjqj) tee tilanteesta v 1 q 1 w 1 taman mukainen maara kopioita nauhalle 3 kay kopiot jarjestyksessa lapi ja muuta kukin vastaamaaan "oikeannumeroista" seuraajaa kopioi nauhalta 3 nauhalle 2 48

49 Oletetaan etta koneella M on jokin hyvaksyva kork. n askelen pituinen laskenta, ja millaan tilanteella ei ole yli m seuraajaa. M 0 vie ensin jonoon tilanteet yhden (koneen M) laskenta-askelen paassa alkutilanteesta, sitten kahden askelen jne. k askelen paassa olevan tilanteen loytamiseksi voidaan joutua kaymaan lapi 1 + m + m 2 + : : : + m k tilannetta siis riittaa tutkia nm n tilannetta yhden koneen M tilanteen kuvaus on O(n) merkkia ) selvasti M 0 hyvaksyy jossain aarellisessa ajassa 49

50 Johtopaatos: Jos A = L(M) jollain epadeterministisella M, niin A = L(M 0 ) eraalla deterministisella M 0. Kaanteinen suunta tietysti myos patee. Siis kieli A voidaan tunnistaa epadeterministisella Turingin koneella jos ja vain jos se voidaan tunnistaa deterministisella Turingin koneella. Mutta edellaesitetyssa konstruktiossa laskenta-askelia voi tulla eksponentiaalisesti lisaa; tata ongelmapiiria kasitellaan kurssin loppupuoliskolla. Huom. Tassa vaiheessa olisi tarkoitus tuntua suunnilleen uskottavalta, etta Turingin koneella voidaan ratkaista tasan ne ongelmat joille on olemassa algoritmi, siina mielessa kuin sanaa "algoritmi" on kaytetty esim. kurssilla Tietorakenteet. Tata vaittamaa perustellaan pian tarkemmin. 50

51 Muita universaaleja laskennan malleja Talla kurssilla Turingin kone on valittu algoritmikasitteen formalisoinniksi. Toisin sanoen tulkitsemme, etta laskentaongelmalle on olemassa algoritmi, jos ja vain jos se voidaan ratkaista Turingin koneella. Jotta tama valinta ei tuntuisi aivan mielivaltaiselta, kaymme lyhyesti lapi edustavan kokoelman muita algoritmikasitteelle ehdotettuja formalismeja: Random Access Machine: idealisoitu moderni tietokone Rajoittamattomat kieliopit: mahdollisimman yleinen produktiosaantohin perustuva malli Rekursiiviset funktiot: "algoritmisesti ratkeavien ongelmien joukko" maaritellaan sellaisten sulkeumaominaisuuksien kautta, joita silla tulisi olla ("jos ongelmalla A on ratkaisualgoritmi, niin silloin myos siita muodostetulla ongelmalla B pitaisi olla ratkaisualgoritmi") Osoittautuu, etta kaikki nama lahestymistavat johtavat oleellisesti samaan algoritmin kasitteeseen kuin Turingin koneet. 51

52 Edella on yksinkertaisuuden vuoksi rajoituttu paatosongelmiin. Seuraavaksi esiteltavista formalismeista Random Access Machine ja rekursiiviset funktiot ovat luontevampia ajatella osittaisten funktioden kautta. Olkoon M deterministinen Turingin kone, jonka syoteaakkosto on. Oletetaan lisaksi, etta M pysahtyy vain muotoa vqw olevissa tilanteissa, missa v; w 2. Koneen M laskema osittainen funktio f:! maaritellaan nyt seuraavasti: jos M syotteella x pysahtyy tilanteeseen vqw, niin f(x) = vw 2 jos M syotteella x ei pysahdy, niin f(x) ei ole maaritelty. (Jos M jollain syotteella pysahtyy siten, etta nauhalla on ylimaaraisia syoteaakkostoon kuulumattomia merkkeja, se ei siis ylipaansa laske mitaan osittaista funktiota. Funktion laskemisessa ei kiinniteta huomiota siihen, pysahtyyko kone hyvaksyvaan vai ei-hyvaksyvaan tilaan.) Yleisessa tapauksessa f ei ole "oikea" funktio, koska se ei ole maaritelty kaikilla argumentin arvoilla x. Niinpa laskettavuuden teoriassa esiintyy paljon osittaisia funktioita. Jos M pysahtyy kaikilla syotteilla, asiaa usein korostetaan sanomalla etta se laskee totaalisen funktion. 52

53 Random Access Machine (RAM) ( ) (ks. esim. Lewis & Papadimitriou, luku 4.4) abstraktin tietokoneen konekieliohjelma koneessa rajoittamaton maara rekistereita jotka voivat sisaltaa mielivaltaisen suuren kokonaisluvun merkitaan rekisterin j sisaltoa r j, j = 0; 1; 2; : : : rekisteri 0 akku; lisaksi kaskyosoitin syotteena luvut i 1 ; i 2 ; i 3 ; : : : tuloste on rekisterin 0 sisalto laskennan pysahtymishetkella; jos laskenta ei pysahdy, tuloste ei ole maaritelty 53

54 RAMin kaskykanta kasky 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) kasky merkitys HALF r 0 := br 0 =2c 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 pysahtyy r j on rekisterin numero j sisaltama kokonaisluku x voi olla jokin vaihtoehdoista %j, j tai j missa j 2 N. val(%j) = j, val(j) = r j ja val( j) = r rj (epasuora osoitus) 54

55 Turingin koneiden ja RAMin vertaamiseksi samastetaan luonnolliset luvut ja niiden binaariesitykset. Toisin sanoen olkoon b(n) 2 f 0; 1 g luvun n binaariesitys, kun n 2 N. Sanomme, etta Turingin kone M laskee osittaisen funktion f: N! N, jos M laskee osittaisen funktion ^f: f 0; 1 g! f 0; 1 g, missa jos x = b(n) jollain n ja f(n) = m 2 N, niin ^f(x) = b(m) muuten ^f(x) ei ole maaritelty. 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 pitaa ensin muuntaa syoteluku binaariesityksekseen ja sen jalkeen simuloida Turingin konetta. Tama on suoraviivainen ohjelmointiharjoitus. "Jos"-suuntaa varten kontruoidaan annetulle RAMille sita simuloiva 7-nauhainen Turingin kone. Seuraavassa esitetaan vain nauhojen sisalto, yksityiskohdat sivuutetaan. 55

56 Nauha 1: syoteluvut sopivasti koodattuna Nauha 2: rekisterien sisalto koodattuna jonoiksi b(j) : b(r j ) missa siis b( ) tarkoittaa binaariesitysta; naiden jonojen valilla voi olla mielivaltainen maara tyhjamerkkeja Nauha 3: kaskyosoitin Nauha 4: se indeksi j jota vastaavaa r j ollaan etsimassa nauhalta 2 Nauhat 5{7: tyonauhoja aritmetiikkaan jne. " " 56

57 Turingin kone vs. tietokone [HMU 8.6] Edella esitetyn perusteella Turingin kone on sopiva malli modernille tietokoneelle, jolla on kaytettavissaan rajoittamaton maara muistia. Reaalisissa tietokoneissa on aina jokin kiintea ylaraja kaytettavissa olevan muistin maaralle. Periaatteessa oikea malli tietokoneelle, jossa on B bittia muistia, olisi aarellinen 2 B -tilainen automaatti. Nain monitilaisen systeemin ajatteleminen aarellisena automaattina ei kuitenkaan ole kovin intuitiivista. Kun systeemia ajatellaan Turingin koneena, saavutetaan se etu, etta "kontrolliosa" on pieni, hallittavissa oleva ja sama kaiken kokoisille syotteille. Taman takia siedetaan mallissa se eparealistinen piirre, etta Turingin koneen simulaatio voi joillain syotteilla vaatia enemman muistia kuin fyysisesti on kaytettavissa. Milla tahansa yksittaisella paattyvalla laskennalla tosin tarvitaan vain jokin aarellinen maara muistia, mutta tata maaraa ei voi tietaa ennakolta. 57

58 Rajoittamattomat kieliopit ( ) Ohjelmoinnin ja laskennan perusmalleista muistetaan, etta kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. saannolliset lausekkeet aarelliset automaatit kontekstittomat kieliopit pinoautomaatit Nyt saadaan yksi vastaava pari lisaa: rajoittamattomat kieliopit Turingin koneet 58

59 Rajoittamaton kielioppi on nelikko G = (V; ; P; S) missa V aakkosto paatemerkit; N = V valikemerkit P (V f " g) V produktiot S 2 N lahtosymboli Produktiota (; ) merkitaan yleensa!. Erona kontekstittomiin kielioppeihin, etta produktion vasemmalla puolella voi olla mika tahansa epatyhja merkkijono. 59

60 Merkkijono 2 V johtaa suoraan merkkijonon 0 2 V jos voidaan kirjoittaa =! ja 0 =! 0 missa!!! 0 2 P. Talloin merkitaan ) G 0 : Merkkijono 2 V johtaa merkkijonon 0 2 V jos on olemassa 0 =, 1, 2,..., n = 0 joille i 1 ) G i. Talloin merkitaan ) G 0 : Kieliopin G tuottama kieli on L(G) = n o x 2 j S) x G : 60

61 Esimerkki: muodostetaan G = (V; ; P; S) jolle L(G) = a k b k c k j k 0 : (Huom. kieli a k b k c k j k 0 ei ole kontekstiton.) Siis = f a; b; c g. Valitaan N = f S; X; T; A; B; C g 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 61

62 Siis merkkijonon a k b k c k tuottamiseksi tuotetaan X(ABC) k jarjestetaan A-, B- ja C-merkit aakkosjarjestykseen; tuloksena XA k B k C k korvataan isot kirjaimet pienilla vasemmalta alkaen. Tama osoittaa etta rajoittamattomilla kieliopeilla voidaan tuottaa muitakin kuin kontekstisia kielia. Seuraavaksi kaydaan periaatetasolla lapi konstruktiot, jotka osoittavat etta itse asiassa rajoittamattomilla kieliopeilla voidaan tuottaa tasan ne kielet, jotka voidaan tunnistaa Turingin koneella. 62

63 Lause: Jos kieli voidaan tuottaa rajoittamattomalla kieliopilla, niin se voidaan tunnistaa Turingin koneella. Todistus (periaate): Olkoon G rajoittamaton kielioppi. Aiemmin esitetyn perusteella riittaa muodostaa kaksinauhainen epadeterministinen Turingin kone M jolle L(M) = L(G). Nauha 1 sisaltaa vain kopion syotejonosta. Nauhalle 2 tuotetaan (epadeterministisesti) lahtosymbolista tuotettavissa olevia merkkijonoja. Laskennan aluksi nauhalle 2 kirjoitetaan pelkka lahtosymboli. Jos jossain vaiheessa nauhojen sisallot ovat samat, hyvaksytaan. 63

64 Laskenta koostuu vaiheista joissa kussakin viedaan epadeterministisesti nauhan 2 nauhapaa mielivaltaiseen paikkaan valitaan epadeterministisesti mielivaltainen kieliopin G produktio jos nauhapaan kohdalta loytyy produktion vasen puoli, kirjoitetaan sen paikalle produktion oikea puoli verrataan nauhojen 1 ja 2 sisaltoja Koska produktioita on aarellinen maara, ne voidaan koodata Turingin koneen tiloihin. Tarkemmat yksityiskohdat sivuutetaan. 64

65 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. Valikkeiksi otetaan siis ainakin koneen M tilojen symbolit. Produktiot suunnitellaan siten etta [vqw] ) G [v 0 q 0 w 0 ] jos ja vain jos vqw `M v 0 q 0 w 0 missa "[" ja "]" ovat uusia valikesymboleja. Tama on mahdollista koska vqw `M v 0 q 0 w 0 edellyttaa etta vqw ja v 0 q 0 w 0 eroavat toisistaan vain merkin q lahiymparistossa. 65

66 Merkkijonon x 2 L(M) tuottaminen tapahtuu kolmessa vaiheessa: 1. tuotetaan lahtosymbolista S merkkijono x[q 0 x]. 2. muunnetaan x[q 0 x]) G x[vq f w] missa q f 2 F 3. siistitaan x[vq f w]) G x Varsinainen tyo tapahtuu vaiheessa 2 jossa G "simuloi" konetta M. Jos x 62 L(M), niin G ei pysty tuottamaan muotoa x[vq f w] olevia merkkijonoja. 66

67 Esitetaan viela konstruktion yksityiskohdat. Aakkostona on (huom. ). V = [ Q [ f S; T; [; ]; X; Y g [ f A a j a 2 g Produktiot jakautuvat edellaesitettyjen 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 2 ) 67

68 Vaihe 2: siirtymien simulointi (nama niille a; b; c 2 jotka ilmenevat siirtymafunktiosta) Siirtyma (q; a) = (q 0 ; b; R) (q; a) = (q 0 ; b; L) (q; #) = (q 0 ; b; R) (q; #) = (q 0 ; b; L) (q; a) = (q 0 ; b; L) Vastaava produktio qa! bq 0 cqa! q 0 cb q]! bq 0 ] cq]! q 0 cb] [qa! [q 0 #b Vaihe 3: lopputilanteen siistiminen (kaikille a 2, q f 2 F) q f! XY ax! X [X! " Y a! Y Y ]! " 68

69 Chomskyn hierarkia Noam Chomskyn vuonna 1956 esittama 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 saannollinen oikealle lin. aarellinen autom. tyyppi 0 on juuri esitelty (ja esitellaan kohta lisaa) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit kuvan taydentamiseksi kaydaan tassa lyhyesti lapi taso 1 69

70 Kontekstinen kielioppi: kuten rajoittamaton kielioppi mutta produktioiden muotoa rajoitetaan sallitaan produktiot! missa jj jj lisaksi sallitaan produktio S! " olettaen etta S ei esiinny minkaan produktion oikealla puolella Nimi "kontekstinen" tulee siita, etta tallaiset kielet voidaan muuntaa muotoon jossa produktiot (pl. mahd. S! ") ovat tyyppia A!! missa A on valike ja! 6= ". Siis intuitiivisesti produktiota A!! saadaan kayttaa vain kontekstissa. 70

71 Lineaarisesti rajoitettu Turingin kone on epadeterministinen yksinauhainen Turingin kone joka ei koskaan kirjoita mitaan muuta niiden tyhjamerkkien paalle jotka nauhalla on alkutilanteessa. Siis kone kayttaa ainoastaan syotteen pituuden verran nauhatilaa. Lause Kieli voidaan tuottaa kontekstisella kieliopilla jos ja vain jos se voidaan tunnistaa lineaarisesti rajoitetulla Turingin koneella. (Todistus sivuutetaan.) Tama on siis esimerkki laskennan mallista, jossa pelkastaan syotteen koon perusteella saadaan ylaraja sen vaatiman laskennan maaralle. Universaaleilla laskennan malleilla nain ei ole, vaan lyhytkin syote voi johtaa pitkaan laskentaan. 71

72 Rekursiiviset funktiot (Godel ja Kleene 1936) ( ) Palautetaan mieliin: kieli A on rekursiivisesti lueteltava jos A = L(M) jollain Turingin koneella M A on rekursiivinen jos lisaksi M pysahtyy kaikilla syotteilla Kaytetaan taas luvun n binaariesitykselle merkintaa b(n), ja oletetaan etta A f 0; 1 g n on joukko tallaisia binaariesityksia (jos x 2 A niin x = b(n) jollain n 2 N). Seuraavassa maaritellaan rekursiiviset funktiot f: N! N joille osoittautuu patevan A on rekursiivinen kieli jos ja vain jos A on rekursiivinen funktio, missa A (n) = 1 jos b(n) 2 A ja A (n) = 0 muuten. A on rekursiivisesti lueteltava jos ja vain jos jollain rekursiivisella f patee A = f b(f(x)) j x 2 N g 72

73 Rekursiivisten funktioiden maaritelman idea on seuraava: tietyt alkeisfunktiot pitaisi ilman muuta osata laskea jos on annettu joitain perusfunktioita jotka osataan laskea, niin niista tietyilla yksinkertaisilla operaatioilla muodostetut funktiot pitaisi myos osata laskea Rekursiivisia funktioita ovat tasan ne jotka taman logiikan mukaan pitaisi osata laskea. Tassa on siis tavallaan deklaratiivinen maaritelma laskettavuudella, itse laskentaprosessista ei puhuta mitaan. Tietysti intuitio laskentaprosesseista on vahvasti taustalla kun valitaan sopivat alkeisfunktiot ja operaatiot. 73

74 Maaritellaan 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 2 N ja 1 i n projektiofunktio U n i : N n! N, U n i (x 1 ; : : : ; x n ) = x i kaikilla x 1 ; : : : ; x n 2 N Nama ovat kaikki totaalisia funktioita eli maaritelty kaikilla argumenttien arvoilla 74

75 Maaritellaan 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 maaritelty, niin myoskaan sijoittamalla saatu h(x) ei ole maaritelty talla x jne. Jos annetut funktiot ovat totaalisia, myos sijoittamalla ja rekursiolla syntyvat funktiot ovat. 75

76 Primitiivirekursiivisten funktioiden joukko PR on pienin joukko joka sisaltaa 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, myos niista sijoituksella tai rekursiolla saadut funktiot ovat) Siis PR koostuu tasan niista funktioista, jotka voidaan muodostaa alkeisfunktioista Z, S ja Ui n sijoitusta ja rekursiota kayttaen. Tasta seuraa etta kaikki primitiivirekursiiviset funktiot ovat totaalisia. 76

77 Esimerkkeja Identiteettifunktio f(x) = x on sama kuin projektio U 1 1. Muodostetaan g yhdistamalla S ja U 3 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 yllaolevista 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. 77

78 Kaikki tavalliset aritmeettiset perusfunktiot nahdaan helposti primitiivirekursiivisiksi. Yleisemmin primitiivirekursiivisia ovat tasmalleen ne funktiot, jotka voidaan laskea kayttaen vain for-silmukoita joissa iteraatioiden maara pitaa kiinnittaa ennen silmukan suorituksen alkua. On kuitenkin funktioita joiden laskemiseen tarvitaan yleisempaa while-silmukkaa. Esim. voidaan osoittaa etta Ackermannin funktio (0; y) = y + 1 (x + 1; 0) = (x; 1) (x + 1; y + 1) = (x; (x + 1; y)) kasvaa nopeammin kuin mikaan primitiivirekursiivinen funktio Siis universaaliin laskennan malliin tarvitaan jokin primitiivirekursiota voimakkaampi mekanismi 78

79 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 maariteltyja ja f(x; y) = 0, niin g(x) on pienin tallainen y 2. muuten g(x) ei ole maaritelty Arvoa y = g(x) voi tietysti etsia laskemalla jarjestyksessa f(x; 0), f(x; 1), f(x; 2), f(x; 3),... ja pysahtymalla kun tulee nolla. Etukateen ei kuitenkaan ole mitaan arviota, kuinka pitkalle joudutaan laskemaan. 79

80 Osittaisrekursiivisten funktioiden joukko PR on pienin joukko joka sisaltaa 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 binaarikoodeja) etta A on rekursiivinen kieli jos ja vain jos A on rekursiivinen funktio A on rekursiivisesti lueteltava jos ja vain jos jollain rekursiiviselle f patee A = f b(f(x)) j x 2 N g lisaksi A on rekursiivisesti lueteltava jos ja vain jos 0 A on osittaisrekursiivinen, missa 0 A(x) = 1 jos b(x) 2 A ja 0 A(x) ei ole maaritelty muuten 80

81 Churchin-Turingin teesi [HMU 8.2.1] Turing esitti oman maaritelmansa matemaattisen logiikan tarpeisiin malliksi siita, mita ihminen voi laskea "saantoja mekaanisesti seuraamalla". Samoihin aikoihin samoihin tarpeisiin esitettiin useita muitakin maaritelmia (Godel & Kleene; Postin produktiojarjestelmat). Nama kaikki osoittautuivat Turingin maaritelman kanssa yhtapitaviksi. Myohemmin Turingin kone osoittautui hyvaksi malliksi myos nykyaikaiselle tietokoneelle. Tasta seuraava askel on Churchin-Turingin teesi: Turingin koneet on oikea malli sille, mita ylipaansa on mahdollista laskea mekaanisesti saantoja seuraamalla. Teesi ei tietenkaan ole matemaattinen vaittama. Sita voidaan pitaa empiirisena vaittamana, koska se on periaatteessa falsioitavissa esittamalla laskulaite, joka laskee ei-rekursiivisia funktioita. Tamakin on tosin hieman ongelmallista, koska kaytannossa voidaan tarkastella vain rajoitetun kokoisia syotteita. Nykyaan teesi on varsin laajasti hyvaksytty, mutta ideoita Turingin konetta voimakkaammista laskulaitteista esitetaan toisinaan. 81

82 2. Laskettavuusteoriaa Kaymme lapi ratkeamattomuuteen liittyvia ja perustuloksia ja -tekniikoita [HMU luku 9]. Taman luvun jalkeen opiskelija tuntee joukon keskeisia ratkeamattomuustuloksia osaa esittaa tyypillisia Turingin koneisiin liittyvia ongelmia formaalisti ja tarkastella niiden ratkeavuutta tunnettujen tulosten valosssa osaa yhdistaa kaytannon algoritmiongelmia tunnettuihin formaaleihin ratkeamattomuustuloksiin osaa tehda yksinkertaisia ratkeamattomuustodistuksia 82

83 Palautetaan mieliin terminologiaa: Kieli L on rekursiivisesti lueteltava jos A = L(M) jollain Turingin koneella M. Turingin kone on totaalinen jos se pysahtyy kaikilla syotteilla. (Joissain lahteissa kaytetaan termia "algoritmi" spesisti tallaisista koneista.) Kieli L on rekursiivinen jos A = L(M) jollain totaalisella Turingin koneella M. Vastaavasti Paatosongelma :! f 0; 1 g on osittain ratkeava jos vastaava kieli A = f x 2 j (x) = 1 g on rekursiivisesti lueteltava. Paatosongelma on ratkeava jos A on rekursiivinen. 83

84 Termien selityksia "rekursiivinen" tulee siita etta tama kieliluokka historiallisesti vakiintui Kleenen ja Godelin rekursiokonstruktion kautta "lueteltava" tulee siita etta A on rekursiivisesti lueteltava jos ja vain jos on olemassa "algoritmi" joka "luettelee" joukon A alkiot (ja vain ne) { jos x 2 A niin x esiintyy luettelossa jonkin aarellisen ajan kuluttua ja asia on selva { jos x 62 A niin x ei tule koskaan esiintymaan luettelossa, mutta tatahan ei voi tietaa pelkastaan katsomalla jotain luettelon aarellista alkuosaa Luetteloimisidea esitetaan myohemmin yksityiskohtaisemmin. Huom. kaikista laskennallisista ongelmista vain haviavan pieni osa on edes osittain ratkeavia, mutta tietojenkasittelytieteessa tietysti yleensa keskitytaan ratkeaviin ongelmiin. 84

85 Churchin-Turingin teesin mukaan ratkeavuus tarkoittaa samaa, kuin etta ongelma voidaan ratkaista jollain algoritmisella menettelylla. Esitamme jatkossa joukon Turingin koneita koskevia eksakteja matemaattisia tuloksia, mutta jos uskomme C-T:n teesin, nailla on siis yleisempia seurauksia. C-T:n teesi oikeastaan motivoi koko taman tutkimusohjelman, koska muuten Turingin koneet eivat valttamatta olisi kovin kiinnostava tutkimuskohde. (Tosin voidaan kumminkin argumentoida, etta Turingin kone on oikea malli sille mita ihminen voi mekaanisesti laskea, ja mita nykyiset tietokoneet voivat laskea.) Joka tapauksessa on kuitenkin selvaa, etta jos ongelma osataan ratkaista esim. Java-kielella, se voidaan ratkaista myos Turingin koneella (vrt. RAM-malli luvussa 1). Samoin joka tapauksessa jonkin ongelman ratkeamattomuuden osoittaminen on aina ei-triviaalia, koska pitaa osoittaa etta mikaan Turingin kone ei ratkaise sita. 85

86 Formaalin logiikan todistuvuusongelma (Motivoiva esimerkki yleisella tasolla; yksityiskohdat ks. esim. Matemaattinen logiikka) Annettu: ensimmaisen kertaluvun predikaattilogiikan kaava Kysymys: onko kaavalle olemassa todistus predikaattilogiikan aksioomista Voidaan "helposti" luetella kaikki logiikan aakkoston merkkijonot esim. leksikograsessa jarjestyksessa ja tarkistaa, sattuuko kyseinen merkkijono olemaan todistus jollekin kaavalle. Jos kaavalle ylipaansa on olemassa todistus, se loytyy jossain aarellisessa ajassa talla menettelylla. Siis todistuksen omaavien kaavojen joukko on rekursiivisesti lueteltava, ja todistuvuusongelma osittain ratkeava. Kuitenkin osoittautuu, etta todistuvuusongelma ei ole ratkeava. Emme siis voi taysin kiertaa sita ongelmaa, etta edella hahmoteltu ratkaisu ei pysahdy, jos kaavalla ei ole todistusta. 86

87 Pysahtymisongelma (johdanto) [HMU 9.1] Intuitiivisesti on kysymys seuraavasta ongelmasta: Annettu: Turingin kone M, merkkijono x Kysymys: pysahtyyko kone M syotteella x Tavoitteena on osoittaa tama ongelma ratkeamattomaksi. Ensimmainen osatavoite, puhtaasti tekninen ja kasitteellisesti yksinkertainen, on esittaa Turingin koneet merkkijonoina. Muutenhan niista ei olisi formaalisti mielekasta edes puhua algoritmin syotteena tms. Esitamme siis seuraavaksi yksinkertaisen koodauksen, joka liittaa jokaiseen Turingin koneeseen M = (Q; : : : ; F) merkkijonon w 2 f 0; 1 g ja kaantaen. 87

88 Turingin koneiden koodaus Rajoittaudutaan yksinauhaisiin koneisiin ja syoteaakkostoon =f 0; 1 g. Lisaksi oletetaan etta hyvaksyvia tiloja on tasan yksi ja se ei ole alkutila. Numeroidaan aakkoston f 0; 1 g merkkijonot siten, etta merkkijonon w numero on 1w binaariluvuksi 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; f 0; 1 g ; ; ; q 1 ; #; F) missa jqj = k, Q = f q 1 ; : : : ; q k g ja F = f q 2 g j j = m 3, = f X 1 ; : : : ; X m g, X 1 = 0, X 2 = 1, X 3 = # suunnat on numeroitu L = D 1 ja R = D 2 88

89 Nyt kaikki muu paitsi on numeroitu. koodataan yksittainen siirtyma (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 tassa ei koskaan tule kahta ykkosta perakkain merkkijono C 1 11C 2 11 : : : C n 1 11C n on koodi koneelle jossa on n siirtymaa joiden koodit ovat C 1 ; : : : ; C n Huomaa etta samalla koneella on tyypillisesti useita eri koodeja yksi merkkijono ei kuitenkaan voi koodata useita eri koneita jotkin merkkijonot eivat ole minkaan koneen koodeja 89

90 Olkoon M triv jokin kiintea Turingin kone joka hylkaa kaikki syotteet. Maaritellaan kaikille w 2 f 0; 1 g Turingin kone M w seuraavasti: jos w on jonkin koneen M koodi, niin M w on tama M muuten M w = M triv Aputuloksena pysahtymisongelman ratkeamattomuustodistuksessa osoitetaan, etta "diagonaalikieli" L d = f w 2 f 0; 1 g j w 62 L(M w ) g ei ole edes rekursiivisesti lueteltava. Kieli L d on hieman keinotekoinen. Sen merkitys on lahinna, etta sen avulla voidaan osoittaa muita kiinnostavampia ongelmia ratkeamattomaksi. 90

91 Analogia: Koodit ja ohjelmointikielet Eras mahdollinen analogia on seuraava: Tulkitaan, etta ohjelma hyvaksyy syotteen, jos sen suoritus paattyy normaalisti, ja hylkaa jos suoritus paattyy virheeseen. Lisaksi ohjelma voi jaada silmukkaan. Nyt Turingin kone M konekieliohjelma merkkijono w 2 f 0; 1 g ASCII-merkkijono (esim. C-ohjelma) M w ohjelma w kaannettyna M triv konekieliohjelma joka aina jakaa nollalla Lisaksi sovimme, etta M w = M triv jos w ei ole syntaktisesti korrekti C-ohjelma. Nyt C-ohjelma kuuluu joukkoon L d, jos se ei pysahdy normaalisti, kun (se kaannetaan ja) siille annetaan syotteena oma lahdekoodinsa. Huom. C-kieli ja konekieli ovat yhta "laskentavoimaisia", joten analogia voitaisiin ajatella toisinkin pain: konekieliohjelmasta voidaan kaantaa C-ohjelma. 91

92 Lause 2.1: [HMU Thm. 9.2] Kieli L d = f w 2 f 0; 1 g j w 62 L(M w ) g ei ole rekursiivisesti lueteltava. Todistus: Tehdaan vastaoletus etta L d = L(M) jollain M. Olkoon w jokin koneen M koodi; siis L d = L(M w ). Nyt w 2 L d, w 62 L(M w ), w 62 L d missa on ensin kaytetty kielen L d maaritelmaa ja sitten koodin w valintaperustetta; ristiriita. Nyt olemme saaneet ensimmaisen konkreettisen ratkeamattomuustuloksen. Jatkossa osoitamme suurelle joukolle ongelmia X, etta jos X osattaisiin ratkaista, niin L d voitaisiin tunnistaa. Tasta seuraa ongelman X ratkeamattomuus yo. lauseen nojalla. 92

93 Huomaa, etta edellisessa todistuksessa ei viela puhuttu mitaan Turingin koneista. Se on vain esimerkki yleisesta diagonalisoinnista: Jos A 1 ; A 2 ; : : : on mika tahansa jono kielia, voidaan muodostaa kieli B, missa w i 2 B jos ja vain jos w i 62 A i : Talloin B 62 f A 1 ; A 2 ; : : : g. Jatkossa tulee tarkeaksi, etta olemme valinneet nimenomaan A i = L(M wi ), jolloin siis B = L d. Karkeasti ottaen tasta valinnasta seuraa, etta jos osaisimme algoritmisesti vastata kysymykseen pateeko x 2 L(M w ) mielivaltaisilla x ja w, osaisimme myos vastata kysymykseen pateeko x 2 L d, joka on (negaatiota vaille) edellisen kysymyksen erikoistapaus x = w. Edellisen lauseen perusteella tama on kuitenkin mahdotonta. 93

94 Rekursiivisuuden perusominaisuuksia [HMU ] Ennen kuin ruvetaan tarkastelemaan varsinaisen pysahtymisongelman ratkeamattomuutta, on hyodyllista tarkastella rekursiivisten kielten luokan joitain perusominaisuuksia. Oletetaan jatkossa etta Turingin koneissa on tasan yksi hyvaksyva tila, ja tasta ei mitaan siirtymia tasan yksi sellainen ei-hyvaksyva tila, josta ei ole mitaan siirtymia (hylkaava lopputila) muuten kaikki siirtymat maariteltyja On helppo muuntaa mika tahansa Turingin kone tallaiseen muotoon. 94

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys

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

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

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

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

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

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

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

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

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

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen

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

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

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM Kurssi tähän asti: säännölliset yhteydettömät ratkeavat { a n } { a n b n } { a n b n c n } tunnistettavat A TM HALT TM kaikki kielet A TM HALT TM TOTAL TM TOTAL TM EQ TM EQ TM 277 5. Laskennan vaativuus

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava

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