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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Säännöllisten kielten sulkeumaominaisuudet

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

Kertausta 1. kurssikokeeseen

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

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

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

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

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

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

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

Automaatit. Muodolliset kielet

Yhteydettömän kieliopin jäsennysongelma

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

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

Algoritmin määritelmä [Sipser luku 3.3]

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

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

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

Laskennan mallit

1. Universaaleja laskennan malleja

Rajoittamattomat kieliopit

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Formalisoimme nyt edellä kuvatun laskennan.

Säännöllisen kielen tunnistavat Turingin koneet

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

Chomskyn hierarkia ja yhteysherkät kieliopit

Turingin koneen laajennuksia

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

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

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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.

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

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Laskennan mallit

Pinoautomaatit. Pois kontekstittomuudesta

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

Muodolliset kieliopit

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

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

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

5.3 Ratkeavia ongelmia

Laskennan mallit

Laskennan mallit

Laskennan mallit

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

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

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

Rekursiiviset palautukset [HMU 9.3.1]

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

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

Luonnollisen päättelyn luotettavuus

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

Laskennan mallit

Yhteydettömät kieliopit [Sipser luku 2.1]

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.

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

2. Laskettavuusteoriaa

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

8. Kieliopit ja kielet

Lisää pysähtymisaiheisia ongelmia

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

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

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Täydentäviä muistiinpanoja laskennan rajoista

Tietojenkäsittelyteorian alkeet, osa 2

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

ICS-C2000 Tietojenkäsittelyteoria

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

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

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Laskennan mallit

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

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Transkriptio:

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää sitä. Siis säännöllisillä lausekkeilla voidaan esittää tasan ne kielet, jotka voidaan tunnistaa äärellisillä automaateilla. Todistuksen helpompi suunta on seuraava: Lemma 1.9: [Sipser Lemma 1.55] Säännöllisen lausekkeen kuvaama kieli voidaan tunnistaa äärellisellä automaatilla. 54

Todistus: Ennen yksityiskohtiin menemistä tarkastellaan yleisesti tällaisen todistuksen luonnetta. Säännöllisen lausekeen määritelmä on induktiivinen (eli rekursiivinen). Vertaa induktiiviseen luonnollisen luvun määritelmään: 1. 0 on luonnollinen luku ja 2. jos n on luonnollinen luku, niin n + 1 on luonnollinen luku. Luonnollisten lukujen induktioperiaatteesta seuraa, että jos 1. luvulla 0 on ominaisuus P ja 2. jos luvulla n on ominaisuus P niin luvulla n + 1 on ominaisuus P niin kaikilla luonnollisilla luvuilla on ominaisuus P. Todistamme lemman suorittamalla analogisen induktion säännöllisten lausekkeiden yli. 55

Haluamme siis osoittaa, että kaikilla säännöllisillä lausekkeilla R kieli L(R) on säännöllinen. Teemme tämän osoittamalla, että 1. L( ) ja L(ε) ovat säännöllisiä, 2. L(a) on säännöllinen kaikilla a Σ, 3. jos L(R 1 ) ja L(R 2 ) ovat säännöllisiä, niin L(R 1 R 2 ) ja L(R 1 R 2 ) ovat säännöllisiä ja 4. jos L(R) on säännöllinen, niin L(R ) on säännöllinen. Kohdat (1) ja (2) ovat ilmeisiä: on helppoa muodostaa äärellinen automaatti tunnistamaan kieli, kieli { ε } ja kieli { a }, missä a Σ. Koska L(R 1 R 2 ) = L(R 1 ) L(R 2 ) ja L(R 1 R 2 ) = L(R 1 ) L(R 2 ), niin kohta (3) seuraa lauseista 1.5 ja 1.6. Samoin kohta (4) seuraa lauseesta 1.7. 56

Osoitetaan nyt kääntën, että mille tahansa äärelliselle automaatille M voidaan muodostaa säännöllinen lauseke R, jolle L(R) = L(M). Jos M on automaatti.. b a c q 1 q 2 q 3 d.. niin selvästi voidaan valita R = (ab c) d. Jotta voisimme hyödyntää tätä havaintoa osana monimutkaisemman automaatin analysoimista, otamme käyttöön yleistetyt NFA:t (generalized NFA, GNFA), joissa kaareen voi liittyä yksittäisen symbolin tai symbolijoukon sijasta kokonainen säännöllinen lauseke. 57

Ajatuksena on esim., että edellä esitetystä automaatista.. b a c q 1 q 2 q 3 d.. voidaan eliminoida tila q 2 ja saada ekvivalentti GNFA.. (ab c) d q 1 q 3.. Meidän pitää nyt sopia tarkemmin, mitä GNFA tarkalleen on. 58

GNFA on siis kuten NFA, mutta kuhunkin kaareen voi liittyä mielivaltainen säännöllinen lauseke. Siirtyminen kaarta pitkin kuluttaa syötteestä jonkin osamerkkijonon, joka kuuluu kyseisen säännöllisen lausekkeen kuvaamaan kieleen. Yksinkertaisuuden vuoksi sovimme, että GNFA noudattaa seuraavia rajoitteita: 1. Siinä on tasan yksi hyväksyvä tila ja yksi alkutila, ja nämä eivät ole sama tila. 2. Alkutilaan ei tule siirtymiä. 3. Hyväksyvästä tilasta ei lähde siirtymiä. 4. Muuten minkä tahansa kahden tilan välillä on siirtymä, johon liittyy tasan yksi säännöllinen lauseke. 59

Muodollisesti GNFA on siis viisikko (Q, Σ, δ, q start, q accept ), missä 1. Q on äärellinen tilajoukko, 2. Σ on aakkosto, 3. δ on funktio (Q { q accept }) (Q { q start }) R, missä R on aakkoston Σ säännöllisten lausekkeiden joukko ja 4. q start Q, q accept Q ja q start q accept. 60

GNFA (Q, Σ, δ, q start, q accept ) hyväksyy merkkijonon w Σ, jos on olemassa esitys w = w 1... w k, missä w i Σ kaikilla 1 i k, ja tilajono (q 0,..., q k ) Q k+1, joilla 1. q 0 = q start, 2. w i L(R i ) kaikilla 1 i k, missä R i = δ(q i 1, q i ) ja 3. q k = q accept. 61

Mistä tahansa NFA:sta voidaan helposti muodostaa saman kielen tunnistava GNFA: 1. Lisää uudet tilat q start ja q accept. 2. Lisää ε-siirtymät tilasta q start vanhaan alkutilaan ja vanhoista hyväksyvistä tiloista tilaan q accept. 3. Kaikilla alkuperäisillä tiloilla q 1 ja q 2 aseta δ(q 1, q 2 ) = a 1... a n, missä { a 1,..., a n } on niiden merkkien joukko, joilla vanhassa automaatissa on siirtymä tilasta q 1 tilaan q 2. 4. Niillä q 1 ja q 2, joilla δ(q 1, q 2 ) ei vielä tullut määritellyksi, aseta δ(q 1, q 2 ) =. 62

Korkean tason algoritmi NFA:ta M vastaavan säännöllisen lausekkeen muodostamiseksi on nyt seuraava: 1. Olkoon automaatin M tilojen lukumäärä k. Muodosta k + 2-tilainen GNFA G k+2, joka tunnistaa saman kielen. 2. Toista kun i = k + 2, k + 1,..., 3: muodosta GNFA:sta G i saman kielen tunnistava GNFA G i 1, jossa on yksi tila vähemmän. 3. Päättele kaksitilaisesta GNFA:sta G 2, mikä säännöllinen lauseke esittää sen tunnistamaa kieltä. 63

Oleellisin kohta on tietysti yhden tilan eliminoiminen GNFA:sta. Se perustuu muunnokseen.. R 2 R 1 R 3 q i q pois q j R 4 (R 1 R 2 R 3) R 4 q i q j.. 64

Kootaan nyt edelläesitetty yhteen. Lemma 1.10: [Sipser Lemma 1.60] Jos kieli on säännöllinen, se voidaan esittää säännöllisellä lausekkeella. Todistus: Olkoon A säännöllinen kieli. Siis jokin äärellinen automaatti M tunnistaa sen. Muodostetaan edellä selitettyyn tapaan GNFA G, joka sekin tunnistaa kielen A. Seuraavaksi lasketaan G = Pienennä(G), joka on 2-tilainen GNFA ja tunnistaa saman kielen kuin G. (Palaamme tähän pian.) Nyt G koostuu pelkästään tiloista q start ja q accept sekä niiden välisestä siirtymästä. Automaatin G hyväksymä kieli on määritelmän mukaan sama kuin L(R), missä R = δ(q start, q accept ). Siis R on haluttu säännöllinen lauseke, joka esittää automaatin M tunnistamaa kieltä. 65

Proseduuri Pienennä(G) toimii seuraavasti: Olkoon G = (Q, Σ, δ, q start, q accept ). Jos automaatissa G on kaksi tilaa, palauta se sellaisenaan. Muuten valitse mielivaltainen q pois Q { q start, q accept }. Muodosta G = (Q { q pois }, Σ, δ, q start, q accept ), missä kaikilla δ (q i, q j ) = R 1 R 2 R 3 R 4, missä R 1 = δ(q i, q pois ), R 2 = δ(q pois, q pois ), R 3 = δ(q pois, q j ) ja R 4 = δ(q i, q j ). Suorita rekursiivinen kutsu Pienennä(G ) ja palauta sen palauttama arvo. Selvästi Pienennä(G) palauttaa 2-tilaisen GNFA:n. Pitää enää osoittaa, että edellä muodostettu G tunnistaa saman kielen kuin G; tästä seuraa induktiolla, että myös Pienennä(G) tunnistaa. 66

Väitämme siis, että G ja G hyväksyvät tasan samat merkkijonot. Olkoon ensin w merkkijono, jonka G hyväksyy, ja tätä hyväksyntää vastaava tilajono q start, q 1,..., q k 1, q accept. Jos q pois ei esiinny tässä jonossa, se osoittaa samalla, että myös G hyväksyy. Tämä seuraa siitä, että δ (q i, q j ) kaikilla q i, q j esittää ainakin yhtä laaja kieli kuin δ(q i, q j ). Oletetaan toisaalta, että q pois esiintyy tilajonossa. Tarkastellaan jotain sen perättäisten esiintymien jonoa q i, q pois,..., q pois, q j. Siirtymäfunktion δ määritelmästä seuraa, että automaatin G tähän siirtymäketjuun kuluttama pätkä merkkijonoa w voidaan automaatissa G käyttää suoraan siirtymään q i q j. Samoin on helppo nähdä, että G hyväksyy merkkijonon w, jos G hyväksyy. Tämä päättää myös lauseen 1.8 todistuksen. Olemme siis kahdesta täysin eri lähtökohdasta (automaatit, lausekkeet) päätyneet samaan säännöllisten kielten luokkaan. Seuraavaksi tarkastelemme, mitä jää tämän luokan ulkopuolelle. 67