Chomskyn hierarkia ja yhteysherkät kieliopit

Samankaltaiset tiedostot
Rajoittamattomat kieliopit

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

Yhteydettömän kieliopin jäsennysongelma

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

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

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

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

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

Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

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

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

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

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

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

Algoritmin määritelmä [Sipser luku 3.3]

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.

ICS-C2000 Tietojenkäsittelyteoria

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Säännöllisten kielten sulkeumaominaisuudet

S BAB ABA A aas bba B bbs c

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

Säännöllisen kielen tunnistavat Turingin koneet

1. Universaaleja laskennan malleja

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

Rekursiiviset palautukset [HMU 9.3.1]

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

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

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)

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Lisää pysähtymisaiheisia ongelmia

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

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

Täydentäviä muistiinpanoja laskennan rajoista

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

Laskennan teoria (kevät 2006) Harjoitus 3, 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 $:

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

Muita universaaleja laskennan malleja

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

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

Turingin koneen laajennuksia

Yhteydettömät kieliopit [Sipser luku 2.1]

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

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

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

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

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

2. Yhteydettömät kielet

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

Automaatit. Muodolliset kielet

Kertausta 1. kurssikokeeseen

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

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

Muodolliset kieliopit

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

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

Luonnollisen päättelyn luotettavuus

ICS-C2000 Tietojenkäsittelyteoria

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 lausekkeiden minimointi

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

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

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

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

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

2. Laskettavuusteoriaa

Täydentäviä muistiinpanoja jäsennysalgoritmeista

1. Universaaleja laskennan malleja

Laskennan teoria


Transkriptio:

Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien Chomskyn hierarkiaa, sekä hieman tarkemmin erästä hierarkian tasoa, yhteysherkkiä kielioppeja. Hierarkia on nelitasoinen. Esittelen työssä hierarkian tasot sekä niitä vastaavat automaatit. Tarkoituksena on antaa lyhyt yleiskatsaus, joten monet todistuksista sivuutetaan, sillä etenkin todistukset kielioppien ja automaattien ekvivalensseista ovat hyvin pitkiä. Kaikki todistukset ovat samankaltaisia. Ensinäkin kutakin kielioppia kohden konstruoidaan automaatti, joka simuloi kieliopin lauseenmuodostusta. Toisaalta kutakin automaattia kohden konstruoidaan kielioppi, joka simuloi automaatin toimintaa. Todistukset on löydettävissä Hopcroftin ja Ullmanin kirjasta [1]. 1 Muodollinen kielioppi Määritellään ensin, mitä tarkoitetaan muodollisella kieliopilla. Määritelmä 1. Muodollinen kielioppi G on nelikko missä G = (V, Σ, P, S), 1. V on äärellinen epätyhjä joukko välikkeitä; 2. Σ on äärellinen epätyhjä joukko päätemerkkejä; 3. P (V Σ) V (V Σ) (V Σ) on äärellinen epätyhjä joukko produktiosääntöjä tai produktiota; 4. S V on aloitusmerkki. 1

5. V Σ = Produktiolle (α, β) P käytetään merkintää α β. Kukin muodollinen kielioppi määrittelee (tai tuottaa) muodollisen kielen. Muodollisen kieliopin määrittämän kielen merkkijonoja ovat ne pelkistä päätemerkeistä koostuvat merkkijonot, jotka on muodostettavissa soveltamalla äärellisen monta kertaa produktiosääntöjä lähtien aloitusmerkistä. Produktiota voidaan soveltaa merkkijonoon, jos produktion etujäsen on merkkijonon osajono. Tällöin soveltamisella tarkoitetaan kyseisen osajonon korvaamista produktion takajäsenellä. Seuraavat kaksi määritelmää formalisoivat tämän. Määritelmä 2. Olkoon α, β, γ, δ, ω (V Σ), A V ja βaγ ω produktio. Sanotaan, että αβaγδ tuottaa suoraan merkkijonon αωδ, merkitään αβaγδ αωδ. Sanotaan, että merkkijono α tuottaa merkkijonon β, merkitään α β, jos on olemassa äärellinen jono merkkijonoja (δ i ) i<n s.e. α δ 0, δ 0 δ 1,..., δ n 1 β Määritelmä 3. Muodollisen kieliopin G tuottama kieli L(G) määritellään seuraavasti: L(G) = {ω Σ : S ω} 2 Säännölliset kieliopit Pienin Chomskyn hierarkian luokista on säännöllisten kielioppien luokka. Säännöllisiä kielioppeja on kahta muotoa, oikealle ja vasemalle lineaariset kieliopit. Määritelmä 4. Muodollinen kielioppi G on oikealle lineaarinen, jos sen kaikki produktiot ovat muotoa missä A, B V ja ω Σ. A ωb tai A ω, Vastaavasti G on vasemmalle lineaarinen, jos sen kaikki produktiot ovat muotoa A Bω tai A ω. Muodollinen kielioppi G on säännöllinen, jos se on oikealle tai vasemmalle lineaarinen. Säännöllisen kieliopin tuottamaa kieltä kutsutaan säännölliseksi kieleksi. 2

Laskennan mallien kurssilla säännölliseksi kieleksi kutsuttiin kieltä, jonka jokin äärellinen automaatti tunnistaa. Kyseinen määritelmä ja juuri annettu määritelmä ovat yhtäpitävät. Lause 5. Olkoon G säännöllinen kielioppi. Tällöin on olemassa äärellinen automaatti, joka tunnistaa kielen L(G) Lause 6. Olkoon L jonkin äärellisen automaatin tunnistama kieli. Tällöin on olemassa sekä oikealle lineaarinen kielioppi G että vasemmalle lineaarinen kielioppi G s.e. L(G) = L = L(G ). 3 Yhteydettömät kieliopit Chomskyn hierarkian seuraava taso on yhteydettömien kielioppien luokka. Määritelmä 7. Muodollinen kielioppi G on yhteydetön jos sen kaikki produktiot ovat muotoa A ω, missä A V ja ω (V Σ). Yhteydettömän kieliopin tuottamaa kieltä kutsutaan yhteydettömäksi kieleksi. Selvästi jokainen säännöllinen kielioppi on myös yhteydetön. Käänteinen ei kuitenkaan päde. Esimerkiksi kielelle L = {a n b n : n N} on olemassa yhteydetön kielioppi, mutta ei säännollistä kielioppia. Yhteydettömille kieliopeille on olemassa seuraava normaalimuoto. Lause 8. Olkoon L yhteydetön kieli, joka ei sisällä tyhjää merkkijonoa. Tällöin on olemassa yhteydetön kielioppi G, jonka kaikki produktiot ovat muotoa A BC tai A a, missä A, B, C V ja a Σ, s.e. L = L(G). Sanotaan, että kielioppi G on Chomskyn normaalimuodossa. Jokainen yhteydetön kielioppi on siis ekvivalentti Chomskyn normaalimuodossa olevan kieliopin kanssa. Seuraava lause on todistettu Laskennan mallien kurssilla. Lause 9. Kieli L on yhteydetön jos ja vain jos jokin epädeterministinen pinoautomaatti tunnistaa kielen. 3

4 Yhteysherkät kieliopit Chomskyn hierarkian toiseksi laajin luokka on yhteysherkkien kielioppien luokka. Määritelmä 10. Muodollinen kielioppi on yhteysherkkä, jos sen kaikilla produktioilla α β pätee α β, missä α tarkoittaa merkkijonon α pituutta. Yhteysherkän kieliopin tuottamaa kieltä kutsutaan yhteyherkäksi kieleksi. Chomskyn normaalimuodon olemassaolosta nähdään suoraan, että jokainen yhteydetön kieli, joka ei sisällä tyhjää merkkijonoa, on myös yhteysherkkä. Ylläolevalla määritelmällä yhteysherkkä kieli ei kuitenkaan voi sisältää tyhjää merkkijonoa. Tällöin yhteydettömät kielet eivät olisi yhteysherkkien kielien osajoukko. Tämä puute voidaan korjata sallimalla tyhjän merkkijonon ɛ lisääminen yhteysherkkään kieleen. Yhteysherkkää kielioppia muutetaan tällöin lisäämällä uusi alkumerkki S 0 ja sille produktiot S 0 ɛ S, missä S on alkuperäinen alkumerkki (samanlainen muutos voidaan tehdä Chomskyn normaalimuodon esitykseen). Nyt yhteydettömät kielet ovat yhteysherkkien kielien osajoukko. Seuraava esimerkki osoittaa, että sisältyvyys on aito. Esimerkki 11. Kieli L = {a n b n c n : n 1} on yhteysherkkä, mutta tunnetusti L ei ole yhteydetön. Seuraava yhteysherkkä kielioppi tuottaa kielen L. 1. S asbc 2. S abc 3. CB BC 4. ab ab 5. bb bb 6. bc bc 7. cc cc Nimitystä yhteysherkkä kielioppi selittää seuraava normaalimuoto yhteysherkille kieliopeille. Normaalimuodossa α ja β muodostavat yhteyden tai kontekstin, jossa produktiota voi soveltaa. 4

Lause 12. Olkoon L yhteysherkkä kieli, joka ei sisällä tyhjää merkkijonoa. Tällöin on olemassa muodollinen kielioppi G, jonka kaikki produktiot ovat muotoa αaβ αγβ, missä α, β, γ (V Σ), γ ɛ ja A V, s.e. L = L(G). 4.1 Lineaarisesti rajoitettu automaatti Yllä on esitetty säännöllisille ja yhteydettömille kielille tutut niitä vastaavat automaatit. Seuraavaksi esitellään yhteydettömien kielien karakterisaatio automaattien avulla. Määritelmä 13. Lineaarisesti rajoitettu automaatti on epädeterministinen Turingin kone, joka täyttää seuraavat kaksi ehtoa. 1. Syöteaakkosto sisältää kaksi erikoissymbolia, vasemman reunamerkin X L sekä oikean reunamerkin X R, X L X R. 2. Lukupää ei voi liikkua X L :n vasemmalle puolen tai X R :n oikealle puolen eikä kone voi kirjoittaa mitään kyseisten merkkien paikalle. Laskennan alussa nauhan sisältö on X L ωx R, missä ω on syöte. Lineaarisesti rajoitettu automaatti on siis Turingin kone, jonka käytettävissä oleva nauha on rajoitettu nauhan osalle, joka laskennan alussa sisältää syötteen sekä reunamerkit. Muuttamalla määritelmää siten, että käytettävissä olevan nauhan osan pituus olisi syötteen pituuden suhteen lineaarinen, saisimme mallin jonka laskennallinen kyky on yhtäläinen yllä annetun määritelmän kanssa. Tämä selittää nimen lineaarisesti rajoitettu automaatti. Yhteysherkkiä ovat täsmälleen ne kielet, jotka voidaan tunnistaa lineaarisesti rajoitetulla automaatilla. Intuitiivisesti lineaarisesti rajoitettu automaatti tunnistaa yhteysherkän kielen, sillä tarkistaakseen kuuluuko jokin merkkijono kieleen simuloimalla kielen kielioppia, automaatti ei tarvitse nauhaa enempää kuin merkkijonon pituuden verran. Tämä johtuu yhteysherkän kielen kieliopin produktioiden muodosta - ei ole tilannetta, jossa kieleen kuuluva merkkijono voitaisiin johtaa vain sitä pidemmän merkkijono avulla. Lause 14. Kieli L, joka ei sisällä tyhjää merkkijonoa, on yhteysherkkä jos ja vain jos jokin lineaarisesti rajoitettu automaatti tunnistaa kielen. 5

Yhteysherkkien kielien joukko on jo hyvin iso. Yllä on annettu yksinkertaiset esimerkit kielistä, jotka eivät ole säännöllisiä tai yhteydettömiä. Tällaisia simppeleitä esimerkkejä ei-yhteysherkistä kielistä ei ole. Kaikki esimerkit ei-yhteysherkistä kielistä perustuvat jonkunlaiselle diagonaaliargumentille. Seuraavaksi osoitamme, että jokainen yhteysherkkä kieli on rekursiivinen, ja että on olemassa myös rekursiivinen kieli joka ei ole yhteysherkkä. Lause 15. Jokainen yhteysherkkä kieli on rekursiivinen. Todistus. Olkoon L yhteysherkkä kieli ja LBA lineaarisesti rajoitettu automaatti, joka tunnistaa kielen L. Käytämme hyväksi tietoa, että lineaarisesti rajoitetulla automaatilla voi käytettävissä olevan nauhan äärellisen pituuden takia olla vain äärellisen monta eri konfiguraatiota. Olkoon k erilaisten konfiguraatioden lukumäärä. Nyt voidaan muodostaa kaikilla syötteillä pysähtyvä Turingin kone M, joka tunnistaa kielen L, siten että M simuloi LBA:n laskentaa maksimissaan k + 1:n askeleen verran. M pysähtyy ja hyväksyy/hylkää, jos LBA pysähtyy ja hyväksyy/hylkää, mutta jos laskenta on jatkunut k + 1 askeleen verran M pysähtyy ja hylkää. Tällöin tiedetään, että jokin konfiguraatio on toistunut ja LBA on loopissa. Sen todistamiseksi, että yhteysherkät kielet ovat rekursiivisten kielten aito osajoukko, tarvitaan seuraava aputulos. Lemma 16. Olkoon (M i ) i N numeroituva perhe kaikilla syötteillä pysähtyviä Turingin koneita. Tällöin on olemassa rekursiivinen kieli L, s.e L L(M i ) kaikilla i N. Todistus. Määritellään kieli L (0 1), ɛ / L seuraavasti. Kaikilla ω (0 1), ω L jos ja vain jos M i ei hyväksy syötettä ω, missä ω on i:n binääriesitys. L on rekursiivinen, sillä, annettuna epätyhjä merkkijono ω (0 1), voimme muodostaa koneen M i, ja tarkistaa hyväksyykö se merkkijonon. Nyt kaikilla M i, i N, L L(M i ). Korollaari 17. On olemassa rekursiivinen kieli, joka ei ole yhteysherkkä. Todistus. Tämä seuraa nyt siitä, että voimme numeroida yhteysherkät kieliopit, joiden päätemerkkien joukko on {0, 1}. 5 Rajoittamattomat kieliopit Chomskyn hierarkian laajin luokka on rajoittamattomien kielioppien luokka. 6

Määritelmä 18. Rajoittamaton kielioppi on muodollinen kielioppi, jonka produktiot voivat olla mitä muotoa tahansa. Seuraavat kaksi lausetta osoittavat, että rajoittamattomat kieliopit määrävät täsmälleen rekursiivisesti numeroituvien kielien joukon. Lause 19. Olkoon G rajoittamaton kielioppi. Tällöin on olemassa Turingin kone M s.e. L(G) = L(M). Lause 20. Olkoon M Turingin kone. Tällöin on olemassa rajoittamaton kielioppi G s.e. L(M) = L(G). Viitteet [1] John E. Hopcroft, Jeffrey D. Ullman: Introduction to Automata Theory, Languages and Computation. Addison-Wesley 1979 [2] Michael Sipser: Introduction to the Theory of Computation. Thomson Course Technology, 2006 7