T /2 Tietojenkäsittelyteorian perusteet T/Y
|
|
- Aapo Heino
- 7 vuotta sitten
- Katselukertoja:
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)
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ätiedotLuento 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ätiedotICS-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ätiedotTietojenkä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ätiedotTietojenkä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ätiedotOutput. Input Automaton
16 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite
LisätiedotT 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ätiedotEsimerkki 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ätiedotuv n, v 1, ja uv i w A kaikilla
2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko
LisätiedotICS-C2000 Tietojenkäsittelyteoria
ICS-C2000 Tietojenkäsittelyteoria Luento 2: Äärelliset automaatit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Kertausta: kielet ja automaatit Laskennallisen ongelman ratkaisevia
LisätiedotICS-C2000 Tietojenkäsittelyteoria. 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ätiedotICS-C2000 Tietojenkäsittelyteoria
ICS-C2000 Tietojenkäsittelyteoria Luento 5: Säännöllisten kielten pumppauslemma; yhteydettömät kieliopit Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan laitos Kevät 2016 Alue ja aiheet: Orposen
LisätiedotTIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015
ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:
Lisätiedot(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3
T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4
LisätiedotM = (Q, Σ, Γ, δ, q 0, q acc, q rej )
6. LASKETTAVUUSTEORIAA Churchin Turingin teesi: Mielivaltainen (riittävän vahva) laskulaite Turingin kone. Laskettavuusteoria: Tarkastellaan mitä Turingin koneilla voi ja erityisesti mitä ei voi laskea.
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en
LisätiedotÄä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ätiedotRajoittamattomat kieliopit
Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet
LisätiedotMS-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 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ätiedot2.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ätiedotTestaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin
Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.
LisätiedotYhteydettömän kieliopin jäsennysongelma
Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa
LisätiedotLaskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja
582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on
Lisätiedotδ : (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ätiedotAutomaatit. Muodolliset kielet
Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten
LisätiedotAutomaattimalleista 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ätiedotTIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013
TIEA24 Automaatit ja kieliopit, kesä 3 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. toukokuuta 3 Sisällys Äärellisiä automaatteja ON PUSH PUSH OFF Q T J Q C C H S C,Q C,Q 0 40 60 80 00, 70 90 Deterministinen
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 5. marraskuuta 2015
TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen
Lisätiedot5.3 Ratkeavia ongelmia
153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,
LisätiedotHahmon etsiminen syotteesta (johdatteleva esimerkki)
Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux
LisätiedotSäännöllisen kielen tunnistavat Turingin koneet
186 Säännöllisen kielen tunnistavat Turingin koneet Myös säännöllisen kielen hyväksyvien Turingin koneiden tunnistaminen voidaan osoittaa ratkeamattomaksi palauttamalla universaalikielen tunnistaminen
LisätiedotTuringin koneen laajennuksia
Turingin koneen laajennuksia Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k
Lisätiedot1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä
Lisätiedoton rekursiivisesti numeroituva, mutta ei rekursiivinen.
6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti
LisätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e
LisätiedotSäännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013 Sisällys Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman
LisätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4 a 5 00 k 11 i
Lisätiedot811120P 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ätiedotTietojenkä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ätiedotSäännöllisten kielten sulkeumaominaisuudet
Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,
LisätiedotRajoittamattomat kieliopit (Unrestricted Grammars)
Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli
LisätiedotJos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).
Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)). Esimerkkejä: Σ koostuu kaikista aakkoston Σ merkkijonoista ja
LisätiedotPinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. kesäkuuta 2013 Sisällys Aikataulumuutos Tämänpäiväinen demotilaisuus on siirretty maanantaille klo 14:15 (Ag Delta).
LisätiedotRekursiiviset palautukset [HMU 9.3.1]
Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle
LisätiedotOlkoon G = (V,Σ,P,S) yhteydetön kielioppi. Välike A V Σ on tyhjentyvä, jos A. NULL := {A V Σ A ε on G:n produktio};
3.6 Cocke-Younger-Kasami -jäsennysalgoritmi Osittava jäsentäminen on selkeä ja tehokas jäsennysmenetelmä LL(1)-kieliopeille: n merkin mittaisen syötemerkkijonon käsittely sujuu ajassa O(n). LL(1)-kieliopit
LisätiedotTäydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista
Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
LisätiedotChomskyn hierarkia ja yhteysherkät kieliopit
Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien
LisätiedotICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.
LisätiedotDFA:n käyttäytyminen ja säännölliset kielet
säännölliset kielet TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 9. marraskuuta 2015 Sisällys toiminta formaalisti Olkoon M = (Q, Σ, δ, q 0, F) deterministinen
LisätiedotPinoautomaatit. Pois kontekstittomuudesta
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 1 eli pino Pino
LisätiedotKertausta 1. kurssikokeeseen
Kertausta. kurssikokeeseen. kurssikoe on to 22.0. klo 9 2 salissa A (tai CK2). Koealueena johdanto ja säännölliset kielet luentokalvot 3 ja nämä kertauskalvot harjoitukset 6 Sipser, luvut 0 ja Edellisvuosien.
LisätiedotTäydentäviä muistiinpanoja laskennan rajoista
Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen
Lisätiedotvaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters
LisätiedotValitsemalla 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ätiedotTIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 26. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 26. tammikuuta 2012 Sisällys Luennon pähkinä Millä tavalla voidaan rakentaa tietokoneohjelma (tai kirjasto), joka
LisätiedotTodistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.
Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,
Lisätiedot4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:
T-79.148 Kevät 2004 Tietojenkäsittelyteorian perusteet Harjoitus 12 Demonstraatiotehtävien ratkaisut 4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: Hyväksyykö annettu Turingin kone
LisätiedotIlkka 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ätiedotYllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen
Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen suhteen, eli jos kielet A ja B ovat säännöllisiä, niin myös A B on. Tätä voi havainnollistaa seuraavalla kuvalla: P(Σ ) Säännölliset
LisätiedotLisää pysähtymisaiheisia ongelmia
Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti
LisätiedotAlgoritmin määritelmä [Sipser luku 3.3]
Algoritmin määritelmä [Sipser luku 3.3] Mitä algoritmilla yleensä tarkoitetaan periaatteessa: yksiselitteisesti kuvattu jono (tietojenkäsittely)operaatioita, jotka voidaan toteuttaa mekaanisesti käytännössä:
LisätiedotPinoautomaatit. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 6. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
.. TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. lokakuuta 2016 Sisällys. Harjoitustehtävätilastoja Tilanne 6.10.2016 klo 8:28 passed potential redo submitters
LisätiedotMS-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 MIKKO KANGASMÄKI. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on viisikko (Q, Σ, s, δ, F ), missä Q on äärellinen joukko tiloja
LisätiedotLaskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja
581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen
LisätiedotJohdatus 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ätiedotTIEA241 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ätiedotT Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut
T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama
LisätiedotTarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.
Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen
LisätiedotTuringin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen
LisätiedotRekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää
Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää S AB CA... A CB...... ja kutsua Derives(S, abcde), niin kutsu Derives(B,
LisätiedotKuvauksista 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ätiedotMS-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ätiedotMS-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ätiedotKielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }
135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren
Lisätiedot8. Kieliopit ja kielet
8. Kieliopit ja kielet Suomen kielen sanoja voidaan yhdistellä monella eri tavalla. Kielioppi määrää sen, milloin sanojen yhdistely antaa oikein muodostetun lauseen. "Mies räpyttää siipiään" on kieliopillisesti
Lisätiedot9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko
9.5. Turingin kone Turingin kone on järjestetty seitsikko TM = (S, I, Γ, O, B, s 0, H), missä S on tilojen joukko, I on syöttöaakkosto, Γ on nauha-aakkosto, I Γ, O on äärellinen ohjeiden joukko, O S Γ
LisätiedotMS-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ätiedotLaskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja
582206 Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja 1. Seuraavissa laskennoissa tilat on numeroitu sarakkeittain ylhäältä alas jättäen kuitenkin hyväksyvä tila välistä. Turingin koneen laskenta
LisätiedotPysähtymisongelman ratkeavuus [Sipser luku 4.2]
Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,
Lisätiedot811120P 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ätiedotMS-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ätiedotDiskreetin 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ätiedotLaskennan 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ätiedotM =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)
Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.
LisätiedotTIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. toukokuuta 2011
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 16. toukokuuta 2011 Sisällys engl. random-access machines, RAM yksinkertaistettu nykyaikaisen (ei-rinnakkaisen)
LisätiedotEpädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,
LisätiedotJohdatus 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ätiedotJoukko-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 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ätiedotS BAB ABA A aas bba B bbs c
T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama
LisätiedotKurssikoe 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ätiedotTIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016
ja ja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys ja ja Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/
LisätiedotJoukot. 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ätiedotVasen 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