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



Samankaltaiset tiedostot
S BAB ABA A aas bba B bbs c

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

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

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

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

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

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

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

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

ICS-C2000 Tietojenkäsittelyteoria

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

Kertausta 1. kurssikokeeseen

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

Yhteydettömän kieliopin jäsennysongelma

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

Yhteydettömät kieliopit [Sipser luku 2.1]

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

2. Yhteydettömät kielet

Rajoittamattomat kieliopit

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

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

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

5.3 Ratkeavia ongelmia

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

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

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

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

Täydentäviä muistiinpanoja jäsennysalgoritmeista

Säännöllisten kielten sulkeumaominaisuudet

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Muodolliset kieliopit

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

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

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

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

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Miten osoitetaan joukot samoiksi?

Ratkaisu: a) Kahden joukon yhdisteseen poimitaan kaikki alkiot jotka ovat jommassakummassa joukossa (eikä mitään muuta).

Täydentäviä muistiinpanoja laskennan rajoista

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

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset

11.4. Context-free kielet 1 / 17

Automaatit. Muodolliset kielet

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

Algoritmin määritelmä [Sipser luku 3.3]

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

Datatähti 2019 loppu

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

BM20A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 4, Syksy 2016

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

Säännöllisen kielen tunnistavat Turingin koneet

Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus

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

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

Johdatus matemaattiseen päättelyyn

1 Lukujen jaollisuudesta

Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma

Taulumenetelmä modaalilogiikalle K

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

Tehtävä 2: Säännölliset lausekkeet

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

Attribuuttikieliopit

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

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

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

(2n 1) = n 2

Lisää pysähtymisaiheisia ongelmia

Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Tietotekniikan valintakoe

Formalisoimme nyt edellä kuvatun laskennan.

Transkriptio:

T-79.1001 Syksy 2006 Tietojenkäsittelyteorian perusteet T Harjoitus 7 Demonstraatiotehtävien ratkaisut Lemma (Säännöllisten kielten pumppauslemma). Olkoon A säännöllinen kieli. Tällöin on olemassa n 1 siten, että kaikki A:n merkkijonot x, joiden pituus x n ovat ilmaistavissa muodossa x = uvw, missä uv n, v 1 ja merkkijonot muotoa uv i w kuuluvat kieleen A kaikilla i 0. Kompaktimmin, painottaen pumppauslemman asettamia vaatimuksia, voimme kirjoittaa seuraavasti: säännöllisille kielille A n 1 s.e. x A : x n osiinjako x = uvw, missä uv n ja v 1 i 0 uv i w A. Pumppauslemmaa voidaan käyttää hyväksi, kun halutaan osoittaa kieli L ei-säännölliseksi. Tehdään ensin vastaoletus, eli oletetaan L säännölliseksi kieleksi. Tavoitteena on päästä ristiriitaan tämän oletuksen kanssa seuraten pumppauslemman asettamia vaatimuksia säännöllisille kielille. Pumppauslemmaa käytettäessä täytyy aina muistaa, että sillä voi osoittaa vain kielen epäsäännöllisyyden, ja sitä ei voi käyttää toiseen suuntaan. Esimerkiksi kieli I = {c i a n n i > 0 n 0} L(a ) ei ole säännöllinen, mutta kaikki siihen kuuluvat sanat (tyhjää sanaa lukuunottamatta) voidaan osittaa pumppauslemman ehtojen mukaisesti. Näin ollen kieltä I ei voida suoraan todistaa epäsäännölliseksi, vaan todistuksessa täytyy käyttää apuna säännöllisten kielten sulkeumaominaisuuksia. Jos halutaan osoittaa kieli säännölliseksi, voidaan muodostaa sen hyväksyvä äärellinen automaatti, sillä pätee: Kieli L on säännöllinen on olemassa äärellinen automaatti M, joka hyväksyy kielen L (merkitään L(M) = L). 4. Tehtävä: Hahmolausekkeet ovat esimerkiksi UN*X-järjestelmien tekstityökaluissa käytetty säännöllisten lausekkeiden yleistys, jossa sallitaan merkkijonoarvoisten muuttujien käyttö lausekkeissa. Sovitettaessa merkkijonoa annettuun lausekkeeseen vaaditaan, että tietynnimisen muuttujan arvoksi tulee eri kohdissa sama osamerkkijono. Siten esimerkiksi ax Xa ja ax(a ) Y X(a ) Y a ovat aakkkoston {a, } hahmolausekkeita, joista ensimmäinen kuvaa kielen {aw n wa w {a, }, n 0}. Osoita, että hahmolausekkeet ovat säännöllisten lausekkeiden aito yleistys, so. niillä voidaan kuvata myös joitakin eisäännöllisiä kieliä. Vastaus: Osoittaaksemme, että tehtävän hahmolausekkeet on säännöllisten lausekkeiden aito yleistys, tulee meidän löytää hahmolauseke, jonka määrittämä kieli ei ole säännöllinen. Tarkastellaan hahmolauseketta XX vastaavaa kieltä L = {zz z = {a, } }. Oletetaan, että L on säännöllinen. Valitaan x = a p a p L, missä n on pumppauslemmassa esiintyvä kielestä L riippuva kokonaisluku. Nyt x = 2n + 2 > n. Pumppauslemman mukaan voidaan kirjoittaa x = uvw, missä uv n ja v 1. Siis u = a n v k, v = a v ja w = a k a n, missä 0 k < n. Nyt pumppauslemman mukaan kaikille i 0 tulisi päteä uv i w L. Kuitenkin uv 0 w = uw = a n v a n L, sillä se ei ole muotoa zz, koska vaadittiin v 1. Päädyttiin siis ristiriitaan oletuksen kanssa. L ei näin ollen voi olla säännöllinen. Löydettiin siis ei-säännöllinen kieli, joka voidaan kuvata hahmolausekkeella. Näin ollen hahmolausekkeet ovat säännöllisten lausekkeiden aito yleistys. 1

5. Tehtävä: Osoita, että kieli {w {a, } w:ssä on yhtä monta a:ta ja :tä} ei ole säännöllinen, ja laadi yhteydetön kielioppi sen kuvaamiseen. Vastaus: Kielen L = {w {a, } w:ssä on yhtä monta a:ta ja :tä} voi todistaa eisäännölliseksi suoraan pumppauslemmalla. Tässä esitetään kuitenkin hieman monimutkaisempi ratkaisu esimerkkinä siitä, miten hankalia kieliä voidaan käsitellä. Määritellään kieli L = L L(a ). Oletetaan, että L on säännöllinen. Koska L(a ) on säännöllinen ja säännöllisten kielten joukko on suljettu leikkauksen suhteen, täytyy myös L :n olla säännöllinen. (Toisinpäin ehto ei päde: L voi olla säännöllinen vaikka L ei olisi, sillä esim. A = kaikille kielille A). Huomataan, että L = {a k k k 0}. Tarkastellaan sanaa w = a n n, missä n on pumppauslemmassa esiintyvä parametri. Yritetään osittaa w lemman ehtojen mukaisesti. Koska xy n, osituksen täytyy olla muotoa; x = a n i k y = a i z = a k n, missä 0 < i n ja i+k n. Nyt xz = a n i n, joten xz / L. Näin ollen sanaa w ei voida pumpata, eikä L ole säännöllinen, joten myöskään L ei ole säännöllinen. Alla kielen L kuvaava yhteydetön kielioppi G: S ass SaS ε 6. 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?generatesnonemptylanguage(g) ottaa syötteenä yhteydettömän kieliopin G, ja palauttaa arvon true, jos G:n generoima kieli ei ole tyhjä.?generatesnonemptylanguage(g = (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 L(G), 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, 1 Vertaa yhteydettömien kielten pumppauslemmaan. 2

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, S} (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: S A c c c Liite: Chomskyn normaalimuoto Muutetaan esimerkin vuoksi seuraava kielioppi Chomskyn normaalimuotoon: P = {S aas S ε A aaa, a} Kielioppi on Chomskyn normaalimuodossa, mikäli seuraavat ehdot toteutuvat: (a) Ainoastaan alkuvälike S voi olla tyhjentyvä. () Alkuvälike S ei esiinny säännöissä oikealla puolella. (c) 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: (a) 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 3

() 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 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 (c) 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 (d) 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. 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. 4

Annetun kieliopin Chomskyn normaalimuodoksi saadaankin seuraava sääntöjoukko: Liite: CYK-algoritmi S C a S 1 C aa 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 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 L(G). 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 sitä 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 5

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} Ruudun N 13 kohdalla huomataan, että sanan kolme ensimmäistä merkkiä (aa) voidaan johtaa kahdella eri tavalla: (a) johdetaan a välikkeellä X N 11 ja a välikkeellä Y N 22 ; tai () 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 L(G). Toisaalta, koska S / N 1,4, niin aa / L(G). 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: 6

S C a E a C C a E a C 7