Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Rajoittamattomat kieliopit

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

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

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

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

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

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

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

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

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, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012

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.

Yhteydettömän kieliopin jäsennysongelma

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

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

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

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

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

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

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

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

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

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

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

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

S BAB ABA A aas bba B bbs c

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

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

Automaatit. Muodolliset kielet

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

1. Universaaleja laskennan malleja

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

Attribuuttikieliopit

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

2. Yhteydettömät kielet

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

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

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

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. kesäkuuta 2013

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

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

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

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

Täydentäviä muistiinpanoja laskennan rajoista

Muita universaaleja laskennan malleja

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

1. Universaaleja laskennan malleja

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Turingin koneen laajennuksia

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 3. joulukuuta 2015

5 Kontekstittomat kielet ja pinoautomaatit


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

Lisää pysähtymisaiheisia ongelmia

LR-jäsennys. Antti-Juhani Kaijanaho. 3. lokakuuta 2016

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Algoritmin määritelmä [Sipser luku 3.3]

Kontekstittomien kielten jäsentäminen Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Kertausta 1. kurssikokeeseen

Täydentäviä muistiinpanoja jäsennysalgoritmeista

Formalisoimme nyt edellä kuvatun laskennan.

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

Rekursiiviset palautukset [HMU 9.3.1]

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Tietojenkäsittelyteorian alkeet, osa 2

5.3 Ratkeavia ongelmia

Entscheidungsproblem

Transkriptio:

TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015

Sisällys

Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 1 eli pino Pino alustetaan ennen ensimmäistä siirtymää erityisellä alustusmerkillä, usein merkitään aloitustilan osoittavaan nuoleen siirtymässä q 1 c,d γ q 2 q 1 on tila, josta lähdetään c on syötemerkki, jonka tulee olla kohdalla, jotta siirtymä saadaan tehdä, taikka ε d on pinomerkki, jonka tulee olla pinon päällimmäisenä, jotta siirtymä saadan tehdä, ja joka otetaan pinosta pois siirtymää tehtäessä γ on pinomerkkijono, joka laitetaan pinoon päällimmäiseksi q 2 on tila, johon siirrytään 1 LIFO = last in, first out

Esimerkki A (, 1 B (,1 11 D ε, ε C ),1 ε ),1 ε

Rakenne formaalisti Kuusikko M = (Q, Σ, Γ, δ, q 0,, F) on (epädeterministinen) pinoautomaatti () (engl. push-down automaton), jos seuraavat pätevät: Q on äärellinen joukko (tilat) Σ on äärellinen, epätyhjä joukko (syötemerkistö) Γ on äärellinen, epätyhjä joukko (pinomerkistö) δ : Q Σ ε Γ P(Q Γ ) (siirtymäfunktio) q 0 Q (alkutila) Γ (alustussymboli) F Q (hyväksyvät tilat)

Tilanteet Äärellisen automaatin toiminnan seuraamiseen riittää tietää kulloinenkin tila ja jäljellä oleva syöte. Pinoautomaateilla tarvitaan lisäksi pinon kulloinenkin sisältö. Pinoautomaatin tilanne 2 on kolmikko (q, w, γ), missä q Q on kulloinenkin tila w Σ on jäljellä oleva syöte γ Γ on kulloinenkin pinon sisältö Käytetään tarvittaessa kirjaimia I, J, K viittaamaan mielivaltaisiin tilanteisiin. 2 engl. configuration, instantaneous description

Tilasiirtymät Olkoon M = (Q, Σ, Γ, δ, q 0,, F). Määritellään kahden tilanteen välinen relaatio M seuraavasti: kaikilla q, q Q, c Σ ε, w Σ, d Γ ja γ, γ Γ, jos (q, γ ) δ(q, c, d) pätee, niin (q, cw, dγ) M (q, w, γ γ) pätee Määritellään lisäksi seuraavasti: I M I I M J J M K I M K kaikilla I, J, K Q Σ Γ

Esimerkki taululla w = (( v = () A (, 1 B D ε, ε C (,1 11 ),1 ε ),1 ε

:n eri kielet Olkoon M = (Q, Σ, Γ, δ, q 0,, F). M voi tunnistaa kielen usealla eri tavalla. M tunnistaa hyväksyvällä tilalla kielen L(M) = { w Σ q F F; γ Γ : (q 0, w, ) M (q F, ε, γ) } M tunnistaa tyhjentämällä pinonsa kielen 3 N(M) = { w Σ q Q: (q 0, w, ) M (q, ε, ε) } Jokaiselle :lle M on olemassa M, jolle pätee L(M) = N(M ). Jokaiselle :lle M on olemassa M, jolle pätee N(M) = L(M ). 3 N tulee sanasta null eli tyhjä.

vs CFG Lause Kaikki kontekstittomat kielet voidaan tunnistaa pinoautomaatilla. Lause Kaikki pinoautomaatilla tunnistettavissa olevat kielet ovat kontekstittomia kieliä.

Kontekstiton kielioppi :ksi Olkoon annettuna kontekstiton kielioppi G = (V, Σ, P, S). Rakennetaan M = ({q}, Σ, V Σ, δ, q, S, ) seuraavasti: {(q, ε)} jos c = d δ : (q, c, d) { (q, ω) (A ω) P } jos c = ε ja d = A muuten Tällöin L(G) = N(M).

Esimerkki talululla E c E + E E E (E)

kontekstittomaksi kieliopiksi Olkoon M = (Q, Σ, Γ, δ, q 0,, F). Rakennetaan kontekstiton kielioppi G = (V, Σ, P, S) seuraavasti: V = {S} { A pdq p, q Q d Γ } P = { (S A q0 q) q Q } (A pdq c) (q, ε) δ(p, c, d) } { } (r 0, d 1... d k ) δ(p, c, d) (A pdrk ca r0 d 1 r 1... A rk 1 d k r k ) r 1,..., r k Q Tällöin L(G) = N(M). 4 4 Huomaa, että A pdq tuottaa ne merkkijonot, jotka lukemalla automaatti päätyy tilasta p tilaan q (netto)poistamalla pinosta merkin d.

Esimerkki taululla i, e, ε A

pinoautomaatti Pinoautomaatti, jolle pätevät q Q; c Σ ε ; d Γ : δ(q, c, d) 1 q Q; d Γ : ( c Σ : δ(q, c, d) = ) δ(q, ε, d) = on deterministinen. pinoautomaatti ei kykene tunnistamaan mm. kieltä { ww R w Σ } (todistus on teknisesti hankala joten se sivuutetaan). pinoautomaatti ei kykene tunnistamaan tyhjentämällä pinonsa edes kaikkia säännöllisiä kieliä!

lemma (kontekstittomat kielet) Lause Olkoon A Σ kontekstiton kieli. Tällöin on olemassa luku p (pumppauspituus), jolle kaikilla s A, s p, on olemassa u, v, w, x, y Σ, joille s = uvwxy ja 1. vx = ε 2. vwx p 3. uv i wx i y A kaikilla i N pätevät. Todistus Jälkiprujussa.

Esimerkki A = { a i b i c i i N }

Kontekstiset kieliopit Kontekstinen (engl. context-sensitive) kielioppi on kontekstittomien kielioppien yleistys Produktiot ovat muotoa ω ω tai S ε ω, ω (V Σ) +, ω ω S on aloitussymboli Jos kieliopissa on S ε, niin S ei saa esiintyä minkään produktion oikealla puolella. Nimi kontekstinen tulee normaalimuodosta, jossa produktiot ovat muotoa ω 1 Aω 2 ω 1 ωω 2 tai S ε ω 1, ω 2 (V Σ), ω (V Σ) + ω 1 ja ω 2 muodostavat produktion kontekstin Kontekstisen kieliopin tuottama kieli määritellään johtojen käsitteen avulla kuten kontekstittomissa kieliopeissa. Kieli, joka voidaan tuottaa jollakin kontekstisella kieliopilla on kontekstinen kieli.

Esimerkki S abc aabc ε Ab ba Ac Bbcc bb Bb ab aa aaa

Yleinen eli rajoittamaton kielioppi on kontekstittomien kielioppien yleistys. Kuten kontekstittomissa kieliopeissa: välikesymbolien joukko V, päätesymbolien joukko Σ ja aloitussymboli S. Produktiot ovat muotoa ω 1 ω 2 ω 1 (V Σ) + nuolen vasemmallakin puolella saa siis olla mitä vain (paitsi ei tyhjää)! ω 2 (V Σ) Kieliopin tuottama kieli määritellään johtojen käsitteen avulla tavanomaiseen tapaan. Kieli, joka voidaan tuottaa jollakin yleisellä kieliopilla on laskettavasti lueteltava (engl. computably enumerable). 5 5 Historiallisista syistä myös termiä rekursiivisesti lueteltava (engl. recursively enumerable) käytetään.

Esimerkki taululla Laaditaan kielioppi, joka tuottaa kielen { a 2n n N }.