Hahmon etsiminen syotteesta (johdatteleva esimerkki)



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

Formalisoimme nyt edellä kuvatun laskennan.

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Säännöllisten kielten sulkeumaominaisuudet

Kertausta 1. kurssikokeeseen

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

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

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

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

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

Automaatit. Muodolliset kielet

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. 19. tammikuuta 2012

Yhteydettömän kieliopin jäsennysongelma

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

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

Turingin koneen laajennuksia

Laskennan mallit

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

Laskennan mallit

Laskennan mallit

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Laskennan mallit. luennot syksyllä 2018, periodi I Jyrki Kivinen. tietojenkäsittelytieteen aineopintokurssi, pääaineopiskelijoille pakollinen

Pinoautomaatit. Pois kontekstittomuudesta

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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ää

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

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

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

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Laskennan mallit

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

Laskennan mallit

1. Universaaleja laskennan malleja

Luonnolliset vs. muodolliset kielet

Rajoittamattomat kieliopit

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

Rekursiiviset palautukset [HMU 9.3.1]

Algoritmin määritelmä [Sipser luku 3.3]

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

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

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

Lisää pysähtymisaiheisia ongelmia

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

Muodolliset kieliopit

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

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

8. Kieliopit ja kielet

Laskennan mallit

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

5.3 Ratkeavia ongelmia

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Chomskyn hierarkia ja yhteysherkät kieliopit

1. Universaaleja laskennan malleja

Laskennan mallit

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

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

Säännöllisen kielen tunnistavat Turingin koneet

Output. Input Automaton

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

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

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

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

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

2. Laskettavuusteoriaa

Täydentäviä muistiinpanoja laskennan rajoista

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

8. Kieliopit ja kielet 1 / 22

Tietotekniikan valintakoe

ÄÄRELLISTEN AUTOMAATTIEN MINIMOINTI. 1. Äärelliset automaatit Äärellinen automaatti (DFA = deterministic finite automaton) on

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

ICS-C2000 Tietojenkäsittelyteoria

2. Laskettavuusteoriaa

S BAB ABA A aas bba B bbs c

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

Käänteismatriisin. Aiheet. Käänteismatriisin ominaisuuksia. Rivioperaatiot matriisitulona. Matriisin kääntäminen rivioperaatioiden avulla

Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)

Yhteydettömät kieliopit [Sipser luku 2.1]

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

Tietojenkäsittelyteorian alkeet, osa 2

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

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

Laskennan mallit (syksy 2010) Harjoitus 8, ratkaisuja

Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )

811120P Diskreetit rakenteet

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Transkriptio:

Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux grep mmeikala $ ps aux grep '\(mmeikala\ tteikala\)' Tassa siis haetaan SM-tuloksista rivit, joilla esiintyy seura Kisaveikot prosessilistasta ne rivit, joilla esiintyy kayttajatunnus mmeikala, ja prosessilistasta ne rivit, joilla esiintyy kayttajatunnus mmeikala tai tteikala. 23

Eras idea grep-toiminnon toteuttamiseksi olisi seuraava: 1. Muodostetaan aarellinen automaatti, joka hyvaksyy tasan sellaiset merkkijonot, joissa esiintyy hahmo. 2. Selataan syote rivi kerrallaan kayttamalla tata automaattia, ja tulostetaan hyvaksytyt rivit. Selausvaihe toimii nopeasti eika edellyta syotteen esiprosessointia, mika on tassa tarkeaa. Kysymys: Kuinka monimutkaisia hahmoja talla periaatteella voidaan kasitella? Esim. edella muodostettiin hahmoista mmeikala ja tteikala uusi hahmo tai-operaattorilla " j ". Kuinka voimakkaat operaattorit voidaan siis sallia? 24

Operaatiot (saannollisilla) kielilla [Sipser s. 44{47] Kuten muistetaan, kielet ovat merkkijonojoukkoja. Niilla voidaan siis suorittaa normaaleja joukko-opillisia operaatioita, kuten yhdiste, leikkaus ja komplementointi: jos A ja B ovat kielia, niin kieli A [ B koostuu niista merkkijonoista, jotka kuuluvat ainakin toiseen kielista A ja B, kieli A \ B koostuu niista merkkijonoista, jotka kuuluvat seka kieleen A etta B, ja kieli A koostuu niista merkkijonoista, jotka eivat kuulu kieleen A. (Komplementin A maarittelyssa oletetaan, etta puhutaan jonkin tietyn aakkoston merkkijonoista, ja selviaa asiayhteydesta.) 25

Nimenomaan merkkijonojoukoille on katevaa maaritella myos konkatenaatio ja tahti: kieli A B koostuu merkkijonoista w, jotka voidaan esittaa muodossa w = xy joillakin x 2 A ja y 2 B ja kieli A koostuu merkkijonoista w 1 : : : w k, missa k 0 ja w i 2 A kaikilla i. Intuitiivisesti missa A k A = A 0 [ A 1 [ A 2 [ A 3 [ : : : ; on kielen A konkatenaatio itsensa kanssa k kertaa (ja A 0 = f " g). 26

Esimerkki Tarkastellaan aakkoston f a; : : : ; z; 0; : : : ; 9 g kielia A = f aa; bb g ja B = f 01; 02 g. Nyt A [ B = f aa; bb; 01; 02 g A B = f aa01; aa02; bb01; bb02 g A = f "; aa; bb; aaaa; aabb; bbaa; bbbb; aaaaaa; aaaabb; aabbaa; aabbbb; bbaaaa; : : : g : Seuraavana tavoitteenamme on osoittaa, etta saannollisten kielten luokka on suljettu operaatioiden [, ja suhteen. Toisin sanoen jos A ja B ovat saannollisia, niin myos A [ B, A B ja A ovat. Tapaus A [ B on melko suoraviivainen, ja aloitamme siita. 27

Lause 1.1: [Sipser Thm. 1.25] Jos kielet A ja B ovat saannollisia, niin myos A [ B on. Todistus: Oletetaan siis, etta A = L(M 1 ) ja B = L(M 2 ) aarellisilla automaateilla M 1 = (Q 1 ; ; 1 ; q 1 ; F 1 ) ja M 2 = (Q 2 ; ; 2 ; q 2 ; F 2 ). Muodostamme aarellisen automaatin M, jolla L(M) = A [ B. Automaatin M pitaa siis hyvaksya w, jos ainakin toinen automaateista M 1 ja M 2 hyvaksyy. Ongelmaa ei voi ratkaista simuloimalla automaatteja M 1 ja M 2 perajalkeen, silla aarellinen automaatti kasittelee kunkin syotemerkin vain kerran. Ratkaisu on simuloida kumpaakin automaattia samanaikaisesti. Jos j Q 1 j = m ja j Q 2 j = n, niin automaatin M tilajoukoksi valitaan m n taulukko, jossa rivi esittaa M 1 :n ja sarake M 2 :n tilaa. Vastaavasti 1 kertoo, mille riville mennaan seuraavaksi, ja 2 mille sarakkeelle. 28

Muodollisesti M = (Q; ; ; q 0 ; F ), missa Q = Q 1 Q 2, aakkosto pysyy samana, kun r = (r 1 ; r 2 ) 2 Q 1 Q 2 ja a 2, niin (r; a) = (s 1 ; s 2 ) missa s 1 = 1 (r 1 ; a) ja s 2 = 2 (r 2 ; a); q 0 = (q 1 ; q 2 ) ja F = f (r 1 ; r 2 ) j r 1 2 F 1 tai r 2 2 F 2 g. 29

Tarkastellaan mielivaltaista merkkijonoa w = w 1 : : : w k. On olemassa automaatin M 1 laskentaa esittava (yksikasitteinen) tilajono (r 0 ; : : : ; r k ) 2 Q k+1 1 ja automaatin M 2 laskentaa esittava (yksikasitteinen) tilajono (s 0 ; : : : ; s k ) 2 Q k+1 2, missa 1. r 0 = q 1 ja s 0 = q 2 ja 2. r i+1 = 1 (r i ; w i+1) ja s i+1 = 2 (s i ; w i+1) kun i = 0; : : : ; n 1. Siis valitsemalla p i = (r i ; s i ) saadaan automaatin M laskentaa kuvaava tilajono, jolla p 0 = q 0 ja p i+1 = (p i ; w i+1). Nyt M hyvaksyy merkkijonon w, (r n ; s n ) 2 F, r n 2 F 1 ja s n 2 F 2, M 1 hyvaksyy merkkijonon w ja M 2 hyvaksyy merkkijonon w. Siis L(M) = A [ B. 30

Jatkossa osoitetaan myos Lause 1.2: [Sipser Thm. 1.26] Saannollisten kielten joukko on suljettu konkatenaation suhteen; ts. jos kielet A ja B ovat saannollisia, niin myos A B on. Todistaminen on kuitenkin edellista lausetta hankalampaa. Oletaan A = L(M 1 ) ja B = L(M 2 ), ja halutaan muodostaa M, jolla L(M) = A B. Luonnollinen ajatus olisi pistaa automaatit M 1 ja M 2 perakkain. Tassa tulee ongelmaksi, milloin pitaisi siirtya automaatista M 1 automaattiin M 2. Erityisesti jollain w 2 A B voi olla kaksi esitysta w = uv = u 0 v 0, missa u 2 A ja u 0 2 A, ja v 2 B mutta v 0 62 B. Jos tassa viela u 0 on merkkijonon u alkuosa (eli u = u 0 x jollain x), niin emme voi ilman muuta siirtya automaattiin M 2 heti, kun M 1 paasee hyvaksyvaan tilaan. Jotta paasemme eteenpain, yleistamme aarellista automaattia sallimalla epadeterminismin. 31

Epadeterministiset aarelliset automaatit [Sipser s. 47{54] Tarkastellaan esimerkkina seuraavaa automaattia:.. a, b a b a, " 0 1 2 3 b Tama ei noudata edella esitettya formalismia:.. tilasta 0 paasee merkilla b seka tilaan 0 etta tilaan 1, tilasta 1 on "-siirtyma, jolla paasee tilaan 2 "kayttamatta" yhtaan syotemerkkia ja joitain siirtymia ei ole maaritelty. Aiottu tulkinta on, etta annetulla syotteella "kokeillaan" kaikkia mahdollisia siirtymavaihtoehtoja. Automaatti hyvaksyy, jos yksikin naista vaihtoehdoista paatyy hyvaksyvaan tilaan. 32

Tallaisen automaatin laskentaa voidaan havainnollistaa ryhmittamalla vaihtoehdot puuksi: 0 a esimerkkina syote abbab vaakanuolet kuvaavat "-siirtymia viimeisella rivilla esiintyy kahteenkin kertaan hyvaksyva tila 3, joten automaatti hyvaksyy merkkijonon abbab b b a 0 0 0 1 0 1 2 2 3 2 2 b 0 1 2 3 3 33

Kutsumme tallaista yleisempaa automaattia epadeterministiseksi aarelliseksi automaatiksi (nondeterministic nite automaton, NFA). Aluksi esitetty perusversio on vastaavasti deterministinen aarellinen automaatti (deterministic nite automaton, DFA). NFA:lle ei ole mitaan samalla lailla ilmeista fyysista toteutusmallia kuin DFA:lle. Se kannattaa mieltaa lahinna kuvausformalismiksi. Naemme jatkossa, etta mille tahansa NFA:lle voidaan muodostaa DFA, joka tunnistaa saman kielen. Siis epadeterminismi ei anna tassa mielessa lisaa ilmaisuvoimaa. Epadeterminismia kayttamalla esitysta voidaan kuitenkin usein selkeyttaa ja yksinkertaistaa. 34

Seuraava NFA hyvaksyy merkkijonot, joissa on osajonona ensin abb ja sen jalkeen ca tai ac. Huomaa konstruktion modulaarisuus. (Juuri taman kielen voisi tunnistaa DFA:lla helpomminkin.).. a, b, c a, b, c " a b b " " " c a a, b, c " a c ".. 35

Mille tahansa aakkostolle merkitsemme " = [ f " g. Muistetaan, etta joukon A potenssijoukkoa eli kaikkien osajoukkojen joukkoa merkitaan P(A). Muodollisesti NFA on viisikko (Q; ; ; q 0 ; F ), missa 1. Q on aarellinen tilajoukko, 2. on aarellinen aakkosto, 3. : Q "! P(Q) on siirtymafunktio, 4. q 0 2 Q on alkutila ja 5. F Q on hyvaksyvien tilojen joukko. Erotukseksi DFA:sta siirtymafunktio siis antaa yhden seuraajatilan sijaan joukon tiloja. Nama tulkitaan "mahdollisiksi" seuraajatiloiksi. 36

Esimerkkiautomaattimme.. a, b a b a, " 0 1 2 3 b.. formaali esitys on siis (f 0; 1; 2; 3 g ; f a; b g ; ; 0; f 3 g), missa saadaan taulukosta a b " 0 f 0 g f 0; 1 g ; 1 f 2 g ; f 2 g 2 ; f 3 g ; 3 f 2 g ; ;. 37

Maarittelemme nyt, etta NFA (Q; ; ; q 0 ; F ) hyvaksyy merkkijonon w, jos jollain k voidaan valita jonot (y 1 ; : : : ; y n ) 2 n ja (r " 0 ; : : : ; r n ) 2 Q n+1, joilla w = y 1 : : : y n, r 0 = q 0, r i+1 2 (r i ; y i+1) kun i = 0; : : : ; n 1 ja r n 2 F. Edellisen sivun automaatilla ja merkkijonolla abbab voidaan valita esim. n = 6 (y 1 ; y 2 ; y 3 ; y 4 ; y 5 ; y 6 ) = (a; b; "; b; a; b) (r 0 ; r 1 ; r 2 ; r 3 ; r 4 ; r 5 ; r 6 ) = (0; 0; 1; 2; 3; 2; 3); mista nahdaan, etta automaatti hyvaksyy merkkijonon. 38