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

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2015

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

2.2 Automaattien minimointi

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

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

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

Laskennan perusmallit (LAP)

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

Laskennan mallit (syksy 2010) 1. kurssikoe, ratkaisuja

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

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

Laskennan perusmallit (LAP)

Laskennan perusmallit 2013: Kertausta

Kuvausta f sanotaan tällöin isomorfismiksi.

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

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

Riemannin integraalista

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

LAP: Laskennan perusmallit

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Yhteydettömän kieliopin jäsennysongelma

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

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

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

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

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

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

Matematiikan tukikurssi

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Laskennan perusmallit (LAP)

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

Turingin koneen laajennuksia

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

6.2 Algoritmin määritelmä

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

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

2.1 Vaillinaiset yhtälöt

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

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

Kognitiivinen mallintaminen I, kevät Harjoitus 1. Joukko-oppia. MMIL, luvut 1-3 Ratkaisuehdotuksia, MP

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

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

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

2.5 Säännöllisten kielten rajoituksista

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

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

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

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

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

3 Mallipohjainen testaus ja samoilutestaus

Formalisoimme nyt edellä kuvatun laskennan.

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

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

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

Säännöllisten kielten sulkeumaominaisuudet

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

Ristitulo ja skalaarikolmitulo

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

Automaatit. Muodolliset kielet

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

Digitaalinen videonkäsittely Harjoitus 5, vastaukset tehtäviin 25-30

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

10. MÄÄRÄTYN INTEGRAALIN KÄYTTÖ ERÄIDEN PINTA-ALOJEN LASKEMISESSA

Riemannin integraali

Määritelmä Olkoon C R m yksinkertainen kaari ja γ : [a, b] R m sen yksinkertainen parametriesitys, joka on paloittain C 1 -polku.

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

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

T /2 Tietojenkäsittelyteorian perusteet T/Y

Matematiikan tukikurssi

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

7.lk matematiikka. Geometria 1

Kertausta 1. kurssikokeeseen

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

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

Diskreetin matematiikan perusteet Laskuharjoitus 6 / vko 13

Pythagoraan lause. Pythagoras Samoslainen. Pythagoraan lause

Pinoautomaatit. Pois kontekstittomuudesta

TIEA241 Automaatit ja kieliopit

T /1002 Tietojenkäsittelyteorian perusteet T/Y

T /1002 Tietojenkäsittelyteorian perusteet T/Y

Tehtävä 1. Jatka loogisesti oheisia jonoja kahdella seuraavaksi tulevalla termillä. Perustele vastauksesi

Suorat, käyrät ja kaarevuus

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

Ohjelmistotekniikan matemaattiset menetelmät tentin kysymykset, vastaukset ja arvosteluperiaatteita

// Tulostetaan liukulukutyyppinen muuttuja riviä vaihtamatta // yhden desimaalin tarkkuudella. System.out.printf("%.

763333A KIINTEÄN AINEEN FYSIIKKA Ratkaisut 1 Kevät 2014

3 Integraali ja derivaatta

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

1. Universaaleja laskennan malleja

Transkriptio:

Q on utomtin tilojen äärellinen joukko; Σ on utomtin syötekkosto; δ : Q Σ Q on utomtin siirtymäfunktio; q Q on utomtin lkutil; F Q on utomtin hyväksyvien tilojen joukko. Siirtymäfunktio δ on määritelmän kiinnostvin os. Intuitiivisesti: Jos utomtti on nyt tilss q j seurvksi tulee merkki c niin silloin siirrytään tiln δ(q, c), eli siihen jonk siirtymäfunktio ilmoitt. Toisin snoen: Siirtymäfunktion rvo δ(q, c) = tilsiirtymätulukon sisältö sen rivillä q j srkkeell c. Esimerkki. Kokonislukuutomtin (esimerkki 9) formli esitys on joss δ on kuten tulukoss; esim. M = ({q, q, q 2, error}, {,,...,9, +, }, δ,q, {q 2 }), jne. δ(q, ) = δ(q, ) = δ(q, 2) = = δ(q, 9) = q 2 δ(q, +) = δ(q, ) = q δ(q, +) = δ(q, ) = error Automtin lskennn mtemttinen esitys Automtin tilnne on pri (q, w) Q Σ joss q = utomtin nykyinen til w = syötemerkkijonon vielä käsittelemätön loppuos. Erityisesti utomtin lkutilnne syötteellä x on pri (q, x) joss q on utomtin lkutil. Tilnne (q, cw), joss c Σ on seurv syötemerkki, joht suorn tilnteeseen (δ(q, c), w). Tätä merkitään lyhyesti (q, cw) (δ(q, c), w). Tilnne (q, w) joht tilnteeseen (q, w ) jos on olemss välitilnnejono (jollkin n N). (q, w) (q, w ) (q 2, w 2 ) (q 3, w 3 ) (q n, w n ) (q, w ) Tätä merkitään lyhyesti (q, w) (q, w ). Jos hlutn merkitä näkyviin minkä utomtin M tilnnejonoist on kyse, niin voidn käyttää lindeksiä: siis M j M. 23

Automtti M hyväksyy syötemerkkijonon x Σ, jos j muuten hylkää sen. (q, x) (q f, ε) joss q f F Toisin snoen, utomtti M hyväksyy syötteen x, jos sen vstv lkutilnne (q, x) joht johonkin hyväksyvään lopputilnteeseen, kun koko x on luettu. Vstv välitilnnejono (q, x) M (q, ε) kutsutn utomtin M lskennksi syötteellä x. Se on siis hyväksyvä lskent jos lopputil q F j hylkäävä jos q F. Vihtoehtoisesti voidn ljent siirtymäfunktion δ yksittäisiltä merkeiltä Σ kokonisille merkkijonoille w Σ (j niin teemmekin jtkoss): δ (q, w) = q silloin kun (q, w) (q, ε). (2) Siis δ (q, w) = se til johon päästään loittmll tilst q j lukemll merkkijono w loppuun skk. Erityisesti δ (q, ε) = q j δ (q, ) = δ(q, ), kun Σ. Automtti siis hyväksyy merkkijonon w, jos δ (q, w) F Tämä on helppo määritellä myös rekursiivisesti: { δ q jos w = ε (q, w) = δ (δ(q, ), v) jos w = v joss Σ Siitä sdn suorn rekursiivinen lgoritmi, jonk rekursio on niin yksinkertist (ns. häntärekursiot), että siitä sdn suorn pelkkä while-silmukk. 4.3 Säännöllinen kieli Automtti M tunnist kielen { } L(M) = x Σ : (q, x) (q f, ε) jollkin q f F M = {x Σ : δ (q, x) F } eli niiden merkkijonojen x joukon, jotk M hyväksyy. Snomme, että kieli A on säännöllinen, jos jokin äärellinen utomtti tunnist sen, ts. A = L(M) jollin M. Huom, että säännöllisyys on kielen, eli merkkijonojoukon ominisuus, ei yksittäisen merkkijonon. Ei ole mielekästä kysyä yksittäisestä merkkijonost, onko se säännöllinen. (Mistä thns merkkijonost w Σ voidn toki muodost yksilkioinen kieli {w} Σ, jok on selvästi säännöllinen.) 24

Esimerkki 2. Lillisen merkkijonon +2 käsittely kuvn 9 kokonislukuutomtill: (q, +2) (q,2) (q 2,2) (q 2,) (q 2,) (q 2, ε) Nyt jäätiin hyväksyvään lopputiln q 2 eli +2 L(M). Littomn merkkijonon 2 + lskent onkin (q,2 +) (q 2,2 +) (q 2, +) (error, ) eli päädyttiin virhetiln error eli 2 + L(M). Äärelliseen utomttiin voidn helposti lisätä muutkin tulostust j toimintoj kuin pelkkä hyväksyminen ti hylkääminen. Nämä ovt pelkkiä sivuvikutuksi eivätkä ne vikut utomtin toimintn siihen, miten se vlitsee tilsiirtymänsä...... ti jos ne vikuttvt, niin silloin kyseessä ei enää olekn äärellinen utomtti, vn jokin muu sitä vhvempi lskennn mlli. Tälliset modifiktiot eivät tämän kurssin knnlt tuo mitään kovin oleellist uutt sin. Muiss yhteyksissä ne voivt kuitenkin oll hyvinkin hyödyllisiä. Esimerkki 3. Lisätään esimerkin 9 etumerkillisen kokonisluvun tunnistmiseen toiminto, jok lskee luvun rvon muuttujn vlue eli muunt syötemerkkijonon sitä vstvksi kokonisluvuksi. Huom: Jos utomtti hylkääkin syötteensä, niin silloin vlue ei trkoit mitään! int q=; chr c; int sign=; int vlue=; while (c=fgetc(stdin)!= EOF) switch (q) { cse : if (c== + ) q=; else if (c== - ) { q=; sign=-; } else if (isdigit(c)) { q=2; vlue=c- ; } else q=3; rek; cse : if (isdigit(c)) { q=2; vlue=*vlue+sign*(c- ); } else q=3; rek; cse 2: if (isdigit(c)) { q=2; vlue=*vlue+sign*(c- ); } else q=3; rek; cse 3: rek; } Sivuhuomutus: Äärellisen utomtin tämän tpinen formlimpi ljennus on nimeltään äärellinen trnsdukteri (finite stte trnsducer). Tässä jokiseen tiln liittyy pitsi yhden syötemerkin lukeminen, niin myös yhden (ti usemmn) tulostemerkin kirjoittminen erilliselle tulostenuhlle (ti syötteen päälle). 25

Ohjelmointikielten kääntämisessä ensimmäinen vihe on leksiklinen nlyysi eli selus. Trkoituksen on poimi j erotell ohjelmn lähdekoodist erityyppiset lkiot, kuten kokonislukuvkiot (rvoineen), vrtut snt (if, else, while, jne.), muuttujien nimet, jne. Siis esimerkiksi nähtyään merkit for tällinen selj lukee vielä yhden merkin c eteenpäin. Jos tämä c on jokin muuttujn nimessä sllittu merkki, niin se tietää kokovns nyt muuttujn nimeä muoto forc...; muuten se tietääkin löytäneensä vrtun snn for j tämä c kuuluukin seurvn lkioon. Selj voidn toteutt (j usein toteutetn) yhtenä äärellisenä trnsdukterin, jok lukee lähdekooditiedosto merkki merkiltä j nähtyään jonkin kokonisen lkion tulost vstvn tiedon. Selj ei kuitenkn (yleensä) koodt käsin, vn sen koodi voidn tuott utomttisesti ohjelmointikielen kuvuksest jollin sopivll työklull (esim. lex j sen GNU-versio flex), jok myös voi utomttisesti liittää hyväksyviin tiloihin käyttäjän määrittelemän toimintokoodin (tulostuksen yms.). fredriks@cs ~$ ct ex.lex %{ #include <stdio.h> %} %option noyywrp %% [-9+ { printf("kokonisluku: %s\n",yytext); } lp { printf("lap!\n"); } /* Tunnistetn "lp" */. { } /* Sivuutetn muu */ %% int min(void) { yylex(); return ; } fredriks@cs ~$ flex ex.lex fredriks@cs ~$ gcc lex.yy.c -o foo fredriks@cs ~$./foo c23def456lpxxxxx Kokonisluku: 23 Kokonisluku: 456 LAP! Tehtävä 3. Tee prnneltu versio khviutomtist: utomtti hyväksyy vin tsrhn, mutt lisäksi siihen on lisätty nppi jok plutt kikki syötetyt kolikot (ntmtt khvi). Tehtävä 4. Ldi kkoston Σ = {, } äärellinen utomtti jok tunnist kielen {w: w sisältää täsmälleen kksi :t}. Tehtävä 5. Edellisen komplementti: ldi äärellinen utomtti jok tunnist kielen {w: w ei sisällä täsmälleen kht :t}. Tehtävä 6. Ldi utomtti kielelle: {w: w ei muodostu pelkästä :st ti :stä} Tehtävä 7. Ldi utomtti kielelle: {w: w ei sisällä jono } 26

Tehtävä 8. Osoit että kieli {() n : n > } on säännöllinen. Tehtävä 9. Trkstelln kieltä, jok koostuu niistä merkkijonoist, joiss jokinen priton (eli ensimmäinen, kolms, viides,...) merkki on. Osoit, että se on säännöllinen. Tehtävä. Ldi äärellinen utomtti, jok tunnist kielen L = { n m n, m N} { n m n, m N}. 4.4 Äärellisen utomtin lskentvoimst Kieli L = { n m : n, m N} on helppo tunnist äärellisellä utomtill, eli se on säännöllinen. Äärellinen utomtti on hyvin rjoittunut lskennn mlli. Vikkp niinkin yksinkertinen kieli kuin L 2 = { n n : n N} (eli merkkijonot joiss on ensin jono nolli j sitten smn verrn ykkösiä) ei olekn säännöllinen! (Tähän pltn.) Mikä on se perustv ero näiden kielten välillä, jok tekee toisest helpon j toisest mhdottomn tunnist äärellisellä utomtill? Intuitiivisesti, kielen L = { n m : n, m N} tunnistminen vtii vin vkiomäärän muisti. Kieli L = merkkijonot joss on ensin pelkkiä nolli j sitten pelkkiä ykkösiä. Siis niiden lukumäärällä ei ole väliä, j riittää muist mikä oli edellinen merkki (til). Toislt, kielen L 2 = { n n : n N} tunnistmiseen ei riitäkään vkiomäärä muisti. L 2 = merkkijonot joss on ensin jokin määrä n nolli j sitten yhtä mont ykköstä. Tässä tämä yhteinen n voi oll kuink suuri thns sehän riippuu syötteen pituudest. Äärellinen utomtti -prk unoht montko noll se on nähnyt, kun n on riittävän suuri. Formlisoimme tämän myöhemmin niin snottun pumppuslemmn. Toislt, ominisuutt vkiomäärä muisti käyttävät kikki utomttimme, esim. khviutomttimme esimerkissä 8 muist syötetyn kokonisrhsummn, jos se on < 2 senttiä. Muuten se muist vin että syötetty summ on 2 senttiä. Eli se muist vin äärellisen mont eri vihtoehto. Esimerkki 4. Äärellinen utomtti jok tunnist kielen toiseksi viimeinen merkki on noll : 27

???? Automtti muist kksi viimeistä lukemns ittiä. Tilt on nimetty näiden ittien mukn, eli tilss viimeisin luettu itti oli j sitä edellinen oli. Tiln nimessä? ts trkoitt sellist ittiä ei vielä ole luettu. Akkostot Akkosto Σ voidn määritellä melkein miten vin. Sovellus rtkisee luontevimmn tvn. Esim. Γ = {omen,päärynä,ppelsiini} ti Σ = {[, [, [, [,...,[ }. Toisin snoen, Σ sisältää kikki kolmen lkion pituiset inäärivektorit, Σ = 2 3 = 8. Akkoston Σ syötteitä voidn kutsu kolmiurisiksi. Esimerkiksi 4-merkkisessä syötteessä [ [ [ [ voidn jtell olevn kolme vierekkäistä ur: ylin ur joll on, keskimmäinen ur joll on, j lin ur joll on. Automtti lukee näitä uri smn thtiin rinnkkin, sillähän on vin yksi lukupää. Tehtävä. Jono kkoston Σ symolej määrittelee kolme riviä ykkösiä j nolli. Tulkitn nämä inäärilukuin, joiss eniten merkitsevä itti on oikell. Olkoon L = {w Σ : lin rivi on khden ylemmän rivin summ} Esimerkiksi [ [ [ L mutt [ [ L 28

eli Osoit että tämä kieli L on säännöllinen. Rtkisu: 3 + = 4 mutt + 3. Kieli on säännöllinen, jos on olemss äärellinen utomtti jok tunnist sen. Siis yksi tp todist kieli säännölliseksi on esittää sen tunnistv äärellinen utomtti. Sellinen on olemss tälle kielelle, esimerkiksi: A D B C A = {[ D = {[, [, [, [, [ } } B = {[ C = {[ } }. Tiln nimi = muistiitin (crry it) rvo. Siirtymä lskee muistiitin + ylimmän urn itin + keskiurn itin summn, jonk vähemmän merkitsevä itti nt limmn urn itin, j enemmän merkitsevä itti seurvn muistiitin eli tiln. Tehtävä 2. Olkoon Σ = {[, [, [, [ Jono kkoston Σ symolej määrittelee kksi ur ykkösiä j nolli. Tulkitn nämä inäärilukuin, joiss eniten merkitsevä itti on oikell. Olkoon }. L = {w Σ : lin rivi on kolme kert ylin rivi} Esimerkiksi [ [ [ [ [ [ L j [ [ L eli Osoit että tämä kieli L on säännöllinen. Rtkisu: 3 3 = 39 j 3 = 3. 29

Smn tpn kuin edellinen tehtävä. Eron on se, että nyt muistiittejä voi oll kksi. 3 =, 3 = 3 (inäärilukun ), eli tulokseen tulee, j muistiin litetn. Jos muistiss on, j lsketn 3, tulokseksi tulee (muistist), jos ts 3, tulos on 4 (inäärilukun ) joten tulositti on j muistiin jää, jne... Tämän (j edellisen) tehtävän rtkisu tunnist kuuluuko syöte kieleen. Jos hluisi oikesti tehdä kertolskukoneen (ti yhteenlskukoneen), niin rtkisu voidn helposti muutt trnsdukteriksi, jonk syötteenä luettisiin vin ylintä (j keskimmäistä) ur, j tulosteen kirjoitettisiin lint ur. Jos ei käytettäisikään ur-kkosto, vn kkoston olisikin Σ = {,, +, =}, niin kieli L = {x + y = z: x, y j z ovt inäärilukuj j luku z on lukujen x j y summ} ei olekn säännöllinen: jos x j y ovt trpeeksi suuri lukuj, niin äärellinen utomtti ehtisi unoht ne lukiessn luku z. Sm pätee kertolskulle. 4.5 Sovelluksist Äärelliset utomtit sellisenn ovt hyödyllisiä merkkijonojen käsittelyssä, mistä myöhemmin lisää... Lisäämällä tilsiirtymiin stunnisuutt sdn Mrkovin ketjut eli stunnisprosessit, joill on äärellinen muisti. Perusversioss Mrkovin ketjuihin ei tosin liity mitään syötettä. Mrkovin piilomllit (hidden Mrkov models) ovt lähempänä tässä esitettyjä äärellisiä utomttej. Tilsiirtymäjärjestelmiä käytetään (etenkin hjutettujen järjestelmien) spesifioinniss j verifioinniss. 3

Sovellus: viestinvälitysprotokollt Erilisi protokolli voidn kuvt äärellisinä utomttein ti tilkonein. Trkstelln yksikertist vuorottelevn itin protokoll, joss lähettäjäprosessi S j vstnottjprosessi R kommunikoivt. S lähettää pkettej d, d, d 2,... Pketti voi hukku mtkll (kuten kuvss d ). R kuitt sdun pketin (viestillään ) j S lähettää seurvn pketin lähetetään vst kun on snut edellisestä kuittuksen. Jos kuittust ei kuulu sovituss jss, niin pketti lähetään uudestn: S timeout d d d d 2 R Ongelm: Jos kuittus hukkuu, niin R voi sd duplikttiviestin: S timeout d d d d 2 R Rtkisu: Numeroidn viestit j kuittukset: timeout S d, d, d, d 2, 2 R,,,, 2 Mutt silloinhn pitäisi lähettää yhä suurempi j suurempi numeroit,, 2... Prnnus: Riittää käyttää kht numero ( j eli prillinen/priton viestin numero ): 3

timeout S d, d, d, d 2, 2 R,,,, 2 S j R voidn mllint tilsiirtymäjärjestelminä: lähettäjä S vstnottj R,, d, timeout timeout d, d, d, d, d, d,,, d, Jos S ei skn joiss symoli, niin se lukeekin sen sijn timeout-symolin. 4.6 Automtin minimointi. Mikä on utomtin 2 3 4 5 6 7, tunnistm kieli? 2 3 4 5 6 7, 32

2. Mikä on utomtin 2 3 4 5, tunnistm kieli? 2 3 4 5, 3. Mikä on utomtin 2 3, tunnistm kieli? 4. Virhetiloj kuten 3 ei (yleensä) ole tpn piirtää: 33

2 3 2, Lopputulost vstv säännöllinen luseke on ( ). Niihin pltn myöhemmin., 2 3,,,,, 4 Ekvivlenssi: Jos kksi utomtti M j M tunnistvt smn kielen (kuten yllä; minkä?) niin ne ovt keskenään ekvivlenttej eli yhtäpitäviä voimme käyttää kump thns. Minimlisuus: Automtti M on minimlinen jos siinä on mhdollisimmn vähän tiloj jos jokisell sen knss ekvivlentill utomtill M on inkin yhtä mont til. Redundnssi: Automtti on redundntti ellei se ole minimlinen silloin siinä on redundnttej eli ylimääräisiä kopioit smoist tiloist (yllä prittomt/prilliset). Miksi minimoid? Automttej muodostvt lgoritmit eivät in tuot minimlist utomtti. On helpompi nähdä mikä on minimlisen utomtin tunnistm kieli. On turh tllett ylimääräisiä tiloj. Minimlisen utomtin käsittely on tehokkmp. 34

Apukäsitteitä Muistetn siirtymäfunktion δ ljennus yksittäisiltä merkeiltä Σ kokonisille merkkijonoille w Σ yhtälöstä (2). Automtin M tilt q j q ovt keskenään ekvivlentit, merkitään q q, jos kikill merkkijonoill x Σ on δ (q, x) F jos j vin jos δ (q, x) F (3) eli jos loittmll tilst q hyväksytään täsmälleen smt merkkijonot kuin loittmll tilst q. Huom: Tämä siis ei ole sm si kuin q = q eli näiden tilojen smuus, kosk hyväksyvien tilojen ei trvitse oll smt, eli kosk voi oll δ (q, x) δ (q, x). Tilt q j q ovt keskenään k-ekvivlentit jollkin k N, merkitään q k q, jos niiden ekvivlenssiehto (3) pätee kikill merkkijonoill x Σ joill x k. Eli jos syötteen pituus on korkeintn k merkkiä niin tiloj q j q ei voi vielä erott toisistn. Selvästi q q jos j vin jos joko ne molemmt ovt hyväksyviä tiloj ti kumpikn ei ole tyhjällä merkkijonoll x = ε. q q jos j vin jos q k q kikill k N kiken mittisill merkkijonoill x. Minimoinnin ide:. Aloitetn nnetun utomtin M tilojen krkeimmst luokittelust ekvivlenssiluokkiin, eli -ekvivlenssist. 2. Trkennetn tilojen luokittelu k-ekvivlenssiluokki (k +)-ekvivlenssiluokkiin. 3. Lopetetn kun on svutettu täysi ekvivlenssi. Äärellisen utomtin minimointilgoritmi Syöte: äärellinen utomtti M = (Q, Σ, δ,q, F).. (Turhien tilojen poisto) Poist syötteestä M kikki tilt, joit ei void svutt sen lkutilst q millään syötemerkkijonoll. 2. (-ekvivlenssi) Osit syötteen M jäljelle jääneet tilt khteen luokkn: hyväksyviin vs. muihin tiloihin. 3. (k-ekvivlenssist (k + )-ekvivlenssiin) k 2 while josskin luokss on eri tvoin käyttäytyviä tiloj 3 do j ne pienemmiksi luokiksi siten, että kunkin uuden luokn kikki tilt käyttäytyvät smoin 4 k k + 35

Huom: Yhden luokn jkminen voi joht siihen, että jokin toinenkin luokk pitää jk, vikkei siltä ensin vikuttnutkn. Siksi while. 4. Tuloksen on utomtti M jonk tilt ovt vielä jäljellä olevt luokt Q siirtymäfunktio niiden välillä sdn seurvsti: Tuloksess on siirtymä Q Q täsmälleen silloin kun syötteessä oli siirtymä q q joss q Q j q Q Q sisältää eri tvoin käyttäytyviä tiloj jos tällä säännöllä tulisi keskenään ristiriitiset siirtymät Q Q j Q Q joill Q Q (joist toinen voi oll myös näkymätön virhetil). Tällist Q kutsutn epädeterministiseksi kosk siinä ei ole determinoitu eli määrätty kumpn tiloist Q ti Q pitäisi siirtyä syötemerkillä. Epädeterminismiin pltn trkemmin myöhemmin luvuss 4.7. lkutil on se luokk joss syötteen lkutil on hyväksyvät tilt ovt ne luokt joihin kuuluu jokin syötteen hyväksyvä til. Algoritmi pysähtyy kosk syötteessä oli äärellinen määrä tiloj, j whilesilmukn jokisell kierroksell jkutuu inkin yksi luokk. (Siis kierroksi kertyy korkeintn smn verrn kuin syötteessä oli tiloj.) Tulos on syotteen knss ekvivlentti utomtti, joss on minimimäärä tiloj. Tulos on oleellisesti (eli tilojen nimentää lukuunotmtt) yksikäsitteinen (todistus sivuutetn). Esimerkki 5. Olkoon M = (Q, Σ, δ,q, F) joss tilojen joukko Q = {, 2, 3, 4, 5, 6}, syötekkosto Σ = {, }, lkutil q =, lopputilojen joukko F = {4, 5} j siirtymäfunktio δ: 2 3 2 4 2 3 2 3 4 3 5 5 4 6 4 5 2 3 4 5 6 36

Askel : Turhien tilojen poisto. ennen jälkeen 2 4 2 4 6 3 5 3 5 Askel 2: Jottele syötteen M (jäljelle jääneet) tilt -ekvivlenssiluokkiin, eli hyväksyviin j hylkääviin tiloihin. Merkitään ekvivlenssiluokki roomlisin numeroin. 2 4 I: 2, I 3, I 2 4, II 2, I 3 2, I 3, I II: 4 3, I 5, II 5, I 4, II 3 5 Automtti M lk kehittyä tästä lähtotilnteest: 37

I II 5 3 2 4 I: 2, I 3, I 2 4, II 2, I 3 2, I 3, I II: 4 3, I 5, II 5, I 4, II, Til I on epädeterministinen, kosk merkillä voidn siirtyä tiln I ti II. Askel 3: k-ekvivlenssist (k + )-ekvivlenssiin. I Jos M ei sisällä enää yhtään epädeterminististä til, niin lgoritmi päättyy j tulost sen vstuksenn. Nyt kuitenkin sen luokk I pitää jk, kosk syötteen M tilt j 3 käyttäytyvät keskenään smoin: kummllkin syötemerkillä pltn luokkn I, mutt til 2 käyttäytyy toisin kuin ne: syötemerkillä siirrytäänkin tiln II eikä I. Siis tilt j 3 pysyvät luokss I, kun ts tilst 2 tulee uusi luokk II, j vnh luokk II nimetään uudelleen luokksi III: II I: 2, II 3, I 3 2, II 3, I II: 2 4, III 2, II III: 4 3, I 5, III 5, I 4, III I II III Askel 4: Nyt jokinen luokk I, II j III on deterministinen, joten tulos M on vlmis. Tehtävä 3. Muodost kuvn 9 determinististä äärellistä utomtti vstv minimiutomtti. Tehtävä 4. Muodost kuvn determinististä äärellistä utomtti vstv minimiutomtti. 4.7 Epädeterministiset äärelliset utomtit Epädeterminismi trkoitt, ettei koskn trvitse myöntää olevns väärässä. Anon. Epädeterministisellä utomtill siirtymäfunktio δ liittää nykyisen tiln j syötemerkin priin (q, x) äärellisen joukon mhdollisi seurvi tiloj. 38

A B D C E Kuv 9: Tehtävän 3 utomtti. 2 3 4 5 Kuv : Tehtävän 4 utomtti. 39

Epädeterministinen utomtti hyväksyy merkkijonon x jos sille on olemss jokin hyväksyvä lskent. Siis se hylkää merkkijonon x vin jos kikki sen lskennt ovt hylkääviä. Ihn loogisesti: kosk niin kääntäen x hyväksytään sille on jokin hyväksyvä lskent x hylätään ei niin, että sille olisi jokin hyväksyvä lskent sen kikki lskennt hylkäävät. Esimerkiksi epädeterministinen utomtti q q q 2 q 3 hyväksyy syötemerkkijonon, kosk sillä on hyväksyvä lskent (q, ) (q, ) (q, ) (q, ) (q, ) (q 2, ) (q 3, ε). Sillä on myös hylkääviä lskentoj kuten (q, ) (q, ) (q, ) (q, ) (q, ) (q, ) (q, ε) mutt niitä ei siis otet huomioon. Determinismi vs. epädeterminismi Deterministisessä utomtiss siirtymä trkoitt, että nykyisestä tilst mennään in kohdetiln sen δ(q, ). Epädeterministisessä utomtiss siirtymä r δ(q, ) trkoittkin, että tilst q syötemerkillä on mhdollist mennä tiln r. Mutt voi oll muitkin mhdollisuuksi s δ(q, ). Deterministinen utomtti hyväksyy, jos se ino mhdollinen lopputilnne on hyväksyvä. Epädeterministinen utomtti hyväksyy, jos on mhdollist päätyä hyväksyvään lopputilnteeseen. Eli jos on jokin tp vlit in sopivsti nykyiselle tillle q i seurv til q i+ δ(q i, i ) siten, että syötteen 2... n loputtu olln josskin hyväksyvässä tilss q n. 4

Mutt epädeterminismi näyttää epäilyttävän epämekniselt: miten nykyisessä tilss q i voitisiin ost tehdä juuri oike vlint näkemättä syötteen loppuos i+ i+2 i+3... n? Sillä onkin erilisi tulkintoj, kuten: Spesifiktion. Epädeterminismi kuvilee minkäliset merkkijonot pitäisi hyväksyä mutt ei kerro trksti miten niiden hyväksyntä etenisi skel skeleelt. Etsintänä. Epädeterminismi on opertio etsi reitti tästä tilnteest johonkin hyväksyvään lopputilnteeseen. Se ts voitisiin meknisoid vikkp TRA-kurssin keinoin syvyyssuuntisen etsintänä kikkien tilnteiden verkost: DFS(q, x) : if merkkijono x = ε 2 then return onko til q hyväksyvä viko hylkäävä 3 else olkoon x = y joss Σ j y Σ 4 for ech r δ(q, ) 5 do if DFS(r,y) 6 then return true 7 return flse Epädeterministinen utomtti hyväksyy syötteensä jos DFS(sen lkutil, syöte) vst true. Ilmisen neuvon. Epädeterministisen utomtin voidn jtell svn jokisess vlinttilnteessn Mihinköhän seurvist mhdollisist tiloistni δ(q, ) minun knnttisi siirtyä? jostkin ulkopuolelt vstuksen Siirry tiln r, luot minuun! Tärkeä tulos Silloin utomtin itsensä tehtäväksi jää vin vrment että sen smt neuvot olivt oikein. Ti jos jtelln etsintää, niin utomtti ei itse joudu tekemään rskst työtä, vn työn tekee neuvonntj j utomtti s työn tulokset ilmiseksi. Tämän tulkint tulee erityisen kiinnostvksi silloin kun trkstelln utomttej vhvempi lskentmllej mutt rjoitetn niille nnettvien resurssien määrää esimerkiksi P? = NP-ongelm s silloin tulkinnn jos jokin vstus voidn vrment nopesti, niin olisiko se voitu lskekin ilmn neuvoj nopesti?.. Deterministiset ( Deterministic Finite Automt, DFA) j epädeterministiset (Nondeterministic Finite Automt, NFA) utomtit tunnistvt täsmälleen smt kielet. (Kielenhuolto: Sn utomtti on lunperin kreikk. Siksi sen yksikkömuoto on englnniss utomton (jok trkoitt suomeksi itseliikkuv ) kun ts sen monikkomuoto on utomt. Tämä sääntö on kuitenkin nykyään lknut horju.) 2. Epädeterministiset utomtit tunnistvt täsmälleen säännölliset kielet 3. deterministiset utomtit tunnistvt täsmälleen säännölliset kielet. 4

2 3 ε Kuv : Epädeterministinen utomtti joss on siirtymä tyhjällä merkkijonoll. Eli DFA j NFA ovt ilmisuvoimltn yhtä vhvoj lskennn mllej niillä voidn hyväksyä smt kielet. Epädeterminismiä käyttämällä kielen esitystä voidn kuitenkin usein selkeyttää j yksinkertist spesifiktiotulkint. Epädeterministisen utomtin voidn jtell seurvn kikki mhdollisi lskentojn rinnkkin: Deterministinen lskent Epädeterministinen lskent.. hyväksy ti hylkää.... hylkää hyväksy Eli deterministinen lskent on yksi polku, mutt epädeterministiset lskennt muodostvkin kokonisen lskentpuun jonk hrt vstvt eri vlintkohti. Epädeterministisessä utomtiss sllitn myös ε-siirtymiä kuten kuvss. Tällisen ε-siirtymän kuten ε 2 tulkint on, että sitä pitkin pääsee tilst tiln 2 lukemtt yhtään syötemerkkiä. 42

Esimerkkinä kuvn utomtti j syöte. Vknuolet kuvvt ε-siirtymiä, joiss ei siis luet syötettä. Viimeisellä rivillä esiintyy (khteenkin kertn) hyväksyvä til 3, joten utomtti hyväksyy syötteen. 2 2 3 2 2 2 3 3 Seurv NFA hyväksyy merkkijonot, joiss on osjonon ensin j sen jälkeen c ti c. Huom konstruktion modulrisuus: ε-siirtymien vull utomtti voidn muodost helposti osrtktkisuist (Tosin juuri tämän kielen tunnistv DFA olisi helppo muodost suornkin...),,c,,c ε " moduuli" "mitä thns moduuli" ε ε "c moduuli" c ε,,c ε c ε "c moduuli" Määritelmä 2. Epädeterministinen äärellinen utomtti on viisikko M = (Q, Σ, δ,q, F) joss Q on äärellinen tilojen joukko, Σ on äärellinen syötekkosto, δ: Q Σ P(Q) on joukkorvoinen siirtymäfunktio siis sen rvot δ(q, ) Q ovt tiljoukon Q osjoukkoj q Q on lkutil j 43

F Q hyväksyvien tilojen joukko. Muist: Mtemtiikss merkintä P(S) (jotkut merkitsevät myös 2 S, me emme) trkoitt joukon S potenssijoukko {X : X S} eli kikkien niiden joukkojen X joukko, jotk voidn muodost joukon S lkioist. Esimerkiksi P({,, }) = {, { },{ }, { },{, },{, },{, },{,, }}. Esimerkki 6. q q q 2 q 3 q {q, q } {q } q {q 2 } q 2 {q 3 } q 3 {q 3 } {q 3 } Nyt virhetilnne on helposti ilmistviss tyhjän seurjtiljoukon vull. Siirtymätulukoss voidn jättää joukkosulut poiskin: siis joukko {q, q } voidn merkitä myös suorn sen lkioiden listn q, q. Tilnne (q, w) voi joht suorn tilnteeseen (q, w ), jot merkitään smoin kuin ennen eli (q, w) (q, w ), jos w = w j q δ(q, ). Silloin (q, w ) on (q, w) mhdollinen välitön M seurj. Muutoin määritelmät epädeterministisille utomteille ovt smt kuin iemmin. Tärkeän tuloksemme DFA NFA perustelu : Selvästikin deterministiset utomtit ovt epädeterminististen erikoistpus joss in δ(q, ). Siten kikki edellisillä tunnistettvt kielet ovt tunnistettviss myös jälkimmäisillä. : Mutt myös kääntäen (j tämä on se yllättävämpi j vikempi suunt): Jokiselle epädeterministiselle lgoritmille M on olemss smn kielen tunnistv deterministinen utomtti M. Tämä osoitetn myöhemmin kehittämällä menetelmä, joll syötteenä sdulle utomtille M voidn lske jokin sitä vstv M eli menetelmä determinisoid M. Tehtävä 5. Ldi sellinen kkoston Σ = {,} epädeterministinen utomtti, jok hyväksyy täsmälleen ne merkkijonot, joiss esiintyy sekä merkkijono että merkkijono. Huom, että nämä esiintymät svt oll päällekkäinkin: siis esimerkiksi merkkijono hyväksytään, kosk siinähän on lle- j ylleviivuksell merkityt päällekkäiset esiintymät. Tehtävä 6. Ldi deterministinen utomtti edellisen tehtävän 5 kielelle. 44

Epädeterministisen utomtin simulointi Pltn iempn esimerkkiin kuvss. Kirjoitetn lgoritmi, jok käy läpi lskentpuut leveyssuuntisesti. Algoritmi pitää muuttujss NykyisetTilt list niistä tiloist, joiss se tällä hetkellä voisi oll (lskentpuun tso). Kullkin skeleell sitä päivitetään lskemll. stu syötemerkkiä vstvt seurjtilt j 2. ne tilt, joihin niistä päästään ε- siirtymillä. 2 3 ε 2 2 3 2 2 2 3 3 Tiljoukon R Q ε-sulkeum E(R) koostuu niistä tiloist, joihin tiljoukost R pääsee ε-kri pitkin. Siis R E(R) kosk jokisest tilst pääsee suorn itseensä ilmn yhtään (edes ε-)siirtymää, j jos tilst s E(R) on ε-siirtymä s ε t niin myös sen kohdetil t E(R). Muut sitten ei kuulukn joukkoon E(R). SimulteNFA(M, syöte): NykyisetTilt E(lkutil q ) 2 while syötettä on yhä jäljellä 3 do merkki lue seurv syötemerkki 4 SeurjTilt 5 for q NykyisetTilt 6 do SeurjTilt SeurjTilt δ M (q,merkki) 7 SeurjTilt E(SeurjTilt) 8 NykyisetTilt SeurjTilt 9 return lopputilt F NykyisetTilt 45

Algoritmi SimulteNFA tulkk epädeterministisen lskennn deterministiseksi. Yksittäinen syötemerkki käsitellään (phimmss tpuksess) jss O( Q ). Tästä tulkkuksest päästään eroon kääntämällä lskent deterministiseksi, eli muodostmll NFA:st M DFA M jok tunnist smn kielen, eli lskemll etukäteen NFA:n M siirtymätulukost DFA:n M siirtymätulukko. Hvitn: muuttujn NykyisetTilt rvot kuuluvt potenssijoukkoon P(Q). Siten muuttujll NykyisetTilt on korkeintn P(Q) = 2 Q mhdollist rvo joten voimme muodost äärellisenä pysyvän deterministisen utomtin littmll kukin sen mhdollinen rvo omksi tilkseen j siirtymät kuten SimulteDFA ne lskisi. Siis muodostmme NFA:st M DFA:n M seurvsti: Akkosto on molemmill sm Σ. Tiljoukko Q cm = P(Q M ). Siirtymäfunktio koostuu siirtymistä NykyisetTilt merkki SeurjTilt joss nämä muuttujt NykyisetTilt, merkki j SeurjTilt ovt kuten tulkkilgoritmin SimulteNFA riveillä 4 7. Eli kun nnetn til NykyisetTilt Q cm ( P(Q M )), niin käydään läpi jokinen merkki Σ, j lsketn sille vstv SeurjTilt P(Q M ) ( Q cm ). Alkutil on kuten sen rivillä. Eli E(DFA:n M lkutil q ). Hyväksyvät tilt ovt kuten sen rivillä 9. Eli ne tilt, joihin sisältyy inkin yksi DFA:n M lopputil. lust tulos M sisältämään luksi pelkän lkutiln nimeltä E(DFA:n M lkutil q ) eikä yhtään krt j merkitse se uudeksi 2 while tuloksess M on yhä uusi tiloj 3 do NykyisetTilt ot jokin niistä j merkitse se vnhksi 4 if joukkoon NykyisetTilt kuuluu inkin yksi epädeterministisen utomtin M hyväksyvä til 5 else merkitse NykyisetTilt hylkääväksi tilksi 6 for merkki Σ 7 do lske SeurjTilt kuten tulkkilgoritmin SimulteNFA riveillä 4 7 8 if til nimeltä SeurjTilt puuttuu yhä tuloksest M 9 then luo sellinen j merkitse se uudeksi Lisää tulokseen M siirtymä NykyisetTilt merkki SeurjTilt lopuksi voit vielä minimoid tuloksen M jos thdot 46