Säännöllisten kielten sulkeumaominaisuudet

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Automaatit. Muodolliset kielet

Yhteydettömän kieliopin jäsennysongelma

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Kertausta 1. kurssikokeeseen

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

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

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

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

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

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

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

Rajoittamattomat kieliopit

Luonnolliset vs. muodolliset kielet

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

Laskennan mallit

Laskennan mallit

Laskennan mallit

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

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

Formalisoimme nyt edellä kuvatun laskennan.

Laskennan mallit

Laskennan mallit

Chomskyn hierarkia ja yhteysherkät kieliopit

8. Kieliopit ja kielet

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

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.

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

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Algoritmin määritelmä [Sipser luku 3.3]

Laskennan mallit

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

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

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

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

Miten osoitetaan joukot samoiksi?

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Rekursiiviset palautukset [HMU 9.3.1]

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

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

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

Pinoautomaatit. Pois kontekstittomuudesta

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

Tietojenkäsittelyteorian alkeet, osa 2

Johdatus matemaattiseen päättelyyn

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Yhteydettömät kieliopit [Sipser luku 2.1]

Turingin koneen laajennuksia

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

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

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

1. Universaaleja laskennan malleja

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

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

5.3 Ratkeavia ongelmia

8. Kieliopit ja kielet 1 / 22

Lisää pysähtymisaiheisia ongelmia

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

Täydentäviä muistiinpanoja laskennan rajoista

Muodolliset kieliopit

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

Algebra I, harjoitus 5,

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

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

2. Yhteydettömät kielet

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

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

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

Tehtävä 2: Säännölliset lausekkeet

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

Äärellisten mallien teoria

S uay uvaxy uv 2 Ax 2 y... uv i Ax i y uv i wx i y.

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.

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

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

(2n 1) = n 2

Kaikki mitä olet aina halunnut tietää pumppauslemmoista, mutta mitä et ole kehdannut kysyä

Transkriptio:

Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä, niin myös A B, A B ja A ovat. Kieli on määritelmän mukaan säännöllinen, jos se voidaan tunnistaa deterministisellä äärellisellä automaatilla. Todistimme juuri (korollaari 1.4), että voimme yhtä hyvin käyttää epädeterministisiä automaatteja. Katsotaan ensin, miten tämä yksinkertaistaa jo esitetyn tapauksen A B (lause 1.1) todistusta. Lause 1.5: [Sipser Thm. 1.45] Jos A ja B ovat säännöllisiä, niin A B on. Todistus: Oletataan siis annetuksi NFA:t N 1 ja N 2, joilla A = L(N 1 ) ja B = L(N 2 ). Muodostetaan NFA N, jolla L(N) = A B. 42

Konstruktion periaate on seuraava: N 1 N 2 N 43

Muodollisemmin olkoon N 1 = (Q 1, Σ, δ 1, q 1, F 1 ) ja N 2 = (Q 2, Σ, δ 2, q 2, F 2 ). Voidaan tietysti olettaa, että Q 1 Q 2 =. Nyt N 1 = (Q, Σ, δ, q 0, F ), missä 1. q 0 Q 1 Q 2 on uusi tila, 2. Q = { q 0 } Q 1 Q 2, 3. δ toteuttaa Selvästi N tunnistaa kielen A B. δ(q, a) = δ 1 (q, a) kun q Q 1 ja a Σ δ(q, a) = δ 2 (q, a) kun q Q 2 ja a Σ δ(q 0, ) = { q 1, q 2 } δ(q 0, b) = kun b. 44

Sovelletaan samaa ideaa konkatenaatioon. Lause 1.6: [Sipser Thm. 1.47] Jos A ja B ovat säännöllisiä, myös A B on. Todistus: Periaatepiirros on nyt seuraava: N 1 N 2 N 45

Muodollisesti olkoon taas A = L(N 1 ) ja B = L(N 2 ), missä N 1 = (Q 1, Σ, δ 1, q 1, F 1 ), N 2 = (Q 2, Σ, δ 2, q 2, F 2 ) ja Q 1 Q 2 =. Muodostetaan N = (Q, Σ, δ, q 0, F ), missä 1. Q = Q 1 Q 2, 2. q 0 = q 1, 3. F = F 2 ja 4. kun q Q ja a Σ, niin δ(q, a) on seuraava: Selvästi L(N) = A B. δ(q, a) = δ 1 (q, a) kun q Q 1 F 1 δ(q, a) = δ 1 (q, a) kun q F 1 ja a δ(q, ) = δ 1 (q, ) { q 2 } kun q F 1 δ(q, a) = δ 2 (q, a) kun q Q 2. 46

Vielä viimeiseksi tähtioperaatio: Lause 1.7: [Sipser Thm 1.49] Jos A on säännöllinen, niin A on. Todistus: Oletetaan taas A = L(N 1 ), ja muodostetaan N jolla L(N) = A. Periaate: N 1 N (Huomaa, että alkutilan vaihtaminen hyväksyväksi ei välttämättä toimisi.) 47

Olkoon siis N 1 = (Q 1, Σ, δ 1, q 1, F 1 ). Nyt N = (Q, Σ, δ, q 0, F ), missä 1. q 0 Q 1 on uusi tila, 2. Q = Q 1 { q 0 }, 3. F = F 1 { q 0 } ja 4. δ määritellään δ(q 0, ) = { q 1 } δ(q 0, a) = kun a δ(q, a) = δ 1 (q, a) kun q Q 1 F 1 δ(q, a) = δ 1 (q, a) kun q F 1 ja a δ(q, ) = δ 1 (q, ) { q 1 } kun q F 1. Selvästi L(N) = A. 48

Säännölliset lausekkeet [Sipser luku 1.3] Kiinnitetään jokin aakkosto Σ. Säännöllinen lauseke on kaava, jonka arvona on jokin aakkoston Σ kieli. Kun R on säännöllinen lauseke, sen arvoa eli sen esittämää kieltä merkitään L(R). Perusajatuksena on muodostaa uusia kieliä edellä esitettyjen operaatioiden, ja avulla. Esimerkki Säännöllisen lausekkeen a(b c) esittämään kieleen kuuluvat ne merkkijonot, joiden alussa on a ja sen jälkeen nolla tai useampia b- ja c-merkkejä. Siis L(a(b c) ) = { a } ({ b, c }) = { a, ab, ac, abb, abc, acb, acc, abbb,... }. Osoitamme jatkossa, että tälla tavoin voidaan esittää (tai kuvata) tasan ne kielet, jotka voidaan tunnistaa äärellisellä automaatilla, eli säännölliset kielet (mistä nimi). 49

Määrittelemme säännölliset lausekkeet seuraavasti: 1. ja ovat säännöllisiä lausekkeita, ja L( ) = ja L() = { }. 2. a on säännöllinen lauseke kaikilla a Σ, ja L(a) = { a }. 3. Jos R 1 ja R 2 ovat säännöllisiä lausekkeita, niin myös (R 1 R 2 ) ja (R 1 R 2 ) ovat, ja L((R 1 R 2 )) = L(R 1 ) L(R 2 ) ja L((R 1 R 2 )) = L(R 1 ) L(R 2 ). 4. Jos R on säännöllinen lauseke, niin myös (R ) on, ja L((R )) = (L(R)) ; ja 5. ei ole muita säännöllisiä lausekkeita, kuin mitä edelläolevasta seuraa. Siis säännöllinen lauseke muodostetaan lähtemällä liikkeelle peruslausekkeista, ja a, a Σ, ja soveltamalla yhdistettä, konkatenaatiota ja tähteä äärellinen määrä kertoja. 50

Yksinkertaistamme säännöllisten lausekkeiden kirjoitusasua seuraavilla konventioilla: Konkatenaatio jätetään merkitsemättä; esim. a b a kirjoitetaan aba. Operaatiot evaluoidaan presedenssijärjestyksessä tähti, konkatenaatio, yhdiste ja turhat sulut jätetään pois. Siis a bc tarkoittaa (a (b (c ))). Jos Σ = { a 1,..., a k }, niin lauseketta a 1... a k merkitään lyhyesti Σ. Lausekkeen R konkatenaatiota itsensä kanssa k kertaa merkitään R k. R... R }{{} k kertaa Lauseke RR lyhennetään R + ; siis R = R +. 51

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)). Esimerkkejä: Σ koostuu kaikista aakkoston Σ merkkijonoista ja Σ + kaikista aakkoston Σ ei-tyhjistä merkkijonoista. 1Σ esittää kaikkia ykkösellä alkavia merkkijonoja. (0(0 1) 1) (1(0 1) 0) esittää kaikkia aakkoston { 0, 1 } merkkijonoja, joiden viimeinen merkki on eri kuin ensimmäinen. R = kaikilla R, ja =. Operaatioilla ja on neutraalialkiot ja : kaikilla R pätee R = R = R R = R = R. 52

Säännöllisiä lausekkeita käytetään erilaisissa tekstinkäsittelytyökaluissa kuten Unixin grep. Säännölliset lausekkeet ovat myös tärkeä formalismi ohjelmointikielten syntaktisten perusalkioiden esittämisessä. Esim. jossain ohjelmointikielessä sallitut tunnukset voisivat olla muotoa kokonaislukuvakiot muotoa ja liukulukuvakiot muotoa kirjain(kirjain numero alaviiva), ( + )numero + ( + )(numero.numero + numero +.numero ), missä kirjain tarkoittaa a... z ja numero tarkoittaa 0... 9. Tätä voidaan käyttää hyväksi kääntämisen ensimmäisessä vaiheessa muodostamalla sitä varten äärellinen automaatti (kuten seuraavaksi nähdään). 53