Laskennan perusmallit 2013: Kertausta

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

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

2.5 Säännöllisten kielten rajoituksista

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

2.2 Automaattien minimointi

ICS-C2000 Tietojenkäsittelyteoria Kevät 2015

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

Laskennan mallit (syksy 2010) 1. kurssikoe, ratkaisuja

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

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

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

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Pinoautomaatit. Pois kontekstittomuudesta

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

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

Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)

Yhteydettömän kieliopin jäsennysongelma

Rajoittamattomat kieliopit

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

Kertausta 1. kurssikokeeseen

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

6.2 Algoritmin määritelmä

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

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

Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja

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

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

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

5.3 Ratkeavia ongelmia

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

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

Laskennan perusmallit (LAP)

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

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

Laskennan perusmallit (LAP)

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

1. Universaaleja laskennan malleja

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

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

Chomskyn hierarkia ja yhteysherkät kieliopit

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

Säännöllisten kielten sulkeumaominaisuudet

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

S BAB ABA A aas bba B bbs c

Ristitulo ja skalaarikolmitulo

T /1002 Tietojenkäsittelyteorian perusteet T/Y

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

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

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

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

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

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

T /1002 Tietojenkäsittelyteorian perusteet T/Y

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


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

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

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

Laskennan perusmallit (LAP)

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

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

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

Lisää pysähtymisaiheisia ongelmia

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

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

LAP: Laskennan perusmallit

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

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

T /2 Tietojenkäsittelyteorian perusteet T/Y

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

ICS-C2000 Tietojenkäsittelyteoria

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

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

Automaatit. Muodolliset kielet

Yhteydettömät kieliopit [Sipser luku 2.1]

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

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

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 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 $:

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

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

Algoritmin määritelmä [Sipser luku 3.3]

Turingin koneen laajennuksia

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

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

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

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

Transkriptio:

Lskennn perusmllit 13: Kertust Pekk Kilpeläinen Tietojenkäsittelytieteen litos, Itä-Suomen yliopisto sähköposti: pekk.t.kilpelinen@uef.fi 8. helmikuut 13 Lähtökoht j trkstelun kohde Lskentongelmt erityisesti päätösongelmt f : Syötteet Tulosteet, f : Syötteet {, 1} : Onko syötteellä x hluttu ominisuus? kuuluuko x joukkoon {w w:llä on hluttu ominisuus } utomttien j formlikielten teori: kielentunnistusongelmi rtkovt lskennn mllit sekä niiden kutt stv tieto lskentongelmist j niiden rtkisuist Äärellinen utomtti (FA) Yksinkertisin lskennn mlli (muistiton) Formlisti M = (Q, Σ, δ, q, F ) Deterministinen: Tiln q j merkkiin liittyy yksikäsitteinen seurjtil δ(q, ) Automtin M 1 tilsiirtymäkvio j tilsiirtymätulukko: M 1 : δ 3 1 3 1 3 1 3 1 3 1

rtkemttomt ongelmt tyyppi : rjoittmttomt kielet rekursiivisesti lueteltvt kielet tunnistus: universli Turingin kone (pysähtyy "kyllä" tpuksess) rekursiiviset kielet tunnistus: Turingin kone + riittävän mittinen työnuh (pysähtyy in), RAM kone, ohjelmointikielet tyyppi 1: kontekstiset kielet tunnistus: Turingin kone + kohtuullisen (eli polynomisen) mittinen työnuh tyyppi : kontekstittomt kielet tunnistus: pinoutomtti tyyppi 3: säännölliset kielet; tunnistus: äärellinen utomttivkiomäärä muisti äärelliset kielet Kuv 1: Chomskyn kielihierrki. Automtin lskent j tunnistm kieli M 1 : 3 1 Syötteen hyväksyvä lskent joht lopputiln: (, ) (, ) (1, ) (3, ) (1, ) (, ) (, ) Hylkäävä lskent ei johd lopputiln: (, ) (1, ) (3, ) (1, ) Automtin tunnistm kieli L(M) = {w Σ M hyväksyy w:n} Määr: Kieli on säännöllinen jos joku utomtti tunnist sen M 1 : 3 1 Automtti M 1 tunnist kielen L(M 1 ) = {w {, } w on tyhjä ti sisältää osjonon }

pädeterministinen äärellinen utomtti (NFA) Yleistys: siirtymäfunktion rvo voi oll joukko vihtoehtoisi tiloj δ {, 1} {} 1 1 {} syötteeseen voi liittyä vihtoehtoisi lskentoj NFA hyväksyy syötteen joss sillä on jokin hyväksyvä lskent Y.o. utomtin M tunnistm kieli? NFA:n simulointi Voidn pitää kirj vihtoehtoisten lskentojen syötteellä svuttmist tiloist 1 1 1 1 NFA:n muuntminen DFA:ksi Voidn myös lske etukäteen eri syötteillä svutettvt tiljoukot, j sett ne vstvn DFA:n tiloiksi: 1 δ 3 {} {, 1} {} Sdn DFA M 3 : 3

,1,1, Determinisointikonstruktion merkitys Käytännössä: Suoritus nopeutuu Teoreettinen tulos: Kikki NFA:ll tunnistettvt kielet ovt säännöllisiä Säännölliset lusekkeet Merkintätp säännöllisten kielten kuvmiseen kuvuskielet, tekstihku,... Peruslusekkeet: tyhjä joukko j tyhjä merkkijono jokinen yksittäinen merkki Σ Operttorit: ktenointi rs yhdiste eli vlint r s itertio eli sulkeum r sim. = ( ) ( ) L() = Säännöllisestä lusekkeest utomtiksi Säännöllinen luseke voidn muunt ekvivlentiksi -utomtiksi NFA; lisänä -siirtymiä, joit voi seurt lukemtt syötemerkkiä 4

r = : r = s t: r = : M s r =, Σ M t r = st: r = s : M s M t M s sim. = ( ) ( ) -utomtti voi simuloid kuten NFA:t, j sen voi determinisoid vstvsti Aino ero: Huomioidn myös -siirtymillä svutettvt tilt -sulkeum (q) (eli kunkin tiln q sim. Determinisoidn lusekett ( ) vstv -utomtti 5

1 3 4 5 6 7 δ () = {, 1,, 4, 7} (3) = {1,, 3, 4, 6, 7} (5) = {1,, 4, 5, 6, 7} (3) (3) (5) (5) (3) (5) Luseke utomtti-konstruktion merkitys Tekniikk lusekkeiden suorittmiseksi Teoreettinen tulos: Säännöllisten lusekkeden kuvmt kielet ovt säännöllisiä Automtist säännölliseksi lusekkeeksi Kääntäen: äärellinen utomtti voidn muunt sen tunnistm kieltä kuvvksi lusekkeeksi Väliviheen lusekeutomtti kuten -utomtti, mutt siirtymissä muitkin lusekkeit kuin Σ ti Kerrtn menetelmä esimerkin vull. simerkki 1. 1 6

1. Lisätään yksikäsitteinen lopputil j yhdistetään rinnkkiset siirtymät: 1. Korvtn välitil 1 suorll siirtymällä: 3. Poistetn välitil : ( ) Tuloksen luseke ( ) Automtti luseke-konstruktion merkitys Sovelluksi esim. koneoppimisess: kielen kuvuksen muodostminen esimerkeistä Teoreettinen tulos: Jokinen säännöllinen kieli voidn kuvt säännöllisellä lusekkeell Miten nähdään kieli säännölliseksi? (kvivlenssitulosten nojll) esittämällä joko DFA, NFA ti säännöllinen luseke Se mikä on kätevintä riippuu tilnteest sim: Merkkijonot, jotk eivät sisällä osjono Säännöllisillä lusekkeill ei voi suorn ilmist poissulkevi ehtoj, mutt DFA:n hyväksemis- j hylkäyspäätökset voi kääntää päinvstisiksi: 7

M 1 : 3 1 M 1 : 3 1 Säännöllisten kielten sulkeumominisuudet Säännöllisen kielen komplementti on siis myös säännöllinen Säännöllisten kielten yhdisteet, ktenoinnit j sulkeumt ovt myös säännöllisiä Helppo nähdä säännöllisten lusekkeiden kutt: Jos A = L() j B = L(F ) säännöllisillä lusekkeill j F, niin A B = L() L(F ) = L(( F )) AB = L()L(F ) = L((F )) j 8

A = L() = L( ) Smoin leikkus A B j joukkoerotus A \ B säilyttävät kielet säännöllisinä ( sulkeum komplementin suhteen + de Morgn) Miten nähdään kieli I-säännölliseksi? Pumppuslemmll: JOS kieli L on tunnistettviss äärellisellä utomtill, sillä on pumppuspituus p N ( utomtin tilojen lkm) s.e. kikki riittävän pitkät s L ( s p) voidn jk s = xyz s.e. 1. xy p. y > j 3. xy i z L kikill i N ( y on utomtin silmukn hyväksymä sn) Jos tämän osoitt olevn mhdotont, niin kieli ei voi oll säännöllinen. sim: Plindromikieli L = {w {, } w = w R } on ei-säännöllinen: Muuten sillä olisi pumppuspituus p N j esim. snn s = p p täyttää pumppuslemmn ehdot. L pitäisi Kuitenkn millään joll s = xyz missä xy p j y > ei päde jos i 1 Kontekstittomt kielet xy i z L Kuvusformlismi: kontekstittomt kieliopit muuttuj- eli välikesymolit N päätesymolit Σ (= kielen merkistö) säännöt eli produktiot A α missä A N j α (N Σ) Kieliopin tuottm ti kuvm kieli: merkkijonot w, jotk voidn tuott loittmll lähtösymolist j korvmll muuttuji produktioiden rungoill s.o. niillä on johto S γ 1 γ w L(G) = {w Σ S w} Sopii sisäkkäisten ti rekursiivisten rkenteiden kuvmiseen tyypillisiä mm. ohjelmointikielille säännöllisillä lusekkeill voi kuvt vin vlinnisuutt, peräkkäisyyttä j toisteisuutt sim: Kielioppi kkoston {, } plindromeille: S S S 9

sim. snn johto: S S S Kontekstittomill kieliopeill voi siis kuvt ei-säännöllisiä kieliä Toislt niillä on helppo toteutt kikki säännöllisten lusekkeiden operttorit sim: ( ) ( ) S AB A A A B Kontekstittomien kielten sulkeumominisuuksist Smll peritteell helppo nähdä, että säännölliset opertiot yhdiste, ktenointi j sulkeum säilyttävät kielen kontekstittomn Kontekstittomien kielten leikkus ti komplementti ei kuitenkn välttämättä ole kontekstiton (Oikelle) lineriset kieliopit Säännöllisten kielten kuvmiseen riittävät rjoitetutkin kieliopit, joiss säännöt ovt vin muoto A C ti A Automtin j oikelle linerisen kieliopin vstvuus: Til q vst välike A q Siirtymä p q vst produktio A p A q Automtti jäämistä lopputiln q vst välikkeen A q korvus tyhjällä (jolloin johto päättyy) sim: Muodostetn utomtist oikelle linerinen kielioppi Sdn kielioppi 1 S S S S 1 S 1 S S sim: Muodostetn oikelle linerisest kieliopist utomtti S A B A B cs da 1

Sdn utomtti A S c d B Pinoutomtit Kontekstittomien kielten tunnistmiseen (pl. säännölliset kielet) trvitn muisti Pino riittää niiden sisäkkäisyyden/rekursiivisuuden hllitsemiseen syötenuh tutkittv syöte... nuhpää ohjusyksikkö q q 3 q 1 q δ A A A A_ pino Pinoutomtin siirtymät Yhdessä siirtymässä, γ/γ q q voidn luke syötemerkki j korvt pinon huippu γ uudell pinomerkillä γ Kukin niistä voi oll, jolloin vstv syötemerkkiä ei luet vnh pinon huippumerkkiä ei poistet ti uutt merkkiä γ ei lisätä pinon päälle sim: Hlutn tunnist prillisen pituiset plindromit, joit kuv kielioppi S S S 11

Kielen tunnistv pinoutomtti, /$ q 1 q, /, /, / q 4, $/ q 3, /, / Automtti on epädeterministinen Pinoutomtit j kontekstittomt kielet Tulos: 1. Jokinen kontekstiton kieli voidn tunnist (epädeterministisellä) pinoutomtill mutt jokiselle ei deterministinen utomtti riitä. Jokinen pinoutomtin tunnistm kieli on kontekstiton Deterministisillä pinoutomteill tunnistettvt deterministiset kielet muodostvt käytännössä tärkeän liluokn rjoitetut kieliopit kuten esim. LL(1) Kielioppien jäsennysongelm Miten testtn onko syöte kieliopin mukinen? j nnetn sille kieliopin mukinen jäsennys, jott se voidn tulkit ti kääntää oikein Keskeinen osongelm ohjelmointikielten toteuttmisess Jäsennyspuu Keskeinen esitysmuoto merkkijonon kieliopin mukiselle rkenteelle Riippumton produktioiden soveltmisjärjestyksestä (vsen, oike ti sekmuotoinen johto) Sisäsolmuin kieliopin välikkeitä j lpsisolmut produktioiden mukisi 1

T T T F F F + * Kieliopin moniselitteisyys Kielioppi on moniselitteinen, jos se sllii syötteille vihtoehtoisi jäsennyspuit sim. G expr: + (): 13

+ + Huono, kosk rkenteen moniselitteisyys voi hämärtää myös merkityksen Yksikäsitteisyyteen j tehokkseen deterministiseen jäsennykseen päästään rjoittumll esim. LL(1)- (ti LR(1)-)muotoisiin kielioppeihin Yleistenkin kontekstittomien kielioppien jäsennys onnistuu tulukoivll CYK-lgoritmill jss O(n 3 ) LL(1) Tvoite: Syötemerkkijonon ohjm top-down-jäsennys s.e. lvennusvihtoehdoist A α 1 α α 3... α k voidn in vlit oike sääntö vuoross olevn päätesymolin perusteell. Siksi (I) vihtoehtoisten sääntöjen tuotosten täytyy lk eri päätemerkeillä: first(α i ) first(α j ) = kun i j (II) Jos A, niin ei s oll epäselvää sovelletnko jotin sen ei-nollutuv vihtoehto vi kuuluuko päätesymoli sen tyhjän esiintymän perässä tulevn osn syötettä, eli follow(a) first(α i ) = jokisell välikkeen A ei-nollutuvll säännöllä α i simerkki. Trkstelln seurv kielioppi: S AB A C C C cd B d e Kielioppi toteutt ehdon (I). sim. välikkeen A sääntöjen tuotokset lkvt eri tvoin: first(c) = {}; first(c) = {, c}; first() = {} Kielioppi ei kuitenkn ole LL(1)-muodoss, kosk rikkoo ehto (II): follow(a) = first(b) = {, e} first(c) = {, c} Loppu Muist kurssiplute! 14