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

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

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

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

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

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

Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

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

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

Kertausta 1. kurssikokeeseen

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.

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

Yhteydettömän kieliopin jäsennysongelma

1. Universaaleja laskennan malleja

Säännöllisten kielten sulkeumaominaisuudet

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

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

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

Automaatit. Muodolliset kielet

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

Turingin koneen laajennuksia

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

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

Täydentäviä muistiinpanoja laskennan rajoista

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

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

Rajoittamattomat kieliopit

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

Algoritmin määritelmä [Sipser luku 3.3]

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

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

Lisää pysähtymisaiheisia ongelmia

Tietojenkäsittelyteorian alkeet, osa 2

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

Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä

Säännöllisen kielen tunnistavat Turingin koneet

Rekursiiviset palautukset [HMU 9.3.1]

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

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

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

1. Universaaleja laskennan malleja

5.3 Ratkeavia ongelmia

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Attribuuttikieliopit

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

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

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

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

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

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

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Formalisoimme nyt edellä kuvatun laskennan.

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

S BAB ABA A aas bba B bbs c

Entscheidungsproblem

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

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}


Täydentäviä muistiinpanoja jäsennysalgoritmeista

Transkriptio:

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 lueteltava automaatti äärellinen (ennustava jäsennin) deterministinen pino pino lineaarirajoitettu Turingin kone

Määritelmä Olkoon M = {,,, (, )} ja olkoon Σ merkistö, jolle pätee Σ M =. (engl. regular expressions) ovat seuraavat merkistön Σ M merkkijonot ε, c, jos c Σ, r, jos r on (r 1 r 2 ), jos r 1 ja r 2 ovat säännöllisiä lausekkeita, (r 1 r 2 ), jos r 1 ja r 2 ovat säännöllisiä lausekkeita, ja vain ne. Säännöllisten lausekkeiden joukkoa merkitään R Σ.

Huomioita säännöllisistä lausekkeista Säännöllisen lausekkeen ε pituus on nolla. Käytännössä sulkeita ei läheskään aina kirjoiteta näkyviin. Operaattoreiden presedenssijärjestys on edellisen kalvon mukainen korkeammalla mainittu lasketaan ensin.

Säännöllisten lausekkeiden tulkinta Määritelmä Olkoon Σ merkistö ja R Σ säännöllisten lausekkeiden joukko. Määritellään tulkintafunktio : R Σ P(Σ ) seuraavasti: = ε = {ε} c = {c} (c Σ) r = r (r R Σ ) (r 1 r 2 ) = r 1 r 2 (r 1, r 2 R Σ ) (r 1 r 2 ) = r 1 r 2 (r 1, r 2 R Σ )

Regexpit Työkalujen kuten egrep tukemat säännölliset ovat edellä esitetyn teoreettisen käsitteen laajennuksia. Tällä kurssilla viittaa tänään esitettyyn teoreettiseen käsitteeseen; työkalujen ymmärtämiä muunnelmia kutsumme regexpeiksi. Lähes kaikki regexpit on kirjoitettavissa myös säännöllisiksi lausekkeiksi [0-9] (0 1 2 3 4 5 6 7 8 9) r? (ε r) r+ rr r{2,4} (rr rrr rrrr) Poikkeuksena ns. takaisinviittaukset (engl. back reference)

Algoritmi: 1 Kutsu MYT(r) Syöte r R Σ Tulos M on NFA, jolle pätee L(M) = r. Jos r =, on M seuraava NFA: Jos r = ε, on M seuraava NFA: (jatkuu seuraavilla kalvoilla) 1 Tämä on ns. McNaughtonin, Yamadan ja Thompsonin (MYT) algoritmi.

MYT-algoritmi jatkuu Jos r = c jollakin c Σ, on M seuraava NFA: c Jos r = r1 jollakin r 1 R Σ, on M seuraava NFA 2 ε ε r 1 ε ε kun rekursiivisen kutsun MYT(r 1 ) palauttama automaatti on r 1 2 Tuplakatkoviivalla merkittyjä siirtymiä tehdään yhtä monta kuin MYT(r 1 )-automaatissa on hyväksyviä tiloja.

MYT-algoritmi jatkuu Jos r = (r 1 r 2 ) joillakin r 1 r 2 R Σ, on M seuraava NFA 3 ε r 1 ε r 2 kun rekursiivisen kutsun MYT(r i ) palauttama automaatti on r i kullakin i {1, 2}. 3 Tuplakatkoviivalla merkittyjä siirtymiä tehdään yhtä monta kuin MYT(r 1 )-automaatissa on hyväksyviä tiloja.

MYT-algoritmi jatkuu Jos r = (r 1 r 2 ) joillakin r 1 r 2 R Σ, on M seuraava NFA ε r 1 ε r 2 kun rekursiivisen kutsun MYT(r i ) palauttama automaatti on r i kullakin i {1, 2}.

Kleenen lause Lause Olkoon Σ merkistö. Jokaiselle kielelle A Σ seuraavat ovat yhtäpitävät: 1. On olemassa r R Σ, jolle r = A pätee. 2. A on kieli. Todistus 1 2: Seuraa MYT-algoritmista. 2 1: Seuraavilla kalvoilla.

Todistuksen strategia 1. Määritellään äärellisen automaatin variantti (äärellinen automaatti), jossa siirtymät tapahtuvat säännöllisillä lausekkeilla. 2. Todetaan, että jokainen DFA on myös automaatti (joka tunnistaa saaman kielen). 3. Määritellään joukko automaatin muunnoksia, joilla on seuraavat ominaisuudet: ne kaikki säilyttävät automaatin tunnistaman kielen kukin niistä pienentää automaatin kokoa (siirtymien määrää) 4. Lisätään tilpehöörit.

Äärellinen automaatti Määritelmä Viisikko (Q, Σ, δ, q 0, F) on äärellinen automaatti, jos Q on äärellinen (tilojen) joukko, Σ on äärellinen, epätyhjä joukko (merkistö), δ : Q R Σ P(Q) pätee (siirtymäfunktio), { (q, r) Q R Σ δ(q, r) = } on äärellinen, q 0 Q pätee (alkutila) ja F Q pätee (hyväksyvät tilat).

Lausekeautomaatin toiminta Olkoon M = (Q, Σ, δ, q 0, F) epädeterministinen äärellinen automaatti. Jokaiselle merkkijonolle w on mahdollisesti olemassa tilajonoja, jotka ovat muotoa q 1,..., q n ja joille w on jaettavissa osiin 4 w = w 0,..., w n 1, joille pätee r R Σ : w k r q k+1 δ(q k, r) kaikilla k = 0,..., n 1. Kunkin tällaisen jonon viimeinen tila q n on merkkijonon w päätöstila automaatissa M. Tyhjän merkkijonon päätöstilaksi automaatissa M lasketaan myös q 0. M hyväksyy merkkijonon, jos jokin sen päätöstiloista M:ssä kuuluu F:ään; muuten se hylkää sen. M:n hyväksymien merkkijonojen joukko on sen (tunnistama) kieli. 4 Huomaa indeksoinnin ero!

Muunnosinvariantit Jokaisen muunnoksen tulee säilyttää seuraavien väitteiden totuus: Automaatin alkutilaan ei tule yhtään siirtymää. Automaatissa on täsmälleen yksi hyväksyvä tila, ja se ei ole alkutila eikä siitä lähde siirtymiä. Automaatissa ei ole tiloja, joihin ei pääse alkutilasta siirtymiä seuraamalla. 5 Kutsutaan tällaista automaattia hyväksi. 5 Siirtymät -lausekkeella sallitaan.

Yksi mahdollinen alustus Aloitetaan DFA:sta (tai ) tulkittuna automaatiksi. Lisätään automaattiin uusi alkutila ja uusi hyväksyvä tila, ja muutetaan kaikki vanhat hyväksyvät tilat ei-hyväksyviksi. Lisätään uudesta alkutilasta ε-siirtymä vanhaan alkutilaan. Lisätään jokaisesta alun perin hyväksyvästä tilasta ε-siirtymä uuteen hyväksyvään tilaan. Lisätään uudesta alkutilasta kaikkiin muihin tiloihin -siirthmät.

Muunnos I Syöte Lausekeautomaatti M = (Q, Σ, δ, q 0, F) Tulos Lausekeautomaatti M = (Q, Σ, δ, q 0, F) Valitaan tilat q 1 ja q 2 ja säännölliset r a ja r b, joille on siirtymät q 2 δ(q 1, r a ) ja q 2 δ(q 1, r b ) Korvataan kyseiset siirtymät yhdistetyllä siirtymällä: δ(q, r) \ {q 2 } jos q = q 1 ja r {r a, r b } δ : (q, r) δ(q, r) {q 2 } jos q = q 2 ja r = (r a r b ) δ(q, r) muuten

Muunnos II Syöte Lausekeautomaatti M = (Q, Σ, δ, q 0, F) Tulos Lausekeautomaatti M = (Q, Σ, δ, q 0, F) Valitaan tila q, joka ei ole alkutila eikä hyväksyvä tila Määritellään r seuraavasti: Jos siirtymiä q :sta q :hun ei ole, niin r = ε on yksi, niin r on sen on useampia, säännöllisin lausekkein s 1,..., s n, niin r = (s 1 s n ) Poistetaan tila q : Q = Q \ {q } Muokataan tilasiirtymiä seuraavasti: { (δ(q, r) δ δ(q, r 2 )) \ {q } jos q δ(q, r 1 ) ja r = r 1 r : (q, r) r 2 δ(q, r) \ {q } muuten

Esimerkki taululla a 0 b 1 a b 0 0 1 1 1 1 a,b

Todistettava Oletus Automaatti täyttää aiemmalla kalvolla luetellut invarianttiehdot. Väitteet 1. Jos automaatissa on enemmän kuin yksi siirtymä, siihen voidaan soveltaa jotain muunnosta. 2. Jos automaattiin sovelletaan jotain muunnosta, 2.1 se täyttää tämän jälkeen invarianttiehdot. 2.2 sen tunnistama kieli ei muutu. 2.3 siinä on tämän jälkeen vähemmän siirtymiä. 3. Jos automaatissa on täsmälleen yksi siirtymä, se on alkutilasta hyväksyvvään tilaan.

Lemma (Eteneminen) Jos hyvässä automaatissa on vähintään kaksi siirtymää, niin siihen voidaan soveltaa joko Muunnosta I tai Muunnosta II. Todistus Taululla.

Lemma (Säilyminen) Jos hyvään automaattiin sovelletaan Muunnosta I tai Muunnista II, tuloksena syntyvä automaatti 1. on hyvä, 2. sisältää vähemmän tilasiirtymiä kuin alkuperäinen automaatti, ja 3. tunnistaa saman kielen kuin alkuperäinen automaatti. Todistus Taululla.

Algoritmina 1. Muuta syötteenä saatu DFA tai NFA hyväksi automaatiksi. 2. Sovella toistuvasti Muunnosta I ja Muunnosta II kunnes automaatissa on enää yksi tilasiirtymä. 3. Lue tuloste automaatin ainoasta tilasiirtymästä.