S BAB ABA A aas bba B bbs c

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

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

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 Kevät 2016

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

Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

Rajoittamattomat kieliopit

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

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

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

Yhteydettömän kieliopin jäsennysongelma

Chomskyn hierarkia ja yhteysherkät kieliopit

ICS-C2000 Tietojenkäsittelyteoria

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

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

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

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

Yhteydettömät kieliopit [Sipser luku 2.1]

Kertausta 1. kurssikokeeseen

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

2. Yhteydettömät kielet

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

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

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

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

Kaikki mitä olet aina halunnut tietää pumppauslemmoista, mutta mitä et ole kehdannut kysyä

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

Turingin koneen laajennuksia

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

Täydentäviä muistiinpanoja jäsennysalgoritmeista

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

JOHDATUS TEKOÄLYYN TEEMU ROOS

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

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

Algoritmin määritelmä [Sipser luku 3.3]

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

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

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

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

11.4. Context-free kielet 1 / 17

Demo 7 ( ) Antti-Juhani Kaijanaho. 9. joulukuuta 2005

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

1. Universaaleja laskennan malleja

5.3 Ratkeavia ongelmia

Rekursiiviset palautukset [HMU 9.3.1]

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

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

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

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

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

Datatähti 2019 loppu

Lisää pysähtymisaiheisia ongelmia

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

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

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

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

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

Formalisoimme nyt edellä kuvatun laskennan.

Automaatit. Muodolliset kielet

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

Tietotekniikan valintakoe

Muodolliset kieliopit

Attribuuttikieliopit

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

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

1. Universaaleja laskennan malleja

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

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

ICS-C2000 Tietojenkäsittelyteoria

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Transkriptio:

T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama kieli epätyhjä, so. voidaanko kieliopin lähtösymolista S johtaa yhtään päätejonoa x Σ. Vastaus: Allaoleva proseduuri?generatesnonemptylanguageg) ottaa syötteenä yhteydettömän kieliopin G, ja palauttaa arvon true, jos G:n generoima kieli ei ole tyhjä.?generatesnonemptylanguageg = V, Σ, P, S): context-free grammar) T Σ repeat V Σ times for each A X 1 X k P if A T X 1 X k T k T T {A} if S T return true else return false Algoritmin idea on lähteä terminaalisymolien joukosta Σ ja testata, onko näistä mahdollista perääntyä S:ään käyttäen joukon P produktioita käänteisesti. Perääntymistä simuloidaan iteroimalla V Σ kertaa saavutettavien symolien joukkoa T. Perusteluksi sille, että V Σ askelta riittää, tarkastellaan sanaa z LG), jolla on kielen sanoista kaikkein pienin jäsennyspuu. Jos z:lla on muotoa S uay uvaxy uvwxy oleva johto, missä u, v, w, x, y Σ, niin myös sana z = uwy voidaan johtaa kieliopin säännöillä 1. Tällöin kuitenkin z :n jäsennyspuu on pienempi kuin z:n jäsennyspuu, mikä on ristiriidassa sen oletuksen kanssa, että z:n puu on pienin. Tästä seuraa se, että missään z:n minimaalisen jäsennyspuun haaroissa ei voi esiintyä sama välike kahteen kertaan, joten algoritmissa riittää käydä sääntöjoukko läpi yhtä monta kertaa kuin kieliopissa on välikkeitä. Tarkastellaan esimerkiksi kielioppia: S A AA A aas a S c Algoritmin laskenta etenee joukon T osalta seuraavasti: T 0 = {a,, c} T 1 = {a,, c, } c) T 2 = {a,, c, A, } T 3 = {a,, c, A,, C} A a) S A, S AA) Koska V Σ = 3, algoritmin suoritus päättyy ja T = T 3. Huomataan, että S T, joten kieli ei ole tyhjä. Pienin kieleen kuuluvan sanan jäsennyspuu on: 1 Vertaa yhteydettömien kielten pumppauslemmaan. 1

S A c c c 5. Tehtävä: Muodosta kielioppia G = V, Σ, P, S) vastaava pinoautomaatti, kun V = {S,, ),,,, a, } Σ = {, ),,,, a, } P = {S SS), S S, S S S), S, S a, S } Vastaus: Mitä tahansa yhteydetöntä kielioppia G = V, Σ, R, S) vastaava epädeterministinen pinoautomaatti M = Q, Σ, Γ, δ, q 0, F ) voidaan laatia seuraavasti: Q = {q 0, q 1, q acc } Γ = V { } F = {q acc } δ = { q 0, ε, ε), q 1, S ) ), q 1,, ε), q acc, ε) ) } 1) { q 1, ε, A), q 1, α) ) A α) P } 2) { q 1, σ, σ), q 1, e) ) σ Σ} 3) Tässä symolia käytetään pinon pohjan merkkinä. Tehtävän kieliopille konstruktio tuottaa seuraavan pinoautomaatin: Q ={q 0, q 1, q acc } Σ ={, ),,,, a, } Γ ={S,, ),,,, a,, } F ={q acc } δ = { q 0, e, e), q 1, S ) ), q 1,, e), q acc, e) ), q 1, e, S), q 1, SS)) ), q1, e, S), q 1, S ) ), q 1, e, S), q 1, S S)) ), q 1, e, S), q 1, ) ), q1, e, S), q 1, a) ), q 1, e, S), q 1, ) ), q1,, ), q 1, e) ), q 1, ), )), q 1, e) ), q 1,, ), q 1, e) ), q1,, ), q 1, e) ), q 1,, ), q 1, e) ), q 1, a, a), q 1, e) ), q1,, ), q 1, e) )} Syntynyt automaatti on muotoa: ε, A/α ε, ε/s ε, /ε q 0 q 1 q acc σ, σ/ε Tarkastellaan, miten automaatti käsittelee syötteen a ): 2

Tila Syöte Pino Sääntö q 0 a ) ε q 1 a ) S 1) q 1 a ) S S) 2) S S S)) q 1 a ) S S) 3) q 1 a ) a S) 2) S a) q 1 ) S) 3) q 1 ) S ) 2) S S ) q 1 ) ) 2) S ) q 1 ) ) 3) q 1 ) ) 3) q 1 ε 3) q acc ε ε 1) Huom. kieli LG) määrittelee kaikki syntaktisesti oikeanmuotoiset aakkoston Σ = {a, } yli muodostetut säännölliset lausekkeet. 6. Tehtävä: Muodosta pinoautomaattia M vastaava kielioppi, missä M = Q, Σ, Γ, δ, s, F ): Q ={s, q, f} Σ ={a, } Γ ={a,, c} F ={f} δ = { s, e, e), q, c) ), q, a, c), q, ac) ), q, a, a), q, aa) ) q, a, ), q, e) ), q,, c), q, c) ), q,, ), q, ) ) q,, a), q, e) ), q, e, c), f, e) )} Vastaus: Tilakaaviona M näyttää seuraavalta: s a, c/ac a, a/aa a, /ε ε, ε/c ε, c/ε q, c/c, /, a/ε f Pinoautomaattia vastaavan yhteydettömän kieliopin selvittäminen on suhteellisen työlästä. Tässä käytetään algoritmia, jotka toimii vain yksinkertaisille pinoautomaateille. Pinoautomaatti on yksinkertainen, mikäli seuraavat ehdot toteutuvat: Jos q, u, β), p, γ) ) on pinoautomaatin siirtymä, niin β 1. Jos q, u, e), p, γ) ) δ, niin myös q, u, A), p, γa) ) δ kaikille A Γ. Rajoitukset eivät kuitenkaan heikennä pinoautomaattien ilmaisuvoimaa, sillä mikä tahansa pinoautomaatti voidaan muuttaa yksinkertaiseksi yksityiskohdat sivuutetaan tässä). Kieliopin muodostamisen ajatuksena on ottaa kielen välikkeiksi kolmikkoja q, A, p, missä q, p Q ja A Γ {ε}. Ajatuksena on, että q, A, p generoi kaikki ne merkkijonot, joita tutkiessaan automaatti siirtyisi tilasta q tilaan p poistaen samalla pinosta symolin A. Kieliopin sääntöjä on neljänlaisia: 3

1. Kaikille f F asetetaan sääntö S s, ε, f. 2. Kaikille siirtymille q, u, A), r, 1 n ) ) δ, missä q, r Q, u Σ, n > 0, A Γ {ε} ja 1 n Γ, lisätään sääntö kaikille p, q 1,..., q n 1 Q. q, A, p u r, 1, q 1 q 1, 2, q 2 q n 1, n, p 3. Kaikille siirtymille q, u, A), r, ε) ) δ, missä q, r Q, u Σ ja A Γ {ε}, lisätään sääntö q, A, p u r, ε, p 4. Kaikille q Q lisätään sääntö q, ε, q ε. Säännöistä ensimmäinen ilmaisee, että tarkoituksena on päästä alkutilasta johonkin lopputilaan niin, että pino jää lopuksi tyhjäksi. Viimeistä muotoa olevat säännöt kertovat, että mitään laskentaa ei tarvita, ellei siirrytä toiseen tilaan. Muotoa 2 olevat säännöt kuvaavat pitkää suoritusta, jolla siirrytään tilasta q tilaan p ja samalla poistetaan A pinosta. Säännön oikea puoli konstruoi automaatin tilasiirtymien jonon siirtymä kerrallaan. Muotoa 3 olevat säännöt ovat analogisia muotoa 2 olevien sääntöjen kanssa. Kielioppi G = V, Σ, P, S), V = Σ {S} { q, A, p q, p Q, A Γ {ε}} P ={S s, e, f, 1.) s, ε, s ε, q, ε, q ε, f, ε, f ε, 4.) s, ε, s ε q, c, s, s, ε, q ε q, c, q, s, ε, f ε q, c, f, q, c, s a q, a, s s, c, s q, c, q a q, a, q q, c, q q, c, f a q, a, f f, c, f q, a, s a q, a, s s, a, s q, a, q a q, a, q q, a, q q, a, f a q, a, f f, a, f q,, s a q, ε, s q,, q a q, ε, q q,, f a q, ε, f q, c, s q,, s s, c, s q, c, q q,, q q, c, q q, c, f q,, f f, c, f q,, s q,, s s,, s q,, s q,, q q,, q q,, s q,, f f,, f q, a, s q, ε, s q, a, q q, ε, q q, a, f q, ε, f q, c, s ε f, ε, s q, c, q ε f, ε, q q, c, f ε f, ε, f 2./tr.1) 2./tr.1) 2./tr.1) 2./tr.2) 2./tr.2) 2./tr.2) 2./tr.3) 2./tr.3) 2./tr.3) 3./tr.4) 3./tr.4) 3./tr.4) 2./tr.5) 2./tr.5) 2./tr.5) 2./tr.6) 2./tr.6) 2./tr.6) 3./tr.7) 3./tr.7) 3./tr.7) 3./tr.8) 3./tr.8) 3./tr.8) 4

Näistä säännöistä suuri osa on tarpeettomia. Tarvittavat saadaan selville lähtemällä liikkeelle säännöstä S s, ε, f, ja katsomalla, mitä kaikkia sääntöjä voidaan käyttää. Tuloksena syntyvät säännöt ovat P = {S s, ε, f s, ε, f q, c, f q, c, f a q, a, q q, c, f q, c, f q,, q q, c, f q, c, f f, ε, f q, a, q a q, a, q q, a, q q, a, q q, ε, q q,, q q,, q q,, q q,, q a q, ε, q q, ε, q ε f, ε, f ε} Kielioppia voi vielä sieventää. Merkitään q, c, f = S, q,, q =, q, a, q = A, ja tulokseksi saadaan Liite: Chomskyn normaalimuoto P = {S aas S ε A aaa, a} Muutetaan viimeisen tehtävän kielioppi Chomskyn normaalimuotoon. Kielioppi on Chomskyn normaalimuodossa, mikäli seuraavat ehdot toteutuvat: 1. Ainoastaan alkuvälike S voi olla tyhjentyvä. 2. Mahdollisesti esiintyvää sääntöä S ε lukuunottamatta kaikki säännöt ovat muotoa A C tai A a, missä A, ja C ovat välikkeitä ja a terminaalisymoli. Kielioppi muutetaan normaalimuotoon vaiheittain: 1. Poistetaan lähtösymoli sääntöjen oikealta puolelta. Koska kieliopissa on säännöt S aas ja S S, lisätään uusi lähtösymoli S ja sääntö S S. Saadaan tulokseksi sääntöjoukko: S S, S aas S ε A aaa, a 2. Poistetaan ε-produktiot. Koska Chomskyn normaalimuodossa ainoastaan lähtösymoli S saa olla tyhjentyvä, täytyy muut ε-säännöt poistaa kieliopista. Lasketaan aluksi tyhjentyvien välikkeiden joukko NULL: NULL 0 ={S} S ε) NULL 1 ={S, S } S S) NULL 2 ={S, S } = NULL 5

Tämän jälkeen korvataan säännöt A X 1 X n joukolla sääntöjä { X i, X i / NULL A α 1 α 2, missä α i = X i tai ε, X i NULL Lopuksi poistetaan kaikki säännöt muotoa A ε lukuunottamatta sääntöä S ε). Saadaan tulokseksi sääntöjoukko 2 : S S ε S aas aa S A aaa, a 3. Poistetaan yksikköproduktiot. Seuraavaksi poistetaan kieliopista kaikki muotoa A olevat säännöt, missä sekä A että ovat välikkeitä. Lasketaan ensin joukot F A) kaikilla A V Σ: F A) = F ) = F S) = F S ) = {S} Välike kuuluu joukkoon F A) täsmälleen silloin, kun A:sta voidaan johtaa käyttäen pelkkiä yksikköproduktioita. Sääntö A korvataan sääntöjoukolla {A w C F ) {} : C w P }. Tulokseksi saadaan sääntöjoukko: S aas aa S ε S aas aa S A aaa, a 4. Poistetaan liian pitkät produktiot. Viimeisessä vaiheessa lisätään kielioppiin uusi välike C σ sekä sääntö C σ σ kaikille σ Σ sekä jaetaan kaikki säännöt A w w > 2) ketjuksi sääntöjä, jotka kaikki johtavat tismalleen kaksi symolia. Annetun kieliopin Chomskyn normaalimuodoksi saadaankin seuraava sääntöjoukko: S C a S 1 C a A C S 2 C ε S 1 AS S 2 S S C a S 1 C a A C S 2 C S 1 AS S 2 S A C a A 1 A 1 AA C a 1 a 1 C a a C 2 Tarkkaan ottaen tässä vaiheessa pitäisi lisätä vielä uusi aloitusvälike S ja säännöt S ε S, mutta tässä tapauksessa ei synny ongelmia, vaikka käytetään S :a lähtösymolina. 6

Liite: CYK-algoritmi CYK-algoritmilla voidaan tutkia kuuluuko sana x = x 1 x n kieliopin G määrittelemään kieleen. Algoritmin kuluessa lasketaan välikejoukot N ik. Joukko N ik käsittää kaikki ne välikkeet, joista voidaan johtaa osajono x i x i+k, eli sanan x kohdasta i alkava k:n merkin mittainen osajono. Joukkojen laskemisessa voidaan käyttää apuna dynaamista ohjelmointia seuraavaan tapaan: Tarkastellaan kielioppia G: N i,1 = {A A x i ) P } k 1 N i,k = {A V Σ G:ssä on sääntö A C, j=1 missä N ij ja C N i+j,k j } S C a D C a A C a E C a A C a D C a A a C a E C D AC E C C a a C Tarkistetaan, kuuluvatko sanat w 1 = aa ja w 2 = aa kieleen LG). Koska w 2 on w 1 :n prefiksi, täytyy taulukko tehdä ainoastaan sanalle w 1. Lasketaan ensin joukot N i1, i 5: i 1 : a 2 : a 3 : 4 : 5 : k 1 aa aa aa aa aa {S, A, C a } {S, A, C a } {S,, C } {S,, C } {S,, C } Kussakin taulukon ruudussa on alleviivattuna ruutua vastaava sanan osajono. Lasketaan seuraavaksi N 12, eli niiden välikkeiden joukko, jolla voidaan johtaa sanan alussa oleva aa. Koska normaalimuotoisessa kieliopissa ei ole yhtään sääntöä, jolla voisi suoraan johtaa useamman kuin yhden terminaalisymolin, voidaan aa saada ainoastaan siten, että johdetaan jostain välikkeestä kaksi a:n tuottavaa välikettä. Käytännössä tämä tapahtuu siten, että etsitään kaikki sellaiset välikkeet X, joille on olemassa sääntö X Y Z, missä Y N 11 ja X N 21. N 11 = {S, A, C a } N 21 = {S, A, C a } N 12 = {S, A}. Tässä käytettiin sääntöjä S C a A ja A C a A. Ruudulle N 22 saadaan vastaavasti: N 21 = {S, A, C a } N 31 = {S,, C } N 22 = {D}. Ainoa ehdot täyttävä sääntö on D AC. Kokonaisuudessaan taulukon toiseksi riviksi muodostuu: i 1 : a 2 : a 3 : 4 : 5 : 1 aa aa aa aa aa {S, A, C a } {S, A, C a } {S,, C } {S,, C } {S,, C } k 2 aa aa aa aa {S, A} {D} {S,, E} {S,, E} 7

Ruudun N 13 kohdalla huomataan, että sanan kolme ensimmäistä merkkiä aa) voidaan johtaa kahdella eri tavalla: 1. johdetaan a välikkeellä X N 11 ja a välikkeellä Y N 22 ; tai 2. johdetaan aa välikkeellä X N 12 ja välikkeellä Y N 31. Vastaavat joukot ovat: j = 1 N 11 = {S, A, C a } j = 2 N 12 = {S, A} N 22 = {D} N 31 = {S,, C } Tapausta j = 1 vastaava välikejoukko on {S, A} S C a D, A C a D) ja tapausta j = 2 vastaava on {D} D AC ), joten N 13 = {S, A, D}. Samaan tapaan jatkamalla saadaan lopulta koko taulukoksi: i 1 : a 2 : a 3 : 4 : 5 : 1 aa aa aa aa aa {S, A, C a } {S, A, C a } {S,, C } {S,, C } {S,, C } 2 aa aa aa aa {S, A} {D} {S,, E} {S,, E} k 3 aa aa aa {A, S, D} {S, } {S,, E} 4 aa aa {S,, E} 5 aa {S, } Viimeisessä vaiheessa täytyi käydä läpi neljä eri kominaatiota: N 11, N 24 ), N 12, N 33 ), N 13, N 42 ) sekä N 14, N 51 ). Koska S N 15, niin aa LG). Toisaalta, koska S / N 1,4, niin aa / LG). Taulukosta voidaan konstruoida suoraan sanan w 1 jäsennyspuu käymällä se läpi takaperin: S saadaan ruutuun N 15 ruuduista N 11 ja N 24 käyttäen välikkeitä C a ja E, joten ensimmäisenä käytetään sääntöä S C a E. Ylläolevassa taulukossa on sanan w 1 johdossa käytetyt välikkeet alleviivattu. Kokonaisuudessaan jäsennyspuu on seuraavanlainen: S C a E a C C a E a C 8