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