2.5 Säännöllisten kielten rajoituksista

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

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

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

Laskennan perusmallit 2013: Kertausta

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

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

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

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

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

2.2 Automaattien minimointi

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

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

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

Laskennan mallit (syksy 2010) 1. kurssikoe, ratkaisuja

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2015

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

ICS-C2000 Tietojenkäsittelyteoria

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

Rajoittamattomat kieliopit

Pinoautomaatit. Pois kontekstittomuudesta

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

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

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

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

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

Kuvausta f sanotaan tällöin isomorfismiksi.

6.2 Algoritmin määritelmä

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

2. Yhteydettömät kielet

Riemannin integraali

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

Yhteydettömät kieliopit [Sipser luku 2.1]

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Täydentäviä muistiinpanoja epädeterministisistä äärellisistä automaateista

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

T /1002 Tietojenkäsittelyteorian perusteet T/Y

T /1002 Tietojenkäsittelyteorian perusteet T/Y

T /2 Tietojenkäsittelyteorian perusteet T/Y

Yhteydettömän kieliopin jäsennysongelma

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013

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

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

5 Epäoleellinen integraali

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

Riemannin integraalista

7 Funktiosarjoista. 7.1 Funktiosarjojen suppeneminen

Riemannin integraalista

S BAB ABA A aas bba B bbs c

Automaatit. Muodolliset kielet

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

Havaitaan: muuttujan NykyisetTilat arvot kuuluvat potenssijoukkoon P(Q).

Chomskyn hierarkia ja yhteysherkät kieliopit

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

Q on automaatin tilojen äärellinen joukko; Σ on automaatin syöteaakkosto; δ : Q Σ Q on automaatin siirtymäfunktio; q 0 Q on automaatin alkutila;

Laskennan perusmallit (LAP)

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

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

2.1 Vaillinaiset yhtälöt

LINSSI- JA PEILITYÖ TEORIAA. I Geometrisen optiikan perusaksioomat

6 Integraalilaskentaa

AUTOMAATTIEN SYNKRONISAATIOSTA

5.3 Ratkeavia ongelmia

Kertausta: kielet ja automaatit. ICS-C2000 Tietojenkäsittelyteoria. Alue ja aiheet. Äärelliset automaatit

Laskennan perusmallit (LAP)

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

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

2.4 Pienimmän neliösumman menetelmä

Arvostelu OHJ Johdatus tietojenkäsittelyteoriaan syksy op. Viikkoharjoitukset. Materiaali. Kurssista voi selvitä parhaalla mahdollisella

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

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

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

x k 1 Riemannin summien käyttö integraalin approksimointiin ei ole erityisen tehokasta; jatkuvasti derivoituvalle funktiolle f virhe b

Ristitulo ja skalaarikolmitulo

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

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

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

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

Matematiikan tukikurssi

Säännöllisestä lausekkeesta deterministiseksi tilakoneeksi: esimerkki

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

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

Laskennan perusmallit (LAP)

4 DETERMINANTTI JA KÄÄNTEISMATRIISI

Säännöllisten kielten sulkeumaominaisuudet

LAP: Laskennan perusmallit

Transkriptio:

68 2.5 Säännöllisten kielten rjoituksist Minkä thns kkoston formlej kieliä (= päätösongelmi, tunnistusongelmi) on ylinumeroituv määrä kun ts säännöllisiä lusekkeit (= merkkijonoj) on numeroituv määrä Näin ollen kikki kielet eivät voi oll säännöllisiä Onko olemss intuitiivist esimerkkiä kielestä, jok ei ole säännöllinen? Tspinoisten sulkujonojen kieli L sulut = { ( k ) k k 0 } 69 Luse 1.70 (Pumppuslemm) Olk. A säännöllinen kieli. Tällöin on olemss p 1s.e. mikä thns w A, w p, voidn jk osiin w = x y z s.e. x y p, y 1j x y i z A i = 0, 1, 2, Todistus. Olk. M= (Q,,,q 0,F)jokin A:n tunnistv deterministinen äärellinen utomtti s.e. Q = p. Automtin tunnistess merkkijono w A, w p, sen täytyy kulke w:n p:tä ensimmäistä merkkiä käsitellessään jonkin tiln kutt vähintään kksi kert. Olkoon q ensimmäinen sellinen til. 1

70 Vlitn x on M:n käsittelemä w:n lkuos sen tulless q:hun ensimmäisen kerrn, y on se os w:n loppuosst, jonk M käsittelee ennen seurv pluutn tiln q j z on loput merkkijonost w. Selvästi x y p, y 1j x y i z A kikill i = 0, 1, 2, x q y z Huomio: Pumppuslemm ei sno, että voisimme vlit x:n j y:n hlumllmme tvll. 71 simerkki Oletetn, että L sulut olisi säännöllinen. Pumppuslemmn mukn on tällöin olemss jokin p, jot pidempiä merkkijonoj voidn pumpt. Vlitn w = ( p ) p, jolloin w = 2p > p. Lemmn perusteell w voidn jk pumpttvksi osiin w = xyz s.e. xy p j y 1. On siis oltv x = ( i i p-1, y = ( j j 1j z = ( p-(i+j) ) p. Oletuksen perusteell xy k z L sulut kikill k = 0, 1, 2,, mutt esim. xy 0 z = xz = ( i ( p-(i+j) ) p = ( p-j ) p L sulut, sillä p-j p kosk j 1. Siten L sulut ei voi oll säännöllinen 2

72 3. Kontekstittomt kielet Tspinoisten sulkumerkkijonojen kieli ei ole säännöllinen Toislt se on kuvttviss seurvin muunnossäännöin 1.S j 2.S (S) Nämä produktiosäännöt tuottvt kielen L sulut merkkijonot symbolist S S ² (S) ² ((S)) ² (((S))) ¹ ((( ))) = ((( ))) 73 Kuvttv merkkijono tuotetn korvmll välikesymboleit yksi kerrlln nnettujen sääntöjen mukn Symboli ympäröivän merkkijonon rkenne ei määrää käytettyä muunnossääntöä kontekstiton kielioppi Usein käytetään lyhennysmerkintää A w 1 w k kuvmn välikesymboliin A liittyviävihtoehtoisi sääntöjä A w 1,, A w k S (S) 3

74 Yksinkertiset ritmeettiset lusekkeet ( = expression, T = term j F = fctor) + T T T T F F F () Lusekkeen ( + ()) tuottminen T T F F F () F ( + T) F (T + T) F (F + T) F ( + T) F ( + F) F ( + ()) F ( + (T)) F ( + (F)) F ( + ()) F ( + ()) 75 Määritelmä Kontekstiton kielioppi on nelikko G = (V,, R, S), missä V on kieliopin muuttujien eli välikemerkkien joukko, on kieliopin päätemerkkien joukko, se on pisteviers V:n knss, V on G:n kkosto, R V (V )* on kieliopin sääntöjen joukko j S V on kieliopin lähtösymboli (A, w) R merk. A w 4

76 Olk. G = (V,, R, S) j merkkijonot u, v, w (V )* j A w produktio R:ssä uav tuott suorn merkkijonon uwv kieliopiss G, uav G uwv Merkkijono u tuott merkkijonon v kieliopiss G, u G v, jos on olemss jono u 1, u 2,, u k (V )* (k 0)s.e. u G u 1 G u 2 G G u k G v k = 0: u G u millä thns u (V )* 77 u (V )* on G:n lusejohdos, jos S G u Pelkistä päätemerkeistä koostuv lusejohdos w * on G:n luse G:n tuottm kieli koostuu luseist L(G) = { w * S G w } Formli kieli L * on kontekstiton, jos se voidn tuott kontekstittomll kieliopill 5

78 Kontekstiton kielioppi on oikelle linerinen, jos kikki sen produktiot ovt muoto A ti A B Luse Jokinen säännöllinen kieli voidn tuott oikelle linerisell kontekstittomll kieliopill Luse Jokinen oikelle linerinen kontekstiton kieli on säännöllinen Näin ollen siis oikelle linerisill kieliopeill voidn tuott täsmälleen säännölliset kielet Kuitenkin on olemss kontekstittomi kieliä, jotk eivät ole säännöllisiä; esim. tspinoisten sulkumerkkijonojen muodostm kieli Näin ollen kontekstittomt kielet ovt säännöllisten kielten ito yliluokk 79 Moniselitteisyys Lähtösymbolist S merkkijonoon w johtv suorien johtojen jono S w 1 w k w snotn w:n johdoksi Aritmeettisten lusekkeiden kieliopiss luse + voidn joht monin tvoin: 1. +T T+T F+T +T +F + 2. +T +F T+F F+F F+ + 3. +T +F + T+ F+ + Välikkeiden lventmisjärjestyksen iheuttmt erot bstrhoituvt pois trksteltess jäsennyspuit 6

80 T F + T F 81 Kontekstiton kielioppi G on moniselitteinen, jos jollkin G:n luseell on kksi erilist jäsennyspuut Muuten kielioppi on yksiselitteinen Kieli, jonk tuottvt kieliopit ovt kikki moniselitteisiä, on luonnostn moniselitteinen sim. kieli { i b j c k i = j j = k } on luonnostn moniselitteinen Vihtoehtoinen kielioppi yksinkertisille ritmeettisille lusekkeille + () 7

82 + + + 83 Chomskyn normlimuoto Kontekstiton kielioppi on Chomskyn normlimuodoss (CNF), jos välikkeistä enintään S on tyhjentyvä, produktiot ovt muoto A BC ti A (pitsi mhd. S ) j lähtösymboli S ei esiinny minkään produktion oikell puolell Luse 2.9 Mistä thns kontekstittomst kieliopist voidn muodost ekvivlentti CNF-kielioppi. Todistus Konstruktio etenee viheittin. nsin kieleen lisätään uusi lähtösymboli, sen jälkeen poistetn -produktiot j yksikköproduktiot. 8

84 -produktioiden poistminen Lemm Mistä thns kontekstittomst kieliopist voidn muodost ekvivlentti kielioppi, joss enintään lähtösymboli on tyhjentyvä. Todistus Olk. G = (V,, R, S). G:n tyhjentyvät välikkeet: NULL = { A V A R} Toist kunnes joukko NULL ei enää ksv NULL += { A V A B 1 B k R, B i NULL i = 1,, k } 85 Korvtn kukin G:n produktio A X 1 X k kikkien sellisten produktioiden joukoll, jotk ovt muoto A 1 k, missä X i i X i jos X NULL i jos X NULL i Lopuksi poistetn kikki muoto A olevt produktiot. Jos myös S on poistettvien joukoss, niin otetn kieliopille uusi lähtösymboli S' j sille produktiot S S. 9

86 S A B A B B bab S A B A B B bab bb NULL = { A, B, S } S S S A B A B B bab bb 87 Yksikköproduktioiden poistminen Yksikköproduktio on muoto A B, missä A j B ovt välikkeitä. Lemm Mistä thns kontekstittomst kieliopist voidn muodost ekvivlentti kielioppi, joss ei ole yksikköproduktioit. Todistus Olk. G = (V,, R, S). G:n kunkin välikkeen yksikköseurjt: 1. F(A) = { B V A B R } 2. Kunnes F-joukot eivät enää ksv F(A) += { F(B) A B R } Lopuksi poistetn kikki G:n yksikköproduktiot j lisätään niiden sijn kikki mhdolliset muoto A olevt produktiot, missä B F(A) j B. 10

88 S S S A B A B B bab bb S B bab bb S B bab bb A B B bab bb F(S') = { S, A, B } F(S) = { A, B } F(A) = F(B) = 89 Kun - j yksikköproduktiot on poistettu, niin kikki produktiot ovt muoto A, A X 1 X k, k 2, ti S. Lisätään kielioppiin kutkin vstten välike C j produktio C. Produktiot A X 1 X k, k 2, korvtn produktiojoukoill A X 1 A 1 A 1 X 2 A 2 A k-2 X k-2 A k-1 A k-1 X k-1 X k, missä X X ' i C i jos X V jos X i i 11

90 S B bab bb S B bab bb A B B bab bb S C C S C b S 2 S 2 AC b S C b C b A C A 1 S' C S 1 S 1 BC S' C C S' C b S 2 S 2 AC b S' C b C b S' S C S 1 S 1 BC A 1 BC A C C B C b B 1 B 1 AC b B C b C b C C b b 91 CYK-lgoritmi CNF-muotoon muunnettun kontekstittomn kieliopin merkkijonot voidn jäsentää (n 3 ) jss Cocke-Younger- Ksmi lgoritmill Kontekstittomt kielet voidn siis tunnist tehokksti CYK-lgoritmin toimintperite on dynminen ohjelmointi Osjonoille tulukoidn ne välikemerkit, jotk voivt tuott ko. merkkijonon Jos lopult kieliopin lähtösymboli kuuluu koko merkkijonon tuottvien välikkeiden joukkoon, niin trksteltv merkkijono kuuluu kieleen 12

92 3.1 Pinoutomtit Pinoutomtti on äärellinen utomtti, joll on lisäksi yksi (ääretön) pinon käsiteltävä työnuh Pinon päällimmäiseksi lkioksi voidn lisätä uusi lkio push-opertioll j pinon päällimmäinen lkio voidn poistpop-opertioll Pinoutomtiss siirtymiin liittyy in myös pinon käsittely Työnuh nt utomtille muistin, jonk vull voidn välttää äärellisten utomttien rjoituksi 93 Formlisti pinoutomtti on kuusikko M =(Q,,,, q 0, F), missä Q on tilojen äärellinen joukko, on syötekkosto, on pinokkosto, q 0 Q on lkutil, F Q on lopputilojen joukko j on joukkorvoinen siirtymäfunktio: : Q P(Q ) 13

94 Pinoutomtit ovt yleisessä tpuksess epädeterministisiä: (r, x, ) = { (r 1, b 1 ),, (r k, b k ) } lukemll syötemerkin x j pinomerkin utomtti voi siirtyä tilst r johonkin tiloist r 1,, r k j smll korvt pinon päällimmäisen merkin jollkin merkeistä b 1,,b k. 1. Jos x =, niin utomtti tekee siirtymän syötemerkkiä lukemtt; 2. jos =, niin utomtti ei lue pinomerkkiä, vn kirjoitt uuden merkin pinon päällimmäiseksi lkioksi jättäen vnhn päällimmäisen merkin ennlleen (push); 3. jos j b i =, niin pinon päällimmäinen lkio luetn j poistetn, mutt uutt merkkiä ei kirjoitet pinoon sen tillle (pop) 95 Pinoutomtti M = (Q,,,, q 0, F) hyväksyy merkkijonon w * jos se voidn kirjoitt muotoon w = w 1 w 2 w m, missä kukin w i, j lisäksi on olemss jono tiloj r 0, r 1,, r m Q j merkkijonoj s 0, s 1,, s m * s.e. seurvt kolme ehto pätevät. 1. Lähtötilnteess utomtin til on lkutil j pino on tyhjä: r 0 = q 0 j s 0 = ; 2. (r i+1, b) ( r i, w i+1, ) kikill i { 0,, m-1 }, missä s i = t j s i+1 = bt joillin, b j t *; 3. r m F. 14

96 Tspinoisten sulkumerkkijonojen kieli { ( k ) k k 0 } on kontekstiton kieli, jok ei ole säännöllinen. Se voidn tunnist pinoutomtill M = (Q,,,, q 0, F): Q = {q 0, q 1, q 2, q 3 }, = { (, ) }, = { $, }, q 0 on lkutil, F = { q 0, q 3 } j on: (q 0, (, ) = { (q 1, ) }, (q 1, (, ) = { (q 1, $) }, (q 1, ), $) = { (q 2, ) }, (q 1, ), ) = { (q 3, ) }, (q 2, ), $) = { (q 2, ) }, (q 2, ), ) = { (q 3, ) }, (q,, ) = muill (q,, ) 97 q 0 (, / q 1 (, / $ ), / ), $ / ), $ / q 3 ), / q 2 (q 0, ((())), ) (q 1, (())), ) (q 1, ())), $ ) (q 1, ))), $$ ) (q 2, )), $ ) (q 2, ), ) (q 3,, ) q 3 F, joten ((())) L(M) 15

98 Luse 2.20 Kieli on kontekstiton jos j vin jos se voidn tunnist pinoutomtill. Pinoutomtti M on deterministinen, jos jokisell tilnteell (r, x, ) on enintään yksi mhdollinen seurj (r', x', '), joll (r, x, ) M (r', x', ') pädeterministiset pinoutomtit ovt idosti vhvempi kuin deterministiset. simerkiksi kieltä { ww R w {, b }* } ei void tunnist deterministisellä pinoutomtill Deterministiset kontekstittomt kielet voidn jäsentää tehokkmmin kuin yleiset kontekstittomt kielet 16