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

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

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

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

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

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

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

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

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

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

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

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

Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

Yhteydettömän kieliopin jäsennysongelma

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

Säännöllisten operaattoreiden täydentäviä muistiinpanoja

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

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

Automaatit. Muodolliset kielet

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

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

Kertausta 1. kurssikokeeseen

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Tietojenkäsittelyteorian alkeet, osa 2

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Säännöllisten kielten sulkeumaominaisuudet

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

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

Täydentäviä muistiinpanoja laskennan rajoista

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

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

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

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

1. Universaaleja laskennan malleja

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

Turingin koneen laajennuksia

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

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

Rajoittamattomat kieliopit

Formalisoimme nyt edellä kuvatun laskennan.

Rekursiivinen Derives on periaatteessa aivan toimiva algoritmi, mutta erittäin tehoton. Jos tarkastellaan esim. kieliopinpätkää

ICS-C2000 Tietojenkäsittelyteoria

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 2. helmikuuta 2012

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

UML -mallinnus TILAKAAVIO

jäsennyksestä TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 29. syyskuuta 2016 TIETOTEKNIIKAN LAITOS Kontekstittomien kielioppien

Tietotekniikan valintakoe

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

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

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

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

Algoritmin määritelmä [Sipser luku 3.3]

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

9. Matemaattisista koneista.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

5.3 Ratkeavia ongelmia

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

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

Output. Input Automaton

Chomskyn hierarkia ja yhteysherkät kieliopit

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

Esimerkki 1: Kahviautomaatti.

8. Kieliopit ja kielet

1. Universaaleja laskennan malleja

Säännöllisen kielen tunnistavat Turingin koneet

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. joulukuuta 2015

LR-jäsennys. Antti-Juhani Kaijanaho. 3. lokakuuta 2016

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

Täydentäviä muistiinpanoja epädeterministisistä äärellisistä automaateista

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

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

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

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

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

Kieli merkitys ja logiikka. 4: Luovuus, assosiationismi. Luovuus ja assosiationismi. Kielen luovuus. Descartes ja dualismi

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Lineaarialgebra ja matriisilaskenta I

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

S BAB ABA A aas bba B bbs c

Gaussin ja Jordanin eliminointimenetelmä

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

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

Osoitamme, että jotkut kielet eivät ole säännöllisiä eli niitä ei voi tunnistaa äärellisellä automaatilla.

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

Transkriptio:

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 50 50s,1e 100 50s,1e

Deterministinen äärellinen automaatti (DFA) Deterministisen äärellisen automaatin 1 kuvaukseen kuuluu automaatille mahdollisesti tulevien ärsykkeiden (merkit) luettelo automaatin tilojen luettelo yhden tilan merkitseminen alkutilaksi mahdollisesti joidenkin tilojen merkitseminen hyväksyviksi siirtymien (tilasta toiseen) luettelointi siirtymään liittyy aina jokin merkki jokaisesta tilasta lähtee täsmälleen yksi siirtymä per merkki 1 engl. deterministic finite automaton, deterministic finite-state machine

Äärellinen automaatti graafisesti hyväksyvä tila esitetään kaksoisviivalla ympyröitynä muut tilat esitetään yhdellä viivalla ympyöritynä alkutila merkitään piirtämällä siihen ei-mistään tuleva nuoli alkutila voi olla hyväksyvä tila! tilasiirtymä esitetään merkillä varustettuna nuolena tilasta toiseen q 0 tilasiirtymä a q 1 q 2 alkutila muu tila hyväksyvä tila

Huomaa graafiesityksestä Koska jokaisesta tilasta on täsmälleen yksi siirtymä jokaiselle merkille, pitäisi periaatteessa myös jokaisesta ympyrästä olla nuoli jokaiselle merkille. Käytännössä usein jätetään osa nuolista merkitsemättä. Tulkintasääntö Jos automaatin graafiesityksessä ei ole näkyviin piirretty kaikkia tilasiirtymiä, vievät puuttuvat siirtymät ns. hylkäystilaan tila joka ei ole hyväksyvä ja josta kaikki siirtymät vievät takaisin siihen itseensä. Hylkäystilaa ei yleensä piirretä näkyviin.

Äärellinen automaatti siirtymätaulukkona kaksiulotteinen taulukko sarakkeilla merkit riveillä tilat alkutila merkitään nuolella lopputilat merkitään tähdellä taulukon rivillä q ja sarakkeella c on tila q tulkitaan siirtymäksi tilasta q merkillä c tilaan q Myös mahdollinen hylkäystila ja siirtymät siihen on merkittävä näkyviin.

Esimerkki: kaksi esitystapaa 0 50s 1e 50 50s,1e 100 50s,1e 50s 1e 0 50 100 50 100 100 100 100 100

Luentotehtävä: laadi taulukkoesitykset PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q

Matemaattinen määritelmä Määritelmä Viisikko (Q, Σ, δ, q 0, F) on deterministinen äärellinen automaatti (DFA), jos Q on äärellinen (tilojen) joukko, Σ on äärellinen, epätyhjä joukko (merkistö), δ : Q Σ Q pätee (siirtymäfunktio), q 0 Q pätee (alkutila) ja F Q pätee (hyväksyvät tilat). Huomioita Olennaista on, että kyseessä on viisikko, jonka alkioilla on mainitut ominaisuudet. Yllä käytetyt merkinnät Q, Σ, δ, q 0 ja F ovat vakiintuneita, mutta asia ei muutu miksikään, vaikka merkinnät vaihtaisi toisiksi.

Esimerkki taululla 0 50s 1e 50 50s,1e 100 50s,1e 50s 1e 0 50 100 50 100 100 100 100 100

Sisällys

Äärellisen automaatin käyttäytyminen Automaatti käynnistyy alkutilassaan. Kun automaatille tulee ärsyke (syötemerkki), se siirtyy nykyisestä tilasta seuraavaan. Käytännössä automaatin siirtyminen tilaan voi herättää jonkin toiminnan (sivuvaikutus). Teoriassa sivuvaikutukset sivuutetaan. Teoriassa ja tietyissä sovelluksissa automaatin ajatellaan tarkastavan (äärellisiä) merkkijonoja. Automaatille annetaan syötteeksi merkkijono siten, että kukin merkki annetaan vuorollaan automaatille ärsykkeeksi. Kun syötejono päättyy, merkkijonon luokka määräytyy silloisen tilan mukaan. Automaatti hyväksyy merkkijonon, jos päättymishetken tila oli hyväksyvä, ja muuten hylkää sen.

Esimerkki taululla 0 0 0 2 1 1 1 1 1 0 0 3 0 1 0 2 1 1 3 0 2 0 3 3 1 2 w = 010110 v = 110110 u = 001101

Merkkijonot matemaattisesti 1. Äärellinen epätyhjä joukko on merkistö, ja sen alkioita kutsutaan merkeiksi. 2. Merkistön Σ merkkijono koostuu nollasta tai useammasta merkistä peräkkäin asetettuna (ilman välimerkkejä). Merkkien järjestyksellä on merkitystä. Merkin toistolla on merkitystä. Esim. kissa on merkkijono. Muodollisesti merkkijono on kuvaus {0,..., n 1} Σ, missä n on merkkijonon pituus. 3. Merkistön Σ niiden merkkijonojen joukkoa, joiden pituus on n, merkitään Σ n :llä. 4. Merkistön Σ kaikkien merkkijonojen joukkoa merkitään Σ :lla. Eli Σ = Σ i i=0

Merkkijono-operaatioita Tyhjää merkkijonoa merkitään ε (joissakin lähteissä käytetään merkintää λ). Merkkijonon w Σ pituutta merkitään w. Yhden merkin merkkijono samastetaan kyseiseen merkkiin: jos c Σ, niin c Σ ja c = 1. Merkkijono, joka saadaan toistamalla sama merkki (c Σ) monta (k N) kertaa, voidaan merkitä c k. c 0 = ε c 1 = c c k = k Kaksi merkkijonoa v, w Σ voidaan yhdistää (engl. concatenate) kirjoittamalla jonot peräkkäin: vw. Merkkijono v Σ voidaan kääntää peilikuvakseen v R ; esim. 12345 R = 54321.

DFA:n toiminta formaalisti Olkoon M = (Q, Σ, δ, q 0, F) deterministinen äärellinen automaatti. Jokaiselle epätyhjälle merkkijonolle w = c 0 c n 1 Σ \ {ε} on olemassa samanpituinen tilajono 2 q 1,..., q n, jolle pätee q k+1 = δ(q k, c k ) kaikilla k = 0,..., n 1. Tämän jonon viimeinen tila q n on merkkijonon w päätöstila automaatissa M. Tyhjän merkkijonon päätöstila automaatissa M on q 0 M hyväksyy merkkijonon w Σ, jos sen päätöstila M:ssä kuuluu F:ään; muuten se hylkää sen. 2 Huomaa indeksoinnin ero!

Automaatin ymmärtäminen Automaatin tilat ovat automaatin muisti: Se, että automaatti on jossakin tilassa, kertoo jotain siitä, minkälainen syötteenä oleva merkkijono on tähän asti ollut. Kannattaa aina selvittää, mitä kukin tila automaatille kertoo! Aiemmin tuntemattoman automaatin toiminnan selvittämisessä tilojen muistitehtävän selvittäminen on erittäin tärkeä!

Minkälaiset merkkijonot tämä automaatti hyväksyy? 0 0 0 2 1 1 1 1 1 0 0 3

Sisällys

Merkkijonokäsittely DFA koodataan yleensä silmukaksi, joka käy syötemerkkijonon läpi merkki kerrallaan. Tiloille annetaan numerot. Kulloinkin voimassa oleva tila tallennetaan muuttujaan. Iteraation alussa hypätään switch case-rakenteella tilamuuttujan osoittamaan tilaan. Kunkin tilan kohdalla valitaan syötemerkin perusteella, mikä tila laitetaan muuttujaan seuraavaksi. Syötteen loputtua katsotaan, ollaanko hyväksyvässä tilassa vai ei.

Vaihtoehtoisia ratkaisuja Switch casen sijasta voidaan käyttää taulukkoa, josta luetaan seuraavan tilan numero. Ei suoraan mahdollista tilasta riippuvan sivuvaikutuksen koodausta. Tilamuuttujan sijasta käytetään goto-lausetta tilasiirtymän toteuttamiseen. Tämä on yksi harvoista tilanteista, joissa goton käytössä on järkeä. Ei sovellu kieliin, joissa ei ole goto-lausetta... Tilamuuttujan ja silmukan sijasta koodataan kukin tila omaksi aliohjelmakseen. Tilasiirtymä toteutetaan funktiokutsulla. ÄLÄ KÄYTÄ kielissä, jotka eivät takaa ns. häntäkutsun poistoa Mm. C, C++, Java eivät sovellu. Kätevä temppu funktiokielissä (Scheme, Haskell, ML).

Automaatti oliona Ärsykkeenä metodikutsu. Tila tallennetaan attribuutiksi. Tilasiirtymät voidaan toteuttaa switch-case- tai taulukkoperiaatteella.

Esimerkkiohjelman automaatti 0 0 0 2 1 1 1 1 1 0 0 3 0 1 0 2 1 1 3 0 2 0 3 3 1 2