Rajoittamattomat kieliopit (Unrestricted Grammars)

Samankaltaiset tiedostot
Chomskyn hierarkia ja yhteysherkät kieliopit

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

Rajoittamattomat kieliopit

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

Täydentäviä muistiinpanoja laskennan rajoista

5.3 Ratkeavia ongelmia

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

1. Universaaleja laskennan malleja

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

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

Säännöllisen kielen tunnistavat Turingin koneet

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Lisää pysähtymisaiheisia ongelmia

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]

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

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

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

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

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

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

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

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

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

Laskennan teoria

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

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

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.

Pinoautomaatit. Pois kontekstittomuudesta

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Yhteydettömän kieliopin jäsennysongelma

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

Muita universaaleja laskennan malleja

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

Rekursiiviset palautukset [HMU 9.3.1]

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

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

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

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

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

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

Laskennan teoria

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

2. Laskettavuusteoriaa

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

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

S BAB ABA A aas bba B bbs c

M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)

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

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

Attribuuttikieliopit

ICS-C2000 Tietojenkäsittelyteoria

Yhteydettömät kieliopit [Sipser luku 2.1]

Kertausta 1. kurssikokeeseen

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

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

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

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

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

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. 20. lokakuuta 2016

ICS-C2000 Tietojenkäsittelyteoria

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

Ratkeavuus ja efektiivinen numeroituvuus

2. Laskettavuusteoriaa

Säännöllisten kielten sulkeumaominaisuudet

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

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

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

Turingin koneen laajennuksia

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

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

2. Yhteydettömät kielet


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

1. Universaaleja laskennan malleja

Muita vaativuusluokkia

Taulumenetelmä modaalilogiikalle K

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Transkriptio:

Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013

Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli (S) Päätemerkit (a, b, c, ε) Sääntöjen avulla päätemerkeistä generoituu johtoja

Rajoittamattomat kieliopit Chomskyn hierarkiassa tyyppiä 0 Tuottavat rekursiivisesti numeroituvia...... siis Turing-tunnistettavia kieliä Huom! Rekursiiviset kielet kuuluvat rekursiivisesti numeroituvien kielten joukkoon

Rajoittamattomat kieliopit määritelmä Määritellään formaalisti nelikkona G = (N, Σ, P, S), jossa N = muuttujasymbolien joukko Σ = päätesymbolien joukko N ja Σ ovat erillisiä joukkoja, mutta tämä ei ole välttämätöntä erottelu on olemassa vain sitä varten, että tiedetään, milloin lopettaa lausemuotoja generoitaessa P = sääntöjen joukko S = lähtösymboli

Tarkemmin säännöistä Rajoitteita vain yksi: α ε Muutoin säännöt muotoa α β α ja β merkkijonoja α, β N Σ Mielenkiintoista: vasemmalla voi olla päätesymboleita säännöt voivat korvata tai siirtää symboleita sääntö α ε on sallittu myös silloin kun α = S ja S esiintyy jossain säännössä oikealla puolella

Rajoittamattomat kieliopit ja Turing-tunnistettavuus Rajoittamattomat kieliopit kuvaavat kaikki rekursiivisesti numeroituvat eli Turing-tunnistettavat kielet Sopiva Turingin kone tunnistaa rekursiivisesti numeroituvan kielen osaa sanoa, milloin jokin merkkijono kuuluu kieleen, mutta ei vältämättä pysähdy silloin, kun merkkijono ei kuulu kieleen

Rajoittamattomien kielioppien ja Turingin koneiden ekvivalenssi Jos on rajoittamaton kielioppi G, joka tuottaa kielen L, on myös olemassa Turingin kone M, joka tunnistaa kielen L Ja vastaavasti: jos on olemassa Turingin kone M, joka tunnistaa kielen L, on myös olemassa rajoittamaton kielioppi G, joka tuottaa kielen L Jokin Turingin kone tuottaa kaikki Turing-tunnistettavan kielen merkkijonot

Rajoittamattomien kielioppien ja Turingin koneiden ekvivalenssi todistus UG TM Jos G tuottaa kielen L ja G on rajoittamaton kielioppi, L on Turing-tunnistettava Idea: M kaksinauhainen Turingin kone, G jokin rajoittamaton kielioppi 1. nauhalla syötemerkkijono, 2. nauhalle generoidaan G:n lausemuotoja M generoi kaikki lausemuodot (säännöt koodattu koneen tiloihin) Verrataan luotuja muotoja nauhalla olevaan Jossain vaiheessa on generoitu kaikki lausemuodot (näitähän on numeroituva määrä) Voidaan todeta, että merkkijono kuuluu tai ei kuulu kieleen

Rajoittamattomien kielioppien ja Turingin koneiden ekvivalenssi todistus TM UG Jos L on Turing-tunnistettava kieli, niin jokin rajoittamaton kielioppi tuottaa sen Idea: Luotava jokin yhteys koneen suorittaman laskennan ja kieliopin lausemuotojen generoimisen välille Turingin koneen tila (configuration) voidaan kuvata merkkijonona Valitaan sopiva tapa kuvata tätä Muodostetaan sopiva kielioppi, jossa säännöt kuvaavat koneen siirtymiä ja tiloja

Aito tyypin 0 kieli? Tyyppi-1 kontekstivapaat indeksoidut jne. Tyyppi 0 Rekursiivisesti numeroituvat kielet - tunnistava Turingin kone ei välttämättä pysähdy Rekursiiviset kielet - tunnistava Turingin kone pysähtyy aina L

Rekursiivisesti numeroituvat kielet Rajoittamattomat kieliopit kuvaavat kaikki Turing-tunnistettavat kielet voidaan valita mikä tahansa kieli, joka on Turing-tunnistettava jota ei voida tunnistaa lineaarisesti rajoitetulla automaatilla

Esimerkki tyypin 0 kielestä {M M on LBA ja M / L(M)} Siis: M on jokin lineaarisesti rajoitettu automaatti M tunnistaa kielen L M:n kuvaus ei kuitenkaan kuulu kieleen L

Esimerkkikieli on Turing-tunnistettava Kieli on Turing-tunnistettava, jos jokin Turingin kone voi tuottaa kaikki kielen merkkijonot Jos oletetaan, että Churchin-Turingin teesi pätee, niin riittää, että kuvataan algoritmi kielelle Muistutus: LBA:n tunnistama kieli on ratkeava

Esimerkkikieli on Turing-tunnistettava algoritmi Esimerkkikieli: {M M on LBA ja M / L(M)} Algoritmi esimerkkikielelle Olkoon Turingin kone TM, joka saa syötteekseen merkkijonon x ja lineaarisesti rajoitetun automaatin M Syötteellä M, x: 1. Simuloi M:n toimintaa syötteellä x 2. Jos M hyväksyy, hylkää; muutoin hyväksy Kohta 1 ei voi jäädä loopiiin

Esimerkkikieli ei ole kontekstiherkkä Esimerkkikieli: {M M on LBA ja M / L(M)} Olk. L kieli, jonka tunnistaa LBA M Oletetaan, että M L ja L = L(M) Nyt M hyväksyy M:n M / L Ja päinvastoin: jos M / L ja L = L(M), niin M ei hyväksy M:ää M L Ei kovin järkevää L ei voi olla kontekstiherkkä

Laskennallisia ominaisuuksia Turingin koneiden ja rajoittamattomien kielioppien ekvivalenssi implikoi on olemassa universaali rajoittamaton kielioppi (vrt. universaali Turingin kone). universaali UG voi hyväksyä minkä tahansa kielen, josta on kuvaus on teoreettisesti mahdollista luoda ohjelmointikieli, joka perustuu rajoittamattomille kieliopeille rajoittamattomien kielioppien määrittelemät kielet ovat suljettuja seuraavien operaatioiden suhteen: katenaatio unioni intersektio kleenen tähti

Thue Esoteerinen ohjelmointikieli Metakieli, jonka avulla voidaan määritellä ja tunnistaa nollatyypin kieliä Turing-täydellinen myöskin Turing tarpit Perustuu semi-thue-järjestelmälle Sisältää siis uudelleenkirjoitussääntöjä muotoa merkkijono1::=merkkjono2 yksinkertainen esimerkki, Hello World a ::= HelloWorld! ::= a

Semi-Thue Nimetty Axel Thuen mukaan Uudelleenkirjoitusjärjestelmä Ero rajoittamattomiin kielioppeihin syntyy pääte- ja muuttujasymbolijoukkojen samuudesta sekä aloitussymbolin puuttumisesta Chomskyn hierarkia Kehitettiin logiikkaa varten Haluttiin todistaa automaattisesti Isomorfinen Turingin koneiden ja rajoittamattomien kielioppien kanssa Tavoite saavutettiin

Lähteet 1. Adrian Francalanza: (An Introduction to... ) Computability and Complexity, Department of Computer Science ICT, University of Malta http://staff.um.edu.mt/afra1/teaching/coco5.pdf 2. Gul Agha, Mahesh Viswanathan: Theory of Computation http://courses.engr.illinois.edu/cs373/fa2010/lectures/notes19.pdf 3. James Hein: Discrete Structures, Logic, and Computability 4. John E. Hopcroft: Introduction to Automata Theory, Languages and Computation 5. http://esolangs.org/wiki/thue 6. http://en.wikipedia.org/wiki/semi-thue system 7. http://en.wikipedia.org/wiki/axel Thue