T /2 Tietojenkäsittelyteorian perusteet T/Y

Koko: px
Aloita esitys sivulta:

Download "T /2 Tietojenkäsittelyteorian perusteet T/Y"

Transkriptio

1 T /2 Tietojenkäsittelyteorian perusteet T/Y Tietojenkäsittelytieteen laitos, Aalto-yliopisto Aalto-yliopisto Perustieteiden korkeakoulu Tietojenkäsittelytieteen laitos Syksy 2013

2 T /1002 Tietojenkäsittelyteorian perusteet T/Y Introduction to Theoretical Computer Science T/Y What can one do with a computer? This course divides roughly into three parts. We examine three models of a computer, their power and limitations, i.e., the classes of languages that they can decide. It turns out that each class of automata corresponds to a class of grammars. The classes of automata and grammars are: 1. Finite state automata & regular expressions 2. Pushdown automata & context-free grammars 3. Turing machines & unrestricted grammars The first teaching period of the course (=Y version) covers finite state automata, regular expressions and context-free grammars. The second period covers the rest. 2/295

3 Course versions There are two versions of the course for different kinds of students. If you are unsure which to take, check your study guide or ask your study advisor. T Introduction to TCS T, periods I-II, 4 cr compulsory in the computer science bachelor s program; in the Discrete Mathematics B1 module... T Introduction to TCS Y, period I, 2 cr compulsory in the communications engineering bachelor s program in ; part of supplementary studies for polytechnic graduates to enter computer science program part of supplementary studies for some Master s Programme students... 3/295

4 Practical arrangements Registration: obligatory, by OODI, deadline Sep 23, 2013 Lectures: Tue T1, in Finnish by Doc., D.Sc. Tommi Junttila Tutorials: once a week, register by OODI with course code T ; not obligatory but highly recommended! Fri Fri in English Mon Tue Wed See Noppa for class rooms etc. Computerized home assignments: obligatory and personalized. Distributed by after Sep 23th to those who registered to the course. Course Noppa pages: 4/295

5 To pass the course 1. Pass the computerized assignments before taking the exam. 2. After passing the computer exercises, take an exam (next exams in Oct 2013, Dec 2013, Feb 2014, May 2014). 3. There are 3 homework problems a week; you gain bonus points for exam according to table: # solved: T T N/A These bonus points are valid until December By completing the computer assignments by 09:00 on 24 Oct 2013, one can earn a bonus of 2 points for the exams. These do not help in making a failed exam passed. 5/295

6 PLEASE NOTICE: due to Bachelor s program renewal, In the future, this is the last time these two courses are organized. T will be terminated T will be replaced by the 5 credits course ICS-C2000 Theoretical Computer Science organized first time in Spring 2015 The last exams of T and T will be organized in December 2014 There will be no teaching (lectures, tutorials,...) during Autumn /295

7 Material Lecture notes aka Orposen pruju (in Finnish) is distributed through NOPPA Lecture slides (in Finnish) also on NOPPA Demonstration exercises and their solutions (both in Finnish and in English) are distributed through NOPPA Recommended textbook Michael Sipser, Introduction to the Theory of Computation (2nd Edition), (Supplementary for Finnish-speaking students; likely necessary for non-finnish-speaking students.) Some additional material on NOPPA. 7/295

8 TIETOJENKÄSITTELYTEORIA Matemaattinen oppi siitä, mitä tietokoneella on mahdollista tehdä ja kuinka tehokkaasti. Tarjoaa matemaattisia käsitteitä ja menetelmiä tietojenkäsittelyjärjestelmien mallintamiseen ja analysointiin sekä selkeiden ja tehokkaiden ratkaisujen laatimiseen. 8/295

9 Tietojenkäsittelyteorian osa-aloja Laskettavuusteoria Mitä tietokoneella voi tehdä periaatteessa? Turing, Gödel, Church, Post (1930-luku); Kleene, Markov (1950-luku). Laskennan vaativuusteoria Mitä tietokoneella voi tehdä käytännössä? Hartmanis, Stearns (1960-luku); Cook, Levin, Karp (1970-luku); Papadimitriou, Sipser, Håstad, Razborov ym. (1980-). Automaatti- ja kielioppiteoria Tietojenkäsittelyjärjestelmien perustyyppien ominaisuudet ja kuvausformalismit. Chomsky (1950-luku); Ginsburg, Greibach, Rabin, Salomaa, Schützenberger ym. (1960-luku) 9/295

10 Tietojenkäsittelyteorian osa-aloja Ohjelmien oikeellisuus Tietojenkäsittelyjärjestelmien matemaattisesti eksakti määrittely ja oikean toiminnan verifiointi. Dijkstra, Hoare (1960-luku); Manna, Pnueli, Scott ym. (1970-). Muuta algoritmien suunnittelu ja analyysi (Knuth, Hopcroft, Tarjan ym.) kryptologia (Rivest, Shamir, Adleman ym.) rinnakkaisten ja hajautettujen järjestelmien teoria (Lamport, Lynch, Milner, Valiant ym.) koneoppimisteoria (Valiant ym.) jne. Tällä kurssilla käsitellään lähinnä automaatteja ja kielioppeja sekä hieman laskettavuusteorian alkeita. Muita aiheita käsitellään muilla tietojenkäsittelyteorian (T 79) kursseilla. 10/295

11 1.1 Joukot Joukko (engl. set) on kokoelma alkioita. Alkiot voidaan ilmoittaa joko luettelemalla, esim. tai jonkin säännön avulla, esim. S = {2,3,5,7,11,13,17,19} S = {p p on alkuluku, 2 p 20}. Jos alkio a kuuluu joukkoon A, merkitään a A, päinvastaisessa tapauksessa a / A. (Esim. 3 S, 8 / S.) Tärkeä erikoistapaus on tyhjä joukko (engl. empty set) /0, johon ei kuulu yhtään alkiota. 11/295

12 Jos joukon A kaikki alkiot kuuluvat myös joukkoon B, sanotaan että A on B:n osajoukko (engl. subset) ja merkitään A B. [Kirjallisuudessa esiintyy myös merkintä A B.] Jos A ei ole B:n osajoukko merkitään A B. Siis esim. {2,3} S, {1,2,3} S. Triviaalisti on voimassa /0 A kaikilla A. Joukot A ja B ovat samat, jos niissä on samat alkiot, so. jos on A B ja B A. Jos on A B, mutta A B, sanotaan että A on B:n aito osajoukko (engl. proper subset) ja merkitään A B. Edellä olisi siis voitu myös kirjoittaa {2,3} S ja /0 A jos A /0. 12/295

13 Joukon alkioina voi olla myös toisia joukkoja (tällöin puhutaan usein joukkoperheestä ), esim. X = {/0,{1},{2},{1,2}}. Jonkin perusjoukon A kaikkien osajoukkojen muodostamaa joukkoperhettä sanotaan A:n potenssijoukoksi (engl. powerset) ja merkitään P (A):lla; esim. edellä on X = P ({1,2}). [Koska n-alkioisen perusjoukon A potenssijoukossa on 2 n alkiota (HT), käytetään kirjallisuudessa potenssijoukolle myös merkintää 2 A.] Huomaa, että A B jos ja vain jos A P (B). Tyhjän joukon käsittelyssä pitää olla huolellinen: /0 {/0}, P (/0) = {/0}, P ({/0}) = {/0,{/0}}. 13/295

14 Joukkoja voidaan kombinoida joukko-operaatioilla, joista tärkeimmät ovat: yhdiste (engl. union) A B = {x x A tai x B}, esim. {1,2,3} {1,4} = {1,2,3,4}. leikkaus (engl. intersection) A B = {x x A ja x B}, esim. {1,2,3} {1,4} = {1}. erotus (engl. difference) A B = {x x A ja x / B}, esim. {1,2,3} {1,4} = {2,3}. [Erotukselle käytetään myös merkintää A \ B.] 14/295

15 Joukko-operaatioita koskevat tietyt laskulait, joista tärkeimmät ovat yhdisteen ja leikkauksen liitännäisyys: ja vaihdannaisuus: sekä näiden osittelulait: A (B C) = (A B) C A (B C) = (A B) C A B = B A A B = B A A (B C) = (A B) (A C) A (B C) = (A B) (A C) 15/295

16 Jos kaikki tarkasteltavat joukot ovat jonkin yhteisen universaalijoukon U osajoukkoja, sanotaan erotusta U A joukon A komplementiksi (U:n suhteen) ja merkitään Ā:lla. Yhdiste-, leikkaus- ja komplementointioperaatioita yhdistävät tärkeät ns. de Morganin kaavat: A B = Ā B, A B = Ā B. Lisäksi joukkojen erotus voidaan esittää leikkauksen ja komplementoinnin avulla seuraavasti: A B = A B. 16/295

17 Jos joukkoperheen A jäsenet on indeksoitu, esim. A = {A 1,A 2,A 3,...}, niin yhdisteelle ja leikkaukselle voidaan käyttää lyhennemerkintöjä A i = A 1 A 2 A 3 i 1 ja A i = A 1 A 2 A 3 Indeksien ei tarvitse olla edes luonnollisia lukuja, vaan indeksijoukkona voi olla mikä tahansa joukko I. Tällöin käytetään merkintöjä i 1 A = {A i i I} ja A i, i I A i. i I 17/295

18 1.2 Relaatiot ja funktiot Olkoot A ja B joukkoja. Alkioiden a A ja b B järjestettyä paria (engl. ordered pair) merkitään (a, b). Huomaa, että joukkoina on aina {a,b} = {b,a}, mutta jos a b, niin järjestettyinä pareina on (a,b) (b,a). Joukkojen A ja B karteesinen tulo (engl. Cartesian product) määritellään A B = {(a,b) a A ja b B}, Esimerkki {1,2,3} {1,4} = {(1,1),(1,4),(2,1),(2,4),(3,1),(3,4)} {a,b} N = {(a,0),(b,0),(a,1),(b,1),(a,2),(b,2),...} {a,b} /0 = /0 18/295

19 Relaatio R joukolta A joukolle B on karteesisen tulon A B osajoukko: R A B. Jos (a,b) R, niin merkitään myös arb ja sanotaan että alkio a on relaatiossa (suhteessa) R alkioon b. Tätä infix-merkintää käytetään varsinkin silloin, kun relaation nimenä on jokin erikoismerkki, esim.,,,. Jos relaation R lähtöjoukko (engl. domain) A ja maalijoukko (engl. range) B ovat samat, so. R A A, sanotaan että R on relaatio joukossa A. 19/295

20 Relaation R A B käänteisrelaatio (engl. inverse relation) on relaatio R 1 B A, R 1 = {(b,a) (a,b) R}. Jos R A B ja S B C ovat relaatioita, niin niiden yhdistetty relaatio (engl. composite relation) R S A C määritellään: R S = {(a,c) b B s.e. (a,b) R,(b,c) S}. 20/295

21 Varsinkin jos joukot A ja B ovat äärellisiä, relaatiota R A B voi olla havainnollista tarkastella suunnattuna verkkona t. graafina, jonka solmuina ovat joukkojen A ja B alkiot ja solmusta a A on kaari ( nuoli ) solmuun b B, jos ja vain jos (a,b) R. Esimerkki Olkoon joukossa A = {a, b, c, d} määritelty relaatio R = {(a,b),(a,c),(b,d),(c,d),(d,d)}. Relaation R graafiesitys: Relaation R R graafiesitys: a b a b c d c d 21/295

22 Relaatio f A B on funktio, jos kukin a A on relaatiossa f täsmälleen yhden b B kanssa. Tällöin käytetään yleisten relaatiomerkintöjen sijaan tavallisesti merkintöjä f : A B ja f (a) = b. Funktioita koskee kaikki mitä edellä yleisesti on todettu relaatioista, mutta historiallisista syistä funktioiden yhdistäminen merkitään toisin päin kuin yleisten relaatioiden: jos f : A B ja g : B C ovat funktioita, niin niiden yhdistetty funktio määritellään kaavalla (g f )(a) = g(f (a)), so. relaatioina g f = {(a,c) b B s.e. f (a) = b,g(b) = c}. 22/295

23 Olkoon f : A B funktio. f on surjektio (engl. onto map), jos jokainen b B on jonkin a A kuva, so. jos f (A) = B. f on injektio (engl. one-to-one map), jos kaikki a A kuvautuvat eri alkioille, so. jos a a f (a) f (a ). f on bijektio, jos se on sekä injektio että surjektio, so. jos jokainen b B on yhden ja vain yhden a A kuva. 23/295

24 1.3 Ekvivalenssirelaatiot Ekvivalenssirelaatiot ovat matemaattisesti täsmällinen muotoilu sille yleiselle idealle, että oliot ovat keskenään samankaltaisia jonkin kiinnostavan ominaisuuden X suhteen. Ominaisuuteen X perustuva ekvivalenssirelaatio osittaa tarkasteltavien olioiden joukon ekvivalenssiluokkiin, jotka vastaavat ominaisuuden X eri arvoja. (Kääntäen mielivaltainen olioiden joukon ositus Π määrää tietyn abstraktin samankaltaisuusominaisuuden, nim. sen että oliot ovat samankaltaisia jos ne sijoittuvat samaan osituksen Π luokkaan.) 24/295

25 Osoittautuu, että yleinen samankaltaisuusrelaation idea voidaan kiteyttää seuraaviin kolmeen ominaisuuteen. Määritelmä 1.1 Relaatio R A A on 1. refleksiivinen, jos ara a A; 2. symmetrinen, jos arb bra a,b A; 3. transitiivinen, jos arb,brc arc a,b,c A. Määritelmä 1.2 Relaatio R A A, joka toteuttaa edelliset ehdot 1 3 on ekvivalenssirelaatio. Alkion a A ekvivalenssiluokka (relaation R suhteen) on R[a] = {x A arx}. Ekvivalenssirelaatioita merkitään usein R:n sijaan alkioiden samankaltaisuutta korostavilla symboleilla,, tms. 25/295

26 Esimerkki Olkoon A = {kaikki 1900-luvulla syntyneet ihmiset} ja arb voimassa, jos henkilöillä a ja b on sama syntymävuosi. Tällöin R on selvästi ekvivalenssi, jonka ekvivalenssiluokat koostuvat keskenään samana vuonna syntyneistä henkilöistä. Luokkia on 100 kappaletta, ja abstraktisti ne vastaavat 1900-luvun vuosia 1900,..., /295

27 Lemma 1.3 Olkoon R A A ekvivalenssi. Tällöin on kaikilla a,b A voimassa: Lemma 1.4 R[a] = R[b] joss arb. Olkoon R A A ekvivalenssi. Tällöin R:n ekvivalenssiluokat muodostavat A:n osituksen erillisiin epätyhjiin osajoukkoihin, so.: R[a] /0 kaikilla a A; A = a A R[a]; jos R[a] R[b], niin R[a] R[b] = /0, kaikilla a,b A. Kääntäen jokainen perusjoukon A ositus erillisiin epätyhjiin luokkiin A i, i I, määrää vastaavan ekvivalenssirelaation: a b a ja b kuuluvat samaan luokkaan A i. 27/295

28 1.5 Induktiopäättely Olkoon P(k) jokin luonnollisten lukujen ominaisuus. Jos on voimassa: 1. P(0) ja 2. kaikilla k 0: P(k) P(k + 1), niin P(n) on tosi kaikilla n N. 28/295

29 Esimerkki Väite. Kaikilla n N on voimassa kaava P(n) : ( n) 2 = n 3. Todistus. 1. Perustapaus: P(0) : 0 2 = 0. (jatkuu) 29/295

30 2. Induktioaskel: Oletetaan, että annetulla k 0 kaava P(k) : ( k) 2 = k 3 on voimassa. Tällöin on myös: ( k + (k + 1)) 2 = (1 + + k) 2 + 2(1 + k)(k + 1) + (k + 1) 2 = k 3 k(k + 1) + 2 (k + 1) + (k + 1) 2 2 = k 3 + k(k + 1) 2 + (k + 1) 2 = k 3 + (k + 1) 3. On siis todettu, että kaavan P(k) totuudesta seuraa kaavan P(k + 1) totuus, so. että P(k) P(k + 1), kaikilla k 0. Luonnollisten lukujen induktioperiaatteen 1.9 nojalla voidaan nyt päätellä, että kaava P(n) on voimassa kaikilla n N. 30/295

31 1.6 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Syöte Automaatti Tulos B Automaatin käsite on matemaattinen abstraktio. Yleisellä tasolla suunniteltu automaatti voidaan toteuttaa eri tavoin: esim. sähköpiirinä, mekaanisena laitteena tai (tavallisimmin) tietokoneohjelmana. 31/295

32 Tällä kurssilla keskitytään pääosin automaatteihin, joiden: 1. syötteet ovat äärellisiä, diskreettejä merkkijonoja 2. tulokset ovat muotoa hyväksy / hylkää ( syöte OK / syöte ei kelpaa ) Yleistyksiä: äärettömät syötejonot ( reaktiiviset järjestelmät, Büchi-automaatit) funktioautomaatit ( Moore- ja Mealy-tilakoneet, Turingin funktiokoneet) 32/295

33 Peruskäsitteitä ja merkintöjä Aakkosto (engl. alphabet, vocabulary): äärellinen, epätyhjä joukko alkeismerkkejä t. symboleita. Esim.: binääriaakkosto {0, 1}; latinalainen aakkosto {A,B,...,Z}. Merkkijono (engl. string): äärellinen järjestetty jono jonkin aakkoston merkkejä. Esim.: 01001, 0000 : binääriaakkoston merkkijonoja; TKTP, XYZZY : latinalaisen aakkoston merkkijonoja. tyhjä merkkijono (engl. empty string). Tyhjässä merkkijonossa ei ole yhtään merkkiä; sitä voidaan merkitä ε:llä. Merkkijonon x pituus x on sen merkkien määrä. Esim.: = 5, TKTP = 4, ε = 0. 33/295

34 Merkkijonojen välinen perusoperaatio on katenaatio eli jonojen peräkkäin kirjoittaminen. Katenaation operaatiomerkkinä käytetään joskus selkeyden lisäämiseksi symbolia. Esim. KALA KUKKO = KALAKUKKO; jos x = 00 ja y = 11, niin xy = 0011 ja yx = 1100; kaikilla x on xε = εx = x; kaikilla x, y, z on (xy)z = x(yz); kaikilla x, y on xy = x + y. 34/295

35 Aakkoston Σ kaikkien merkkijonojen joukkoa merkitään Σ :lla. Mielivaltaista merkkijonojoukkoa A Σ sanotaan aakkoston Σ (formaaliksi) kieleksi (engl. formal language). Esimerkki Jos Σ = {0,1}, niin Σ = {ε,0,1,00,01,10,11,000,...}. Esimerkki Jos Σ = {0, 1}, niin esimerkiksi seuraavat ovat aakkoston Σ kieliä: /0 {ε, 0, } {0,1,11,111,1111,...} Σ = {ε,0,1,00,01,10,11,000...} 35/295

36 Automaatit ja formaalit kielet Olkoon M automaatti, jonka syötteet ovat jonkin aakkoston Σ merkkijonoja, ja tulos on yksinkertaisesti muotoa syöte hyväksytään / syöte hylätään. (Merk. lyhyesti 1/0.) Merkitään M:n syötteellä x antamaa tulosta M(x):llä ja M:n hyväksymien syötteiden joukkoa A M :llä, so. A M = {x Σ M(x) = 1}. Sanotaan, että automaatti M tunnistaa (engl. recognises) kielen A M Σ. Automaattiteorian (yksi) idea: automaatin M rakenne heijastuu kielen A M ominaisuuksissa. Kääntäen: olkoon annettuna jokin toivottu I/O-kuvaus f : Σ {0,1}. Tarkastelemalla kieltä A f = {x Σ f (x) = 1} saadaan vihjeitä siitä, millainen automaatti tarvitaan kuvauksen f toteuttamiseen. 36/295

37 Vakiintuneita merkintöjä Em. matemaattisille käsitteille käytetyt merkinnät ovat periaatteessa vapaasti valittavissa, mutta esityksen ymmärrettävyyden parantamiseksi on tapana pitäytyä tietyissä käytännöissä. Seuraavat merkintätavat ovat vakiintuneet: Aakkostot: Σ, Γ,... (isoja kreikkalaisia kirjaimia). Esim. binääriaakkosto Σ = {0, 1}. Aakkoston koko (tai yleisemmin joukon mahtavuus): Σ. Alkeismerkit: a, b, c,... (pieniä alkupään latinalaisia kirjaimia). Esim.: Olkoon Σ = {a 1,...,a n } aakkosto; tällöin Σ = n. Merkkijonot: u, v, w, x, y,... (pieniä loppupään latinalaisia kirjaimia). 37/295

38 Merkkijonojen katenaatio: x y tai vain xy. Merkkijonon pituus: x. Esimerkkejä: Tyhjä merkkijono: ε. abc = 3; olkoon x = a 1...a m, y = b 1...b n ; tällöin xy = m + n. Merkkijono, jossa on n kappaletta merkkiä a: a n. Esimerkkejä: a n = } aa...a {{} ; n kpl a i b j c k = i + j + k. Merkkijonon x toisto k kertaa: x k. Esimerkkejä: (ab) 2 = abab; x k = k x. Aakkoston Σ kaikkien merkkijonojen joukko: Σ. Esim.: {a,b} = {ε,a,b,aa,ab,ba,bb,aaa,aab,...}. 38/295

39 Merkkijonoinduktio Automaattiteoriassa tehdään usein konstruktioita induktiolla merkkijonon pituuden suhteen. Tämä tarkoittaa, että määritellään ensin toiminto tyhjän merkkijonon ε (tai joskus yksittäisen aakkosmerkin) tapauksessa. Sitten oletetaan, että toiminto on määritelty kaikilla annetun pituisilla merkkijonoilla u ja esitetään, miten se tällöin määritellään yhtä merkkiä pitemmillä merkkijonoilla w = ua. Esimerkki. Olkoon Σ mielivaltainen aakkosto. Merkkijonon w Σ käänteisjono (engl. reversal) w R määritellään induktiivisesti säännöillä: 1. ε R = ε; 2. jos w = ua, u Σ, a Σ, niin w R = a u R. 39/295

40 Induktiivista ( rekursiivista ) määritelmää voidaan tietenkin käyttää laskujen perustana; esim.: (011) R = 1 (01) R = 1 (1 0 R ) = 11 (0 ε R ) = 110 ε R = 110 ε = 110. Tärkeämpää on kuitenkin konstruktioiden ominaisuuksien todistaminen määritelmää noudattelevalla induktiolla. Esimerkki: 40/295

41 Väite. Olkoon Σ aakkosto. Kaikilla x,y Σ on voimassa (xy) R = y R x R. Todistus. Induktio merkkijonon y pituuden suhteen. 1. Perustapaus y = ε: (xε) R = x R = ε R x R. 2. Induktioaskel: Olkoon y muotoa y = ua, u Σ, a Σ. Oletetaan, että väite on voimassa merkkijonoilla x, u. Tällöin on: (xy) R = (xua) R = a (xu) R [R:n määritelmä] = a (u R x R ) [induktio-oletus] = (a u R )x R [ :n liitännäisyys] = (ua) R x R [R:n määritelmä] = y R x R. 41/295

42 2.1 Tilakaaviot ja tilataulut Tarkastellaan aluksi tietojenkäsittelyjärjestelmiä, joilla on vain äärellisen monta mahdollista tilaa. Tällaisen järjestelmän toiminta voidaan kuvata äärellisenä automaattina t. äärellisenä tilakoneena (engl. finite automaton, finite state machine). Äärellisillä automaateilla on useita vaihtoehtoisia esitystapoja: tilakaaviot, tilataulut,... 42/295

43 Esimerkki: Kahviautomaatti 20 c 20 c 10 c 10 c 10 c 0,00 0,10 0,20 0,30 10 c enough 20 c 20 c 10 c 20 c more than enough! 10 c 20 c Em. tilakaavion esittämä automaatti ratkaisee päätösongelman riittävätkö annetut rahat kahvin ostamiseen? Äärellisiä automaatteja voidaan yleensäkin käyttää yksinkertaisten päätösongelmien ratkaisujen mallintamiseen. Automaattimallista on muitakin kuin binäärivasteisten järjestelmien kuvaamiseen tarkoitettuja versioita (ns. Moore- ja Mealy-automaatit), mutta niitä ei käsitellä tällä kurssilla. 43/295

44 Tilakaavioiden merkinnät: q Automaatin tila nimeltä q q 0 Alkutila q f Lopputila: automaatti hyväksyy syötejonon, joss se jonon loppuessa on tällaisessa tilassa q 1 a q 2 Syötemerkin a aikaansaama siirtymä tilasta q 1 tilaan q 2 44/295

45 Esimerkki C-kielen etumerkittömät reaaliluvut. q 7 digit. digit digit digit. digit q 0 q 1 q 2 q 3 exp exp exp digit q 4 digit q 6 +,- digit q 5 Käytetyt lyhenteet: digit = {0,1,...,9}, exp = {E,e}. 45/295

46 Äärellisen automaatin esitys tilatauluna: automaatin uusi tila vanhan tilan ja syötemerkin funktiona. Esimerkki Reaalilukuautomaatin tilataulu: digit. exp + q 0 q 1 q 7 q 1 q 1 q 2 q 4 q 2 q 3 q 4 q 3 q 3 q 4 q 4 q 6 q 5 q 5 q 5 q 6 q 6 q 6 q 7 q 3 missä ilmaisee alkutilaa ja lopputilaa. 46/295

47 K: Mitä tilataulun tyhjät paikat tarkoittavat? V: Tilataulun tyhjät paikat, tai vastaavasti tilakaavion puuttuvat kaaret, kuvaavat automaatin virhetilanteita. Jos automaatti ohjautuu tällaiseen paikkaan, syötejono ei kuulu automaatin hyväksymään joukkoon. Muodollisesti automaatissa ajatellaan olevan erityinen virhetila, jota ei vain selkeyden vuoksi merkitä näkyviin. 47/295

48 Esimerkki Reaalilukuautomaatin täydellinen kaavioesitys olisi:. digit digit. q 0 q 1 exp, +,- error +,- digit, exp,.,+,- exp 48/295

49 ja reaalilukuautomaatin täydellinen tauluesitys olisi: digit. exp + q 0 q 1 q 7 error error error q 1 q 1 q 2 q 4 error error q 6 q 6 error error error error error error error error error error 49/295

50 2.2 Äärellisiin automaatteihin perustuva ohjelmointi Annetun äärellisen automaatin pohjalta on helppo laatia automaatin toimintaa vastaava ohjelma. Esim. reaalilukuautomaattiin perustuva syötejonon syntaksitestaus: 50/295

51 from sys import stdin q=0 for c in stdin.readline().strip("\n"): if q==0: if c.isdigit(): q=1 elif c==".": q=7 else: q=99 elif q==1: if c.isdigit(): q=1 elif c==".": q=2 elif c=="e" or c=="e": q=4 else: q=99 elif q==2 or q==3: if c.isdigit(): q=3 elif c=="e" or c=="e": q=4 else: q=99 51/295

52 elif q==4: if c.isdigit(): q=6 elif c=="+" or c=="-": q=5 else: q=99 elif q==5 or q==6: if c.isdigit(): q=6 else: q=99 elif q==7: if c.isdigit(): q=3 else: q=99 if q in [2,3,6]: print "On reaaliluku." else: print "Ei ole reaaliluku." 52/295

53 Semanttisten toimintojen liittäminen äärellisiin automaatteihin Esimerkki. Kahdeksanjärjestelmän lukuja tunnistava automaatti ja siihen perustuva syöteluvun arvonmääritys ( muuttaminen kymmenjärjestelmään ). +,- d q 0 q 1 q 2 d d Lyhennysmerkintä d = {0,1,...,7}. 53/295

54 Pelkän syntaksitestin toteutus: from sys import stdin q=0 for c in stdin.readline().strip("\n"): if q==0: if c=="+" or c=="-": q=1 elif c in " ": q=2 else: q=99 elif q==1: if c in " ": q=2 else: q=99 elif q==2: if c in " ": q=2 else: q=99 if q == 2 print "Oktaaliluku!" else: print "Virheellinen oktaaliluku." 54/295

55 Täydennys syöteluvun arvon laskevilla operaatioilla ( luvun muuttaminen kymmenjärjestelmään ): from sys import stdin q=0 sgn=1 # SEM: etumerkki val=0 # SEM: itseisarvo for c in stdin.readline().strip("\n"): if q==0: if c=="+": q=1 elif c=="-": sgn=-1 # SEM q=1 elif c in " ": val=int(c) # SEM q=2 else: q=99 55/295

56 elif q==1: if c in " ": val=int(c) q=2 else: q=99 elif q==2: if c in " ": val=8*val+int(c) q=2 else: q=99 if q == 2: print "Oktaaliluku", sgn*val else: print "Virheellinen oktaaliluku." # SEM # SEM # SEM 56/295

57 2.3 Äärellisen automaatin käsitteen formalisointi Mekanistinen malli: syötenauha: i n p u t nauhapää: ohjausyksikkö: q 1 q 2 q 0 Äärellinen automaatti M koostuu äärellistilaisesta ohjausyksiköstä, jonka toimintaa säätelee automaatin siirtymäfunktio δ, sekä merkkipaikkoihin jaetusta syötenauhasta ja nämä yhdistävästä nauhapäästä, joka kullakin hetkellä osoittaa yhtä syötenauhan merkkiä. δ 57/295

58 Automaatin toiminta : Automaatti käynnistetään erityisessä alkutilassa q 0, siten että tarkasteltava syöte on kirjoitettuna syötenauhalle ja nauhapää osoittaa sen ensimmäistä merkkiä. Yhdessä toiminta-askelessa automaatti lukee nauhapään kohdalla olevan syötemerkin, päättää ohjausyksikön tilan ja luetun merkin perusteella siirtymäfunktion mukaisesti ohjausyksikön uudesta tilasta, ja siirtää nauhapäätä yhden merkin eteenpäin. Automaatti pysähtyy, kun viimeinen syötemerkki on käsitelty. Jos ohjausyksikön tila tällöin kuuluu erityiseen (hyväksyvien) lopputilojen joukkoon, automaatti hyväksyy syötteen, muuten hylkää sen. Automaatin tunnistama kieli on sen hyväksymien merkkijonojen joukko. 58/295

59 Täsmällinen muotoilu: Määritelmä Äärellinen automaatti on viisikko M = (Q,Σ,δ,q 0,F), missä Q on automaatin tilojen äärellinen joukko; Σ on automaatin syöteaakkosto; δ : Q Σ Q on automaatin siirtymäfunktio; q 0 Q on automaatin alkutila; F Q on automaatin (hyväksyvien) lopputilojen joukko. 59/295

60 Esimerkki Reaalilukuautomaatin formaali esitys: M = ({q 0,...,q 7,error},{0,1,...,9,.,E,e,+,-}, δ,q 0,{q 2,q 3,q 6 }), missä δ on kuten aiemmin taulukossa; esim. δ(q 0,0) = δ(q 0,1) = = δ(q 0,9) = q 1, δ(q 0,.) = q 7, δ(q 0,E) = δ(q 0,e) = error, δ(q 1,.) = q 2, δ(q 1,E) = δ(q 1,e) = q 4, jne. 60/295

61 Automaatin tilanne on pari (q,w) Q Σ Erityisesti automaatin alkutilanne syötteellä x on pari (q 0,x). Intuitio: q on automaatin tila ja w on syötemerkkijonon jäljellä oleva, so. nauhapäästä oikealle sijaitseva osa. 61/295

62 Tilanne (q,w) johtaa suoraan tilanteeseen (q,w ), merkitään (q,w) M (q,w ), jos on w = aw (a Σ) ja q = δ(q,a). Tällöin sanotaan myös, että tilanne (q,w ) on tilanteen (q,w) välitön seuraaja. Intuitio: automaatti ollessaan tilassa q ja lukiessaan nauhalla olevan merkkijonon w = aw ensimmäisen merkin a siirtyy tilaan q ja siirtää nauhapäätä yhden askelen eteenpäin, jolloin nauhalle jää merkkijono w. Jos automaatti M on yhteydestä selvä, relaatiota voidaan merkitä yksinkertaisesti (q,w) (q,w ). 62/295

63 Tilanne (q,w) johtaa tilanteeseen (q,w ) t. tilanne (q,w ) on tilanteen (q, w) seuraaja, merkitään (q,w) M (q,w ), jos on olemassa välitilannejono (q 0,w 0 ), (q 1,w 1 ),..., (q n,w n ), n 0, siten että (q,w) = (q 0,w 0 ) M (q 1,w 1 ) M M (q n,w n ) = (q,w ) Erikoistapauksena n = 0 saadaan (q,w) M (q,w) millä tahansa tilanteella (q, w). Jälleen, jos automaatti M on yhteydestä selvä, merkitään yksinkertaisesti (q,w) (q,w ). 63/295

64 Automaatti M hyväksyy merkkijonon x Σ, jos on voimassa (q 0,x) M (q f,ε) jollakin q f F; muuten M hylkää x:n. Toisin sanoen: automaatti hyväksyy x:n, jos sen alkutilanne syötteellä x johtaa, syötteen loppuessa, johonkin hyväksyvään lopputilanteeseen. Automaatin M tunnistama kieli määritellään: L(M) = {x Σ (q 0,x) M (q f,ε) jollakin q f F}. 64/295

65 Esimerkki Merkkijonon 0.25E2 käsittely reaalilukuautomaatilla: (q 0,0.25E2) (q 1,.25E2) (q 2,25E2) (q 3,5E2) (q 3,E2) (q 4,2) (q 6,ε). Koska q 6 F = {q 2,q 3,q 6 }, on siis 0.25E2 L(M). 65/295

66 2.4 Äärellisten automaattien minimointi Voidaan osoittaa, että jokaisella äärellisellä automaatilla on yksikäsitteinen ekvivalentti (so. saman kielen tunnistava) tilamäärältään minimaalinen automaatti. Annetun äärellisen automaatin kanssa minimointi (ekvivalentin minimiautomaatin määrittäminen) on sekä käytännössä että teoreettiselta kannalta tärkeä tehtävä: siten voidaan esimerkiksi selvittää, tunnistavatko kaksi annettua automaattia saman kielen. Tehtävä voidaan ratkaista seuraavassa esitettävällä tehokkaalla menetelmällä. Menetelmän perusideana on pyrkiä samaistamaan keskenään sellaiset syötteenä annetun automaatin tilat, joista lähtien automaatti toimii täsmälleen samoin kaikilla merkkijonoilla. 66/295

67 Olkoon M = (Q,Σ,δ,q 0,F) äärellinen automaatti. Laajennetaan M:n siirtymäfunktio yksittäisistä syötemerkeistä merkkijonoihin: jos q Q, x Σ, merkitään δ (q,x) = q s.e. (q,x) M (q,ε). M:n tilat q ja q ovat ekvivalentit, merkitään jos kaikilla x Σ on q q, δ (q,x) F jos ja vain jos δ (q,x) F; toisin sanoen, jos automaatti q:sta ja q :sta lähtien hyväksyy täsmälleen samat merkkijonot. 67/295

68 Lievempi ekvivalenssiehto: tilat q ja q ovat k-ekvivalentit, merkitään q k q, jos kaikilla x Σ, x k, on δ (q,x) F jos ja vain jos δ (q,x) F; toisin sanoen, jos mikään enintään k:n pituinen merkkijono ei pysty erottamaan tiloja toisistaan. Ilmeisesti on: (i) q 0 q joss sekä q että q ovat lopputiloja tai kumpikaan ei ole; ja (ii) q q joss q k q kaikilla k = 0,1,2,... (1) Esitettävä minimointialgoritmi perustuu syötteenä annetun automaatin tilojen k-ekvivalenssiluokkien hienontamiseen (k + 1)-ekvivalenssiluokiksi kunnes saavutetaan täysi ekvivalenssi. 68/295

69 Algoritmi perustuu seuraavaan: 1. Kaksi (k-ekvivalenttia) tilaa q 1 k+1 q 2, jos ja vain jos q 1 0 q2 ja δ(q 1,a) k δ(q 2,a) kaikilla a Σ. 2. Jos jollakin k:n arvolla pätee, että kaikki keskenään k-ekvivalentit tilat ovat myös k + 1-ekvivalentteja, niin keskenään k-ekvivalentit tilat ovat keskenään ekvivalentteja. Tod. Induktioaskel: oletetaan, että keskenään k-ekvivalentit tilat ovat p-ekvivalentteja jollakin p. Keskenään k-ekvivalentit tilat ovat siis k + 1-ekvivalentteja, eli ym. perusteella niistä siirrytään kaikilla aakkosilla keskenään k-ekvivalentteihin (p-ekvivalentteihin) tiloihin; k-ekvivalentit tilat ovat siis p + 1-ekvivalentteja. (Perustapaus esim. p = 0.) 69/295

70 Algoritmi MIN-FA [Äärellisen automaatin minimointi] Syöte: Äärellinen automaatti M = (Q,Σ,δ,q 0,F). Tulos: M:n kanssa ekvivalentti äärellinen automaatti M, jossa on minimimäärä tiloja. Menetelmä: 1. [Turhien tilojen poisto.] Poista M:stä kaikki tilat, joita ei voida saavuttaa tilasta q 0 millään syötemerkkijonolla. 2. [0-ekvivalenssi.] Osita M:n jäljelle jääneet tilat kahteen luokkaan: ei-lopputiloihin ja lopputiloihin. 70/295

71 3. [k-ekvivalenssi (k + 1)-ekvivalenssi.] Tarkasta, siirrytäänkö samaan ekvivalenssiluokkaan kuuluvista tiloista samoilla merkeillä aina samanluokkaisiin tiloihin. Jos kyllä, algoritmi päättyy ja minimiautomaatin M tilat vastaavat M:n tilojen luokkia. Muussa tapauksessa hienonna ositusta jakamalla kunkin äskeistä ehtoa rikkovan k-ekvivalenssiluokan tilat uusiin, pienempiin (k + 1)-ekvivalenssiluokkiin sen mukaan, mihin luokkaan kustakin tilasta siirrytään milläkin aakkosella, ja toista kohta 3 uudella osituksella. 71/295

72 Lause 2.1 Algoritmi MIN-FA muodostaa annetun äärellisen automaatin M kanssa ekvivalentin äärellisen automaatin M, jossa on minimimäärä tiloja. Tämä automaatti on tilojen nimeämistä paitsi yksikäsitteinen. Algoritmin suoritus päättyy aina: kullakin askelen 3 suorituskerralla, viimeistä lukuunottamatta, vähintään yksi luokka ositetaan pienemmäksi. Askel 3 jakaa k-ekvivalenssiluokat (k + 1)-ekvivalenssiluokiksi: kaksi tilaa ovat (k + 1)-ekvivalentit, jos ja vain jos molemmat tai ei kumpikaan ovat hyväksyviä lopputiloja ja kummastakin siirrytään jokaisella aakkosella k-ekvivalentteihin tiloihin. Kun k-ekvivalenssiluokat ovat myös k + 1-ekvivalenssiluokat, kunkin luokan tilat ovat k-ekvivalentteja kaikilla k eli ekvivalentteja (1.ii). Jokaisessa ekvivalenssiluokassa on ainakin yksi alkutilasta saavutettava tila, joten kaikki luokat ovat tarpeellisia. Yksikäsitteisyys todistettu opetusmonisteessa. 72/295

73 Esimerkki Tarkastellaan alla esitetyn automaatin minimointia. Vaiheessa 1 automaatista poistetaan tila 6, johon ei päästä millään merkkijonolla. Vaiheessa 2 ositetaan automaatin tilat 1 5 ei-lopputiloihin (luokka I) ja lopputiloihin (luokka II), ja tarkastetaan siirtymien käyttäytyminen osituksen suhteen: b 2 a 4 a b 1 a b a a b b a b 6 I : 1 2,I 3,I 2 4,II 2,I 3 2,I 3,I 3 b 5 a II : 4 3,I 5,II 5 1,I 4,II 73/295

74 Luokassa I on nyt kahdentyyppisiä tiloja ({1,3} ja {2}), joten ositusta täytyy hienontaa ja tarkastaa siirtymät uuden osituksen suhteen: b a b a 2 a 4 b a I : 1 2,II 3,I 3 2,II 3,I 1 b a 3 b a b 5 a b 6 II : 2 4,III 2,II III : 4 3,I 5,III 5 1,I 4,III Nyt kunkin luokan sisältämät tilat ovat keskenään samanlaisia, joten minimointialgoritmi päättyy. 74/295

75 Saadun minimiautomaatin tilakaavio on seuraava: b b b a a I II III a 75/295

76 2.5 Epädeterministiset äärelliset automaatit Epädeterministiset automaatit ovat muuten samanlaisia kuin deterministiset, mutta niiden siirtymäfunktio δ ei liitä automaatin vanhan tilan ja syötemerkin muodostamiin pareihin yksikäsitteistä uutta tilaa, vaan joukon mahdollisia seuraavia tiloja. Epädeterministinen automaatti hyväksyy syötteensä, jos jokin mahdollisten tilojen jono johtaa hyväksyvään lopputilaan. Vaikka epädeterministisiä automaatteja ei voi sellaisinaan toteuttaa tietokoneohjelmina, ne ovat tärkeä päätösongelmien kuvausformalismi. 76/295

77 Esimerkki Epädeterministinen automaatti, joka tutkii sisältääkö syötejonoon osajonoa aba: q 0 a a q 1 b q 2 a q 3 a b b Automaatti hyväksyy esim. syötejonon aaba, koska sen on mahdollista edetä seuraavasti: (q 0,aaba) (q 0,aba) (q 1,ba) (q 2,a) (q 3,ε). Automaatti voisi päätyä myös hylkäävään tilaan: (q 0,aaba) (q 0,aba) (q 0,ba) (q 0,a) (q 0,ε), mutta tällä ei ole merkitystä voidaan ajatella, että automaatti osaa ennustaa ja valita aina parhaan mahdollisen vaihtoehdon. 77/295

78 Epädeterministinen automaatti, joka tutkii sisältääkö syötejono osajonoa aba: q 0 a a q 1 b q 2 a q 3 a b b Huom: automaatti ei hyväksy syötejonoa aabbab, koska alkutilanteesta (q 0,aabbab) ei ole mahdollista päästä (ainoaan) hyväksyvään lopputilanteeseen (q 3,ε) millään tavalla. 78/295

79 Määritelmä 2.2 Epädeterministinen äärellinen automaatti on viisikko M = (Q,Σ,δ,q 0,F), missä Q on äärellinen tilojen joukko; Σ on syöteaakkosto; δ : Q Σ P (Q) on automaatin joukkoarvoinen siirtymäfunktio; q 0 Q on alkutila; F Q on (hyväksyvien) lopputilojen joukko. 79/295

80 Esimerkki aba-automaatti, joka tunnistaa, sisältääkö syöte merkkijonon aba: q 0 a a q 1 b q 2 a q 3 a b b Siirtymäfunktio: a b q 0 {q 0,q 1 } {q 0 } q 1 /0 {q 2 } q 2 {q 3 } /0 q 3 {q 3 } {q 3 } Nyt esimerkiksi δ(q 0,a) = {q 0,q 1 } ja δ(q 1,a) = /0. 80/295

81 Epädeterministisen automaatin tilanne (q, w) voi johtaa suoraan tilanteeseen (q,w ), merkitään (q,w) M (q,w ), jos on w = aw (missä a Σ) ja q δ(q,a). Sanotaan myös, että tilanne (q,w ) on tilanteen (q,w) mahdollinen välitön seuraaja. Useamman askelen mittaiset tilannejohdot, merkkijonojen hyväksyminen ja hylkääminen ym. käsitteet määritellään samoin sanoin kuin deterministisillä automaateilla. Koska yhden askelen johdon määritelmä kuitenkin nyt on toinen, niiden sisältö muovautuu hieman erilaiseksi. 81/295

82 Lause 2.2 Olkoon A = L(M) jonkin epädeterministisen äärellisen automaatin M tunnistama kieli. Tällöin on olemassa myös deterministinen äärellinen automaatti M, jolla A = L( M). Todistus Olkoon A = L(M), M = (Q,Σ,δ,q 0,F). Ideana on laatia deterministinen äärellinen automaatti M, joka simuloi M:n toimintaa kaikissa sen kullakin hetkellä mahdollisissa tiloissa rinnakkain. Formaalisti: automaatin M tilat vastaavat M:n tilojen joukkoja: missä M = ( Q,Σ, ˆδ, ˆq 0, F), Q = P (Q) = {S S Q}, ˆq 0 = {q 0 }, F = {S Q S sisältää jonkin q f F}, ˆδ(S,a) = q Sδ(q,a). 82/295

83 Esimerkki aba-automaattiin q 0 a a q 1 b q 2 a q 3 a b b sovellettuna em. konstruktio tuottaa seuraavan deterministisen automaatin (vain alkutilasta saavutettavat tilat esitetty): b a a {q 0 } {q 0, q 1 } b {q 0, q 2 } a a {q 0, q 1, q 3 } a b {q 0, q 2, q 3 } b a b {q 0, q 3 } b 83/295

84 Minimoimalla ja nimeämällä tilat uudelleen saatu automaatti b a a {q 0 } {q 0, q 1 } b {q 0, q 2 } a a {q 0, q 1, q 3 } a b {q 0, q 2, q 3 } b a b {q 0, q 3 } b yksinkertaistuu muotoon: s 0 b a s 1 a b s 2 a s 3 a, b b 84/295

85 [Todistus jatkuu.] Tarkastetaan, että automaatti M todella on ekvivalentti M:n kanssa, so. että L( M) = L(M). Määritelmien mukaan on: ja x L(M) joss (q 0,x) M (q f,ε) jollakin q f F x L( M) joss ({q 0 },x) M (S,ε), missä S sis. jonkin q f F. Osoitetaan siis, että kaikilla x Σ ja q Q on: (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (2) 85/295

86 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. Väitteen (2) todistus tehdään induktiolla merkkijonon x pituuden suhteen. (i) Tapaus x = 0: (q 0,ε) M (q,ε) joss q = q 0 ; samoin ({q 0 },ε) M (S,ε) joss S = {q 0 }. 86/295

87 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 87/295

88 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 88/295

89 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 89/295

90 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 90/295

91 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 91/295

92 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 92/295

93 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 93/295

94 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 94/295

95 Väite (2): (q 0,x) M (q,ε) joss ({q 0 },x) M (S,ε) ja q S. (ii) Induktioaskel: Olkoon x = ya; oletetaan, että väite (2) pätee y:lle. Tällöin: (q 0,x) = (q 0,ya) M (q,ε) joss q Q s.e. (q 0,ya) M (q,a) ja (q,a) M (q,ε) joss q Q s.e. (q 0,y) M (q,ε) ja (q,a) M (q,ε) joss (ind.ol.) q Q s.e. ({q 0 },y) M (S,ε) ja q S ja q δ(q,a) joss ({q 0 },y) M (S,ε) ja q S s.e. q δ(q,a) joss ({q 0 },y) M (S,ε) ja q q S δ(q,a) = ˆδ(S,a) joss ({q 0 },ya) M (S,a) ja q ˆδ(S,a) = S joss ({q 0 },ya) M (S,a) ja (S,a) M (S,ε) ja q S joss ({q 0 },x) = ({q 0 },ya) M (S,ε) ja q S. 95/295

96 ε-automaatit Jatkossa tarvitaan vielä yksi äärellisten automaattien mallin laajennus: epädeterministinen äärellinen automaatti, jossa sallitaan ε-siirtymät. Tällaisella siirtymällä automaatti tekee epädeterministisen valinnan eri jatkovaihtoehtojen välillä lukematta yhtään syötemerkkiä. Esimerkiksi kieli {aa, ab} voitaisiin tunnistaa seuraavalla ε-automaatilla: a a ε ε a b 96/295

97 Määritelmä ε-automaatti on viisikko missä siirtymäfunktio δ on kuvaus M = (Q,Σ,δ,q 0,F), δ : Q (Σ {ε}) P (Q). Muut määritelmät ovat kuten tavallisilla epädeterministisillä äärellisillä automaateilla, paitsi suoran tilannejohdon määritelmä: ε-automaattien tapauksessa relaatio (q,w) M (q,w ) on voimassa, jos on w = aw (missä a Σ) ja q δ(q,a); tai w = w ja q δ(q,ε). 97/295

98 Lause 2.3 Olkoon A = L(M) jollakin ε-automaatilla M. Tällöin on olemassa myös ε-siirtymätön epädeterministinen automaatti M, jolla A = L( M). Todistus Olkoon M = (Q,Σ,δ,q 0,F) jokin ε-automaatti. Automaatti M toimii muuten aivan samoin kuin M, mutta se harppaa ε-siirtymien yli suorittamalla kustakin tilasta lähtien vain ne aidot siirtymät, jotka ovat siitä käsin jotakin ε-siirtymäjonoa pitkin saavutettavissa. 98/295

99 Formaalisti määritellään annetun tilan q Q ε-sulkeuma ε (q) automaatissa M kaavalla ε (q) = {q Q (q,ε) M (q,ε)}, so. joukkoon ε (q) kuuluvat kaikki ne automaatin M tilat, jotka ovat saavutettavissa tilasta q pelkillä ε-siirtymillä. Automaatin M siirtymäsäännöt voidaan nyt kuvata seuraavasti: M = (Q,Σ, ˆδ,q 0, F), missä ˆδ(q,a) = δ(q,a); q ε (q) F = {q Q ε (q) F /0}. 99/295

100 Esimerkki Poistamalla edellisen konstruktion mukaisesti ε-siirtymät ε-automaatista saadaan tavallinen epädeterministinen automaatti: alkuperäinen ε-automaatti: ε-siirtymien poiston jälkeen: saavuttamattomien tilojen poiston jälkeen: a 4 ε 7 a a 4 7 a 4 1 ε ε 2 ε 5 a 8 3 a 6 ε a 5 8 a a a a a 6 8 Tarkastellaan automaattia ε-siirtymien poiston jälkeen: 1. Miksi alkutila 1 on hyväksyvä lopputila? 2. Miksi ei haittaa, että tilaa 7 ei voida saavuttaa alkutilasta? 100/295

101 2.6 Säännölliset lausekkeet Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita: Yhdiste: A B = {x Σ x A tai x B} Katenaatio: AB = {xy Σ x A ja y B}; Potenssit: { A 0 = {ε}, A k = AA k 1 = {x 1...x k x i A i = 1,...,k} (k 1); Sulkeuma t. Kleenen tähti : A = k 0 A k = {x 1...x k k 0, x i A i = 1,...,k}. 101/295

102 Määritelmä 2.3 Aakkoston Σ säännölliset lausekkeet määritellään induktiivisesti säännöillä: 1. /0 ja ε ovat Σ:n säännöllisiä lausekkeita; 2. a on Σ:n säännöllinen lauseke kaikilla a Σ; 3. jos r ja s ovat Σ:n säännöllisiä lausekkeita, niin (r s), (rs) ja r ovat Σ:n säännöllisiä lausekkeita; 4. muita Σ:n säännöllisiä lausekkeita ei ole. 102/295

103 Kukin Σ:n säännöllinen lauseke r kuvaa kielen L(r), joka määritellään: L(/0) = /0; L(ε) = {ε}; L(a) = {a} kaikilla a Σ; L((r s)) = L(r) L(s); L((rs)) = L(r)L(s); L(r ) = (L(r)). 103/295

104 Esimerkki Aakkoston {a, b} säännöllisiä lausekkeita: r 1 = ((ab)b), r 2 = (ab), r 3 = (ab ), r 4 = (a(b (bb))) Lausekkeiden kuvaamat kielet: L(r 1 ) = ({a}{b}){b} = {ab}{b} = {abb} L(r 2 ) = {ab} = {ε,ab,abab,ababab,...} = {(ab) i i 0} L(r 3 ) = {a}({b}) = {a,ab,abb,abbb,...} = {ab i i 0} L(r 4 ) = ({a}{b,bb}) = {ab,abb} = {ε,ab,abb,abab,ababb,...} = {x {a,b} kutakin a-kirjainta x:ssä seuraa 1 tai 2 b-kirjainta }. 104/295

105 Sulkumerkkien vähentämissääntöjä: Operaattoreiden prioriteetti: Yhdiste- ja tulo-operaatioiden assosiatiivisuus: L(((r s) t)) = L((r (s t))) L(((rs)t)) = L((r(st))) peräkkäisiä yhdisteitä ja tuloja ei tarvitse suluttaa. Yksinkertaisemmin siis: r 1 = abb, r 2 = (ab), r 3 = ab, r 4 = (a(b bb)). 105/295

106 Esimerkki C-kielen etumerkittömät reaaliluvut number = (dd.d.dd )(e(+ ε)dd ε) (dd e(+ ε)dd ), missä d on lyhennemerkintä lausekkeelle d = ( ) ja e on lyhennemerkintä lausekkeelle e = (E e). Usein merkitään myös lyhyesti rr r +. Esimerkki (d +.d.d + )(e(+ ε)d + ε) (d + e(+ ε)d + ). 106/295

107 Määritelmä 2.4 Kieli on säännöllinen, jos se voidaan kuvata säännöllisellä lausekkeella. 107/295

108 Säännöllisten lausekkeiden sieventäminen Säännöllisillä kielillä on yleensä useita vaihtoehtoisia kuvauksia, esim.: Σ = L((a b) ) = L((a b ) ) = L(a b (a b) ba(a b) ). Määritelmä. Säännölliset lausekkeet r ja s ovat ekvivalentit, merk. r = s, jos L(r) = L(s). Lausekkeen sieventäminen = yksinkertaisimman ekvivalentin lausekkeen määrittäminen. Säännöllisten lausekkeiden ekvivalenssitestaus on epätriviaali, mutta periaatteessa mekaanisesti ratkeava ongelma. 108/295

109 Sievennyssääntöjä: r (s t) = (r s) t r(st) = (rs)t r s = s r r(s t) = rs rt (r s)t = rt st r r = r r /0 = r εr = r /0r = /0 r = ε r r r = (ε r) Mikä tahansa säännöllisten lausekkeiden tosi ekvivalenssi voidaan johtaa näistä laskulaeista, kun lisätään päättelysääntö: jos r = rs t, niin r = ts, edellyttäen että ε / L(s). 109/295

110 Kahden lausekkeen ekvivalenssin toteamiseksi kannattaa usein päätellä erikseen kummankin kuvaaman kielen sisältyminen toiseen. Merkitään lyhyesti: r s, jos L(r) L(s). Tällöin siis r = s joss r s ja s r. Esimerkki Todetaan, että (a b ) = (a b). 1. Selvästi (a b ) (a b), koska (a b) kuvaa kaikkia aakkoston {a, b} merkkijonoja. 2. Koska selvästi (a b) a b, niin myös (a b) (a b ). 110/295

111 2.7 ÄÄRELLISET AUTOMAATIT JA SÄÄNNÖLLISET KIELET Lause 2.4 Jokainen säännöllinen kieli voidaan tunnistaa äärellisellä automaatilla. Todistus Seuraavan kalvon induktiivisen konstruktion avulla voidaan mielivaltaisen säännöllisen lausekkeen r rakennetta seuraten muodostaa ε- automaatti M r, jolla L(M r ) = L(r). Tästä automaatista voidaan poistaa ε-siirtymät Lemman 2.4 mukaisesti, ja tarvittaessa voidaan syntyvä epädeterministinen automaatti determinisoida Lauseen 2.2 konstruktiolla. Esitettävästä konstruktiosta on syytä huomata, että muodostettaviin ε- automaatteihin tulee aina yksikäsitteiset alku- ja lopputila, eikä minkään osa-automaatin lopputilasta lähde eikä alkutilaan tule yhtään ko. osaautomaatin sisäistä siirtymää. 111/295

112 r = : r = s t : r = ε : ε ε M s ε r = a (a Σ) : a ε M t ε r = s : ε r = st : ε Ms ε M s M t ε 112/295

113 Esimerkki Lausekkeesta r = (a(b bb)) saadaan näiden sääntöjen mukaan seuraava ε-automaatti: ε a ε ε ε b b ε ε b ε ε 113/295

114 Edellä esitetty automaatti on selvästi hyvin redundantti. Käsin automaatteja suunniteltaessa ne kannattaakin usein muodostaa suoraan (mikäli tietää, mitä on tekemässä). Esim. lausekkeesta r = (a(b bb)) on suhteellisen helppoa muodostaa seuraava yksinkertainen epädeterministinen tunnistaja-automaatti: b a b b 114/295

115 Lause 2.5 Jokainen äärellisellä automaatilla tunnistettava kieli on säännöllinen. Todistus Tarvitaan vielä yksi äärellisten automaattien laajennus: lausekeautomaatissa voidaan siirtymien ehtoina käyttää mielivaltaisia säännöllisiä lausekkeita. Formalisointi: Merk. RE Σ = aakkoston Σ säännöllisten lausekkeiden joukko. Lausekeautomaatti on viisikko M = (Q,Σ,δ,q 0,F), missä siirtymäfunktio δ on äärellinen kuvaus δ : Q RE Σ P (Q) (so. δ(q,r) /0 vain äärellisen monella parilla (q,r) Q RE Σ ). 115/295

116 Yhden askelen tilannejohto määritellään: (q,w) M (q,w ) jos on q δ(q,r) jollakin sellaisella r RE Σ, että w = zw, z L(r). Muut määritelmät samat kuin aiemmin. Todistetaan: jokainen lausekeautomaatilla tunnistettava kieli on säännöllinen. Olkoon M jokin lausekeautomaatti. Säännöllinen lauseke, joka kuvaa M:n tunnistaman kielen, muodostetaan kahdessa vaiheessa: 116/295

117 1. Tiivistetään M ekvivalentiksi enintään 2-tilaiseksi lausekeautomaatiksi seuraavilla muunnoksilla: (i) Jos M:llä on useita lopputiloja, yhdistetään ne seuraavasti. ε ε ε 117/295

118 (ii) Poistetaan M:n muut kuin alku- ja lopputila yksi kerrallaan seuraavasti. Olk. q jokin M:n tila, joka ei ole alku- eikä lopputila; tarkastellaan kaikkia reittejä, jotka M:ssä kulkevat q:n kautta. Olk. q i ja q j q:n välittömät edeltäjä- ja seuraajatila jollakin tällaisella reitillä. Poistetaan q reitiltä q i q j oheisen kuvan (i) muunnoksella, jos tilasta q ei ole siirtymää itseensä, ja kuvan (ii) muunnoksella, jos tilasta q on siirtymä itseensä: (i): r s q i q q j q i rs q j (ii): t r s q i q q j q i rt s q j 118/295

119 Samalla yhdistetään rinnakkaiset siirtymät seuraavasti: q i r q j q i r s q j s 119/295

120 2. Tiivistyksen päättyessä jäljellä olevaa 2-tilaista automaattia vastaava säännöllinen lauseke muodostetaan seuraavalla tavalla: (i): r r (ii): r 1 r 2 r 3 r 1 r 2(r 3 r 4 r 1 r 2) r 4 120/295

121 Esimerkki aa a a bb b b b b a ab a ba aa b (aa b)(ba) (bb a) ab bb a ba ab ab (aa b)(ba) (bb a) (ab (aa b)(ba) (bb a)) 121/295

122 3. KIELIOPIT JA MERKKIJONOJEN TUOTTAMINEN Kielioppi = muunnossysteemi merkkijonojen (kielen sanojen ) tuottamiseen tietystä lähtöjonosta alkaen, osajonoja toistuvasti annettujen sääntöjen mukaan uudelleenkirjoittamalla. Kielioppi on yhteydetön, jos kussakin uudelleenkirjoitusaskelessa korvataan yksi erityinen muuttuja- t. välikesymboli jollakin siihen liitetyllä korvausjonolla, ja korvaus voidaan aina tehdä symbolia ympäröivän merkkijonon rakenteesta riippumatta. Sovelluksia: rakenteisten tekstien kuvaaminen (esim. ohjelmointikielten BNF-syntaksikuvaukset, XML:n DTD/Schema-määrittelyt), yleisemmin rakenteisten olioiden kuvaaminen (esim. syntaktinen hahmontunnistus). 122/295

123 Yhteydettömillä kieliopeilla voidaan kuvata (tuottaa) myös ei-säännöllisiä kieliä. Esimerkki Yhteydetön kielioppi kielelle L match (lähtösymboli S): (i) S ε, (ii) S (S). Esimerkiksi merkkijonon ((())) tuottaminen: S (S) ((S)) (((S))) (((ε))) = ((())). 123/295

124 Esimerkki Kielioppi C-tyyppisen ohjelmointikielen aritmeettisille lausekkeille (yksinkertaistettu). E T E + T T F T F F a (E). Esimerkiksi lausekkeen (a + a) a tuottaminen: E T T F F F (E) F (E + T) F (T + T) F (F + T) F (a + T) F (a + F) F (a + a) F (a + a) a. 124/295

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

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1.6 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite

Lisätiedot

Luento 1: Alue ja tavoitteet. ICS-C2000 Tietojenkäsittelyteoria. Tietojenkäsittelyteoria

Luento 1: Alue ja tavoitteet. ICS-C2000 Tietojenkäsittelyteoria. Tietojenkäsittelyteoria Luento 1: Alue ja tavoitteet ICS-C2000 Tietojenkäsittelyteoria Luento 1: Matemaattiset peruskäsitteet ja formaalit kielet Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Orposen prujun

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria

ICS-C2000 Tietojenkäsittelyteoria ICS-C2000 Tietojenkäsittelyteoria Luento 1: Matemaattiset peruskäsitteet ja formaalit kielet Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Luento 1: Alue ja tavoitteet Orposen

Lisätiedot

Tietojenkäsittelyteorian perusteet T/Y T /1002

Tietojenkäsittelyteorian perusteet T/Y T /1002 Tietojenkäsittelyteorian perusteet T/Y T-79.1001/1002 Pekka Orponen Tietojenkäsittelyteorian laboratorio, TKK Syksy 2005 Luento 0: Aiheen esittely ja kurssin käytännöt Luento 1: Matemaattisia peruskäsitteitä

Lisätiedot

Tietojenkäsittelyteorian perusteet T/Y T /1002

Tietojenkäsittelyteorian perusteet T/Y T /1002 Tietojenkäsittelyteorian perusteet T/Y T-79.1001/1002 Pekka Orponen Tietojenkäsittelyteorian laboratorio, TKK Kevät 2006 Luento 0: Aiheen esittely ja kurssin käytännöt Luento 1: Matemaattisia peruskäsitteitä;

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

T Tietojenkäsittelyteorian perusteet

T Tietojenkäsittelyteorian perusteet Luento 0: Aiheen esittely ja kurssin käytännöt Luento 1: Matemaattisia peruskäsitteitä Luento 2: Merkkijonot ja kielet; numeroituvat ja ylinum. joukot Timo Latvala Tietojenkäsittelyteorian laboratorio,

Lisätiedot

Esimerkki 1: Kahviautomaatti.

Esimerkki 1: Kahviautomaatti. Esimerkki 1: Kahviautomaatti. ÄÄRELLISET AUTOAATIT JA SÄÄNNÖLLISET KIELET 2.1 Tilakaaviot ja tilataulut Tarkastellaan aluksi tietojenkäsittelyjärjestelmiä, joilla on vain äärellisen monta mahdollista tilaa.

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

ICS-C2000 Tietojenkäsittelyteoria

ICS-C2000 Tietojenkäsittelyteoria ICS-C2000 Tietojenkäsittelyteoria Luento 2: Äärelliset automaatit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Kertausta: kielet ja automaatit Laskennallisen ongelman ratkaisevia

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria. 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

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

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

(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

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

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

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

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

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi

Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Äärellisten automaattien ja säännöllisten lausekkeiden minimointi Timi Suominen, Riia Ohtamaa ja Pessi Moilanen Helsinki..01 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Äärellisten automaattien

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

MS-A0402 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A

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

2.6 SÄÄNNÖLLISET LAUSEKKEET Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

2.6 SÄÄNNÖLLISET LAUSEKKEET Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita: 2.6 SÄÄNNÖLLISET LAUSEKKEET Automttimlleist poikkev tp kuvt yksinkertisi kieliä. Olkoot A j B kkoston Σ kieliä. Perusopertioit: Yhdiste: A B = {x Σ x A ti x B}; Ktentio: AB = {xy Σ x A, y B}; Potenssit:

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

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

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

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

Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita: 2.6 SÄÄNNÖLLISET LAUSEKKEET Automttimlleist poikkev tp kuvt yksinkertisi kieliä. Olkoot A j B kkoston Σ kieliä. Perusopertioit: Yhdiste: A B = {x Σ x A ti x B}; Ktentio: AB = {xy Σ x A, y B}; Potenssit:

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

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

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

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

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

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

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

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

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

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 4. Joukot, relaatiot ja funktiot Osa 1: Joukot 4.1 Joukot Matemaattisesti joukko on mikä tahansa hyvin määritelty kokoelma objekteja, joita kutsutaan joukon alkioiksi

Lisätiedot

Tietojenkäsittelyteorian alkeet, osa 2

Tietojenkäsittelyteorian alkeet, osa 2 TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. syyskuuta 2016 Sisällys vs Ovat eri asioita! Älä sekoita niitä. Funktiot Funktio f luokasta A luokkaan B, merkitään

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

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

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

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

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

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

Olkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio}; 3.6 Cocke-Younger-Kasami -jäsennysalgoritmi Osittava jäsentäminen on selkeä ja tehokas jäsennysmenetelmä LL(1)-kieliopeille: n merkin mittaisen syötemerkkijonon käsittely sujuu ajassa O(n). LL(1)-kieliopit

Lisätiedot

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

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

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

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

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

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

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

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

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

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti. Joukon määritelmä Joukko on alkioidensa kokoelma. Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti. Näin ei tässä

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

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

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

Ilkka Mellin Todennäköisyyslaskenta Liite 1: Joukko-oppi

Ilkka Mellin Todennäköisyyslaskenta Liite 1: Joukko-oppi Ilkka Mellin Todennäköisyyslaskenta Liite 1: Joukko-oppi TKK (c) Ilkka Mellin (2007) 1 Joukko-oppi >> Joukko-opin peruskäsitteet Joukko-opin perusoperaatiot Joukko-opin laskusäännöt Funktiot Tulojoukot

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

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

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

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

MS-A0401 Diskreetin matematiikan perusteet

MS-A0401 Diskreetin matematiikan perusteet MS-A0401 Diskreetin matematiikan perusteet Osa 2: Relaatiot ja funktiot Riikka Kangaslampi Syksy 2017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta

Lisätiedot

ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI. 1. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on

ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI. 1. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI MIKKO KANGASMÄKI. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on viisikko (Q, Σ, s, δ, F ), missä Q on äärellinen joukko tiloja

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

Johdatus matemaattiseen päättelyyn

Johdatus matemaattiseen päättelyyn Johdatus matemaattiseen päättelyyn Maarit Järvenpää Oulun yliopisto Matemaattisten tieteiden laitos Syyslukukausi 2015 1 Merkintöjä 2 Todistamisesta 2 3 Joukko-oppia Tässä luvussa tarkastellaan joukko-opin

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

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

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

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

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

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara Kuvauksista ja relaatioista Jonna Makkonen Ilari Vallivaara 20. lokakuuta 2004 Sisältö 1 Esipuhe 2 2 Kuvauksista 3 3 Relaatioista 8 Lähdeluettelo 12 1 1 Esipuhe Joukot ja relaatiot ovat periaatteessa äärimmäisen

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetesimerkkejä,

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I MS-A040 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 014 G. Gripenberg (Aalto-yliopisto) MS-A040 Diskreetin matematiikan perusteetesimerkkejä,

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

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

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

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa I

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa I MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa I G. Gripenberg Aalto-yliopisto 30. syyskuuta 2015 G. Gripenberg (Aalto-yliopisto) MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, 30.

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

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

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 4. Joukot, relaatiot ja funktiot Osa 2: Relaatiot 4.2 Relaatiot Relaatioilla mallinnetaan joukkojen alkioiden välisiä suhteita Joukkojen S ja T välinen binaarirelaatio

Lisätiedot

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I G. Gripenberg Aalto-yliopisto 3. huhtikuuta 2014 G. Gripenberg (Aalto-yliopisto) MS-A0402 Diskreetin matematiikan perusteetyhteenveto, 3. osahuhtikuuta

Lisätiedot

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon

Lisätiedot

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 582206 Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja 1. Tarkastellaan yhteydetöntä kielioppia S SAB ε A aa a B bb ε Esitä merkkijonolle aa kaksi erilaista jäsennyspuuta ja kummallekin siitä vastaava

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

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

Johdatus diskreettiin matematiikkaan Harjoitus 1,

Johdatus diskreettiin matematiikkaan Harjoitus 1, Johdatus diskreettiin matematiikkaan Harjoitus 1, 15.9.2014 1. Hahmottele tasossa seuraavat relaatiot: a) R 1 = {(x, y) R 2 : x y 2 } b) R 2 = {(x, y) R 2 : y x Z} c) R 3 = {(x, y) R 2 : y > 0 and x 2

Lisätiedot

Joukko-oppi. Joukko-oppi. Joukko-oppi. Joukko-oppi: Mitä opimme? Joukko-opin peruskäsitteet

Joukko-oppi. Joukko-oppi. Joukko-oppi. Joukko-oppi: Mitä opimme? Joukko-opin peruskäsitteet TKK () Ilkka Mellin (2004) 1 Joukko-oppi Liite: Joukko-oppi TKK () Ilkka Mellin (2004) 2 Joukko-oppi: Mitä opimme? Tämän liitteen tavoitteena on esitellä joukko-opin peruskäsitteet ja - operaatiot laajuudessa,

Lisätiedot

Äärellisten mallien teoria

Äärellisten mallien teoria Äärellisten mallien teoria Harjoituksen 4 ratkaisut Tehtävä 1. Määritä suurin aste k, johon saakka kuvan verkot G ja G ovat osittaisesti isomorfisia: Ratkaisu 1. Huomataan aluksi, että G =4 G : Ehrenfeucht-Fraïssé

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

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla. HY / Avoin ylioisto Johdatus yliopistomatematiikkaan, kesä 05 Harjoitus 6 Ratkaisut palautettava viimeistään tiistaina.6.05 klo 6.5. Huom! Luennot ovat salissa CK maanantaista 5.6. lähtien. Kurssikoe on

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

Joukot. Georg Cantor ( )

Joukot. Georg Cantor ( ) Joukot Matematiikassa on pyrkimys määritellä monimutkaiset asiat täsmällisesti yksinkertaisempien asioiden avulla. Tarvitaan jokin lähtökohta, muutama yleisesti hyväksytty ja ymmärretty käsite, joista

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