Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIEA241 Automaatit ja kieliopit, syksy 2016

Samankaltaiset tiedostot
Täydentäviä muistiinpanoja kontekstittomien kielioppien jäsentämisestä

Täydentäviä muistiinpanoja jäsennysalgoritmeista

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

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

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

Attribuuttikieliopit

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

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

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

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

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

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

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

Pinoautomaatit. Pois kontekstittomuudesta

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

Algoritmit 1. Luento 7 Ti Timo Männikkö

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

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 9. marraskuuta 2009

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

v 1 v 2 v 3 v 4 d lapsisolmua d 1 avainta lapsen v i alipuun avaimet k i 1 ja k i k 0 =, k d = Sisäsolmuissa vähint. yksi avain vähint.

Jäsennys. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Tietorakenteet, laskuharjoitus 7, ratkaisuja

58131 Tietorakenteet (kevät 2009) Harjoitus 6, ratkaisuja (Antti Laaksonen)

Algoritmit 2. Luento 4 To Timo Männikkö

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

private TreeMap<String, Opiskelija> nimella; private TreeMap<String, Opiskelija> numerolla;

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

S BAB ABA A aas bba B bbs c

Algoritmit 2. Luento 6 Ke Timo Männikkö

Miten käydä läpi puun alkiot (traversal)?

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö

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

Algoritmit 2. Luento 10 To Timo Männikkö

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

PERUSLASKUJA. Kirjoita muuten sama, mutta ota KAKSI välilyöntiä (SEURAA ALUEMERKINTÄÄ) 4:n jälkeen 3/4 +5^2

Algoritmit 2. Luento 5 Ti Timo Männikkö

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

Yhteydettömän kieliopin jäsennysongelma

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Täydentäviä muistiinpanoja laskennan rajoista

3.3 KIELIOPPIEN JÄSENNYSONGELMA Ratkaistava tehtävä: Annettu yhteydetön kielioppi G ja merkkijono x. Onko

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

811312A Tietorakenteet ja algoritmit, , Harjoitus 5, Ratkaisu

11.4. Context-free kielet 1 / 17

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

Algoritmit 2. Luento 11 Ti Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö

PERUSLASKUJA. Kirjoita muuten sama, mutta ota välilyönti 4:n jälkeen 3/4 +5^2

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

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

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö

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

Rajoittamattomat kieliopit

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

B + -puut. Kerttu Pollari-Malmi

Ohjelmoinnin perusteet Y Python

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

OULUN YLIOPISTO, BIOLOGIAN LAITOS Puututkimus

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

v 8 v 9 v 5 C v 3 v 4

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

Luku 4. Derivoituvien funktioiden ominaisuuksia.

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

Liite: Verkot. TKK (c) Ilkka Mellin (2004) 1

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

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

Algoritmit 1. Luento 6 Ke Timo Männikkö

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

AVL-puut. eräs tapa tasapainottaa binäärihakupuu siten, että korkeus on O(log n) kun puussa on n avainta

KIELI JA KIRJOITUSTAPA

Hakupuut. tässä luvussa tarkastelemme puita tiedon tallennusrakenteina

Luku 8. Aluekyselyt. 8.1 Summataulukko

Silmukkaoptimoinnista

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

7. Tasapainoitetut hakupuut

Tehtävän V.1 ratkaisuehdotus Tietorakenteet, syksy 2003

Datatähti 2019 loppu

1.1 Tavallinen binäärihakupuu

Algoritmit 2. Luento 5 Ti Timo Männikkö

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Demo 1: Simplex-menetelmä

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

Ydin-Haskell Tiivismoniste

Malliratkaisut Demot

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

5.1 Semanttisten puiden muodostaminen

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

Transkriptio:

Jäsennysaiheesta lisää Täydentäviä muistiinpanoja TIA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 4. lokakuuta 2016 1 simerkki arleyn algoritmin soveltamisesta Tämä esimerkki on laadittu käsin. Toivottavasti ei ole virheitä :) Tarkastellaan kielioppia G : + () c ja sovelletaan arleyn algoritmia siihen sekä merkkijonoon c + c c. Seuraavassa esityksessä on yksi taulukko per S i -joukko. Taulukon otsikkorivillä kerrotaan, mistä joukosta on kyse, sekä mitä kohtaa merkkijonosta se tarkastelee (jolloin selaus tarkastelee pisteen jälkeistä merkkiä). Kukin taulukko luetteloi (ja numeroi) joukossa olevat asetelmat siinä järjestyksessä, jossa ne on siihen lisätty. Kunkin asetelman kohdalla on kerrottu, miksi se on joukkoon lisätty (sulkeissa olevat numerot viittaavat aiempiin riveihin). Jos sama asetelma tulee lisättäväksi samaan taulukkoon useampaan kertaan, käytetään ensimmäisen lisäyksen riviä merkitsemään myös myöhempien lisäysten syyt. S 0 c + c c 1 S, 0 alustus 2 +, 0 ennustus (1, 2, 3) 3, 0 ennustus (1, 2, 3) 4 (), 0 ennustus (1, 2, 3) 5 c, 0 ennustus (1, 2, 3) 1

S 1 c +c c 1 c, 0 selaus S 0 (5) 2 S, 0 täydennys (1), S 0 (1) 3 +, 0 täydennys (1), S 0 (2) 4, 0 täydennys (1), S 0 (3) S 2 c + c c 1 +, 0 selaus S 1 (3) 2 +, 2 ennustus (1, 2, 3) 3, 2 ennustus (1, 2, 3) 4 (), 2 ennustus (1, 2, 3) 5 c, 2 ennustus (1, 2, 3) S 3 c + c c 1 c, 2 selaus S 2 (5) 2 +, 0 täydennys (1), S 2 (1) 3 +, 2 täydennys (1), S 2 (2) 4, 2 täydennys (1), S 2 (3) 5 S, 0 täydennys (2), S 0 (1) 6 +, 0 täydennys (2), S 0 (2) 7, 0 täydennys (2), S 0 (3) S 4 c + c c 1, 2 selaus S 3 (4) 2, 0 selaus S 3 (7) 3 +, 4 ennustus (1, 2) 4, 4 ennustus (1, 2) 5 (), 4 ennustus (1, 2) 6 c, 4 ennustus (1, 2) S 5 c + c c 1 c, 4 selaus S 4 (6) 2, 2 täydennys (1), S 4 (1) 3, 0 täydennys (1), S 4 (2) 4 +, 4 täydennys (1), S 4 (3) 5, 4 täydennys (1), S 4 (4) 6 +, 0 täydennys (2), S 2 (1) 7 +, 2 täydennys (2), S 2 (2) 8, 2 täydennys (2), S 2 (3) 9 S, 0 täydennys (3, 6), S 0 (1) 10 +, 0 täydennys (3, 6), S 0 (2) 11, 0 täydennys (3, 6), S 0 (3) 2

Koska (S, 0) S 5 pätee, julistetaan että c + c c L(G) myös pätee. dellä olevista taulukoista voidaan myös lukea jäsennyspuut. Piirretään ensiksi sellaiset puut, joissa solmuina ovat algoritmin taulukoista löytyvät asetelmat. Asetelmojen väliset suhteet luetaan taulukoista seuraavasti: Asetelma (S, 0) on puun juuri. Asetelma A on jonkin toisen asetelman B oikeanpuolimmainen lapsi, jos asetelma B on merkitty johdetuksi täydennyksellä samassa taulukossa olevasta asetelmasta A. Jos asetelmalla on useita oikeanpuolimmaisia lapsia, on kyse tilanteesta, jossa on useita jäsennyspuita. Valitsemalla oikeanpuolimmaisista lapsista jonkin saadaan aikaan jokin jäsennyspuista. Asetelma, joka on johdettu toisesta selauksella taikka täydennyksellä jostakin edellisen taulukon asetelmasta, on sen oikeanpuoleinen sisarus. Sisarussuhdeketjussa tulee olla kaikilla asetelmilla sama produktio. Jos näin ei ole, algoritmia on sovellettu väärin. Sisarussuhdeketjun yhteisen produktion oikean puolen kutakin symbolia kohden pitää olla ketjussa asetelma, jossa piste on ko. symbolin kohdalla. Jos näin ei ole, puu on hylättävä epäonnistuneena jäsennysyrityksenä. Seuraavat ei-hylättävät puut saadaan aikaan. Merkitsen asetelman siten lyhentäen, että laitan varsinaiseksi merkiksi sen merkin, joka tulee asetelmassa ennen pistettä, ja varustan sen ylä- ja alaindekseillä i, j, joissa i kertoo sen taulukon ja j sen rivin, josta asetealma löydettiin puuhun. Yläindeksi viittaa oikeanpuolimmaisella (tai ainoalla) sisaruksella ylenevään polveen ja muilla sisaruuteen oikealle päin. Alaindeksi viittaa suhteeseen oikeanpuolimmaiseen (tai ainoaan) lapseen. Siis esimerkiksi 5,6 3,2 kertoo, että kyseisessä asetelmassa pistettä edeltää, että sen vanhempi selviää tarkastelemalla taulukon S 5 rivin 6 suhteita ja että sen lapsi selviää tarkastelemalla taulukon S 3 rivin 2 suhteita. 3

5,9 3,5 3,7 5,14 4,2 5,3 5,3 1,3 1,3 + 2,1 3,2 5,6 1,3 1,3 + 2,1 5,6 3,2 c 5,1 c 1,1 3,4 3,4 4,1 5,2 5,2 c 1,1 c 3,1 c 3,1 c 5,1 2 Attribuuttikielioppiesimerkki Tarkastellaan seuraavaa attribuuttikielioppia: T {.v = T.v } + T { 0.v = 1.v + T.v } T { 0.v = 1.v T.v } T F { T.v = F.v } T T F { T 0.v = T 1.v F.v } T T / F { T 0.v = T 1.v / F.v } F P { F.v = P.v } F F { F 0.v = F 1.v } P c { P.v = c.v } P () { P.v =.v } Tässä attribuuttikieliopissa on vain synteettisiä attribuutteja. 4

Tarkastellaan merkkijonoa 2 + 3 4. Laaditaan ensin sille jäsennyspuu: + T T T F F F P P P c c c Alustetaan (merkitsen attribuutit alaindekseiksi): + T T T F F F P P P c v=4 5

Sovelletaan produktion P c laskentasääntöä kolmesti: + T T T F F F P v=4 P v=2 P v=3 c v=4 Sovelletaan produktion F P laskentasääntöä kolmesti: + T T T F v=4 F v=2 F v=3 P v=4 P v=2 P v=3 c v=4 6

Sovelletaan produktion T T F laskentasääntöä: + 2 T T F v=4 F v=2 F v=3 P v=4 P v=2 P v=3 c v=4 Sovelletaan produktion T laskentasääntöä: v=2 + 2 T T F v=4 F v=2 F v=3 P v=4 P v=2 P v=3 c v=4 7

Sovelletaan produktion + T laskentasääntöä: v=14 v=2 + 2 T T F v=4 F v=2 F v=3 P v=4 P v=2 P v=3 c v=4 Juurisolmun v-attribuutista voidaan lukea, että laskutoimituksen tulos on 14. Tarkastellaan seuraavaksi toisenlaista attribuuttikielioppia. T {.l = T.v ;.v =.v } ε {.v =.l } + T { 1.l = 0.l + T.v ; 0.v = 1.v } T c { T.v = c.v } T () { T.v =.v } Tässä :llä, :lla ja T :llä on synteettinen attribuutti v. Lisäksi :lla on periytyvä attribuutti l. Jäsennetään 1 + 2 + 3: T c + T c + T c ε 8

Alustetaan: T + T + T ε Sovelletaan produktion T c laskentasääntöä: + T + T ε Sovelletaan produktion T ensimmäistä laskentasääntöä: l=1 + T + T ε 9

Sovelletaan produktion T c laskentasääntöä: l=1 + + T ε Sovelletaan produktion + T ensimmäistä laskentasääntöä: l=1 + l=3 + T ε Sovelletaan produktion T c laskentasääntöä: l=1 + l=3 + T v=3 ε 10

Sovelletaan produktion + T ensimmäistä laskentasääntöä: l=1 + l=3 + T v=3 l=6 ε Sovelletaan produktion ε laskentasääntöä: l=1 + l=3 + T v=3 l=6,v=6 ε Sovelletaan produktion + T toista laskentasääntöä: l=1 + l=3,v=6 + T v=3 l=6,v=6 ε 11

Sovelletaan produktion + T toista laskentasääntöä: l=1,v=6 + l=3,v=6 + T v=3 l=6,v=6 ε Sovelletaan produktion T toista laskentasääntöä: v=6 l=1,v=6 + l=3,v=6 + T v=3 l=6,v=6 ε Huomaa, että attribuutit voitiin käsitellä vasemmalta oikealle syvyyshaulla siten, että kussakin sisäsolmussa käytiin aina ennen ja jälkeen lapsien läpikäynnin sekä lapsisolmujen välissä. Tämä attribuuttikielioppi on siten L- attributoitu. 12