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

Samankaltaiset tiedostot
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, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

Kertausta 1. kurssikokeeseen

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Säännöllisten kielten sulkeumaominaisuudet

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

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.

Automaatit. Muodolliset kielet

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

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

Rajoittamattomat kieliopit

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 epädeterministisistä äärellisistä automaateista

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Chomskyn hierarkia ja yhteysherkät kieliopit

Täydentäviä muistiinpanoja laskennan rajoista

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

Algoritmin määritelmä [Sipser luku 3.3]

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

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

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

Turingin koneen laajennuksia

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

Yhteydettömän kieliopin jäsennysongelma

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

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

1. Universaaleja laskennan malleja

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

Tietojenkäsittelyteorian alkeet, osa 2

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

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

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

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

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

5.3 Ratkeavia ongelmia

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Rekursiiviset palautukset [HMU 9.3.1]

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

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

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

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

Laskennan mallit

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

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

Formalisoimme nyt edellä kuvatun laskennan.

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

1. Universaaleja laskennan malleja

ICS-C2000 Tietojenkäsittelyteoria

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

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

Laskennan mallit

Laskennan mallit

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Laskennan mallit. luennot syksyllä 2018, periodi I Jyrki Kivinen. tietojenkäsittelytieteen aineopintokurssi, pääaineopiskelijoille pakollinen

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

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

Säännöllisen kielen tunnistavat Turingin koneet

S BAB ABA A aas bba B bbs c

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).

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

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

Laskennan mallit

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

Johdatus matemaattiseen päättelyyn

ICS-C2000 Tietojenkäsittelyteoria

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

Transkriptio:

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 2 s 3 s 4 a 5 o 2 i 3 r 4 a 5

Eikö olisi helpompi...... yhdistää M A ja M B luomalla uusi alkutila, josta automaatti siirtyisi spontaanisti oikeaan osa-automaattiin? ε A0 k A1 i A2 s A3 s A4 a A5 0 ε B0 k B1 o B2 i B3 r B4 a B5 Valitettavasti tällainen M ei ole DFA...

... mutta se on NFA eli epädeterministinen äärellinen automaatti. NFA on DFA kolmella poikkeuksella: samasta tilasta saa olla useampi kuin yksi siirtymä samalla merkillä tilasta ei tarvitse olla siirtymää kaikilla merkeillä tilasta voi olla spontaaneja eli ns. ε-siirtymiä muihin tiloihin

Epädeterminismi Epädeterminismi tarkoittaa laskentaa, jossa mahdollisia etenemistapoja on useita, joista valitaan joku. NFA:n epädeterminismi on hyväntahtoista, koska NFA valitsee aina hyväksyntään johtavan tavan, jos sellainen on olemassa. Epädeterministinen laskenta voidaan kuvata päätöspuuna. Tarkastellaan taululla seuraavaa automaattia: a a 0 a 1 b 2 a 3 b b ja merkkijonoa aababa.

NFA matemaattisesti Merkintätapa Merkitään jatkossa Σ ε = Σ {ε}. Huomautus Voidaan olettaa, että ε Σ. Määritelmä Viisikko (Q, Σ, δ, q 0, F) on epädeterministinen äärellinen automaatti (NFA), jos Q on äärellinen (tilojen) joukko, Σ on äärellinen, epätyhjä joukko (merkistö), δ : Q Σ ε P(Q) pätee (siirtymäfunktio), q 0 Q pätee (alkutila) ja F Q pätee (hyväksyvät tilat).

NFA:n toiminta formaalisti Olkoon M = (Q, Σ, δ, q 0, F) epädeterministinen äärellinen automaatti. Jos epätyhjälle merkkijonolle w = c 0 c n 1 Σ \ {ε}, jolle c 0,..., c n 1 Σ ε, on olemassa tilajono 1 q 1,..., q n, jolle pätee q k+1 δ(q k, c k ) kaikilla k = 0,..., n 1, niin tämän jonon viimeinen tila q n on merkkijonon w eräs päätöstila automaatissa M. Tyhjän merkkijonon päätöstiloihin automaatissa M kuuluu lisäksi q 0. M hyväksyy (engl. accept) merkkijonon w Σ, jos ainakin yksi sen päätöstiloista M:ssä kuuluu F:ään; muuten se hylkää (engl. reject) sen. 1 Huomaa indeksoinnin ero!

Vaihtoehtoinen muotoilu Olkoon M = (Q, Σ, δ, q 0, F) NFA. Määritellään ( ) Q Σ Q pienimpänä relaationa, jolle seuraavat pätevät kaikilla q, q, q Q, c Σ ε ja w, v Σ : q δ(q, c) q c q (1) q w q q v q q wv q (2) q ε q (3) w Lause: Jos ja vain jos q 0 q pätee, niin tila q on merkkijonon w (jokin) päätöstila. M:n kieli on L(M) = { w Σ q F: q 0 w q }

Yleistetty siirtymäfunktio δ : Q Σ P(Q) δ (q, w) = { q Q q w q }

NFA:lla Olkoon M A = (Q A, Σ A, δ A, q A, F A ) NFA. Olkoon M B = (Q B, Σ B, δ B, q B, F B ) NFA. Voidaan olettaa: Q A Q B = ja q 0 Q A Q B. Konstruoidaan M = (Q A Q B {q 0 }, Σ A Σ B, δ, q 0, F A F B ) missä {q A, q B } jos q = q 0 ja c = ε δ A (q, c) jos q Q A ja c (Σ A ) ε δ : (q, c) δ B (q, c) jos q Q B ja c (Σ B ) ε muuten On helppo havaita, että L(M) = L(M A ) L(M B ).

Riittääkö? Todistaako edellisen kalvon konstruktio, että kahden säännöllisen kielen yhdiste on säännöllinen? Säännöllisen kielen määritelmässä puhutaan DFA:sta, ei NFA:sta. On helppo nähdä, että jokainen DFA voidaan muokata NFA:ksi. Lisäksi tarvitaan... Lause Jokaiselle NFA:lle M on olemassa DFA M, jolle pätee L(M) = L( M).

Spontaanien siirtymien poisto Lemma Olkoon M = (Q, Σ, δ, q 0, F) NFA. Määritellään M = (Q, Σ, δ, q 0, F ) seuraavasti: { δ jos c = ε : (q, c) { q Q q c q } muulloin { ε F {q 0 } jos on olemassa q F, jolle q 0 q pätee F = F muuten Tällöin L(M) = L(M ). Todistus Sivuutetaan.

Lause Jokaiselle NFA:lle M = (Q, Σ, δ, q 0, F) on olemassa DFA M = ( Q, Σ, δ, q 0, F), jolle pätee L(M) = L( M). Todistus Taululla (ja jälkiprujussa).

Laiska osajoukkokonstruktio sopii NFA DFA-muunnosalgoritmin pohjaksi. Se tuottaa runsaasti turhia tiloja. Käytännössä kannattaa muodostaa osajoukko-tila vasta, kun sitä tarvitaan, siis laiskasti.

Esimerkki taululla a 0 a,b 1 a

Esimerkki taululla ε A0 k A1 i A2 s A3 s A4 a A5 0 ε B0 k B1 o B2 i B3 r B4 a B5