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

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

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 Antti-Juhani Kaijanaho. 26. tammikuuta 2012

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

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

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

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

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

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

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

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

Pinoautomaatit. Pois kontekstittomuudesta

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

Kertausta 1. kurssikokeeseen

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

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

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. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

Yhteydettömän kieliopin jäsennysongelma

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

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Turingin koneen laajennuksia

Chomskyn hierarkia ja yhteysherkät kieliopit

Täydentäviä muistiinpanoja laskennan rajoista

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Automaatit. Muodolliset kielet

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

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

1. Universaaleja laskennan malleja

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

Rajoittamattomat kieliopit

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

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

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

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

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

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

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

Tietojenkäsittelyteorian alkeet, osa 2

Lisää pysähtymisaiheisia ongelmia

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

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

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

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

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

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

Algoritmin määritelmä [Sipser luku 3.3]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Säännöllisen kielen tunnistavat Turingin koneet

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

5.3 Ratkeavia ongelmia

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

Formalisoimme nyt edellä kuvatun laskennan.

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

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

Tietotekniikan valintakoe

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Rekursiiviset palautukset [HMU 9.3.1]

1. Universaaleja laskennan malleja

ICS-C2000 Tietojenkäsittelyteoria

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

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

Esimerkki 2.28: Tarkastellaan edellisen sivun ehdot (1) (3) toteuttavaa pinoautomaattia, jossa päätemerkit ovat a, b ja c ja pinoaakkoset d, e ja $:

Täydentäviä muistiinpanoja jäsennysalgoritmeista

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

T Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

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

Miten osoitetaan joukot samoiksi?

S BAB ABA A aas bba B bbs c

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

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Transkriptio:

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: ε on kieli. S Σ on kieli. Jos A on kieli, niin A on kieli. Jos A ja B ova säännöllisiä kieliä, niin AB on kieli. Jos A ja B ova säännöllisiä kieliä, niin A B on kieli. Voidaanko kaikki säännölliset kielet ilmaista näiden yhdistelyn avulla? Ratkaisuun tarvitaan: Tarkka määritelmä yhdistelemiselle. Todistus sille, että DFA:sta voidaan rakentaa yhdistelmä. NFA:ksi

1 ja Määritelmä Olkoon M = {,,, (, )} ja olkoon Σ merkistö.. Voidaan olettaa, että Σ M =. (engl. regular expressions) ovat seuraavat merkistön Σ M merkkijonot ja vain ne: (), 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, Säännöllisten lausekkeiden joukkoa merkitään R Σ. NFA:ksi 1 Yksinkertaistettu versio regexpeistä.

Huomioita säännöllisistä lausekkeista ja NFA:ksi 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 ja Määritelmä Olkoon Σ merkistö ja R Σ säännöllisten lausekkeiden joukko. Määritellään tulkintafunktio : R Σ P(Σ ) seuraavasti: NFA:ksi = () = {ε} 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 ja NFA:ksi [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: NFA:ksi 2 ja Kutsu MYT(r) Syöte r R Σ Tulos M on NFA, jolle pätee L(M) = r. Jos r =, on M seuraava NFA: NFA:ksi Jos r = (), on M seuraava NFA: (jatkuu seuraavilla kalvoilla) 2 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 3 ε ja NFA:ksi ε r 1 ε ε kun rekursiivisen kutsun MYT(r 1 ) palauttama automaatti on r 1 3 Tuplakatkoviivalla merkittyjä siirtymiä tehdään yhtä monta kuin MYT(r 1 )-automaatissa on hyväksyviä tiloja.

MYT-algoritmi jatkuu ja Jos r = (r 1 r 2 ) joillakin r 1 r 2 R Σ, on M seuraava NFA 4 ε r 1 ε r 2 NFA:ksi kun rekursiivisen kutsun MYT(r i ) palauttama automaatti on r i kullakin i {1, 2}. 4 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 ja NFA:ksi ε r 2 kun rekursiivisen kutsun MYT(r i ) palauttama automaatti on r i kullakin i {1, 2}.

ja 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. NFA:ksi Todistus 1 2: Seuraa MYT-algoritmista. 2 1: Seuraavilla kalvoilla.

Todistuksen strategia ja 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. NFA:ksi

Äärellinen automaatti ja 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, 5 q 0 Q pätee (alkutila) ja F Q pätee (hyväksyvät tilat). NFA:ksi 5 Toisin kuin luennolla väitin, tämä on oikein, sillä P(Q) on äärellinen ja siten tämä määritelmä takaa, että siirtymiä on äärellinen määrä.

Lausekeautomaatin toiminta ja 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 6 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. NFA:ksi 6 Huomaa indeksoinnin ero!

Muunnosinvariantit ja 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. 7 Kutsutaan tällaista automaattia hyväksi. NFA:ksi 7 Siirtymät -lausekkeella sallitaan.

Yksi mahdollinen alustus ja 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. NFA:ksi

Muunnos I ja Syöte Lausekeautomaatti Tulos Lausekeautomaatti Valitaan tilat q 1 ja q 2 ja säännölliset r a ja r b, joille on siirtymät 8 r q a r 1 q2 ja q b 1 q2. Korvataan kyseiset siirtymät yhdistetyllä siirtymällä q 1 (r a r b ) q 2. NFA:ksi 8 Käytän tässä q 1 r q 2 tarkoittamaan samaa kuin q 2 δ(q 1, r).

Muunnos II Syöte Lausekeautomaatti Tulos Lausekeautomaatti 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 ) ja NFA:ksi r 1 r Lisätään tilasiirtymä q r 2 1 q 2 jos on tilasiirtymät r q 1 r 1 q ja q 2 q2 (missä q 1 ja q 2 eivät ole q ) Poistetaan tila q sekä tilasiirtymät q :iin ja q :sta.

Esimerkki taululla ja NFA:ksi a 0 b 1 a b 0 0 1 1 1 1 a,b

Todistettava ja 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. NFA:ksi

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

ja 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. NFA:ksi Todistus Taululla (ja tarkemmin jälkiprujussa).

Algoritmina ja NFA:ksi 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 tulos automaatin ainoasta tilasiirtymästä.