Mutta esimerkiksi 0-kertaisesti pumpattaessa: Siten L ei voi olla säännöllinen.

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

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

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

ICS-C2000 Tietojenkäsittelyteoria

2.5 Säännöllisten kielten rajoituksista

2.6 SÄÄNNÖLLISET LAUSEKKEET Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:

T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 5 Demonstraatiotehtävien ratkaisut. ja kaikki a Σ ovat säännöllisiä lausekkeita.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

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

Laskennan perusmallit 2013: Kertausta

Yhteydettömät kieliopit [Sipser luku 2.1]

T /1002 Tietojenkäsittelyteorian perusteet T/Y

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

T /1002 Tietojenkäsittelyteorian perusteet T/Y

Rajoittamattomat kieliopit

Laskennan mallit (syksy 2010) 1. kurssikoe, ratkaisuja

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

2. Yhteydettömät kielet

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

Kieli, merkitys ja logiikka, kevät 2011 HY, Kognitiotiede. Vastaukset 2.

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

Kuvausta f sanotaan tällöin isomorfismiksi.

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

Olkoon. M = (Q, Σ, δ, q 0, F)

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

2.2 Automaattien minimointi

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

Olkoon. äärellinen automaatti. Laajennetaan M:n siirtymäfunktio yksittäisistä syötemerkeistä merkkijonoihin: jos q Q, x Σ, merkitään

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

T /2 Tietojenkäsittelyteorian perusteet T/Y

Automaatin tunnistama kieli on sen hyväksymien merkkijonojen joukko. Täsmällinen muotoilu: δ,q 0,{q 2,q 3,q 6 }), missä

II.1. Suppeneminen., kun x > 0. Tavallinen lasku

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

Chomskyn hierarkia ja yhteysherkät kieliopit

TAMPEREEN YLIOPISTO Valinnaisten opintojen syventäviin opintoihin kuuluva tutkielma. Lauri Kumpulainen. Büchin automaateista

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

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

ICS-C2000 Tietojenkäsittelyteoria

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

S BAB ABA A aas bba B bbs c

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Ristitulo ja skalaarikolmitulo

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

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

Yhteydettömän kieliopin jäsennysongelma

Täydentäviä muistiinpanoja jäsennysalgoritmeista

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali

5 Epäoleellinen integraali

Q = {q 1, q 2, q 3, q 4 } Σ = {a, b} F = {q 4 },

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

MS-A010{2,3,4,5} (SCI, ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali

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

8. Kieliopit ja kielet

Riemannin integraalista

3 Integraali ja derivaatta

Reaalinen lukualue. Millainen on luku, jossa on päättymätön ja jaksoton desimaalikehitelmä?

Neliömatriisin A determinantti on luku, jota merkitään det(a) tai A. Se lasketaan seuraavasti: determinantti on

2. Laadi regexp, jonka avulla egrep-ohjelma löytää tekstitiedostosta kaikki

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Riemannin integraali

4 DETERMINANTTI JA KÄÄNTEISMATRIISI

7 Funktiosarjoista. 7.1 Funktiosarjojen suppeneminen

Rajoittamattomat kieliopit (Unrestricted Grammars)

Sinilause ja kosinilause

ANALYYSI I, kevät 2009

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (Predikaattilogiikka )

Pinoautomaatit. Pois kontekstittomuudesta

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

a = x 0 < x 1 < x 2 < < x n = b f(x) dx = I. lim f(x k ) x k=1

Matematiikan johdantokurssi, syksy 2017 Harjoitus 6, ratkaisuista. 1. Onko jokin demojen 5 tehtävän 3 relaatioista

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

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

Syksyn 2015 Pitkän matematiikan YO-kokeen TI-Nspire CAS -ratkaisut

Kertymäfunktio. Kertymäfunktio. Kertymäfunktio: Mitä opimme? 2/2. Kertymäfunktio: Mitä opimme? 1/2. Kertymäfunktio: Esitiedot

SARJAT JA DIFFERENTIAALIYHTÄLÖT Funktiojonot 1

6.2 Algoritmin määritelmä

Aiheet. ICS-C2000 Tietojenkäsittelyteoria M := Äärelliset automaatit vs. säännölliset lausekkeet. Äärelliset automaatit

Säännöllisten kielten sulkeumaominaisuudet

Numeeriset menetelmät TIEA381. Luento 9. Kirsi Valjus. Jyväskylän yliopisto. Luento 9 () Numeeriset menetelmät / 29

5 Kontekstittomat kielet ja pinoautomaatit

2.4 Pienimmän neliösumman menetelmä

Käydään läpi: ääriarvo tarkastelua, L Hospital, integraalia ja sarjoja.

OSA 1: POLYNOMILASKENNAN KERTAUSTA, BINOMIN LASKUSÄÄNTÖJÄ JA YHTÄLÖNRATKAISUA

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

Esimerkki 8.1 Määritellään operaattori A = x + d/dx. Laske Af, kun f = asin(bx). Tässä a ja b ovat vakioita.

TEHTÄVÄ 1. Olkoon (f n ) jono jatkuvia funktioita f n : [a, b] R, joka suppenee välillä [a, b] tasaisesti kohti funktiota f : [a, b] R.

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

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

MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 7: Integraali ja analyysin peruslause

Pythagoraan lause. Pythagoras Samoslainen. Pythagoraan lause

ANALYYSI I, kevät 2009

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

Transkriptio:

2.8 Säännöllisten kielten rjoituksist Krdinliteettisyistä on oltv olemss (pljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituv määrä, säännöllisiä lusekkeit vin numeroituvsti. Voidnko löytää konkreettinen, mielenkiintoinen esimerkki kielestä, jok ei olisi säännöllinen? Helposti. Säännöllisten kielten perusrjoitus: äärellisillä utomteill on vin rjllinen muisti. Siten ne eivät pysty rtkisemn ongelmi, joiss vditn mielivltisen suurten lukujen trkk muistmist. simerkki: sulkulusekekieli L mtch = {( k ) k k 0}. Formlisointi: pumppuslemm. Lemm 2.6 (Pumppuslemm) Olkoon A säännöllinen kieli. Tällöin on olemss sellinen n 1, että mikä thns x A, x n, voidn jk osiin x = uvw siten, että uv n, v 1, j uv i w A kikill i = 0,1,2,... Todistus. Olkoon M jokin A:n tunnistv deterministinen äärellinen utomtti, j olkoon n M:n tilojen määrä. Trkstelln M:n läpikäymiä tiloj syötteellä x A, x n. Kosk M jokisell x:n merkillä siirtyy tilst toiseen, sen täytyy kulke jonkin tiln kutt (inkin) kksi kert itse siss jo x:n n:n ensimmäisen merkin ikn. Olkoon q ensimmäinen toistettu til. Olkoon u M:n käsittelemä x:n lkuos sen tulless ensimmäisen kerrn tiln q, v se os v x:stä jonk M käsittelee ennen ensimmäistä u q w pluutn q:hun, j w loput x:stä. Tällöin on uv n, v 1, j uv i w A kikill i = 0,1,2,... simerkki. Trkstelln em. sulkulusekekieltä (merk. ( =, ) = b): L = L mtch = { k b k k 0}. Oletetn, että L olisi säännöllinen. Tällöin pitäisi pumppuslemmn mukn oll jokin n 1, jot pitempiä L:n merkkijonoj voidn pumpt. Vlitn x = n b n, jolloin x = 2n > n. Lemmn mukn x voidn jk pumpttvksi osiin x = uvw, uv n, v 1; siis on oltv u = i, v = j, w = n (i+j) b n, i n 1, j 1. Mutt esimerkiksi 0-kertisesti pumpttess: v uv 0 w = i n (i+j) b n = n j b n L. u q w Siten L ei voi oll säännöllinen.

3. KILIOPIT JA MRKKIJONOJN TUOTTAMINN Kielioppi = muunnossysteemi merkkijonojen (kielen snojen ) tuottmiseen tietystä lähtöjonost lken, osjonoj toistuvsti nnettujen sääntöjen mukn uudelleenkirjoittmll. Kielioppi on yhteydetön, jos kusskin uudelleenkirjoitusskeless korvtn yksi erityinen muuttujt. välikesymboli jollkin siihen liitetyllä korvusjonoll, j korvus voidn in tehdä symboli ympäröivän merkkijonon rkenteest riippumtt. Sovelluksi: rkenteisten tekstien kuvminen (esim. ohjelmointikielten BNF-syntksikuvukset, XML:n DTD/Schem-määrittelyt), yleisemmin rkenteisten olioiden kuvminen (esim. syntktinen hhmontunnistus). Yhteydettömillä kieliopeill voidn kuvt (tuott) myös ei-säännöllisiä kieliä. simerkki: yhteydetön kielioppi kielelle L mtch (lähtösymboli S): (i) S ε, (ii) S (S). simerkiksi merkkijonon ((())) tuottminen: S (S) ((S)) (((S))) (((ε))) = ((())). Toinen esimerkki: kielioppi C-tyyppisen ohjelmointikielen ritmeettisille lusekkeille (yksinkertistettu). T + T T F T F F (). simerkiksi lusekkeen ( + ) tuottminen: T T F F F () F ( + T) F (T + T) F (F + T) F (+T) F (+F) F (+) F (+). Määritelmä 3.1 Yhteydetön kielioppi on nelikko missä V on kieliopin kkosto; = (V,Σ,P,S), Σ V on kieliopin päätemerkkien joukko; sen komplementti N = V Σ on kieliopin välikemerkkien t. -symbolien joukko; P N V on kieliopin sääntöjen t. produktioiden joukko; S N on kieliopin lähtösymboli. Produktiot (A, ω) P merkitään tvllisesti A ω.

Merkkijono γ V tuott t. joht suorn merkkijonon γ V kieliopiss, merkitään γ jos voidn kirjoitt γ = αaβ, γ = αωβ (α,β,ω V, A N), j kieliopiss on produktio A ω. Jos kielioppi on yhteydestä selvä, voidn merkitä γ. Merkkijono γ V tuott t. joht merkkijonon γ V kieliopiss, merkitään γ jos on olemss jono V:n merkkijonoj γ 0,γ 1,...,γ n (n 0), siten että γ = γ 0 γ 1... γ n = γ. rikoistpuksen n = 0 sdn γ millä thns γ V. Jälleen, jos on yhteydestä selvä, voidn merkitä γ. Merkkijono γ V on kieliopin lusejohdos, jos on S γ. Pelkästään päätemerkeistä koostuv :n lusejohdos x Σ on :n luse. Kieliopin tuottm t. kuvm kieli koostuu :n luseist: L() = {x Σ S x}. Formli kieli L Σ on yhteydetön, jos se voidn tuott jollkin yhteydettömällä kieliopill. simerkiksi tspinoisten sulkujonojen muodostmn kielen L mtch = {( k ) k k 0} tuott kielioppi mtch = ({S,(,)},{(,)},{S ε,s (S)},S). Toinen kielioppi kielen L expr tuottmiseen on expr = (V,Σ,P,), Yksinkertisten ritmeettisten lusekkeiden muodostmn kielen L expr tuott kielioppi missä expr = (V,Σ,P,), missä V = {,,+,,(,)}, Σ = {,+,,(,)}, P = { +,,, ()}. V = {,T,F,,+,,(,)}, Σ = {,+,,(,)}, P = { T, + T, T F, T T F, F, F ()}. Huom: Vikk kielioppi expr näyttää yksinkertisemmlt kuin kielioppi expr, sen ongelmn on ns. rkenteellinen moniselitteisyys, mikä on monesti ei-toivottu ominisuus.

Vkiintuneit merkintätpoj Välikesymboleit: A,B,C,...,S,T. Päätemerkkejä: kirjimet,b,c,...,s,t; numerot 0,1,...,9; erikoismerkit; lihvoidut ti lleviivtut vrtut snt (if, for, end,... ). Mielivltisi merkkejä (kun välikkeitä j päätteitä ei erotell): X,Y,Z. Päätemerkkijonoj: u,v,w,x,y,z. Sekmerkkijonoj: α,β,γ,...,ω. Produktiot, joill on yhteinen vsen puoli A, voidn kirjoitt yhteen: joukon sijn kirjoitetn A ω 1, A ω 2,...A ω k A ω 1 ω 2... ω k. Kielioppi esitetään usein pelkkänä sääntöjoukkon: A 1 ω 11... ω 1k1 A 2 ω 21... ω 2k2. A m ω m1... ω mkm. Tällöin päätellään välikesymbolit edellisten merkintäsopimusten mukn ti siitä, että ne esiintyvät sääntöjen vsempin puolin; muut esiintyvät merkit ovt päätemerkkejä. Lähtösymboli on tällöin ensimmäisen säännön vsempn puolen esiintyvä välike; tässä siis A 1. räitä konstruktioit Olkoon L(T) välikkeestä T johdettviss olevien päätejonojen joukko. Olkoon nnettu produktiokokoelm P, joss ei esiinny välikettä A, j joll B:stä voidn joht L(B) j vstvsti C:stä L(C). Lisäämällä P:hen jokin seurvist produktioist sdn uusi kieliä: produktio A B C A BC A AB ε (vsen rekursio) ti A BA ε (oike rekursio) kieli yhdiste L(A) = L(B) L(C) ktentio L(A) = L(B)L(C), j Kleenen sulkeum L(A) = L(B) Välikkeiden keskeisupotus on yhteydettömille kieliopeille omininen konstruktio, jok tekee usein (muttei in) kielestä epäsäännöllisen: lisäämällä produktio A BAC ε sdn L(A) = [ L(B) i L(C) i. i=0

3.3 KILIOPPIN JÄSNNYSONLMA Rtkistv tehtävä: Annettu yhteydetön kielioppi j merkkijono x. Onko x L()? Rtkisumenetelmä = jäsennyslgoritmi. Useit vihtoehtoisi menetelmiä, erityisesti kun on jotin rjoitettu (käytännössä esiintyvää) muoto. Johdot j jäsennyspuut Olkoon γ V kieliopin = (V,Σ,P,S) lusejohdos. Lähtösymbolist S merkkijonoon γ johtv suorien johtojen jono snotn γ:n johdoksi :ssä. S = γ 0 γ 1 γ n = γ Johdon pituus on siihen kuuluvien suorien johtojen määrä (edellä n). simerkki: luseen + johtoj kieliopiss expr : (i) + T T + T F + T +T +F + (ii) + T + F T + F F + F F + + (iii) + T + F + T + F + +. Johto γ on vsen johto, merkitään γ, lm jos kusskin johtoskeless on produktiot sovellettu merkkijonon vsemmnpuoleisimpn välikkeeseen (edellä johto (i)). Vstvsti määritellään oike johto (edellä (iii)), jot merkitään γ rm Suori vsempi j oikeit johtoskeli merkitään γ j lm γ. rm Olkoon = (V,Σ,P,S) yhteydetön kielioppi. Kieliopin mukinen jäsennyspuu on järjestetty puu, joll on seurvt ominisuudet: (i) puun solmut on nimetty joukon V {ε} lkioill siten, että sisäsolmujen nimet ovt välikkeitä (so. joukost N = V Σ) j juurisolmun nimenä on lähtösymboli S; (ii) jos A on puun jonkin sisäsolmun nimi, j X 1,...,X k ovt sen jälkeläisten nimet järjestyksessä, niin A X 1...X k on :n produktio. Jäsennyspuun τ tuotos on merkkijono, jok sdn liittämällä yhteen sen lehtisolmujen nimet esijärjestyksessä ( vsemmlt oikelle ).

simerkki. Luseen + jäsennyspuu kieliopiss expr : Luseen johto: T F + + T T + T F + T +T +F + T F Johto S = γ 0 γ 1 γ n = γ vstvn jäsennyspuun muodostminen: (i) puun juuren nimeksi tulee S; jos n = 0, niin puuss ei ole muit solmuj; muuten (ii) jos ensimmäisessä johtoskeless on sovellettu produktiot S X 1 X 2...X k, niin juurelle tulee k jälkeläissolmu, joiden nimet vsemmlt oikelle ovt X 1,X 2,...,X k ; (iii) jos seurvss skeless on sovellettu produktiot X i Y 1 Y 2...Y l, niin juuren i:nnelle jälkeläissolmulle tulee l jälkeläistä, joiden nimet vsemmlt oikelle ovt Y 1,Y 2,...,Y l ; j niin edelleen. Konstruktiost huomtn, että jos τ on jotkin johto S γ vstv jäsennyspuu, niin τ:n tuotos on γ. Olkoon τ kieliopin mukinen jäsennyspuu, jonk tuotos on päätemerkkijono x. Tällöin τ:st sdn vsen johto x:lle käymällä puun solmut läpi esijärjestyksessä ( ylhäältä ls, vsemmlt oikelle ) j lventmll vstn tulevt välikkeet järjestyksessä puun osoittmll tvll. Oike johto sdn käymällä puu läpi käänteisessä esijärjestyksessä ( ylhäältä ls, oikelt vsemmlle ). Muodostmll nnetust vsemmst johdost S x ensin lm jäsennyspuu edellä esitetyllä tvll, j sitten jäsennyspuust vsen johto, sdn tkisin lkuperäinen johto; vstv tulos pätee myös oikeille johdoille. simerkki. Luseen + vsemmn johdon muodostminen jäsennyspuust. Jäsennyspuu: 1 2 + T 1 T 2 F 2 F 1 2 Solmut esijärjestyksessä: 1 2 T 2 F 1 1 + T 1 F 2 2 Vsen johto: lm + T lm T + T lm F + T lm +T lm +F lm + 1

Luse 3.3 Olkoon = (V,Σ,P,S) yhteydetön kielioppi. Tällöin: (i) jokisell :n lusejohdoksell γ on :n mukinen jäsennyspuu τ, jonk tuotos on γ; (ii) jokist :n mukist jäsennyspuut τ, jonk tuotos on päätemerkkijono x, vstvt yksikäsitteiset vsen j oike johto S x j S x. lm rm Seurus 3.4 Jokisell :n luseell on vsen j oike johto. Siis: yhteydettömän kieliopin tuottmien luseiden jäsennyspuut, vsemmt j oiket johdot vstvt yksikäsitteisesti toisin. Jäsennysongelmn rtkisuun ktsotn usein kuuluvn pelkän päätösongelmn Onko x L()? rtkisemisen lisäksi jonkin näistä jäsennysesityksistä tuottminen. Kieliopin moniselitteisyys Luseell voi oll kieliopiss useit jäsennyksiä. simerkki. Trkstelln yksinkertisten ritmeettisten lusekkeiden kielioppi: expr = { +,,, ()}. Luseell + on tässä kieliopiss kksi jäsennystä: + Yhteydetön kielioppi on moniselitteinen, jos jollkin :n luseell x on kksi erilist :n mukist jäsennyspuut. Muuten kielioppi on yksiselitteinen. + Moniselitteisyys on tietojenkäsittelysovelluksiss yleensä ei-toivottu ominisuus, kosk se merkitsee että nnetull luseell on kksi vihtoehtoist tulkint. Yhteydetön kieli, jonk tuottvt kieliopit ovt kikki moniselitteisiä, on luonnostn moniselitteinen. simerkiksi kielioppi expr on moniselitteinen, kieliopit expr j mtch yksiselitteisiä. Kieli L expr = L( expr) ei ole luonnostn moniselitteinen, kosk sillä on myös yksiselitteinen kielioppi expr. Luonnostn moniselitteinen on esimerkiksi kieli (Todistus sivuutetn.) { i b j c k i = j ti j = k}.