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

Samankaltaiset tiedostot
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. 12. marraskuuta 2015

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. 19. 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 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

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

Pinoautomaatit. Pois kontekstittomuudesta

Kertausta 1. kurssikokeeseen

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

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

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

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

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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.

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

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

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

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

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

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Algoritmin määritelmä [Sipser luku 3.3]

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

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

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

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

1. Universaaleja laskennan malleja

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

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

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

5.3 Ratkeavia ongelmia

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

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

Yhteydettömän kieliopin jäsennysongelma

Rajoittamattomat kieliopit

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

Lisää pysähtymisaiheisia ongelmia

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

Turingin koneen laajennuksia

Täydentäviä muistiinpanoja laskennan rajoista

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

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

S BAB ABA A aas bba B bbs c

Säännöllisen kielen tunnistavat Turingin koneet

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

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

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

Automaatit. Muodolliset kielet

Tietojenkäsittelyteorian alkeet, osa 2

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ää

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

ICS-C2000 Tietojenkäsittelyteoria

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Kontekstittomien kielten jäsentäminen Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Chomskyn hierarkia ja yhteysherkät kieliopit

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

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

Rekursiiviset palautukset [HMU 9.3.1]

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

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

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

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

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

2. Laskettavuusteoriaa

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Formalisoimme nyt edellä kuvatun laskennan.

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Attribuuttikieliopit

MS-A0004/A0006 Matriisilaskenta

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

Insinöörimatematiikka D

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

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla

Täydentäviä muistiinpanoja jäsennysalgoritmeista

1. Universaaleja laskennan malleja

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

Silmukkaoptimoinnista

2017 = = = = = = 26 1

Output. Input Automaton

Transkriptio:

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

Sisällys

Luennon pähkinä Millä tavalla voidaan rakentaa tietokoneohjelma (tai kirjasto), joka ottaa syötteekseen säännöllisen lausekkeen ja merkkijonon ja testaa kuuluuko merkkijono sen kieleen?

Osat 1. Säännöllisen lausekkeen lukeminen syötteestä. osataan: yleistä ohjelmointia 2. Säännöllisen lausekkeen jäsennys käsitellään kontekstittomien kielten yhteydessä 3. Säännöllisen lausekkeen muunnos NFA:ksi 4. Simuloidaan automaattia kaksi vaihtoehtoa: muunnetaan NFA DFA:ksi ja simuloidaan sitä osataan jo! simuloidaan suoraan NFA:ta oikeastaan tehdään laiska osajoukkokonstruktio lennossa

Sisällys

Algoritmi: 1 Kutsu MYT(r) Syöte r R Σ Tulos M on NFA, jossa on täsmälleen yksi hyväksyvä tila 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 ε ε r 1 ε ε kun rekursiivisen kutsun MYT(r 1 ) palauttama automaatti on r 1

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}.

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 DFA M, jolle L(M) = A pätee. 2. On olemassa säännöllinen lauseke r R Σ, jolle r = A pätee. Todistus 1 2: Tehtiin tiistaina. 2 1: MYT-algoritmista.

Sisällys

Osataan jo: osajoukkokonstuktio.

Sisällys

Onko tässä pienin mahdollinen tämän kielen tunnistava automaatti? 0 a b 2 b 8 a 4 b a a a b 10 b

Syöte M = (Q, Σ, δ, q 0, F), joka on DFA. Tulos M, joka on DFA. Muuttuja R Q Q 1. Poista M:stä sellaiset tilat, joihin ei pääse alkutilasta tilasiirtymiä seuraamalla. 2. R := { (q, q ) Q Q q F q F } 3. Jos on olemassa (q, q ) R ja c Σ, joille (δ(q, c), δ(q, c)) R pätee, tee: 3.1 R := R {(q, q )}. 3.2 Palaa kohtaan 3. 4. Konstruoi M seuraavalla kalvolla esitetyllä tavalla.

: M:n konstruktio π : Q P(Q) π : q { q Q (q, q ) R } Q = { π(q) q Q } Valitse jokin σ : Q Q, jolle pätee ˆq Q : π(σ(ˆq)) = ˆq. ˆδ : Q Γ Q ˆδ : (ˆq, c) π(δ(σ(ˆq), c)) F = { π(q) q F } M = ( Q, Σ, ˆδ, π(q 0 ), F)

Käytännössä Kannattaa käyttää matriisia esittämään Q \ R: matriisissa on merkki, jos rivin ja sarakkeen osoittama pari ei kuulu R:ään Koska R on symmetrinen, riittää oikeastaan käyttää kolmiomatriisia. Alustetaan R siten, että siihen kuuluvat ne tilaparit, joiden jäsenet ovat molemmat hyväksyviä tai molemmat ei-hyväksyviä; matriisiin merkitään kaikki muut! Sitten käydään merkitsemättömiä pareja (q, q ) läpi, ja merkitään kaikki ne, joille on c Σ, jolle (δ(q, c), δ(q c)) on merkitty, toistuvasti kunnes uusia merkintöjä ei synny. Huomaa, että parin lisääminen muuttaa sitä, mitkä muut parit pitää lisätä, joten ei riitä käydä kaikki parit kerran läpi! Lopuksi luetaan M taulukosta.

Taululla 8 a b 0 a b 2 a b 4 a b 10 b a

Olkoon M = (Q, Σ, δ, q 0, F) DFA. Määritelmä Määritellään funktio δ : Q Σ Q seuraavasti: { δ q jos w = ε : (q, w) δ (δ(q, c), v) jos w = cv Määritelmä Tilat q 1, q 2 Q ovat samansisältöiset (engl. equivalent), jos kaikilla w Σ pätee δ (q 1, w) F δ (q 2, w) F. Lemma Olkoon R se, mikä syntyy minimointialgoritmin tuloksena. Tällöin kaikilla (q 1, q 2 ) R pätee, että q 1 ja q 2 ovat samansisältöiset.

Lause Minimointialgoritmi ei muuta automaatin hyväksymää kieltä.

Määritelmä Olkoot M = (Q, Σ, δ, q 0, F) ja M = (Q, Σ, δ, q 0, F ) DFA:ita. Määritellään, että M ja M ovat tilojen nimiä vaille samat 2, jos on olemassa bijektio r : Q Q, jolla Q = { r(q) q Q } q Q, c C: δ (r(q), c) = r(δ(q, c)) q 0 = r(q 0 ) F = { r(q) q F } pätevät. Lemma Jos M ja M ovat kaksi DFA:ta, joilla on sama lukumäärä tiloja ja joissa ei ole sellaisia tiloja, joihin ei pääse alkutilasta seuraamalla tilasiirtymiä, niin M ja M ovat tilojen nimiä vaille samat jos ja vain jos pätee L(M) = L(M ). 2 engl. identical modulo state names, identical save for the naming of states

Lause Olkoon M DFA. Ei ole olemassa tilojen määrän suhteen pienempää L(M):n tunnistavaa DFA:ta kuin se, jonka minimointialgoritmi tuottaa. Seuraus Olkoot M 1 ja M 2 DFA:ita. Tällöin L(M 1 ) = L(M 2 ), jos minimointialgoritmi tuottaa molemmista tilojen nimiä vaille saman automaatin.

Sisällys

demoissa ensi viikolla Olen lautamiestehtävässä Tälle on varattu koko päivä. Demotilaisuudet on siksi peruttu. Ensi viikon demovastaukset palautetaan sähköpostitse tai paperilla (oman valinnan mukaan). Demotehtävät tulevat huomenna perjantaina, vastausten deadline on torstain luennon alku (eli to 2.2. klo 12). Palaute tulee osin henkilökohtaisesti (sähköpostilla) ja osin yleisesti tiistain luennolla.