Rajoittamattomat kieliopit

Samankaltaiset tiedostot
Muita universaaleja laskennan malleja

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

Pinoautomaatit. Pois kontekstittomuudesta

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

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

ICS-C2000 Tietojenkäsittelyteoria

Turingin koneen laajennuksia

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, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

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

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

1. Universaaleja laskennan malleja

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

Yhteydettömän kieliopin jäsennysongelma

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

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

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

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

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

Säännöllisten kielten sulkeumaominaisuudet

Rekursiiviset palautukset [HMU 9.3.1]

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

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

S BAB ABA A aas bba B bbs c

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

1. Universaaleja laskennan malleja

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Automaatit. Muodolliset kielet

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

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

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

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

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.

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Lisää pysähtymisaiheisia ongelmia

Laskennan teoria

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

5.3 Ratkeavia ongelmia

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

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

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

2. Yhteydettömät kielet

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

Laskennan teoria

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Sisältö. ICS-C2000 Tietojenkäsittelyteoria. Kertausta edellisistä kerroista...

ICS-C2000 Tietojenkäsittelyteoria

Algoritmin määritelmä [Sipser luku 3.3]

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

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

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

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

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

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

Output. Input Automaton

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

5 Kontekstittomat kielet ja pinoautomaatit

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Kertausta 1. kurssikokeeseen

Täydentäviä muistiinpanoja laskennan rajoista

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

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

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

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

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

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

Laskennan teoria

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Formalisoimme nyt edellä kuvatun laskennan.


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

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

Transkriptio:

Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet äärelliset automaatit kontekstittomat kieliopit pinoautomaatit Nyt saadaan yksi vastaava pari lisää: rajoittamattomat kieliopit Turingin koneet 46

Rajoittamaton kielioppi on nelikko G = (V, Σ, P, S) missä V aakkosto Σ päätemerkit; N = V Σ välikemerkit P (V { ε }) V produktiot S N lähtösymboli Produktiota (α, β) merkitään yleensä α β. Erona kontekstittomiin kielioppeihin, että produktion vasemmalla puolella voi olla mikä tahansa epätyhjä merkkijono. 47

Merkkijono γ V johtaa suoraan merkkijonon γ V jos voidaan kirjoittaa γ = αωβ ja γ = αω β missä ω ω P. Tällöin merkitään γ G γ. Merkkijono γ V johtaa merkkijonon γ V jos on olemassa γ 0 = γ, γ 1, γ 2,..., γ n = γ joille γ i 1 G γ i. Tällöin merkitään γ G γ. Kieliopin G tuottama kieli on L(G) = { } x Σ S x. G 48

Esimerkki: muodostetaan G = (V, Σ, P, S) jolle L(G) = { a k b k c k k 0 }. (Huom. kieli { a k b k c k k 0 } ei ole kontekstiton.) Siis Σ = { a, b, c }. Valitaan N = { S, X, T, A, B, C } ja otetaan produktiot S XT S ε T ABCT T ABC BA AB CA AC CB BC XA a aa aa ab ab bb bb bc bc cc cc 49

Siis merkkijonon a k b k c k tuottamiseksi tuotetaan X(ABC) k järjestetään A-, B- ja C-merkit aakkosjärjestykseen; tuloksena LA k B k C k korvataan isot kirjaimet pienillä vasemmalta alkaen. Tämä osoittaa että rajoittamattomilla kieliopeilla voidaan tuottaa muitakin kuin kontekstisia kieliä. Seuraavaksi käydään periaatetasolla läpi konstruktiot, jotka osoittavat että itse asiassa rajoittamattomilla kieliopeilla voidaan tuottaa tasan ne kielet, jotka voidaan tunnistaa Turingin koneella. 50

Lause: Jos kieli voidaan tuottaa rajoittamattomalla kieliopilla, niin se voidaan tunnistaa Turingin koneella. Todistus (periaate): Olkoon G rajoittamaton kielioppi. Aiemmin esitetyn perusteella riittää muodostaa kaksinauhainen epädeterministinen Turingin kone M jolle L(M) = L(G). Nauha 1 sisältää vain kopion syötejonosta. Nauhalle 2 tuotetaan (epädeterministisesti) lähtösymbolista tuotettavissa olevia merkkijonoja. Laskennan aluksi nauhalle 2 kirjoitetaan pelkkä lähtösymboli. Jos jossain vaiheessa nauhojen sisällöt ovat samat, hyväksytään. 51

Laskenta koostuu vaiheista joissa kussakin viedään epädeterministisesti nauhan 2 nauhapää mielivaltaiseen paikkaan valitaan epädeterministisesti mielivaltainen kieliopin G produktio jos nauhapään kohdalta löytyy produktion vasen puoli, kirjoitetaan sen paikalle produktion oikea puoli verrataan nauhojen 1 ja 2 sisältöjä Koska produktioita on äärellinen määrä, ne voidaan koodata Turingin koneen tiloihin. Tarkemmat yksityiskohdat sivuutetaan. 52

Lause: Jos kieli voidaan tunnistaa Turingin koneella, niin se voidaan tuottaa rajoittamattomalla kieliopilla. Todistus: Olkoon M = (Q, Σ, Γ, δ, q 0, #, F ) annettu. Idea on muodostaa kielioppi G = (V, Σ, P, S) joka tuottaa koneen M tilanteita. Välikkeiksi otetaan siis ainakin koneen M tilojen symbolit. Produktiot suunnitellaan siten että [vqw] G [v q w ] jos ja vain jos vqw M v q w missä [ ja ] ovat uusia välikesymboleja. Tämä on mahdollista koska vqw M v q w edellyttää että vqw ja v q w eroavat toisistaan vain merkin q lähiympäristössä. 53

Merkkijonon x L(M) tuottaminen tapahtuu kolmessa vaiheessa: 1. tuotetaan lähtösymbolista S merkkijono x[q 0 x]. 2. muunnetaan x[q 0 x] G x[vq f w] missä q f F 3. siistitään x[vq f w] G x Varsinainen työ tapahtuu vaiheessa 2 jossa G simuloi konetta M. Jos x L(M), niin G ei pysty tuottamaan muotoa x[vq f w] olevia merkkijonoja. 54

Esitetään vielä konstruktion yksityiskohdat. Aakkostona on (huom. Σ Γ). V = Γ Q { S, T, [, ], X, Y } { A a a Σ } Produktiot jakautuvat edelläesitettyjen vaiheiden mukaisesti kolmeen osakokonaisuuteen: Vaihe 1: alkutilanteen tuottaminen S T [q 0 ] T ε T at A a A a [q 0 [q 0 A a A a b ba a A a ] a] (kaikilla a, b Σ) 55

Vaihe 2: siirtymien simulointi (nämä niille a, b, c Γ jotka ilmenevät siirtymäfunktiosta) Siirtymä δ(q, a) = (q, b, R) δ(q, a) = (q, b, L) δ(q, #) = (q, b, R) δ(q, #) = (q, b, L) δ(q, a) = (q, b, L) Vastaava produktio qa bq cqa q cb q] bq] cq] qcb] [qa [q#b Vaihe 3: lopputilanteen siistiminen (kaikille a Γ, q f F ) q f XY ax X [X ε Y a Y Y ] ε 56