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

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

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

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

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

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

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

Tietojenkäsittelyteorian alkeet, osa 2

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

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, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013

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

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

Kertausta 1. kurssikokeeseen

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

Pinoautomaatit. Pois kontekstittomuudesta

Säännöllisten kielten sulkeumaominaisuudet

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

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

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Automaatit. Muodolliset kielet

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.

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

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

Täydentäviä muistiinpanoja laskennan rajoista

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

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

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

Rajoittamattomat kieliopit

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Rekursiiviset palautukset [HMU 9.3.1]

Chomskyn hierarkia ja yhteysherkät kieliopit

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

(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, kesä Antti-Juhani Kaijanaho. 10. kesäkuuta 2013

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

Algoritmin määritelmä [Sipser luku 3.3]

Yhteydettömän kieliopin jäsennysongelma

5.3 Ratkeavia ongelmia

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

8. Kieliopit ja kielet

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

1. Universaaleja laskennan malleja

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

Muodolliset kieliopit

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

Lisää pysähtymisaiheisia ongelmia

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

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

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

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

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

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

Ei-yhteydettömät kielet [Sipser luku 2.3]

Säännöllisen kielen tunnistavat Turingin koneet

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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 }

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

Turingin koneen laajennuksia

Formalisoimme nyt edellä kuvatun laskennan.

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

TIEA341 Funktio-ohjelmointi 1, kevät 2008

Miten osoitetaan joukot samoiksi?

Johdatus matemaattiseen päättelyyn

1 sup- ja inf-esimerkkejä

Ensimmäinen induktioperiaate

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

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

Luonnolliset vs. muodolliset kielet

2. Laskettavuusteoriaa

Ensimmäinen induktioperiaate

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Transkriptio:

TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 24. toukokuuta 2013

Sisällys

Formaalit kielet On tapana sanoa, että merkkijonojen joukko on (formaali) kieli. Hieman hölmöä kyllä, sillä kieleen liittyy oikeasti myös sen tulkinta mitä sen merkkijonot tarkoittavat. Tällä kurssilla (ja ylipäätään formaalien kielten teoriassa) kuitenkin jätetään merkitysoppi pääosin huomiotta! luonnollisten kielten (suomi, englanti) osalta kielitieteen puolella ohjelmointikielten osalta TIES542 Ohjelmointikielten periaatteet

DFA:n kieli Olkoon M = (Q, Σ, δ, q 0, F) jokin DFA. Muistathan päätöstilan käsitteen! Päätöstila on se tila, johon merkkijonon käsittely päätyy eli δ (q 0, w). Muistatko, milloin M hyväksyy merkkijonon? Niiden merkkijonojen, jotka M hyväksyy, joukkoa sanotaan sen (tunnistamaksi) kieleksi L(M) = { w Σ δ (q 0, w) F }

Määritelmä: Merkkijonojen joukko on säännöllinen kieli (engl. regular language) eli rationaalinen kieli (engl. rational language), jos 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ä.

DFA:n kieleen liittyvät todistukset 1 Olkoon M = (Q, Σ, δ, q 0, F) jokin DFA. Olkoon P( ) jokin merkkijonojen ominaisuus. Olkoon todistettavana väite w Σ : w L(M) P(w) Muotoillaan automaatin kullekin tilalle q väite P q ( ), joka on niiden merkkijonojen ominaisuus, joiden päätöstila on q. Osoitetaan ensiksi, mikäli se ei ole ilmeistä, väite w Σ : P(w) q F: P q (w) Todistettavaksi jää w Σ : q Q: q = δ (q 0, w) P q (w). 1 Korjattu luennon jälkeen.

Esimerkki Väite Olkoon M seuraava DFA: 0 a b 1 a,b Nyt L(M) = { a k bu k N u {a, b} }. Todistus Tehdään taululla.

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 } ((kielten) 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) Jos A B on säännöllinen kun A ja B ovat säännöllisiä, niin on säännöllinen operaattori (engl. regular operator).

Todistustekniikka Kaikille edellisen kalvon kysymyksille 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 kielellä 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 demoissa tai myöhemmin.

Todistettava lause Oletukset 1. Σ on aakkosto 2. A, B Σ ovat säännöllisiä kieliä. Väite 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. Tehdään taululla.

Grep-ohjelma alkaa https: //yousource.it.jyu.fi/tiea241-running-example/ grep/trees/luento_20130523 Nyt toteutettu DFA, mukaan lukien yhdiste-dfa. Grep tekee valmistuttuaan varsinaisen tekstihaun käyttäen regexpistä muodostettua DFA:ta Katsotaan tarkemmin koodia lukemalla.