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

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

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

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

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

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

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

Pinoautomaatit. Pois kontekstittomuudesta

Kertausta 1. kurssikokeeseen

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

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

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Säännöllisten kielten sulkeumaominaisuudet

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Automaatit. Muodolliset kielet

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

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

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

Rajoittamattomat kieliopit

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

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

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

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

Tietojenkäsittelyteorian alkeet, osa 2

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

Turingin koneen laajennuksia

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

1. Universaaleja laskennan malleja

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

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

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

Algoritmin määritelmä [Sipser luku 3.3]

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

Yhteydettömän kieliopin jäsennysongelma

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

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

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

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

Rekursiiviset palautukset [HMU 9.3.1]

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Rajoittamattomat kieliopit (Unrestricted Grammars)

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

ICS-C2000 Tietojenkäsittelyteoria

5.3 Ratkeavia ongelmia

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

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

1. Universaaleja laskennan malleja

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

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

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

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

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

Formalisoimme nyt edellä kuvatun laskennan.

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

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

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

Matemaattisten työvälineiden täydentäviä muistiinpanoja

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

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

Säännöllisen kielen tunnistavat Turingin koneet

Lisää pysähtymisaiheisia ongelmia

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

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

Johdatus matemaattiseen päättelyyn

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

Laskennan mallit

Muodolliset kieliopit

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

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

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

Laskennan mallit

Laskennan mallit

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

Miten osoitetaan joukot samoiksi?

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

Laskennan mallit

Transkriptio:

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 osaa ei ole syy keskeyttää; se on syy jatkaa opiskelemista pyydä apua tarvittaessa, (mm.) siitä meille maksetaan Huom! 5 op / 7 vkoa 20 h/vko

DFA:n kieli Olkoon M = (Q, Σ, δ, q 0, F) jokin DFA. Niiden merkkijonojen, jotka M hyväksyy, joukkoa sanotaan sen (tunnistamaksi) kieleksi L(M) = { w Σ δ (q 0, w) F }

Esimerkki Merkintä Olkoon a Σ mielivaltainen merkki. Tällöin merkitään a 0 = ε ja a k+1 = a k a = aa k kaikilla k N. Väite Olkoon M seuraava DFA: 0 a b 1 a,b Nyt L(M) = { a k bu {a, b} k N u {a, b} }. Todistus Käsitellään ideatasolla, tarkka todistus jälkiprujussa.

Määritelmä: Merkkijonojen joukko on säännöllinen kieli (engl. regular language) eli rationaalinen kieli (engl. rational language), joss on olemassa deterministinen äärellinen automaatti, joka tunnistaa sen.

Säännöllisiä kieliä 1. 2. { 0 k 1 l k, l N } 3. { kissa, koira } 4. Kaikki sellaiset merkeistä 0 ja 1 koostuvat merkkijonot, joissa on parillinen määrä sekä 0:ia että 1:iä.

Minkälaisia ovat säännölliset kielet? Säännöllinen kieli on määritelmän mukaan kieli, jonka jokin DFA tunnistaa. Jos A Σ on säännöllinen kieli, onko Σ A säännöllinen kieli? Jos A, B Σ ovat säännöllisiä kieliä, ovatko seuraavat kielet säännöllisiä? A B A B AB = { vw v A w B } (() yhdistäminen) A + = A n (Kleenen plus) A = n=1 A 0 = {ε} A n+1 = A n A kaikilla n N n=0 A n (Kleenen tähti)

Sulkeumaominaisuudet ja säännölliset Väite Jos A ja B ovat säännöllisiä kieliä, niin A B on säännöllinen kieli on säännöllisten sulkeumaominaisuus. Sama väite voidaan ilmaista myös muodossa säännölliset kielet ovat suljettuja :n suhteen. Jos väite pätee, niin on säännöllinen operaattori (engl. regular operator).

Todistustekniikka Kaikille sulkeumaominaisuusväitteille on yhteistä muoto jos jotkin kielet ovat säännöllisiä, niin eräs kieli on säännöllinen. Määritelmällisesti tämä on sama kuin jos joillekin kielille on kunkin tunnistava äärellinen automaatti, niin eräälle kielelle on sen tunnistava äärellinen automaatti. Todistusstrategia on luonnollisimmin: esitetään menetelmä, jolla annetuista automaateista voidaan rakentaa halutunlainen koostettu automaatti. Tehdään A B luennolla, loput joko harjoitustehtävinä tai myöhemmin.

Todistettava lause Lause Olkoon Σ merkistö ja A, B Σ säännöllisiä kieliä. Tällöin A B Σ on säännöllinen kieli.

Todistuksen idea On olemassa DFA:t M A ja M B, joille pätee L(M A ) = A ja L(M B ) = B. Rakennetaan DFA M, jolle pätee L(M) = A B käyttäen hyväksi koneita M A ja M B. M simuloi M A :ta ja M B :tä rinnakkain. M hyväksyy, jos jompi kumpi hyväksyy. Pohdittavaksi: miksi rinnakkain, miksi ei peräkkäin? M:llä on tila kutakin paria (a, b) kohti, missä a on M A :n tila ja b on M B :n tila.

Matemaatikon tarkkuudella? Annetaan tarkka konstruktio M:lle. Tarkkaan todistukseen kuuluu myös Osoitetaan, että M:n konstruktio täyttää deterministisen äärellisen automaatin vaatimukset. Osoitetaan, että L(M) = A B. mutta nämä ovat tässä tapauksessa selkeitä, joten matemaatikon tarkkuudella ne jätetään lukijalle harjoitustehtäväksi.

Konkreettinen esimerkki 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 Σ w q F: q 0 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). Todistus Seuraavalla luennolla.

NFA:n koodaaminen kuten DFA, mutta siirtymiä voi olla useita kaksi perusstrategiaa epädeterminismin kanssa: syvyyshaku eli backtracking leveyshaku ε-siirtymät vaativat erityistarkkuutta

Esimerkkiohjelman automaatit a,b a0 a a1 b a2 a a3 b a4 a,b a,b a,b b0 b b1 a b2 b b3 a b4 a b5