lusekkeet, lusekkeet, TIEA241 Automtit j kieliopit, syksy 2016 Antti-Juhni Kijnho lusekkeet j smuus TIETOTEKNIIKAN LAITOS 22. syyskuut 2016
Sisällys lusekkeet, lusekkeet lusekkeet j smuus j smuus
lusekkeet 1 lusekkeet, Määritelmä Olkoon M = {,,, (, )} j olkoon Σ merkistö. Voidn olett, että Σ M =. lusekkeet (engl. regulr expressions) ovt seurvt merkistön Σ M merkkijonot j vin ne: (), c, jos c Σ, r, jos r on säännöllinen luseke (r 1 r 2 ), jos r 1 j r 2 ovt säännöllisiä lusekkeit, (r 1 r 2 ), jos r 1 j r 2 ovt säännöllisiä lusekkeit, Säännöllisten lusekkeiden joukko merkitään R Σ. lusekkeet j smuus 1 Yksinkertistettu versio regexpeistä.
Huomioit säännöllisistä lusekkeist lusekkeet, lusekkeet j smuus Käytännössä sulkeit ei läheskään in kirjoitet näkyviin. Operttoreiden presedenssijärjestys on edellisen klvon mukinen korkemmll minittu lsketn ensin.
Säännöllisten lusekkeiden tulkint lusekkeet, Määritelmä Olkoon Σ merkistö j R Σ säännöllisten lusekkeiden joukko. Määritellään tulkintfunktio : R Σ P(Σ ) seurvsti: lusekkeet j smuus = () = {ε} c = {c} (c Σ) r = r (r R Σ ) (r 1 r 2 ) = r 1 r 2 (r 1, r 2 R Σ ) (r 1 r 2 ) = r 1 r 2 (r 1, r 2 R Σ )
Regexpit lusekkeet, lusekkeet Työklujen kuten egrep tukemt säännölliset lusekkeet ovt edellä esitetyn teoreettisen käsitteen ljennuksi. Tällä kurssill säännöllinen luseke viitt tänään esitettyyn teoreettiseen käsitteeseen; työklujen ymmärtämiä muunnelmi kutsumme regexpeiksi. Lähes kikki regexpit on kirjoitettviss myös säännöllisiksi lusekkeiksi Poikkeuksen tkisinviittukset j smuus
lusekkeet, Luse Olkoon Σ merkistö. Jokiselle kielelle A Σ seurvt ovt yhtäpitävät: 1. On olemss säännöllinen luseke r R Σ, jolle r = A pätee. 2. A on säännöllinen kieli. lusekkeet j smuus Todistus 1 2: Tehdään hrjoitustehtävinä. 2 1: Seurvill klvoill (idetsoll)
Luseen merkitys lusekkeet, lusekkeet j smuus Luse tk, että regexpit (tkisinviittuksi lukuunottmtt) voidn kääntää NFA:iksi Teoreettisemmin: säännölliset lusekkeet kuvvt säännölliset kielet eikä mitään muut.
Todistuksen strtegi lusekkeet, 1. Määritellään äärellisen utomtin vrintti (äärellinen lusekeutomtti), joss siirtymät tphtuvt säännöllisillä lusekkeill. 2. Todetn, että jokinen DFA on myös lusekeutomtti (jok tunnist smn kielen). 3. Määritellään joukko lusekeutomtin muunnoksi, joill on seurvt ominisuudet: ne kikki säilyttävät utomtin tunnistmn kielen kukin niistä pienentää utomtin koko (siirtymien määrää) 4. Lisätään tilpehöörit. lusekkeet j smuus
Äärellinen lusekeutomtti lusekkeet, lusekkeet Määritelmä Viisikko (Q, Σ, δ, q 0, F) on äärellinen lusekeutomtti, jos Q on äärellinen (tilojen) joukko, Σ on äärellinen, epätyhjä joukko (merkistö), δ : Q R Σ P(Q) pätee (siirtymäfunktio), { (q, r) Q R Σ δ(q, r) = } on äärellinen, q 0 Q pätee (lkutil) j F Q pätee (hyväksyvät tilt). j smuus
Lusekeutomtin toimint lusekkeet, Olkoon M = (Q, Σ, δ, q 0, F) epädeterministinen äärellinen utomtti. Jokiselle merkkijonolle w on mhdollisesti olemss tiljonoj, jotk ovt muoto q 1,..., q n j joille w on jettviss osiin 2 w = w 0,..., w n 1, joille pätee r R Σ : w k r q k+1 δ(q k, r) kikill k = 0,..., n 1. Kunkin tällisen jonon viimeinen til q n on merkkijonon w päätöstil utomtiss M. Tyhjän merkkijonon päätöstilksi utomtiss M lsketn myös q 0. M hyväksyy merkkijonon, jos jokin sen päätöstiloist M:ssä kuuluu F:ään; muuten se hylkää sen. M:n hyväksymien merkkijonojen joukko on sen (tunnistm) kieli. lusekkeet j smuus 2 Huom indeksoinnin ero!
Muunnosinvrintit lusekkeet, lusekkeet Jokisen muunnoksen tulee säilyttää seurvien väitteiden totuus: Automtin lkutiln ei tule yhtään siirtymää. Automtiss on täsmälleen yksi hyväksyvä til, j se ei ole lkutil eikä siitä lähde siirtymiä. Automtiss ei ole tiloj, joihin ei pääse lkutilst siirtymiä seurmll. 3 Kutsutn tällist lusekeutomtti hyväksi. j smuus 3 Siirtymät -lusekkeell sllitn.
Yksi mhdollinen lustus lusekkeet, Aloitetn DFA:st (ti NFA:st) tulkittun lusekeutomtiksi. Lisätään utomttiin uusi lkutil j uusi hyväksyvä til, j muutetn kikki vnht hyväksyvät tilt ei-hyväksyviksi. Lisätään uudest lkutilst ()-siirtymä vnhn lkutiln. Lisätään jokisest lun perin hyväksyvästä tilst ()-siirtymä uuteen hyväksyvään tiln. Lisätään uudest lkutilst kikkiin muihin tiloihin -siirthmät. lusekkeet j smuus
Muunnos I lusekkeet, lusekkeet Syöte Lusekeutomtti Tulos Lusekeutomtti Vlitn tilt q 1 j q 2 j säännölliset lusekkeet r j r, joille on siirtymät 4 r q r 1 q2 j q 1 q2. Korvtn kyseiset siirtymät yhdistetyllä siirtymällä q 1 (r r ) q 2. j smuus 4 Käytän tässä q 1 r q 2 trkoittmn sm kuin q 2 δ(q 1, r).
Muunnos II Syöte Lusekeutomtti Tulos Lusekeutomtti Vlitn til q, jok ei ole lkutil eikä hyväksyvä til Määritellään säännöllinen luseke r seurvsti: Jos siirtymiä q :st q :hun ei ole, niin r = () on yksi, niin r on sen säännöllinen luseke on usempi, säännöllisin lusekkein s 1,..., s n, niin r = (s 1 s n ) lusekkeet, lusekkeet j smuus r 1 r Lisätään tilsiirtymä q r 2 1 q 2 jos on tilsiirtymät r q 1 r 1 q j q 2 q2 (missä q 1 j q 2 eivät ole q ) Poistetn til q sekä tilsiirtymät q :iin j q :st.
Esimerkki tulull lusekkeet, lusekkeet j smuus 0 1 0 0 1 1 1 1,
Todistettv lusekkeet, Oletus Automtti täyttää iemmll klvoll luetellut invrinttiehdot. Väitteet 1. Jos utomtiss on enemmän kuin yksi siirtymä, siihen voidn sovelt jotin muunnost. 2. Jos utomttiin sovelletn jotin muunnost, 2.1 se täyttää tämän jälkeen invrinttiehdot. 2.2 sen tunnistm kieli ei muutu. 2.3 siinä on tämän jälkeen vähemmän siirtymiä. 3. Jos utomtiss on täsmälleen yksi siirtymä, se on lkutilst hyväksyvvään tiln. lusekkeet j smuus
Lemm (Eteneminen) Jos hyvässä lusekeutomtiss on vähintään kksi siirtymää, niin siihen voidn sovelt joko Muunnost I ti Muunnost II. Lemm (Säilyminen) Jos hyvään lusekeutomttiin sovelletn Muunnost I ti Muunnist II, tuloksen syntyvä lusekeutomtti 1. on hyvä, 2. sisältää vähemmän tilsiirtymiä kuin lkuperäinen utomtti, j 3. tunnist smn kielen kuin lkuperäinen utomtti. lusekkeet, lusekkeet j smuus Todistus Pohditn ääneen, trkemmin jälkiprujuss.
Algoritmin lusekkeet, lusekkeet 1. Muut syötteenä stu DFA ti NFA hyväksi lusekeutomtiksi. 2. Sovell toistuvsti Muunnost I j Muunnost II kunnes utomtiss on enää yksi tilsiirtymä. 3. Lue tulos utomtin inost tilsiirtymästä. j smuus
lusekkeet, lusekkeet j smuus Jos ik jää...
Onko tässä pienin mhdollinen tämän kielen tunnistv utomtti? lusekkeet, lusekkeet 0 1 2 3 j smuus 4 5 6 7
Tilojen smnsisältöisyys lusekkeet, Olkoon meillä DFA M = (Q, Σ, δ, q 0, F). Tilt q 1, q 2 Q ovt smnsisältöiset 5, jos pätee w Σ : δ (q 1, w) F δ (q 2, w) F lusekkeet j smuus On vrsin ilmeistä, että smnsisältöisyys on ekvivlenssireltio. Voidn lti kolmiomtriisi (erisisältöisyysmtriiisi), jok sisältää merkin jokisen sellisen tilprin kohdll, jotk eivät ole smnsisältöiset. 5 engl. equivlent
Erisisältöisyysmtriisin luominen lusekkeet, Mtriisin rivit j srkkeet vstvt utomtin tiloj. Alustetn mtriisi merkitsemällä ne tilprit, joiss toinen til on hyväksyvä j toinen ei. Toistetn seurv kunnes mitään pri ei enää merkitä 6 : 1. Käy läpi kikki toistiseksi merkitsemättömät tilprit q 1, q 2. 2. Kunkin kohdll käy läpi kikki utomtin syötemerkit c. 3. Selvitä, mihin kummstkin prin tilst pääsee tuoll syötemerkillä: q 1 = δ(q 1, c) j q 2 = δ(q 2, c). 4. Jos nyt noiden tilojen muodostm pri q 1, q 2 on merkitty, merkitse myös trksteluss olev pri q 1, q 2. lusekkeet j smuus 6 HUOMAA! Ei välttämättä riitä käydä kikki tilprit kerrn läpi.
Esimerkki tulull lusekkeet, lusekkeet j smuus 0 1 2 3 4 5 6 7
lusekkeet, Luse Olkoon M = (Q, Σ, δ, q 0, F) DFA. Kikki edellä kuvtull tvll ldituss erisisältöisyysmtriisiss merkityt tilprit ovt erisisältöisiä. Luse Olkoon M = (Q, Σ, δ, q 0, F) DFA. Kikki edellä kuvtull tvll ldituss erisisältöisyysmtriisiss merkitsemättä jätetyt tilprit ovt smnsisältöisiä. lusekkeet j smuus Todistus Jälkiprujuss.
1. Poist (jos hlut) luksi kikki tilt, joihin ei pääse lkutilst siirtymiä seurmll. 2. Ldi utomtille erisisältöisyysmtriisi. 3. Selvitä jokiselle tillle niiden tilojen joukko, joiden knss kyseinen til on smnsisältöinen. 4. Minimiutomtti rkentuu seurvsti: Edellä syntyneet tiljoukot ovt minimiutomtin tilt. Alkutil on se tiljoukko, johon lkuperäisen utomtin lkutil kuuluu. Tiljoukost on siirtymä toiseen jollkin merkillä, jos ensiksi minitun tiloist on siirtymä kyseisellä merkillä jälkimmäisen joukon tiloihin. 7 Hyväksyviä tiloj ovt ne tiljoukot, joihin sisältyy lkuperäisen utomtin hyväksyviä tiloj. lusekkeet, lusekkeet j smuus 7 Riittää trkist yksi til joukost, kosk tilt ovt smnsisältöiset.
Esimerkki tulull lusekkeet, lusekkeet j smuus 0 1 2 3 4 5 6 7
Tunnistvtko kksi DFA:t smn kielen? lusekkeet, lusekkeet Olkoon meillä kksi DFA:t M A = (Q A, Σ, δ A, q A, F A ) j M B = (Q B, Σ, δ B, q B, F B ). Voidn olett, että Q A Q B =. Luodn fiktiivinen yhdistetty utomtti M = (Q A Q B, Σ, δ A δ B, q 0, F A F B ), missä q 0 Q A Q B on vpvlintinen. Lditn M:lle erisisältöisyysmtriisi. L(M A ) = L(M B ) jos j vin jos q A, q B jää erisisältöisyysmtriisiss merkitsemättä. j smuus
Tuluesimerkki lusekkeet, lusekkeet M A A B j smuus M B 1 2 3