LAP: Laskennan perusmallit
|
|
- Olavi Laakso
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 LAP: Lskennn perusmllit Mtti Nykänen Tietojenkäsittelytieteen litos, Itä-Suomen yliopisto sähköposti: Lukuvuoden III periodi Sisältö 1 Kurssin sem opetuksess 1 2 Kurssin sem tietojenkäsittelytieteessä Histori Kurssin sisältö tästä eteenpäin Johdnto Lskennlliset ongelmt Päätösongelmt j formlit kielet Lskennllisten ongelmien rtkevuus Churchin Turingin teesi Pysähtymisongelmn rtkemttomuus Säännölliset kielet j äärelliset utomtit Äärellisen utomtin esitystpoj Äärellisen utomtin formli määrittely Säännöllinen kieli Äärellisen utomtin lskentvoimst Sovelluksist Automtin minimointi Epädeterministiset äärelliset utomtit Säännölliset lusekkeet j kielet Säännöllisten kielten sulkeumominisuudet Äärelliset utomtit j säännölliset kielet Säännöllisestä lusekkeest utomtti Automtist säännöllinen luseke Säännöllisten kielten rjoituksist Kontekstittomt kielet j pinoutomtit Kontekstittomien kielten sulkeumominisuuksist Säännölliset kielet j kontekstittomt kieliopit Äärellistä utomtti vstv linerinen kielipppi Linerist kielioppi vstv äärellinen utomtti Pinoutomtti Deterministiset j epädeterministiset pinoutomtit i
2 5.3.2 Pinoutomtit j kontekstittomt kielet Kielioppien jäsennysongelm Cocke-Younger-Ksmi-lgoritmi Tehokkmmt jäsennysmenetelmät LL(1)-kielioppi LR-kieliopeist Kontekstittomien kielten rjoituksist Lskennn filosofi Turingin kone Algoritmin määritelmä Rtkemttomuudest Lskennn vtivuusteorist Ongelmien vikeusluokitukset j plutukset Summ summrum 165 Viitteet Alfred V. Aho, Monic S. Lm, Rvi Sethi, nd Jeffrey D. Ullmn. Compilers: Principles, Techniques, nd Tools. Addison Wesley, second edition, Michel R. Grey nd Dvid S. Johnson. Computers nd Intrctility: A Guide to the Theory of NP-Completeness. Freemn, John E. Hopcroft, Rjeev Motwni, nd Jeffrey D. Ullmn. Introduction to Automt Theory, Lnguges nd Computtion. Addison Wesley, second edition, Grhm Hutton. Progrmming in Hskell. Cmridge University Press, John R. Levine, Tony Mson, nd Doug Brown. Lex & Ycc. O Reilly, second edition, Hrry R. Lewis nd Christos H. Ppdimitriou. Elements of the Theory of Computtion. Prentice-Hll, second edition, Chris Okski. Purely Functionl Dt Structures. Cmridge University Press, Michel Sipser. Introduction to the Theory of Computtion. Course Technology, second edition, Thoms A. Sudkmp. Lnguges nd Mchines: An Introduction to the Theory of Computer Science. Addison Wesley, second edition, Simon Thompson. Hskell: the Crft of Functionl Progrmming. Addison Wesley, third edition, ii
3 1 Kurssin sem opetuksess Tietojenkäsittelytieteen pääineopiskelijoille pkollinen ineopintokurssi (3 op). Esitietovtimukset: Johdtus tietojenkäsittelytieteeseen (JTT): Lskennn, lgoritmin j tietokoneen käsitteet. Diskreetit rkenteet (DSR): Sovelletn joitkin diskreetin mtemtiikn peruskäsitteitä, kuten puit j verkkoj. Lisäksi molemmill kursseill lähestymistp j jtusmilm on mtemttinen (eikä esimerkiksi ohjelmointitekninen). Tietorkenteet 1 (TRA1): Käytetään joitkin siellä selostettuj perustietorkenteit, kuten pinoj j puit. Lisäksi viittn joihinkin siellä esiteltyihin käsitteisiin, kuten symptoottiseen ikvtivuuteen. Kiinnostuneille lisää vlinnisill syventävien opintojen jtkokursseill: Algoritmien suunnittelu j nlyysi (ASA): Tätä kurssi ljemmt perustiedot ns. P? = NP-ongelmst sekä teoreettisest että lgoritmisuunnittelun näkökulmst. Lskennn teori (LAT): Syvällisemmin tästä ongelmst j muistkin tällä kurssill esitellyistä sioist. Tämä P =? NP-ongelm onkin tunnetuin esimerkki lskennn vtivuusteorin käsittelemistä ongelmist. Yksi (mutt ei läheskään ino!) tp luke se on: P = selliset lskentongelmt, joiden vstukset voi lske tvllisell tietokoneell tehokksti NP = voisi jos koneeseen lisättäisiin mginen konekäsky vlitse hyppäätkö nyt riville X viko riville Y jok jotenkin in osisi vlit juuri oikein. Silloin kysymys on: Voisiko tvllinen tietokone in löytää itsekin oiken vlinnn nopesti? Yleisesti uskotn, että ei voisi: Uskotn, että on sellisi ongelmi j tilnteit, joiss on väistämättä hidst löytää se oike vlint. Tämä P? = NP-ongelm on kuitenkin osoittutunut teoriss hyvin vikeksi rtkist se on yhä voin, j on stu tuloksi inkn menetelmällä X sitä ei voi rtkist erilisille lähestymistvoille X. käytännössä merkittäväksi, kosk monet käytännön ongelmt ovt osoittutuneet ns. NP-koviksi, eli sellisiksi että jos yksikin niistä voitisiin rtkist tehokksti (eli se kuuluisi luokkn P) niin sen vull ne kikki muutkin voitisiin rtkist tehokksti. 1
4 Cly Mthemtics Institute onkin vlinnut sen yhdeksi seitsemästä Millenniumongelmstn, j nt sen rtkisust plkinnoksi USD! ( clymth.org/millennium/) Jo tietojenkäsittelijän yleissivistykseen kuuluu tunte peruskäsitteet kuten lskentongelm jne., j tämän kurssin tvoitteen onkin tutustutt niihin. Oppimterili Nämä luentomuistiinpnot ovt wikissä: tkt-wiki Kurssien kotisivuj - Course homepges LAP - Lskennn perusmllit ( , 3op). Ne pohjutuvt Kimmo Fredrikssonin luentoihin keväältä Pelkät muistiinpnot eivät välttämättä riitä itseopiskeluun, vn voivt vti tuekseen joko luentojen ti jonkun oppikirjn seurmist. Esimerkiksi kirjn Hopcroft, John E., Motwni, Rjeev j Ullmn, Jeffrey D.: Introduction to Automt Theory, Lnguges nd Computtion, 2. pinos (Addison Wesley, 2001) luvut 1 8.2, j 10 kttvt vltosn kurssin sioist (näitä luentoj yksityiskohtisemmin). Näistä sioist on julkistu moni muitkin oppikirjoj, kuten esimerkiksi Lewis nd Ppdimitriou (1981), Sipser (2005) j Sudkmp (1997), joit voi myös käyttää. 2 Kurssin sem tietojenkäsittelytieteessä Erään määritelmän mukn tietojenkäsittely tutkii 1. milliset tietojenkäsittelytehtävät on mhdollist utomtisoid j 2. miten tämä utomtisointi tulisi suoritt. Peruskurssien (j useimpien muidenkin kurssien) lähestymistp on yleensä konstruktiivinen, eli koht 2. Esimerkiksi TRA: Kehitetään nnetun lskentongelmn tehokksti rtkisev lgoritmi j sen trvitsemt tietorkenteet. Tällä kurssill pinolue onkin kohdss 1. Osoittutuu, että on olemss erilisi tehtäviä: 1. Tehtäviä, joit ei edes peritteess voi utomtisoid minkäänlist lgoritmi ei voi oll olemss. 2. Tehtäviä, jotk kyllä voi utomtisoid, mutt vin tehottomsti tehokst lgoritmi ei voi oll olemss. 3. Tehtäviä, jotk voi utomtisoid j tehokksti tehokskin lgoritmi on keksitty, edellä tehtäväluokk P. 4. Tehtäviä, joist emme vielä tiedä ovtko ne tyyppiä 2 viko 3 erityisesti edellä NP. 2
5 2.1 Histori Lskentongelmn käsitteen muotoilu sekä ongelmien erottelu utomtisoitumttomiin (eli tyyppiin 1) j utomtisoituviin tehtiin 1930-luvull. Siis jo ennen tietokoneit! (Ensimmäiset yleiskäyttöiset tietokoneet rkennettiin pin II milmnsodn jälkeen.) Motivtion oli mtemtiikn filosofin j formlin logiikn kehitys: Hluttiin erott toisistn selliset mtemttiset j loogiset ongelmt, jotk vtivt ito luovuutt, sellisist joihin riitti pelkkä lskeminen siis nt trkk formli määritelmä rkikielen käsitteelle mekninen lskent. Näin syntyi lskettvuuden teori yhdeksi keskeiseksi osksi mtemttist logiikk. Tällä kurssill esitetään mekniselle lskennlle trkk formli määritelmä käyttäen ns. Turingin koneit tietokonepioneeri Aln M. Turingin vuonn 1936 esittämää strkti mtemttist mlli hypoteettiselle lskulitteelle. Smn ikn oli muitkin loogikkojen ehdotuksi meknisen lskennn määritelmäksi, esimerkiksi: Kurt Gödel kehitti 1930-luvun lust lken rekursiivisten funktioiden teori osn kuuluisn (ensimmäisen) epätäydellisyysluseens todistust. Iden oli induktio: funktion seurv rvo f(n+1) voidn määritellä edellisen rvon f(n) vull, joss n N. Alonzo Church esitti vuonn 1936 omn λ-lskentns. Iden oli lskent lusekkeen sievennyksenä. Nämä ts olivt tärkeitä ohjelmoinnin j ohjelmointikielten kehitykselle. Tällä kurssill niitä ei käsitellä, mutt kurssill Johdtus funktionliseen ohjelmoitiin (FOH) sivutn λ-lskent. Miksi vlittiin Turingin litelähtöinen lähestymistp meknisen lskennn määritelmäksi eikä Gödelin ti Churchin ohjelmointilähtöistä? Eksplisiittinen lite jok kulke rksutt kuin kello on konkreettisempi käsite kuin induktio ti sievennys joiden voisi epäillä sittenkin vtivn sitä ito luovuutt... Lskentn kuluv ik j til on helpompi määritellä litteen kuin siinä pyörivän ohjelmn kutt. Tietokoneiden yleistymisen myötä lettiin huomt, että tämä mekninen lskent jkutui edelleen vivlloiseen (eli tyypin 2) j vivttomn (eli tyypin 3) mekniseen lskentn. Yksi tp selventää tätä jko on tutki vielä yksinkertisempi lskulitteit kuin Turingin kone. Tätä utomttien teori on kehitetty 1960-luvult lähtien. Tällä kurssill tutustummekin sen keskeisiin käsitteisiin kuten äärellisiin j pinoutomtteihin. 3
6 Toinen tp on sett resurssirjoj Turingin koneille. Tätä lskennn vtivuusteori on kehitetty 1970-luvult lähtien. Sen keskeinen ongelm on juuri edellä minittu P? = NP. Vtivuusteori kuitenkin jätetään vltosin kursseille ASA j LAT. 2.2 Kurssin sisältö tästä eteenpäin 1. Johdnto: Yleisktsus lskennn teorin, lskennn vtivuusteorin j lskennn mlleihin. Kurssill käytettävien käsitteiden j nottioiden määritelmiä. 2. Säännölliset kielet: äärelliset utomtit j säännölliset lusekkeet. Äärelliset utomtit ovt mhdollisimmn yksinkertisi lskulitteit. Säännölliset kielet ts ovt sellisi merkkijonojoukkoj, joihin kuuluminen voidn rtkist näillä litteill. Säännölliset lusekkeet ts ovt nottio, joll niitä voidn kuvt lyhyesti. Kun esimerkiksi kirjoitt Linuxin komentoriville ls *.jr niin käytät säännöllistä lusekett *.jr kuvilemn säännöllisen kielen kikki selliset ASCII-merkkijonot, jotk päättyvät merkkijonoon.jr j kone list sinulle kikki ne tämän hkemiston tiedostonimet, jotk tämän kielen tunnistv utomtti hyväksyy sen jäseniksi. Käytännössä niihin törmää esimerkiksi merkkijonolgoritmeiss sekä hjutettujen järjestelmien mllintmisess. 3. Kontekstittomt kielet j kieliopit sekä pinoutomtit. Vstvsti pinoutomtit ovt hiemn mutkikkmpi lskulitteit j kontekstittomt kielet niitä, joit ne voivt tunnist. Ne ovt käytännössä tärkeitä rkenteisen syötteen käsittelyssä. Esimerkiksi HTML, XML sekä rkenteisell ohjelmointikielellä kirjoitettu lähdekoodi ovt rkenteisi syötteitä, kosk niissä on mielivltisen mutkikkit sisäkkäisyyksiä, joist syötettä lukevn ohjelmn pitää ott selvää. Esimerkiksi HTML-syötettä lukevn ohjelmn pitää löytää korostuksen loittvlle tgille <em> juuri oike sitä vstv lopettv tg </em>, j niiden välissä voi oll muit senkltisi tgprej, jotk pitää smoin pritt. Kontekstittomt kieliopit ts ovt näiden kielten kuvilutp, vstvsti kuin säännölliset lusekkeet ovt säännöllisille kielille. 4. Johdnto lskennn teorin, eli lskettvuuden teorin j lskennn vtivuusteorin peruskäsitteisiin. Lskennllisesti vtiviin ti jop kokonn rtkemttomiin ongelmiin törmää esimerkiksi tekoälyssä sekä ohjelmien j järjestelmien formliss verifioinniss. 4
7 3 Johdnto Lskennn teori (theory of computtion) käsittelee sitä, miten ongelm luokitelln rtkevuuden, vikeuden j tehokuuden perusteell ennen kuin se rtkistn. Se jetn perinteisesti khteen os-lueeseen: Lskettvuuden teori (theory of computility) tutkii, mitä tietokoneell ylipäänsä voidn rtkist j kuink vike nnettu ongelm on. Ongelmien vikeus määritellään melko krkell tsoll sen perusteell, kuink monimutkist lskennn mlli rtkisuss trvitn. Lisäksi lskettvuuden teori nt hyviä eväitä itse rtkisun ltimiseen. (LAP, LAT) Lskennn vtivuusteori (theory of computtionl complexity) tutkii, kuink tehokksti ongelm voidn rtkist. Lskennn vtivuusteori muistutt lgoritmien nlyysi, mutt siinä ei määritellä yksittäisen rtkisulgoritmin ik- ti tilvtivuutt, vn itse ongelmn phimmn tpuksen ik- j tilvtivuusluokk. Lskennn vtivuusteori nt myös hyvät eväät ongelmien pluttmiseksi toisiin, jo tunnettuihin ongelmiin. (LAT, ASA) Tällä kurssill käsitellään jonkin verrn lskennn teorin ensimmäistä os-luett eli lskettvuuden teori. Aihepiirinä ovt lskennlliset ongelmt j niiden rtkisun mekniset mllit, joit kutsutn lskennn mlleiksi. Käsittelemme kht eri lskennn mlli äärellisiä utomttej j pinoutomttej sekä tutkimme, mitä kullkin mllill voidn rtkist. Kurssin loppupuolell esitellään lyhyesti myös Turingin koneet (joist enemmän kurssill LAT). Lskettvuuden teorist Lskennn mekninen mlli, utomtisointi, trkoitt tämän kurssin knnlt lgoritmin esittämistä. Intuitiivisesti lgoritmi kuv tietojenkäsittelyprosessin niin täsmällisesti, että se voidn tämän kuvuksen perusteell suoritt meknisesti (ilmn luov jttelu ). Meknisen lskennn trkemmksi määrittelemiseksi, eli lgoritmikäsitteen mtemttiseksi formlisoimiseksi, on kksi lähestymistp: 1. Lähdetään liikkeelle tyhjästä j mietitään, mitä voidn pitää meknisen lskentn. 2. Otetn lähtökohdksi nykyiset tietokoneet, jotk selvästi suorittvt meknist lskemist, j pelkistetään pois epäolennisuudet. Kosk mekninen lskent on keskeistä mtemtiikn perusteiden trksteluss, mtemtikot j loogikot miettivät si pljon 1930-luvull. He sovelsivt luonnollisesti lähestymistp 1 kosk tietokoneit ei silloin vielä ollut. 5
8 Jos ts hlutn sovelt tuloksi käytännön tietojenkäsittelyyn, lähestymistp 2 tuntuisi lupvmmlt. Tämä on oleellisesti se tp, jot käytettiin esimerkiksi kurssill TRA, kun siellä lskettiin symptoottisi resurssitrpeit eli O-rvioit. Onneksi osoittutuu, että lähestymistvt 1 j 2 johtvt smn lgoritmikäsitteen formlisointiin. Siis mtemttist logiikk j tietokoneit koskevill peritteellisill rjoituksill on syvällinen yhteys. Lskettvuuden teori trkstelee näitä rjoituksi, eli sitä millisille ongelmille on olemss rtkisulgoritmi. Automttiteori Kun on stu vlmiiksi strkti mlli tietokoneelle, voidn kysyä, mikä muuttuu, jos mllist jätetään jokin piirre pois. Rjoitettujen mllien trksteleminen utt ymmärtämään yleisempiä mllej. Äärellinen utomtti on hyvin yksinkertinen (strkti) lskentlite, joll kuitenkin voi tehdä mielenkiintoisi sioit. Teoreettisen mielenkiinnon lisäksi se on hyödyllinen käytännössä ohjelmointi- j mllinnustekniikkn. Kontekstittomt kieliopit ovt hiemn äärellisiä utomttej ilmisuvoimisempi meknismi, joll on tärkeitä sovelluksi esimerkiksi ohjelmointikielten määrittelemisessä j kääntämisessä j luonnollisen kielen mllintmisess. 3.1 Lskennlliset ongelmt Lskennllinen ongelm = mikä thns tehtävä, jok voidn mllint rtkistvksi digitlisell tietokoneell. (Kuv 1.) Lskennllisi ongelmi: kokonislukujen kertolsku kirjstokortiston kkostminen yrityksen plknlskent yliopistollisen kurssin kurssitietojen ylläpito nnetun kokonislukulist järjestäminen... Ongelmn rtkisev ohjelm on sen yksi esitystp. Mihin sijoittuu ongelm Onko oikein huijt tentissä? Jos mielestäsi tentissä huijminen on kikiss olosuhteiss väärin, niin silloin ongelm on trivilisti lskennllinen j tehokksti rtkistviss: Tietenkin voidn kirjoitt ohjelm, jok ei lue syötettään, vn tulost heti Ei!. 6
9 ONGELMA LASKENNALLINEN ONGELMA EI LASKENNALLINEN ONGELMA RATKEAVA ONGELMA RATKEAMATON ONGELMA TEHOKKAASTI RATKAISTAVISSA TEHOKASTA RATKAISUA EI OLE MISSÄ NÄIDEN VÄLINEN RAJA KULKEE? OSITTAIN RATKEAVA TÄYSIN RATKEAMATON (useit eri steit) Kuv 1: Ongelmien hyvin krke luokittelu Jos ts mielestäsi tentissä huijminen voi oll oikein joisskin lieventävissä olosuhteiss niin silloin on mietittävä jtkokysymystä Voiko nämä olosuhteet kuvill tyhjentävästi snllisesti? Jos mielestäsi näiden olosuhteiden kikki relevntit spektit voi kuvill vikkp jollkin sopivll logiikll, niin silloin ongelm on lskennllinen: Jos olosuhteet ovt kuten tämä kv φ kuvilee, niin onko silloin oikein huijt tentissä viko ei? Tämä φ on se syöte, jok luetn, j jonk perusteell rtkistn onko vstus Kyllä! viko Ei!. Ongelm on rtkev, jos tämä käytetty logiikk on riittävän yksinkertinen; muuten rtkemton. Esimerkiksi luselogiikk on rtkev, predikttilogiikk rtkemton. Vikk ongelm olisikin rtkev, se tuskin on tehokksti rtkistviss; looginen päättely on yleensä työlästä tietokoneellekin. Esimerkiksi luselooginen päättely on NP-täydellistä eli luultvsti työlästä. Jos ts olet sitä mieltä, että todellisuus on niin monimutkinen j hienosyinen, ettei voi kuvill loogisesti kikki niitä spektej, jotk voisivt vikutt tälliseen morliseen päätöksentekoon, niin silloin ongelm ei ole lskennllinen: Silloin meillä ei ole riittävän ilmisuvoimist kieltä joll voisimme kuvill olosuhteet riittävän kttvsti j trksti syötekvksi φ. Ongelmn esitys 7
10 Syötteet Tulosteet π (1,1) (1,3)... (2,2) (2,4)... (1,2) (2,3) jne Kuv 2: Kertolskuongelmn syötteet j tulosteet. Lskennllinen ongelm = kuvus äärellisesti esitettävien tpusten joukost äärellisesti esitettävien vstusten joukkoon Ongelmll on potentilisesti ääretön joukko tpuksi ( syötteitä ). Ongelmn rtkisu on lgoritmi, jok liittää kuhunkin tpukseen sen oiken vstuksen ( tulosteen ). Jokisen yksittäisen tpuksen j sen vstuksen on oltv äärellisesti esitettäviä (muutenhn lskent ei päättyisi). Esimerkki 1. Kokonislukujen kertolskuongelmss (kuv 2) tpukset ovt kikki mhdolliset kokonislukuprit (p, q) (merkkijonoiksi koodttun) vstus nnetulle tpukselle on kyseisen lukuprin tulo p q (merkkijonoksi koodttun) rtkisu on mikä thns yleinen kertolskulgoritmi (esimerkiksi se lkkin lskeminen jonk kouluss opimme). Äärellinen esitys Kikki tietokoneen käsittelemä tieto on viime kädessä voitv koodt ittijonoiksi. On luontev slli koodukseen käytettävän myös muit merkkejä kuin itit 0 j 1 (kosk nämä muut merkit voidn tietenkin trvittess edelleen esittää ittijonoin). Määritelmä: äärellinen esitys = äärellisen pituinen merkkijono (eli jono merkkejä) josskin äärellisessä kkostoss. 8
11 Merkkijonoihin liittyviä peruskäsitteitä j merkintöjä Akkosto on äärellinen, epätyhjä joukko lkeismerkkejä eli symoleit. Esimerkiksi inäärikkosto B = {0, 1} j ltinlinen kkosto {A, B, C,..., Z}. Akkosto voidn määritellä ihn miten hlutn, esim: {HiiriVsenNppi, HiiriOikeNppi, HiiriKeskiNppi, HiiriRullYlös, HiiriRullAls}. Merkkijono on äärellinen järjestetty jono jonkin kkoston merkkejä. Esim j 000 ovt inäärikkoston B merkkijonoj, j LAP j XYZZY ovt ltinlisen kkoston merkkijonoj. Merkintä Σ trkoitt kikkien niiden merkkijonojen joukko, jotk voidn muodost nnetun kkoston Σ eli merkkien merkeistä. Siis B = {ε, 0, 1, 00, 01, 10, 11, 000,... }. Tyhjä merkkijono ε ei sisällä yhtään merkkiä. (Huom! Eri si kuin välilyönti ). Merkkijonon x pituus x on siihen sisältyvien merkkien määrä. Esim = XYZZY = 5 j ε = 0. Ktentio on merkkijonojen kirjoittmist peräkkäin, esimerkiksi: jos x = 00 j y = 11, niin xy = 0011 j yx = 1100; kikill x on xε = εx = x; kikill x j y on xy = x + y. Toisto eli merkkijonon ktentio itsensä knss voidn merkitä potenssin: 3 = ( 2 ) 3 = () 3 =. Itse siss merkintä (...) voidnkin luke toisto mielivltisen (mutt äärellisen) mont kert. Käänteismerkkijono x R Esim. (c) R = c. on merkkijono x kirjoitettun tkperin. 3.2 Päätösongelmt j formlit kielet Yleisesti lskennllinen ongelm π on kuvus eli funktio π : Σ Γ joss Σ j Γ ovt kkostoj: syötekkosto Σ on se joll kysymys, j tuloskkosto Γ on se joll vstus kirjoitetn. 9
12 Σ A π A 0 1 Kuv 3: Kielen A Σ päätös- eli tunnistusongelm π A. Päätösongelmt ovt lskennllisten ongelmien liluokk, joss kunkin ongelmn tpuksen vstus on kyllä ti ei. Formlisti päätösongelm on muoto π : Σ B. Intuitio: Yksinkertistetn mutkikst yleiskäsitettä tietokoneohjelm selliseksi, jok lukee syötteenä smns tekstitiedosto 2. käsittelee sitä (eräjon, siis omin päin keskustelemtt käyttäjän knss tms.) 3. tulost lopuksi vstuksenn kyllä ti ei. Esimerkiksi päätösongelm onko nnettu kymmenjärjestelmän luku lkuluku? voidn esittää syötekkoston Σ = {0, 1, 2,..., 9} kuvuksen π : Σ B { 1 jos x on lkuluku, π(x) = 0 jos ei. Yleisesti, jokist päätösongelm π : Σ {0, 1} vst merkkijonojoukko A π = {x Σ : π(x) = 1} eli niiden ongelmn tpusten joukko, joihin vstus on kyllä. Kääntäen, jokist merkkijonojoukko A Σ vst päätösongelm (kuv 3) { 1, jos x A; π A : Σ {0, 1}, π A (x) = 0, jos x / A. Tätä π A kutsutn joukon A krkteristiseksi funktioksi kosk se kertoo kuuluuko nnettu x Σ joukkoon A viko ei. 10
13 Akkoston Σ (formli) kieli = mikä thns merkkijonojoukko A Σ Siis lyhyesti: olemme kiinnostuneit siitä, kuuluuko jokin nnettu merkkijono nnettuun merkkijonojoukkoon. Eli kuuluuko nnettu sn nnettuun kieleen. Kielen A Σ tunnistusongelm = merkkijonojoukkoon A liittyvä päätösongelm π A : Tässä on merkkijono x Σ. Onko x A viko ei? Jtkoss käsittelemme vin päätösongelmi. Huom että tämä ei peritteess ole rjoitus, kosk monimutkisemmt kysymykset voi in pilkko joukoksi kyllä-ei -kysymyksiä... Esimerkiksi monimutkisempi kysymys Mikä on lukujen x j y tulo? voidn pilkko kysymyksiin Onko lukujen x j y tulo = z viko ei? Esimerkki 2. Olkoon A kkoston {+,, 0, 1, 2,..., 9} kieli, jok koostuu yksinkertisist kokonislukuvkioist (esim. Jv-kielessä). Siis 0 A, A j 32 A, mutt A. Tämä kieli A on esimerkki säännöllisestä kielestä. Esimerkki 3. Olkoon B kkoston {+,,, (, ), 0, 1, 2,..., 9} kieli, jok koostuu lillisist kokonislukulusekkeist. Esim B j ( ) 4 5 B, mutt (1 + 2)) B j 3+ B. Tämä kieli B on esimerkki kontekstittomst kielestä. Esimerkki 4. Muodostukoon ASCII-kkoston kieli C niistä Jv-kielisistä ohjelmist, jotk tyhjällä syötetiedostoll joutuvt ikuiseen silmukkn. Kieli C on esimerkki rtkemttomst kielestä. Sitä siis ei void tunnist millään tietokoneohjelmll. Esimerkki 5. Kieli { k : k N } on säännöllinen; kieli { k k : k N } on kontekstiton; kieli { k k c k : k N } on kontekstillinen. Ongelmn vikeuden rviointi päätösongelmill Minkä thns lskennllisen ongelmn vikeuden voi rvioid vstvn päätösongelmn vull (kuv 4). Jos päätösongelm (komponentti M 3 ) on rtkev niin ongelmkin on rtkev rtkemton niin ongelmkin on rtkemton helppo (josskin mielessä) niin ongelmkin on helppo (smss mielessä) jne. Erityisesti, jos kieli A kuuluu säännöllisiin kieliin, niin sen tunnistusongelm π A voidn rtkist helposti rkentmll sen rtkisev äärellinen utomtti; kontekstittomiin niin rkentmll pinoutomtti; rekursiivisiin niin rkentmll Turingin kone. 11
14 input x M 1 M 3 Aset Onko y = 0 π(x) = y on M 4 Tulost rtkisu y ei Generoi seurv y M 2 Kuv 4: Lskentongelm päätösongelmn. Jos kieli A ei kuulu edes rekursiivisiin kieliin, niin sen π A ei ole rtkev linkn. Silloin se voi oll joko osittin rtkev eli voidn tehdä Turingin kone jok os vstt kyllä mutt ei -vstuksen sijst voi myös jäädä ikuiseen silmukkn, ti sitten vieläkin vikempi jolloin se ei enää ole tietojenkäsittelyn vn esimerkiksi mtemttisen logiikn ongelm. Esimerkki 6. Trkstelln kokonislukujen kertolskuongelm: Mitä on pq, missä p, q Z? Merkitään kokonisluvun x merkkijonoesitystä string(x). Nyt u = string(p) v = string(q) w = string(r). Lisäksi käytetään erottimin merkkejä j =. Ongelm Päätösongelm Kuvus Lske pq Onko pq = r? Syöte u v u v = w Tuloste w 0 ti 1 Päätösongelm vstv formli kieli A on joukko merkkijonoj u v = w, joille pätee pq = r: A = {u v = w : pq = r}. Nyt kertolskuongelmn vikeus = kielen A vikeusluokk. Kertolskuongelmn rtkisu päätösongelmll siis generoi (järjestyksessä) kikki mhdolliset rtkisut, j kokeilee milloin sdn vstus 1. (Tämän voisi tehdä toisinkin... ) Kielten vikeusluokt Chomskyn kielihierrki (kuv 5) määrittelee seurvt kielten vikeusluokt: Tyyppi 3: säännölliset kielet (erikoistpuksenn äärelliset kielet). Tyyppi 2: kontekstittomt kielet (ti yhteysvpt ti yhteydettömät ). 12
15 rtkemttomt ongelmt tyyppi 0: 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 2: kontekstittomt kielet tunnistus: pinoutomtti tyyppi 3: säännölliset kielet tunnistus: äärellinen utomtti vkiomäärä muisti äärelliset kielet Kuv 5: Chomskyn kielihierrki. Tyyppi 1: kontekstilliset kielet (ti kontekstiset ti yhteyksiset ). Tyyppi 0: rjoittmttomt kielet = rekursiiviset rekursiivisesti lueteltvt (ti numeroituvt ) kielet. Nom Chomsky on erittäin merkittävä kielitieteilijä, j hänen hierrkissn on vstv näkökulm: esimerkiksi kontekstittomill kielillä on suor yhteys tietynlisiin formleihin kielioppeihin j kontekstillisillä kielillä sellisiin kielioppeihin, joiss huomioidn myös luseyhteys. Esimerkki 7. Joillekin yksinkertisille ohjelmointikielille (kuten Pscl) pätee Leksiklisesti oikeiden ( muodostuu oikeist snoist ) ohjelmien joukko voidn tuott säännöllisillä kielillä ( oikelle linerinen kielioppi ). Syntktisesti oikeiden ( snt järkevässä järjestyksessä ) ohjelmien joukko voidn tuott kontekstittomill kielillä. Kontekstilliset j rekursiiviset kielet eivät kuulu kurssin lueeseen, mutt näillä voitisiin kuvt ohjelmn suorittm lskent... Toislt kikkien ohjelmien joukko jotk rtkisevt jonkin ongelmn ei voi kuvt kieliopill. 13
16 Lskennlliset ongelmt Kikki inäärijonot Σ={0,1} Päätösongelmt Lilliset konekieliohjelmt Rtkevt päätösongelmt Päätösongelmien rtkisuohjelmt Kuv 6: Lskennlliset ongelmt vs. ohjelmt. Rjoittmttomt kielet koostuvt rekursiivisist kielistä, joiden tunnistusongelm on rtkev rekursiivisesti lueteltvist kielistä, joiden tunnistusongelm on osittin rtkev. Sellisell kielellä on ohjelm, jok tulost sen merkkijonot äärettömänä luettelon x 0, x 1, x 2, Lskennllisten ongelmien rtkevuus Läheskään kikki lskennllisi(kn) ongelmi ei void rtkist tietokoneell yksinkertisesti jo siksi, että ongelmi on ylinumeroituvn mont ( yhtä mont kuin relilukuj R ) mutt rtkisuohjelmi vin numeroituvn mont ( yhtä mont kuin luonnollisi lukuj N ). Perustelu Tietokoneohjelmt ovt merkkijonoj. 2. Minkä thns kkoston merkkijonojen joukko on numeroituvsti ääretön (luse 1). 3. Ongelmn rtkisevi tietokoneohjelmi on korkeintn numeroituv määrä. 4. Lskennllisi ongelmi on vähintään yhtä pljon kuin päätösongelmi. 5. Minkä thns kkoston päätösongelmien joukko on ylinumeroituv (luse 2). 6. Lskennllisi ongelmi on ylinumeroituvn mont. 7. Jokiselle lskennlliselle ongelmlle ei millään riitä sen rtkisev tietokoneohjelm. 14
17 Akkoston merkkijonoj on numeroituv määrä Luse 1. Minkä thns kkoston Σ merkkijonojen joukko Σ on numeroituvsti ääretön. Todistus: Olkoon Σ = { 1, 2,..., n }. Kiinnitetään merkeille jokin kkosjärjestys, esim. 1 < 2 < < n. Joukon Σ merkkijonot voidn järjestää seurvsti (knoniseen järjestykseen): 1. Ensin luetelln 0:n mittiset merkkijonot (= ε), sitten 1:n (= 1, 2,..., n ), sitten 2:n (= 1 1, 1 2, 1 3,..., 1 n, 2 1, 2 2, 2 3,... ) jne. 2. Kunkin pituusryhmän sisällä merkkijonot luetelln kkosjärjestyksessä. Jokiseen luonnolliseen lukuun n voidn siis liittää Σ :n merkkijono j päinvstoin, joten Σ on numeroituv. Vdittu ijektio f : N Σ luseess 1 on: 0 ɛ n n n n n 1 n 2n n 2 n. n 2 + n n n n 2 + n n 2 + n Päätösongelmi on ylinumeroituv määrä Luse 2. Minkä thns kkoston Σ päätösongelmien joukko on ylinumeroituv. Todistus: Merkitään kkoston Σ kikkien päätösongelmien kokoelm Π = {π : π on kuvus Σ {0, 1}}. Tehdään vstväite: Oletetn, että Π onkin numeroituv, eli että on olemss numerointi Π = {π 0, π 1, π 2,...}. Olkoot Σ :n merkkijonot knonisess järjestyksessä lueteltuin x 0, x 1, x 2,
18 Muodostetn uusi päätösongelm ˆπ: ˆπ : Σ {0, 1}, ˆπ(x i ) = { 1, jos πi (x i ) = 0; 0, jos π i (x i ) = 1. Kosk oletuksen mukn ˆπ Π (kosk Π on kikkien päätösongelmien joukko), niin ˆπ = π k jollkin k N. Tällöin { 1, jos πk (x ˆπ(x k ) = k ) = ˆπ(x k ) = 0; 0, jos π k (x k ) = ˆπ(x k ) = 1. Tämä on ristiriit. Siis vstoletus, että joukko Π on numeroituv, on väärä. Todistus 2 kuvn: Ajtelln (ääretöntä) tulukko ongelmist π 0, π 1, π 2,... j merkkijonoist x 0, x 1, x 2,.... Ongelm ˆπ poikke kikist muist ongelmist π i tulukon digonlill, vikk i ksvisi äärettömään: ˆπ π 0 π 1 π 2 π 3 x x 1 0 x x Suomeksi: ˆπ ei voi esiintyä tulukon millään srkkeell, joten päätösongelmi (j yleisemmin lskennllisi ongelmi) on ylinumeroituv määrä. (Eli ˆπ ero jokisest srkkeest inkin yhdessä koht.) Tämä todistustekniikk on ns. Cntorin digonlirgumentti joll hän todisti, että relilukuj 0 x < 1 on idosti enemmän kuin luonnollisi lukuj. Käytännössä tämä merkitsee sitä, että kikist lskentongelmist voidn esimerkiksi Jv-ohjelmill rtkist vin häviävän pieni os: ylinumeroituvn joukon numeroituv osjoukko. Sm pätee kikill ohjelmointikielillä, sillä kikki riittävän vhvt ohjelmointikielet määrittävät täsmälleen smn rtkevien ongelmien luokn (ns. Churchin Turingin teesi). (Jotkut ovt spekuloineet kvnttikoneiden olevn idosti vhvempi, mutt tätä ei ole todistettu... ) Useimmt lskennlliset ongelmt ovt siis soluuttisesti rtkemttomi. Vlitettvsti rtkemttomt ongelmt käsittävät myös moni mielenkiintoisi / käytännöllisiä ongelmi, erityisesti pysähtymisongelmn: jos on nnettu ohjelm P j sen syöte w, niin pysähtyykö ohjelmn P lskent syötteellä w vi jääkö se ikuiseen silmukkn? (Tämä ongelm on kuitenkin osittin rtkev... ) 16
19 3.3.1 Churchin Turingin teesi Churchin Turingin teesi väittää seurv: Epäformlin käsitteen funktio f on meknisesti lskettviss oike formli vstine on f on lskettviss Turingin koneell. Siis että on olemss Turingin kone M f rvon f(x) j pysähtyy. jok syötteellä x tulost sitä vstvn Tämä on teesi eikä tulos: sitä ei voi todist, kosk sehän väittää että nyt olemme löytäneet juuri sen oiken määritelmän tälle rkikielen käsitteelle. Teesin tueksi voi esittää seurv: : Turingin koneet ovt niin yksinkertisi litteit, että jos f on lskettviss koneell M f, niin silloin f on selvästi meknisesti lskettviss. : Muutkin esitetyt yleisesti hyväksytyt vihtoehtoiset määritelmät voidn toteutt myös Turingin koneill. Helppo suunt on näyttää, että nnettu Turingin kone M voidn toteutt jollkin tämän vihtoehtoisen määritelmän mukisell ohjelmn P M. Vike suunt on näyttää, että nnettu tämän vihtoehtoisen määritelmän mukinen ohjelm Q voidn toteutt myös jollkin Turingin koneell M Q eli kääntäjä. Tällisi muit vihtoehtoisi mllej ovt esimerkiksi edellä minitut Gödelin j Churchin omt ehdotukset RAM-koneet, jotk ovt idelisoitu mlli nykyikiselle digitliselle tietokoneelle jop kksilskurikoneet, joiss on vin kksi muuttuj x, y N sekä opertiot ksvt/vähennä muuttujn rvo yhdellä j testi if muuttujn rvo on = 0 then... John Conwyn Life -peli, jne Pysähtymisongelmn rtkemttomuus Olemme edellä nähneet, että vltos päätösongelmist on rtkemttomi lskemll, että niitä on pljon enemmän kuin rtkisulgoritmej. Osoitetn nyt yksi konkreettinen päätösongelm rtkemttomksi eli että rtkemttomuus on joidenkin oikeidenkin ongelmien piirre, eikä pelkkä mtemttinen ilmiö. Kiinnitetään lskentmlliksemme vikkp C-ohjelmointikieli. Church Turingin teesin nojll sm pätee myös muillkin yhtä ilmisuvoimisill lskentmlleill. Pysähtymisongelmn C-kielinen tulkint on: Ei ole olemss totlist (in pysähtyvää) C-ohjelm, jok rtkisisi, pysähtyykö nnettu C-ohjelm P nnetull syötteellä w. 17
20 Tehdään vstoletus, että voitisiinkin kirjoitt totlinen C-funktio ool h(chr p[],chr w[]) jonk syöteprmetrit ovt p: merkkijono, jok sisältää tutkittvn C-kielisen ohjelmn P lähdekoodin w: merkkijono, jok sisältää tutkittvn syötteen w j jonk tulos on true jos ohjelmn p suoritus syötteellä w pysähtyisi flse jos se jäisi ikuiseen silmukkn. Vstoletust käyttäen voitisiin kirjoitt toinen C-funktio void g(chr p[]){ if (h(p,p)) while (true); } jok siis pysähtyy täsmälleen silloin, kun C-lähdekoodi p ei pysähtyisi sdessn syötteenään omn itsensä. Olkoon q tämän funktion g lähdekoodi merkkijonon. Mitä tphtuu kutsuss g(q)? Sdn hluttu ristiriit: g(q) pysähtyy h(q,q) plutt flse g(q) ei pysähdykään! Niinpä tehty vstoletus ei pädekään. Tässä todistuksess istutetn ns. vlehtelijn prdoksi Tämä luse on vlhett! totuuden sijst lskennn pysähtymiseen. Sm ide käytti jo Kurt Gödel kuuluisiss epätäydellisyysluseissn istuttmll se totuuden sijst todistuvuuteen: Tällä väitteellä ei ole todistust! Formlismist (Tietojenkäsittely)tieteessä on rvokst, että lskent sdn esitetyksi täsmällisessä mtemttisess muodoss. Jtkoss hlumme esittää väitteitä muoto: Kikki äärelliset utomtit toteuttvt ehdon p j konstruktioit Mistä thns ehdon r toteuttvst utomtist voidn muodost utomtti, jok toteutt ehdon s. Onnistuu kyllä tiettyyn rjn skk piirtämällä kuvi j heiluttmll käsiä (kuten tällä kurssill vrmn pljolti tulln tekemään... ), mutt uskottvuuden j ymmärrettävyyden rjt tulevt melko pin vstn. Mtemttinen formlismi on työklu, jot on hyvä opetell käyttämään... 18
21 4 Säännölliset kielet j äärelliset utomtit Äärellinen utomtti (englnniksi (Finite Stte Automton, FSA) ) on hyvin yksinkertinen lskennn mlli (eli strkti lskentlite). Säännölliset kielet (englnniksi [(regulr lnguges) ) on se luokk lskentongelmi, jonk näin yksinkertisell litteell pystyy rtkisemn. Näillä tekniikoill on sovelluksi esim. merkkijonolgoritmeiss. Tvoitteet: oppi mitä ovt äärelliset utomtit j säännölliset lusekkeet j mikä on niiden välinen suhde muodostmn yksinkertisi äärellisiä utomttej j säännöllisiä lusekkeit (englnniksi (regulr expressions) ) tekemään muunnoksi determinististen j epädeterminististen äärellisten utomttien j säännöllisten lusekkeiden välillä. osoittmn kieli joko säännölliseksi ti epäsäännölliseksi. Esimerkki 8. Khviutomtti, jok ei nn vihtorh, hyväksyy vin 50 sentin j yhden euron kolikoit j minimimksu on 2 euro. Millisi syötejonoj khviutomtti hyväksyy? Kelvollisi syötejonoj ovt esim. seurvt (yksikkönä snt): Ts. khviutomtti hyväksyy syötejonot, jotk ovt muoto 1 euro + 1 euro + [0 ti usempi 50 sentin ti 1 euron kolikoit] 1 euro + 50 senttiä + [1 ti usempi 50 sentin ti 1 euron kolikoit] 50 senttiä + 1 euro + [1 ti usempi 50 sentin ti 1 euron kolikoit] jne... Khviutomtin toimint voidn kuvt äärellisenä utomttin. Automtin syötteitä ovt 50 sentin j 1 euron kolikot j utomtti hyväksyy syötejonon, jos siihen sisältyvien rhojen summ on vähintään 2 euro Automtti voidn esittää tilsiirtymäkvion (kuv 7). TRA-kurssin terminologill se olisi suunnttu verkko jonk kret on pinotettu syötekkosill. Automtill on 19
22 50, q 0 q q , 100 q q 3 Kuv 7: Khviutomtti. q Til q q 0 Alkutil Hyväksyvä til Hylkäävä lopputil q q Tilsiirtymä δ(q, ) = q Kuv 8: Tilsiirtymäkvion merkinnät. tiloj (5 kpplett), jotk on esitetty ympyröinä j nimetty q 0,... q 4, siirtymiä jotk on esitetty tilojen välisinä krin; kkosto jonk symoleill siirtymät on merkitty; lkutil (til q 0 ) jok on merkitty tyhjästä tulevll krell; j hyväksyvä til (til q 4 ) jok on rengstettu. Tilojen nimet ovt vpvlintisi, utomtin toimintn ne eivät vikut. 4.1 Äärellisen utomtin esitystpoj Tilsiirtymäkvion eli kuvien 7 j 8 mukisen piirroksen. Tilsiirtymätulukkon joss 20
23 jokisell tilll on om rivinsä jokisell syötekkosell on om srkkeens tiln p srke c ilmoitt sen tiln (eli rivin) jonne siirrytään tilst p merkillä c. Kuvn 7 khviutomtin tilsiirtymätulukko on yhtälönä (1). 50 snt 1 euro q 0 q 1 q 2 q 1 q 2 q 3 q 2 q 3 q 4 q 3 q 4 q 4 q 4 q 4 q 4 (1) Esimerkki 9. Etumerkillisen kokonisluvun tunnistminen. Tilsiirtymäkvion (joss d = {0, 1,..., 9} ovt 10-järjestelmän lukumerkit): d +, d q 0 q 1 q 2 d Tilsiirtymätulukkon: d +, q 0 q 2 q 1 q 1 q 2 q 2 q 2 Tulukon puuttuvt kohdt vstvt virhetil Error. Tehtävä 1. C-kielessä 0-lkuiset luvut tulkitn oktliluvuiksi (jolloin merkkejä 8 j 9 ei sllit linkn), j lkuiset 10-kntisiksi luvuiksi. Muut esimerkin 9 utomtti siten, että nämä tpukset erotelln, eli että ne johtvt eri hyväksyviin tiloihin. Tehtävä 2. (Jtko tehtävään 1.) C-kielessä 0x-lkuiset luvut tulkitn heksdesimliluvuiksi. Ot tämäkin huomioon. Ohjelmn tässä C-ohjelmointikielellä: int q=0; int c; while ((c=fgetc(stdin))!= EOF) switch (q) { cse 0: if (c== + c== - ) q=1; else if (isdigit(c)) q=2; else q=3; rek; cse 1: if (isdigit(c)) q=2; else q=3; rek; 21
24 cse 2: if (isdigit(c)) else rek; cse 3: rek; } q=2; q=3; Esimerkki 10. C-kielen mukisen etumerkittömän liukulukuvkion tunnistv utomtti: d. E, e +, d 2 3. d e,e 4 d e,e 5 d 7 d d +, 6 d 4.2 Äärellisen utomtin formli määrittely Äärellinen utomtti M koostuu seurvist osist: ohjusyksiköstä joss on äärellinen määrä tiloj j jonk toimint ohj utomtin siirtymäfunktio δ syötenuhst jok on jettu yhden syötemerkin kokoisiin pikkoihin. nuhpäästä jok kullkin hetkellä osoitt yhtä syötenuhn merkkipikk. 22
25 i n p u t q 1 q 2 q 0 δ Automtin toimint Automtti käynnistetään erityisessä lkutilss q 0, siten että trksteltv syöte on kirjoitettun syötenuhlle j nuhpää osoitt sen ensimmäistä merkkiä. Yhdessä toimint-skeless utomtti lukee nuhpään kohdll olevn syötemerkin, päättää ohjusyksikön tiln j luetun merkin perusteell siirtymäfunktion mukisesti ohjusyksikön uudest tilst, j siirtää nuhpäätä yhden merkin eteenpäin. Automtti pysähtyy, kun viimeinen syötemerkki on käsitelty. Jos ohjusyksikön til tällöin kuuluu erityiseen (hyväksyvien) lopputilojen joukkoon, niin utomtti hyväksyy syötteen, muuten hylkää sen. Automtin tunnistm kieli on sen hyväksymien merkkijonojen joukko. Määritelmä 1. Äärellinen utomtti on viisikko M = (Q, Σ, δ, q 0, F ), missä Q on utomtin tilojen äärellinen joukko; Σ on utomtin syötekkosto; δ : Q Σ Q on utomtin siirtymäfunktio; q 0 Q on utomtin lkutil; F Q on utomtin hyväksyvien tilojen joukko. 23
26 Siirtymäfunktio δ on määritelmän 1 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 11. Kokonislukuutomtin (esimerkki 9) formli esitys on joss δ on kuten tulukoss; esim. M = ({q 0, q 1, q 2, error}, {0, 1,..., 9, +, }, δ, q 0, {q 2 }), jne. δ(q 0, 0) = δ(q 0, 1) = δ(q 0, 2) = = δ(q 0, 9) = q 2 δ(q 0, +) = δ(q 0, ) = q 1 δ(q 1, +) = δ(q 1, ) = 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 0, x) joss q 0 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 1, w 1 ) (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. Automtti M hyväksyy syötemerkkijonon x Σ, jos j muuten hylkää sen. (q 0, x) (q f, ε) joss q f F Toisin snoen, utomtti M hyväksyy syötteen x, jos sen vstv lkutilnne (q 0, x) joht johonkin hyväksyvään lopputilnteeseen, kun koko x on luettu. 24
27 Vstv välitilnnejono (q 0, 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 0, 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 0, x) (q f, ε) jollkin q f F M = {x Σ : δ (q 0, 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.) Esimerkki 12. Lillisen merkkijonon käsittely kuvn 9 kokonislukuutomtill: (q 0, +1210) (q 1, 1210) (q 2, 210) (q 2, 10) (q 2, 0) (q 2, ε) Nyt jäätiin hyväksyvään lopputiln q 2 eli L(M). Littomn merkkijonon lskent onkin (q 0, ) (q 2, ) (q 2, + 10) (error, 10) eli päädyttiin virhetiln error eli L(M). 25
28 Ää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 13. 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=0; int c; int sign=1; int vlue=0; while ((c=fgetc(stdin))!= EOF) switch (q) { cse 0: if (c== + ) q=1; else if (c== - ) { q=1; sign=-1; } else if (isdigit(c)) { q=2; vlue=c- 0 ; } else q=3; rek; cse 1: if (isdigit(c)) { q=2; vlue=10*vlue+sign*(c- 0 ); } else q=3; rek; cse 2: if (isdigit(c)) { q=2; vlue=10*vlue+sign*(c- 0 ); } 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). 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. 26
29 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 %% [0-9]+ { printf("kokonisluku: %s\n",yytext); } lp { printf("lap!\n"); } /* Tunnistetn "lp" */. { } /* Sivuutetn muu */ %% int min(void) { yylex(); return 0; } fredriks@cs ~$ flex ex.lex fredriks@cs ~$ gcc lex.yy.c -o foo fredriks@cs ~$./foo c123def456lpxxxxx Kokonisluku: 123 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 } Tehtävä 8. Osoit että kieli {() n : n > 0} 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ä 10. Ldi äärellinen utomtti, jok tunnist kielen L = {0 n 1 m n, m N} {1 n 0 m n, m N}. 4.4 Äärellisen utomtin lskentvoimst Kieli L 1 = {0 n 1 m : n, m N} on helppo tunnist äärellisellä utomtill, eli se on säännöllinen. 27
30 Äärellinen utomtti on hyvin rjoittunut lskennn mlli. Vikkp niinkin yksinkertinen kieli kuin L 2 = {0 n 1 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 1 = {0 n 1 m : n, m N} tunnistminen vtii vin vkiomäärän muisti. Kieli L 1 = 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 = {0 n 1 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 < 200 senttiä. Muuten se muist vin että syötetty summ on 200 senttiä. Eli se muist vin äärellisen mont eri vihtoehto. Esimerkki 14. Äärellinen utomtti jok tunnist kielen toiseksi viimeinen merkki on noll : 0?? ? ?
31 Automtti muist kksi viimeistä lukemns ittiä. Tilt on nimetty näiden ittien mukn, eli tilss 01 viimeisin luettu itti oli 1 j sitä edellinen oli 0. 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 0100, keskimmäinen ur joll on 0001, j lin ur joll on Automtti lukee näitä uri smn thtiin rinnkkin, sillähän on vin yksi lukupää. Tehtävä 11. 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 eli [ ] [ ] [ ] L mutt [ ] [ ] L Osoit että tämä kieli L on säännöllinen. Rtkisu: = 4 mutt 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: 29
32 A D B 0 1 C A = {[ D = {[ ] ], [ 1 0 1, [ ] ], [ 0 1 1, [ ]} ]} 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ä 12. Olkoon Σ = {[ 0 0 ], [ 0 1 ], [ 1 0 ], [ 1 1 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 [ 1 1 ] [ 0 1 ] [ 1 1 ] [ 1 0 ] [ 0 0 ] [ 0 1 ] L j [ 1 1 ] [ 0 1 ] L eli Osoit että tämä kieli L on säännöllinen. Rtkisu: = 39 j 1 3 = Smn tpn kuin edellinen tehtävä. Eron on se, että nyt muistiittejä voi oll kksi. 30
33 0 3 = 0, 1 3 = 3 (inäärilukun 11), eli tulokseen tulee 1, j muistiin litetn 1. Jos muistiss on 1, j lsketn 0 3, tulokseksi tulee 1 (muistist), jos ts 1 3, tulos on 4 (inäärilukun 001) joten tulositti on 0 j muistiin jää 01, 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 Σ = {0, 1, +, =}, 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. 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 0, d 1, d 2,.... Pketti voi hukku mtkll (kuten kuvss d 1 ). 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: 31
34 timeout S d 0 d 1 d 1 d 2 R Ongelm: Jos kuittus hukkuu, niin R voi sd duplikttiviestin: S timeout d 0 d 1 d 1 d 2 R Rtkisu: Numeroidn viestit j kuittukset: timeout S d 0, 0 d 1, 1 d 1, 1 d 2, 2 R, 0, 1, 1, 2 Mutt silloinhn pitäisi lähettää yhä suurempi j suurempi numeroit 0, 1, 2... Prnnus: Riittää käyttää kht numero (0 j 1 eli prillinen/priton viestin numero ): S timeout d 0, 0 d 1, 1 d 1, 1 d 2, 2 R, 0, 1, 1, 2 S j R voidn mllint tilsiirtymäjärjestelminä: 32
35 lähettäjä S vstnottj R, 1, 1 d, 1 timeout timeout d, 0 d, 1 d, 1 d, 0 d, 1 d, 0, 0, 0 d, 0 Jos S ei skn joiss symoli, niin se lukeekin sen sijn timeout-symolin. 4.6 Automtin minimointi 1. Mikä on utomtin , tunnistm kieli? , 2. Mikä on utomtin 33
36 , tunnistm kieli? , 3. Mikä on utomtin , tunnistm kieli? 4. Virhetiloj kuten 3 ei (yleensä) ole tpn piirtää: 34
37 , Lopputulost vstv säännöllinen luseke on ( ). Niihin pltn myöhemmin., ,,,, 0 1, 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. 35
38 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 0 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: 1. Aloitetn nnetun utomtin M tilojen krkeimmst luokittelust ekvivlenssiluokkiin, eli 0-ekvivlenssist. 2. Trkennetn tilojen luokittelu k-ekvivlenssiluokki (k+1)-ekvivlenssiluokkiin. 3. Lopetetn kun on svutettu täysi ekvivlenssi. Äärellisen utomtin minimointilgoritmi Syöte: äärellinen utomtti M = (Q, Σ, δ, q 0, F ). 1. (Turhien tilojen poisto) Poist syötteestä M kikki tilt, joit ei void svutt sen lkutilst q 0 millään syötemerkkijonoll. 2. (0-ekvivlenssi) Osit syötteen M jäljelle jääneet tilt khteen luokkn: hyväksyviin vs. muihin tiloihin. 3. (k-ekvivlenssist (k + 1)-ekvivlenssiin) 1 k 0 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
39 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 15. Olkoon M = (Q, Σ, δ, q 0, F ) joss tilojen joukko Q = {1, 2, 3, 4, 5, 6}, syötekkosto Σ = {, }, lkutil q 0 = 1, lopputilojen joukko F = {4, 5} j siirtymäfunktio δ:
40 Askel 1: Turhien tilojen poisto. ennen jälkeen Askel 2: Jottele syötteen M (jäljelle jääneet) tilt 0-ekvivlenssiluokkiin, eli hyväksyviin j hylkääviin tiloihin. Merkitään ekvivlenssiluokki roomlisin numeroin. 2 4 I: 1 2, I 3, I 2 4, II 2, I 3 2, I 3, I II: 4 3, I 5, II 5 1, I 4, II Automtti M lk kehittyä tästä lähtotilnteest: 38
41 I II I: 1 2, I 3, I 2 4, II 2, I 3 2, I 3, I II: 4 3, I 5, II 5 1, I 4, II, Til I on epädeterministinen, kosk merkillä voidn siirtyä tiln I ti II. Askel 3: k-ekvivlenssist (k + 1)-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 1 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 1 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: 1 2, II 3, I 3 2, II 3, I II: 2 4, III 2, II III: 4 3, I 5, III 5 1, I 4, III I II III Askel 4: Nyt jokinen luokk I, II j III on deterministinen, joten tulos M on vlmis. Tehtävä 13. Muodost kuvn 9 determinististä äärellistä utomtti vstv minimiutomtti. Tehtävä 14. Muodost kuvn 10 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. 39
42 A B D C E Kuv 9: Tehtävän 13 utomtti Kuv 10: Tehtävän 14 utomtti. 40
43 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 0 q 1 q 2 q 3 hyväksyy syötemerkkijonon, kosk sillä on hyväksyvä lskent (q 0, ) (q 0, ) (q 0, ) (q 0, ) (q 1, ) (q 2, ) (q 3, ε). Sillä on myös hylkääviä lskentoj kuten (q 0, ) (q 0, ) (q 0, ) (q 0, ) (q 0, ) (q 0, ) (q 0, ε) 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+1 δ(q i, i ) siten, että syötteen n loputtu olln josskin hyväksyvässä tilss q n. 41
44 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+1 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) : 1 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?. 1. 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. 42
45 ε Kuv 11: 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 11. Tällisen ε-siirtymän kuten 1 ε 2 tulkint on, että sitä pitkin pääsee tilst 1 tiln 2 lukemtt yhtään syötemerkkiä. 43
46 0 Esimerkkinä kuvn 11 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 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 0, 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 0 Q on lkutil j F Q hyväksyvien tilojen joukko. 44
47 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 16. q 0 q 1 q 2 q 3 q 0 {q 0, q 1 } {q 0 } q 1 {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 0, q 1 } voidn merkitä myös suorn sen lkioiden listn q 0, q 1. 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, ) 1. 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ä 15. 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ä 16. Ldi deterministinen utomtti edellisen tehtävän 15 kielelle. 45
48 Epädeterministisen utomtin simulointi Pltn iempn esimerkkiin kuvss 11. 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 1. stu syötemerkkiä vstvt seurjtilt j 2. ne tilt, joihin niistä päästään ε- siirtymillä ε 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): 1 NykyisetTilt E(lkutil q 0 ) 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 Algoritmi SimulteNFA tulkk epädeterministisen lskennn deterministiseksi. Yksittäinen syötemerkki käsitellään (phimmss tpuksess) jss O( Q ). 46
49 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ä 1. Eli E(DFA:n M lkutil q 0 ). Hyväksyvät tilt ovt kuten sen rivillä 9. Eli ne tilt, joihin sisältyy inkin yksi DFA:n M lopputil. 1 lust tulos M sisältämään luksi pelkän lkutiln nimeltä E(DFA:n M lkutil q 0 ) 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 then merkitse NykyisetTilt hyväksyväksi tilksi 6 else merkitse NykyisetTilt hylkääväksi tilksi 7 for merkki Σ 8 do lske SeurjTilt kuten tulkkilgoritmin SimulteNFA riveillä if til nimeltä SeurjTilt puuttuu yhä tuloksest M 10 then luo sellinen j merkitse se uudeksi 11 Lisää tulokseen M siirtymä NykyisetTilt merkki SeurjTilt 12 lopuksi voit vielä minimoid tuloksen M jos thdot Esimerkki 17. Determinisoidn epädeterministinen utomtti M 47
50 q 0 q 1 q 2 q 3 Esimerkiksi tiln s 2 = {q 0, q 2 } seurj syötemerkillä on til s 3 = {q 0, q 1, q 3 }, sillä s 3 sisältää täsmälleen kikki joukkoon s 2 kuuluvien lkioiden seurjt merkillä : s 3 s 2 q 0 q 2 q 0 q 3 q 1 1. Aloitetn lisäämällä lkutil {q 0 } j lskemll siitä lähtevät siirtymät. {q 0 } = s 0 {q 0, q 1 } {q 0 } 2. Stiin uusi til {q 0, q 1 } j jtketn sillä. {q 0 } = s 0 {q 0, q 1 } {q 0 } {q 0, q 1 } = s 1 {q 0, q 1 } {q 0, q 2 } 3. Stiin uusi til {q 0, q 2 } j jtketn sillä. {q 0 } = s 0 {q 0, q 1 } {q 0 } {q 0, q 1 } = s 1 {q 0, q 1 } {q 0, q 2 } {q 0, q 2 } = s 2 {q 0, q 1, q 3 } {q 0 } 4. Stiin uusi til {q 0, q 1, q 3 } j jtketn sillä j iknn sdn lopputulos: {q 0 } = s 0 {q 0, q 1 } {q 0 } {q 0, q 1 } = s 1 {q 0, q 1 } {q 0, q 2 } {q 0, q 2 } = s 2 {q 0, q 1, q 3 } {q 0 } {q 0, q 1, q 3 } = s 3 {q 0, q 1, q 3 } {q 0, q 2, q 3 } {q 0, q 2, q 3 } = s 4 {q 0, q 1, q 3 } {q 0, q 3 } {q 0, q 3 } = s 5 {q 0, q 1, q 3 } {q 0, q 3 } 48
51 q 0 q 0, q 1 q 0, q 2 q 0, q 1, q 3 q 0, q 2, q 3 q 0, q 3 Esimerkki 18. Determinisoidn kkoston Σ = {M, I, U} seurv epädeterministinen utomtti: M,I,U M,I,U M I U Rtkisu: Kun generoidn koko potenssijoukko eli käytetään suor mtemttist määritelmää eikä while-lgoritmi niin sdn tulokseksi: M I U A {0} {0, 1}=E {0}=A {0}=A B {1} {2}=C C {2} {3}=D D {3} {3}=D {3}=D {3}=D E {0, 1} {0, 1}=E {0, 2}=F {0}=A F {0, 2} {0, 1}=E {0}=A {0, 3}=G G {0, 3} {0, 1, 3}=L {0, 3}=G {0, 3}=G H {1, 2} {2}=C {3}=D I {1, 3} {3}=D {2, 3}=J {3}=D J {2, 3} {3}=D {3}=D {3}=D K {0, 1, 2} {0, 1}=E {0, 2}=F {0, 3}=G L {0, 1, 3} {0, 1, 3}=L {0, 2, 3}=M {0, 3}=G M {0, 2, 3} {0, 1, 3}=L {0, 3}=G {0, 3}=G N {1, 2, 3} {3}=D {2, 3}=J {3}=D O {0, 1, 2, 3} {0, 1, 3}=L {0, 2, 3}=M {0, 3}=G 49
52 joss S P(Q) ovt svutettvt tilt ne jokt myös while-lgoritmi tuottisi P(Q) \ S ne muut eli svuttmttomt tilt. Tulos tilsiirtymäkvion johon on piirretty vin svutettvt tilt: I,U M I,U M I A E F U M U G I L M U I M I,U M M Se minimoitun: I,U M M,I,U A M I E U M F I U G Tehtävä 17. Determinisoi seurv utomtti: 50
53 , 1 2 Esimerkki 19. Determinisoidn seurv utomtti: 0 0 ε c ε d Siinä on sekä ε-siirtymiä että tvllinen epädeterministinen siirtymä (tilst merkillä 0). 1. Alkutilksi sdn E({}) = {,...} = {, c,...} = {, c, d}. 2. Tästä lkutilst päästään tiloihin δ({, c, d}, 0) = E(δ(, 0) δ(c, 0) δ(d, 0)) = E({, } {c} ) = E({,, c}) = {,, c, d} ensimmäinen uusi til δ({, c, d}, 1) = {d} toinen uusi til. 51
54 3. Käsitellään nämä uudet tilt vikkp niiden luontijärjestyksessä. Siten: δ({,, c, d}, 0) = {,, c, d} sm vnh til δ({,, c, d}, 1) = {c, d} kolms uusi til. 4. Sitten: 5. Sitten: δ({d}, 0) = δ({d}, 1) = neljäs uusi til. δ({c, d}, 0) = {c, d} sm vnh til δ({c, d}, 1) = {d} toinen vnh til. 6. Kikki syntyneet tilt on nyt käsitelty, j sdn lopputulos: til 0 1 {, c, d} {,, c, d} {d} {,, c, d} {,, c, d} {c, d} {c, d} {c, d} {d} {d} {, c, d} {,, c, d} {d} {c, d} 0 1 Tehtävä 18. Determinisoi seurv utomtti: 1 ε 2 3, Tehtävä 19. Determinisoi seurv utomtti: ε 1 2, 3 52
55 Hhmontunnistuksest Epädeterministisellä utomtill voi helposti kuvt hhmontunnistusongelmi: esiintyykö nnettu merkkijono y syötteessä x? Mikä thns yksittäinen merkkijono (eli yksilkioinen kieli) y = y 1 y 2 y 3... y m Σ voidn tunnist yksinkertisell epädeterministisellä utomtill: y 1 y 2 y 3 y m... Σ Σ Kun tällinen utomtti determinisoidn, tilojen lukumäärä m+1 ei muutu. Tällisen epädeterministisen utomtin kikki lskentpolkuj voi myös simuloid tehokksti, jos m = O(tietokoneen ittisyys eli nykyään 32 ti 64) ns. shift-or/shift-nd lgoritmill. Mutt yleisessä tpuksess (eli kun kyseessä on mielivltinen säännöllinen kieli) voi tilojen määrä ksv phimmilln eksponentiliseksi, onhn P(Q) = 2 Q. Toislt yksinkertiselle hhmontunnistusongelmlle deterministinen utomtti ostn muodost suornkin jss O(m), ns. Knuth-Morris-Prtt lgoritmi. Ensimmäinen ekskursio: NFA:n simulointi Olkoon pitkä teksti t j lyhyt merkkijono p ASCII-kkoston merkkijonoj, j n = t, m = p, j m w, missä w on ittien lukumäärä int-muuttujss (esim. 32 ti 64). Seurv C-kielinen funktio kertoo kikki kohdt missä p esiintyy t:ssä. Algoritmi perustuu NFA:n simuloimiseen, j se toimii jss O(n) (nyt kun m w). Yleisesti otten mielivltisen NFA:n tehoks simuloiminen on kuitenkin voin ongelm. Miten lgoritmi toimii??? Tämä ei kuulu kurssiin. Ongelm on mhdollist rtkist myös keskimääräisessä jss O(n log Σ (m)/m)... Toinen ekskursio: Knuth Morris Prtt Olkoot edelleen t j p ASCII kkoston merkkijonoj, j n = t, m = p. Seurv C-kielinen funktio kertoo kikki kohdt missä p esiintyy t:ssä. Algoritmi perustuu deterministiseen utomttiin. Tässä on kuitenkin ε-siirtymiä, mutt näitä ei seurt jos on toinenkin vihtoehto, joten hrutumist ei tphdu... Algoritmi toimii jss O(n+m). Miten se täsmällisesti otten toimii??? Tämäkään ei kuulu kurssiin. 53
56 Epädeterminismin sovelluksi Näemme pin, että epädeterminismi yksinkertist huomttvsti moni utomttikonstruktioit. Sillä on käyttöä tietojenkäsittelytieteessä ljemminkin, esim. Rinnkkisjärjestelmät: Asynkronisess lskennss eri prosessien suoritusjärjestys ei ole tiuksti kontrolloitviss. Ajttelemme siis, että suoritusjärjestys määräytyy epädeterministisesti j vdimme esim. että järjestelmä ei s lukkiutu millään suoritusjärjestyksellä. Lskennn vtivuus: Monille tärkeille etsintä- j optimointiongelmille on helppo esittää epädeterministinen rtkisu, mutt sen tehoks simuloiminen deterministisellä (eli oikell) tietokoneell on voin ongelm. Vrt. edellä: NFA:n muuntminen DFA:ksi stt iheutt tilojen lukumäärän eksponentilisen ksvun. (Mutt ei in, kuten nähtiin.) 4.8 Säännölliset lusekkeet j kielet Säännöllisellä lusekkeell (regulr expression) voi kuvill, minkä muotoisi merkkijonoj hyväksytään. Unix-komennoll grep (=glol regulr expression prser) voidn etsiä tiedostost säännöllisellä lusekkeell kuviltuj osi. Esim. Etsi tekstitiedostost lp.txt rivit, joill esiintyy sn utomtti : egrep utomtti lp.txt Etsi tekstitiedostost lp.txt rivit, joill esiintyy sn utomtti ti sn kieli : egrep \(utomtti\ kieli\) lp.txt Etsi tekstitiedostost lp.txt rivit, joill esiintyy äärellinen utomtti ti khviutomtti : egrep \(äärellinen \ khvi\)utomtti lp.txt Etsi tekstitiedostost tiedosto.txt osoitteit, jotk ovt muoto... ktu ti... tie jot seur sunnon numero: egrep [A-ZÅÄÖ][-zåäö]*\(ktu\ tie\) [0-9][0-9]* tiedosto.txt Monien editoreiden serch j serch & replce -komennot sllivt myös säännölliset lusekkeet; smoin jotkut ohjelmointikielet sisältävät regexp kirjstoj. Eräs mhdollisuus grep-toiminnon toteuttmiseksi olisi seurv: 1. Muodostetn äärellinen utomtti, jok hyväksyy tsn selliset merkkijonot, joiss esiintyy nnettu hhmo. 2. Seltn syöte rivi kerrlln käyttämällä tätä utomtti, j tulostetn hyväksytyt rivit. Kysymys: Kuink monimutkisi hhmoj tällä peritteell voidn käsitellä? Esim. edellä muodostettiin hhmoist utomtti j kieli uusi hhmo tioperttorill. Smoin sllittiin hhmon ktenointi itsensä knss ([0-9]*). Kuink voimkkt operttorit voidn siis slli? 54
57 Kielten yhdiste, tulo j sulkeum Olkoot A j B kkoston Σ kieliä. Muistetn, että kielet ovt merkkijonojoukkoj Σ. Kielten A j B yhdiste on kieli suorn joukko-opist. A B = {x Σ : x A ti x B} Jos yhdistettä jttelee eräänlisen yhteenlskun niin sen noll on kosk sen lisäämisellä ei ole vikutust: Kielten A B tulo on kieli X = X = X x + 0 = 0 + x = x. AB = {xy Σ : x A, y B} eli ne merkkijonot xy jotk lkvt jollkin kielen A merkkijonoll x j jtkuvt jollkin kielen B merkkijonoll y. Jos tulo jttelee eräänlisen kertolskun niin sen ykkönen on {ε} kosk Vstvsti nollll kertominen noll : {ε} X = X {ε} = X 1 x = x 1 = x. X = X = 0 x = x 0 = 0. Tyhjä kieli j tyhjä merkkijono ε ovt eri sioit, niillähän on eri tyyppikin. Kielessä {ε} on yksi lkio, nimittäin ε, joten se ei ole tyhjä. Kielen A potenssit A k, joss k N, määritellään itertiivisesti: A 0 = {ε} A k = AA k 1 Kielen A sulkeum on kieli A = = AAA }{{... A} k kert = {x 1 x 2 x 3... x k : x i A i = 1,..., k} (k 1) k=0 A k = {ε} A AA AAA... = {x 1... x k : k 0, x i A i = 1,..., k} Tässä vihdoin on moniss pikoissä käyttämämme merkinnän potenssiin trkoitettu sisältö: (...) koostuu niistä merkkijonoist, jot sdn liimilemll yhteen äärellisen mont tämän kuvuksen (...) mukist merkkijono. 55
58 Erikoistpuksen = {ε}... = {ε} kosk noll(kin) potenssiin noll on yksi. Esimerkki 20. Trkstelln kkoston {,... z, 0,..., 9} kieliä A = {, } j B = {01, 02}. Nyt Säännöllinen luseke A B = {,, 01, 02} AB = {01, 02, 01, 02} A = {ε,,,,,,,,,,,,...} Määritelmä 3. Akkoston Σ säännölliset lusekkeet (regulr expressions) määritellään induktiivisesti säännöillä: Vkiot j ε ovt jokisen kkoston säännöllisiä lusekkeit; kkoston jokinen merkki Σ on sen säännöllinen luseke; jos r j s ovt kkoston Σ säännöllisiä lusekkeit, niin myös (r s), (rs) j r ovt sen säännöllisiä lusekkeit; j muit kkoston Σ säännöllisiä lusekkeit ei ole. Akkoston Σ säännöllinen luseke r kuv kielen L(r) Σ : L( ) = L(ε) = {ε} L() = {} kikill Σ L((r s)) = L(r) L(s) L((rs)) = L(r)L(s) L(r ) = (L(r)) Esimerkki 21. Akkoston {, } säännöllisiä lusekkeit ovt esimerkiksi r 1 = (()), r 2 = (), r 3 = ( ), r 4 = (( ())). näiden lusekkeiden kuvmt kielet ovt L(r 1 ) = ({}{}){} = {}{} = {}; L(r 2 ) = {} = {ε,,,,...} = {() i i 0}; L(r 3 ) = {}({}) = {,,,,...} = { i i 0}; L(r 4 ) = ({}{, }) = {, } = {ε,,,,,...} = {x {, } kutkin -kirjint x:ssä seur 1 ti 2 -kirjint } 56
59 Lyhennysmerkintäsopimuksi Sulkumerkkejä voidn vähentää seurvill säännöillä: Operttoreist sitoo vhvimmin, sitten tulo, j heikoimmin. Yhdiste- j tulo-opertioiden ssositiivisuus: L(((r s) t)) = L((r (s t))) L(((rs)t)) = L((r(st))). Käytetään tvllisi kirjsimi mikäli seknnuksen vr merkkijonoihin ei ole. Esim. edellisen esimerkin 21 lusekkeet r 1 = (()), r 2 = (), r 3 = ( ), r 4 = (( ())) yksinkertisemmin: r 1 =, r 2 = (), r 3 =, r 4 = (( )) Lyhennysmerkintä r + trkoitt toist r inkin kerrn. Siten r + = rr = r r. Esim. jos d = (0... 9), niin d + (ti dd ) trkoitt, että merkkijono koostuu yhdestä ti usemmst numeromerkistä. Säännöllinen kieli Snomme, että kieli on säännöllinen, jos se voidn kuvt jollkin säännöllisellä lusekkeell. Toisin snoen, kieli A on säännöllinen, jos on jokin säännöllinen lusele r joll L(r) = A. Esimerkki 22. Olkoon kkosto Σ = {,, c,...}. Säännöllisen lusekkeen Σ utomttiσ kuvm kieli on niiden merkkijonojen joukko jotk sisältävät osmerkkijonon utomtti. Siis tämä kieli on säännöllinen. Esimerkki 23. Olkoon Σ = {A, B, C,..., Ö,,, c,..., ö, 0, 1, 2,..., 9, }. Osoite on muoto (Ll )(ktu tie) dd (l ε)(dd ε) ddddd Ll joss d on lyhenne lusekkeelle ( ) l on lyhenne lusekkeelle ( c... ö) eli pienille kirjmille ( letters ), j L on lyhenne lusekkeelle (A B C... Ö) eli suurille kirjimille ( LETTERS ). Huom: Monet regexp -kirjstot j -työklut lisäävät ominisuuksi jotk eivät ole säännöllisiä (kuten esimerkiksi rjoittmttomt viitteet tksepäin, NP-täydellinen ongelm... ). Tällä kurssill esitetellään nämä idot säännölliset lusekkeet ilmn sellisi lisäyksiä. 57
60 Esimerkki 24. Ohjelmointikielen C etumerkittömät liukuluvut (jotk ovt tyyppiä flot, doule ti long doule) määritellään seurvsti: (kokonisos).(desimlios) (e ti E) [+ ti ] (eksponentti) [suffiksi] merkintä [... ] trkoitt että kyseinen os voi myös puuttu kokonisos j desimlios koostuvt digiteistä joko kokonisos ti desimlios voi puuttu (mutt eivät molemmt) joko (i) desimlipiste ti (ii) (e ti E) j eksponentti voivt puuttu (mutt eivät molemmt) suffiksi: F ti f: flot, L ti l: long doule, muuten doule Säännöllinen luseke (ilmn suffiksej): (d +.d.d + )(ε ((e E)(+ ε)d + )) d + (e E)(+ ε)d + Kieleen kuuluvt esim. seurvt merkkijonot: 12.,.12, 1.2, 1.2E3, 1.2e3, 1E2, 1e E-3, Tehtävä 20. Trkstelln seurvi kkoston Σ = {, } kieliä. Ann kustkin kielestä kksi merkkijono, jotk kuuluvt kieleen, j kksi, jotk eivät kuulu kieleen! () () 5. (ε ) 6. Σ Σ Σ Σ Tehtävä 21. Etsi lyhyin merkkijono, jok kuuluu seurvn lusekkeen kuvmn kieleen! 1. ( ) 2. ( () ) 3. ( )( ) Tehtävä 22. Muodost seurvi kieliä vstvt säännölliset lusekkeet: 1. {w {, } : w:n kolmnneksi viimeinen merkki on } 2. {w {, } : w sisältää joko merkkijonon ti } 3. {w {, } : w sisältää prillisen määrän merkkiä } 4. {w {, } : w:n pituus on priton} 5. {w {, } : w:ssä on 3:ll jollinen määrä merkkiä } 58
61 Tehtävä 23. Esitä yksinkertisemmss muodoss seurvt lusekkeet (eli nn luseke, jok yhä kuv smn kielen, mutt joss on vähemmän operttoreit): 1. ( ) 2. (0 10 ) 3. 1 (011 ) 1 (011 ) 0 Säännöllisten lusekkeiden sieventäminen Säännöllisillä kielillä on yleensä useit vihtoehtoisi kuvuksi, esim.: Σ = L(( ) ) = L(( ) ) = L( ( ) ( ) ) =... Merkitään r s, kun L(r) L(s), eli kun säännollisen lusekkeen r kuvm kieli on os säännöllisen lusekkeen s kuvm kieltä. Säännölliset lusekkeet r j s ovt ekvivlentit, merkitään r = s, silloin kun r s j s r, eli kun L(r) = L(s). Lusekkeen sievennys = yksinkertisimmn ekvivlentin lusekkeen määritys. Tässä luontev yksinkertisuuden mitt on sen sisältämien operttoreiden lukumäärä sen pituus kirjoitettun. Sievennyssääntöjä Muistisääntö: on hiemn kuin yhteenlsku, j on hiemn kuin 0. Tulo on hiemn kuin kertolsku, j ε on hiemn kuin 1. r r = r (mutt rr r kun r, ε) r (s t) = (r s) t r(st) = (rs)t r s = s r r(s t) = rs rt (r s)t = rt st r = r = r εr = r (mutt ε r r kun r ε) = ε r = r r ε = r + ε r = (r ε) (r ) = r 59
62 Jos ε L(s) niin kielten välisen yhtälön x = xs t pienin rtkisu (osjoukkoreltion suhteen) on kieli x = ts. Itse siss tämän yhtälön pienin rtkisu rvoll t = ε onkin opertion s lgerllinen määritelmä. Tvlliset joukko-opertiot vs. säännöllisten kielten opertiot Olkoot A = {, } j B = {c, d}. Joukot Kielet A B = {,, c, d} A B = {,, c, d} krteesinen tulo A B = tulo AB = {(, c), (, d), (, c), (, d)} {c, d, c, d} potenssijoukko P(A) = sulkeum A = {, {}, {}, {, }} {ε,,,,,,,,,,,,,,,,,,,...} P(X) = 2 n, kun X = n X =, kun X =n Miten osoitt, että L(r) = L(s)? Mtemttinen rtkisutp on osoitt, että 1. L(r) L(s) eli r s, j 2. L(s) L(r) eli s r. Ti helpommin (mutt ehkä työläämmiin) vstvill utomteill: 1. Muodost minimliset ääreelliset deterministiset utomtit lusekkeille s j r. 2. Jos utomtit ovt (tilojen nimiä lukuunottmtt) smt, niin kieletkin ovt smt onhn minimlinen deterministinen utomtti on yksikäsitteinen). (Johdttelev) kysymys: miten lusekkeest voidn muodost utomtti? (Vstus: selviää pin... ) 4.9 Säännöllisten kielten sulkeumominisuudet Mtemtiikss snotn että jokin joukko X on suljettu jonkin opertion (kuten lskutoimituksen) suhteen, jos soveltmll opertiot joukon X lkioihin sdn tulokseksi in joukon X lkioit eli jos opertio ei vie pois joukost X. Esimerkiksi luonnollisten lukujen joukko N on suljettu yhteenlskun suhteen, kosk m + n N jokisell m, n N. Se ei kuitenkn ole suljettu vähennyslskun suhteen, kosk esimerkiksi 5 8 N, vikk 5, 8 N. 60
63 Olkoon joukko X = kikki säännölliset kielet (eli se on merkkijonojoukkojen joukko). Minkälisten opertioiden suhteen se on suljettu? Luse 3. Olkoot L 1 j L 2 kkoston Σ säännöllisiä kieliä. Tällöin myös yhdiste L 1 L 2 leikkus L 1 L 2 ktentio eli tulo L 1 L 2 komplementti L 1 = Σ \ L 1 erotus L 1 \ L 2 (Kleenen) sulkeum (L 1 ) (Stephen Kleene oli jälleen yksi merkittävä loogikko.) käänteiskieli (L 1 ) R = {w R : w L 1 } eli joss kikki kielen L 1 merkkijonot on kirjoitettu tkperin ovt myös smn kkoston Σ säännöllisiä. Toisin snoen, säännöllisten kielten joukko on suljettu kikkien näiden opertioiden suhteen. Todistus: Jtkoss niitä osoitetn vstvien utomttien j/ti De Morgnin lkien vull. Huom että luse 3 on yksisuuntinen: Esimerkiksi yhdiste L 1 L 2 voi oll säännöllinen, vikk sen ost L 1 j L 2 eivät ole. Esimerkiksi säännöllinen kieli voidn muodost osist j L( ) = L 1 L 2 L 1 = { i j : i j} L 2 = { i j : j i} joist kumpikn ei ole säännöllinen (mikä voidn osoitt pumppuslemmll). Esimerkki 25. Lditn utomtti, jok tunnist kielen L(M) = {w {, } : w ei sisällä merkkijono }. Lditn ensin sen komplementtikielen tunnistv deterministinen utomtti, jok siis tunnist kielen L(M) = {w {, } : w sisältää merkkijonon }. Siitä sdn hluttu utomtti vihtmll hyväksyvät tilt hylkääviksi j päinvstoin.,, Huom: tämä komplementti-konstruktio edellyttää, että mhdolliset virhetilt on eksplisiittisesti esitetty, kosk komplementtiutomtiss niistäkin tulee hyväksyviä tiloj. 61
64 Sulkeum yhdisteen suhteen Kysymys: Miten voimme osoitt, että khden säännöllisen kielen L 1 j L 2 yhdiste L 1 L 2 on myöskin säännöllinen kieli? Vstus: Automtin vull, jok tunnist kielen L 1 L 2. Esim. utomtit jotk hyväksyvät merkkijonot jotk loppuvt 0, j jotk loppuvt 01: 0-utomtti 01-utomtti Kysymys: Miten muodostetn utomtti jok hyväksyy merkkijonot, jotk loppuvt 0 ti ti 01? Erityisesti: Miten sellinen utomtti voidn muodost näistä khdest nnetust utomtist? Vstus: Esimerkiksi ε-siirtymiä käyttäen. pltn siihen tuonnempn... Trkstelln merkkijono Ensimmäinen utomtti hylkää sen: Toinen utomtti hyväksyy sen: A 0 B 0 B 1 C 0 B 1 C. Siis se kuuluu kielten yhdisteeseen, joten se pitää hyväksyä. Kysymys: Voisiko lskennt litt peräkkäin? Vstus: Ei voi, kosk jokinen syötemerkki luetn vin kerrn, eikä siihen pääse enää uudestn käsiksi. Kysymys: Entä rinnkkin ti päällekkäin? Miten? Vstus: Siten, että sdn hyväksyvä lskent (, A) 0 (, B) 0 (, B) 1 (, C) 0 (, B) 1 (, C) joss pri (p, q) trkoitt 0-utomtti on tilss p j 01-utomtti tilss q. Vlitn yhdisteutomtille tiljoukoksi lkuperäisten utomttien tiljoukkojen krteesinen tulo siinähän ovt juuri kikki tälliset prit: {, } {A, B, C} = {(, A), (, B), (, C), (, A), (, B), (, C)} 62
65 Kuv 12: Khden utomtin tilojen krteesinen tulo. Määritellään siirtymäfunktio näiden prien välillä komponenteittin: yhdisteutomtiss on (p, q) (r, s) kun 0-utomtiss on p r j 01-utomtiss q s silloinhn ne toimivt yhtä ik. Grfisesti (kuvss 12) tämän voi esittää littmll yhdisteutomtin tilt tulukoksi, joss ensimmäisen utomtin tilt vstvt rivejä toisen utomtin tilt vstvt srkkeit. Vstvsti ensimmäinen utomtti nt siirtymien pystykomponentin j toinen utomtti vkkomponentin. Alkutilksi tulee (, A) eli lkuperäisten utomttien lkutilojen pri. Kosk kyseessä on unioni, hyväksyviä tiloj ovt kikki, joiss esiintyy ti C eli inkin toisen lkuperäisen utomtin hyväksyvä til. Sm uudestn mutt toisell tvll. Voimme yhdistää utomtit suorn ε-siirtymillä. Nyt utomtti rv luksi epädeterministisesti, kumpn kielistä L 1 viko L 2 syötettä verrtn. 63
66 Aikisemmt hyväksyvät tilt muuttuvt hylkääviksi mutt niistä on on ε- siirtymä uuteen hyväksyvään tiln ε 1 ε X 1 0 Y ε 0 1 A B C 0 ε 1 1. Voimme vielä determinisoid utomtin: 2. J minimoid: 3. Lopputulos: 0 1 {X,, A} {, B, Y } {, A} {, A} {, B, Y } {, A} {, B, Y } {, B, Y } {, C, Y } {, C, Y } {, B, Y } {, A} 0 1 {, A} {, B, Y } {, A} {, B, Y } {, B, Y } {, C, Y } {, C, Y } {, B, Y } {, A} 1 {, A} {, B, Y} {, C, Y} 0 1 Sm yleisemmin. Yhdistetään utomtit M s j M t utomtiksi jok tunnist kielen L(M s ) L(M t ): 64
67 ε M s ε ε M t ε Trvitsemme vielä utomtit kielelle L(M)... ε ε M s ε... j kielelle L(M s )L(M t ): ε M s ε M t 65
68 Muistutus: De Morgnin säännöt Tuttuj koulumtemtiikst j/ti diskreeteistä rkenteist j/ti mtemttisest logiikst. Ilmisevt joukko-opiss, että komplementointi kääntää yhdisteet leikkuksiksi j päinvstoin: A B = A B A B = A B. Esimerkiksi jos A j B ovt säännöllisiä kieliä, niin: 1. Myös niiden komplementit A j B ovt (hyväksyvät tilt hylkääviksi j päinvstoin -konstruktion vull esimerkistä 25). 2. Siten niiden yhdiste A B on (kuten edellä nähtiin khdellkin eri tvll). 3. Siten De Morgnin säännön nojll myös A B on. 4. Siten myös A B on (kuten skel 1) Äärelliset utomtit j säännölliset kielet Osoitetn seurv tärkeä tulos: Kieli on säännöllinen Kieli voidn tunnist äärellisellä utomtill. Ide: 1. Kieli L(r) on säännöllinen L(r) voidn tunnist äärellisellä utomtill M: Muodostetn säännöllistä lusekett r vstv (epädeterministinen) ε- utomtti. Hluttess tämä epädeterministinen utomtti voidn vielä determinisoid (j minimoid). 2. Kieli L(M) voidn tunnist äärellisellä utomtill M L(M) on säännöllinen: Trkstelln äärellisten utomttien ljennost, lusekeutomttej. Jos väite pätee lusekeutomteille, se pätee myös tvllisille äärellisille utomteille. Redusoidn lusekeutomtti 2-tiliseksi utomtiksi, jost voidn luke suorn vstv säännöllinen luseke Säännöllisestä lusekkeest utomtti Luse 4. Jokinen säännöllinen kieli voidn tunnist äärellisellä utomtill. Todistus: Annetn kuvn 13 eräs menetelmä, joll voidn muodost mielivltist säännöllistä lusekett r vstv ε-utomtti M r, joll L(M r ) = L(r). (Moni muitkin menetelmiä on.) Esimerkki 26. Muodostetn säännöllistä lusekett (( ) ( )) vstv äärellinen utomtti. (Vert tulost tehtävään 13.) 66
69 r = : r = s t: r = ε: ε ε M s ε r =, Σ ε ε M t r = st: r = s : ε M s ε M t ε M s ε ε Kuv 13: Säännöllisestä lusekkeest äärelliseksi utomtiksi. ε ε M ε ε ε ε ε ε M ( ) ( ) ε ε ε M ε ε ε ε ε ε, ε ε ε Tehtävä 24. Muodost säännöllistä lusekett (0 1) 0 (0 1) 01 = (0 1) (0 01) = (0 1 ) (0 01) vstv äärellinen utomtti. 67
70 Tehtävä 25. Muodost C-kielen liukuluvut tunnistv utomtti säännöllisestä lusekkeest (d +.d.d + )(ε ((e E)(+ ε)d + )) d + (e E)(+ ε)d + joss d = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} ovt 10-järjestelmän numeromerkit. Toislt ekvivlentti säännöllinen luseke voidn esittää monell tp, j osutomtit jost lopullinen rtkisu sdn voivt oll erilisi. Eli rtkisuj on erilisi (siihen skk kunnes on determinisoitu j minimoitu) Automtist säännöllinen luseke Luse 5. Jokinen äärellisellä utomtill tunnistettv kieli on säännöllinen. Todistus: Riittää selittää, miten nnetust äärellisestä utomtist M voidn kirjoitt sitä vstv säännöllinen luseke r M, jok trkoitt sm kieltä, eli joll L(r M ) = L(M). Voimme olett, ettei utomtiss M ole ε-siirtymiä (kosk voisimme ensin poist ne, jos niitä siinä olisi). Voimme myös olett, että utomtin M tilt on numeroitu 1, 2, 3,..., n. (Ei ole väliä, missä järjestyksessä.) Todistuksen ytimenä on muodost 3-ulotteinen tulukko, jonk indekseinä ovt nämä til(nnumero)t, j jonk pikss R[i][j][k] on sellinen säännöllinen luseke, että syötemerkkijono c 1 c 2 c 3... c m kuuluu lusekkeen R[i][j][k] määrittelemään kieleen täsmälleen silloin kun utomtiss M on jokin polku muoto c 2 c 3 c 4 c 5 cm 1 c m j. (4) } {{ } mikään näistä välitiloist ei ole k+1,k+2,k+3,...,n i c 1 Toisin snoen, R[i][j][k] ilmisee ne polut, joit pitkin lähtötilst i pääsee kohdetiln j vierilemtt mtkn ikn missään kielletyistä välitiloist k + 1, k + 2, k + 3,..., n. Huom: S oll i > k (eli polku s lähteä muuten kielletystä tilst) ti j > k (eli polku s päättyä muuten kiellettyyn tiln). Nämä lusekkeet R[i][j][k] voidn muodost induktioll indeksin k suhteen. Tämä induktio lk rvoll k = 0. Siinä lähtötilst i on päästävä kohdetiln j vierilemtt mtkn ikn missään tilss. Vlitn siis { } c c: M sisältää siirtymän i j kun i j R[i][j][0] = { } c (5) c: M sisältää siirtymän i j {ε} kun i = j. Ylemmässä hrss i j siis luetelln yhtenä säännöllisenä lusekkeen kikki ne syötemerkit c, joill on siirtymä lähtötilst i kohdetiln j. 68
71 Jos tällisi c ei ole yhtään kpplett, niin tämä luseke on silloin sehän on opertion neutrlilkio. Alemmss hrss i = j otetn mukn myös ε kosk silloinhn lähtötilst i päästään kohdetiln j myös pysymällä pikoilln. Oletetn sitten induktiivisess tpuksess k > 0 että kikki lusekkeet R[...][...][k 1] on jo muodostettu, j muodostetn niiden vull hlutut lusekkeet R[i][j][k] = vnh os {}}{ R[i][j][k 1] uusi os {}}{ R[i][k][k 1]. R[k][k][k 1]. R[k][j][k 1]. (6) }{{}}{{}}{{} lkuos välios loppuos Millä eri tvoill pääsemme lähtötilst i kohdetiln j kun smme nyt vierill myös ennen kielletyssä välitilss k? Voimme nytkin jättää vierilemtt välitilss k. Siitä smme vnhn osn. Uuden osn poluill vierilln välitilss k inkin kerrn. Aluksi sellinen polku kulkee lähtötilst i ensimmäiseen vieriluun välitiln k skk. Siitä smme lkuosn. Lopuksi sellinen polku kulkee viimeisestä vierilust välitiln k kohdetiln j. Siitä smme loppuosn. Niiden välissä polku kulkee välitilst k pois j pl siihen tkisin. Siitä smme väliosn. Edetään näin kunnes myös k = n on muodostettu. Olkoon sitten utomtin M lkutiln numero s j hyväksyvien tilojen numerot f 1, f f, f 3,..., f q. Lopuksi muodostmme hluttun vstuksenmme lusekkeen r M = R[s][f 1 ][n] R[s][f 2 ][n] R[s][f 3 ][n] R[s][f q ][n] eli jokinen polku, jok kulkee lkutilst johonkin hyväksyvään tiln, j jok s vierill missä välitilss thns. Voimme slli utomtiss M myös ε-siirtymät: Yhtälössä (4) ei c 1 c 2 c 3... c m enää olisikn syötemerkkijono, kosk jotkut c i polun siirtymill olisivtkin nyt ε. Mutt itse menetelmä ei muutu. Näiden ε-siirtyminen myötä voimme myös olett, että utomtiss M on vin yksi hyväksyvä til f tästä f ei lähde siirtymiä tämä f on eri til kuin utomtin M lkutil s. (Kuv 14.) 69
72 ε ε f ε Kuv 14: Hyväksyvien tilojen yhdistäminen yhdeksi. Voimme kirjoitt tämän todistuksen konstruktion lgoritmin 1 for i 1, 2, 3,..., n 2 do for j 1, 2, 3,..., n 3 do yhtälö (5) 4 for k 1, 2, 3,..., n 5 do for i 1, 2, 3,..., n 6 do for j 1, 2, 3,..., n 7 do yhtälö (6) 8 return R[s][f][n] j sd menetelmän, jok lskee nnetulle utomtille M sitä vstvn lusekkeen r M. Tämä lgoritmi on itse siss suku TRA II -kurssill esitellylle (?) Wrshll in lgoritmille, jok lskee nnetun syöteverkon trnsitiivisen sulkeumn. On myös toinen tätä kevyempi j intuitiivisempi menetelmä muodost nnetust utomtist M sitä vstv säännöllinen luseke r M. (Kirjllisuudess on toki näiden khden lisäksi mont muutkin menetelmää!) Tämä toinen menetelmä etenee poistmll trpeettomiksi käyneitä välitiloj utomtist M. Luseen 5 todistuksen menetelmähän eteni toisin päin: ksvttmll sllittujen välitilojen joukko, {1}, {1, 2}, {1, 2, 3},... yksi uusi til k kerrlln. Menetelmän lähtökoht on sm kuin yhtälössä (4): Seurtn utomtiss M polku sen tilst i toiseen tiln j, j kerätään polun siirtymilt niiden merkit c 1, c 2, c 3,..., c m siinä järjestyksessä kuin ne kohdtn. Menetelmän edetessä tällinen kokoninen polku korvtn oikotiellä eli yhdellä siirtymällä suorn tilst i tiln j. Tällisell oikotiellä pitää yhä oll kikki ne smt merkkijonot c 1 c 2 c 3... c m, jotk kerättäisiin, jos tilst i tiln j kuljettisiinkin ilmn oikoteitä, eli jos kuljettisiinkin lkuperäisiä siirtymiä pitkin. 70
73 p i j = i p q j q Niinpä oikotiell i merkkijonot. Kuv 15: Kksi rinnkkist siirtymää yhdeksi. r j onkin kokoninen säännöllinen luseke r jok kuv nämä Menetelmässä käytetään siis ns. lusekeutomttej: Ne ovt utomttej, joiden siirtymillä on kokoninen syötekkoston säännöllinen luseke pelkän syötemerkin sijst. Lusekeutomtin intuitio on, että kun tilss i otetn siirtymä i r j, niin 1. ensin luetn jäljellä olevn syötteen lust jokin lusekkeen r mukinen merkkijono tässä yhdessä skeless 2. sitten jtketn tilst j sillä jäljellä olevn syötteen loppuosll jot ei vielä luettu. Tvlliset utomtit voidn tulkit sellisiksi lusekeutomteiksi, joiden lusekkeet ovt mhdollisimmn yksinkertisi: pelkkiä merkkejä. Ohitmme kuitenkin tällä kurssill niiden formlin määritelmän, kosk käytämme niitä vin tässä menetelmässä. Tällisi oikoteitä voi vetää khdell tvll: 1. Jos utomtiss on kksi eri rinnkkist siirtymää i p q j j i j, niin ne voi korvt yhdellä yhteisellä siirtymällä i p q j kuten kuvss 15. Selvästi tämä säilyttää smoin ne merkkijonot, jotk kerättäisiin kulkemll näitä siirtymiä pitkin solmust i solmuun j: Uusi luseke p q kuv täsmälleen ne merkkijonot, jotk kuv inkin toinen vnhoist lusekkeist p ti q. 2. Käytetään ensin tp 1 kunnes rinnkkisi siirtymiä ei enää ole. Sitten trkstelln mielivltist välitil k s, f. p i Välitiln k tulee siirtymiä i k muult joiss siis i k. Ti jos ei tule, niin välitil k voidn poist trpeettomn, kosk siihen ei päästä lähtötilst s. Välitilst k kulkee silmukksiirtymä k q k tkisin itseensä. Ti jos ei kulje, niin sitä vstv os q voidn jättää pois lopputuloksest (7). 71
74 Välitilst k lähtee siirtymiä k r j j muulle joiss siis j k. Ti jos ei lähde, niin välitil k voidn poist trpeettomn, kosk siitä ei pääse lopputiln f. Silloin tämä nimenominen polku muult muulle tämän välitiln k kutt voidn korvt yhdellä oikotiellä i p i.q.r j j (7) kuten kuvss 16. Smll perustelull kuin yhtälön (6) uudess osss voidn nytkin nähdä, että merkkijonot säilyvät smoin: p i on lku-, q on väli- j r j on loppuos. S oll myös i = j k: silloin siirtymä (7) on silmukk i p i.q.r i i. Kun on käyty läpi kikki tälläiset polut muult muulle tämän välitiln k kutt (eli kikki solmuprit i, j) j korvttu ne oikoteillä (7), niin tämä välitil k sekä kikki siihen liittyvät siirtymät voidn poist, kosk niiden merkkijonot on esitetty näillä oikoteillä. Kun on käytetty tpoj 1 j 2 niin mont kert kuin mhdollist, niin: Automtiss on jäljellä vin sen lkutil s j hyväksyvä til f. Tilst s on silmukk s q s tkisin itseensä. Ti jos ei ole, niin sitä vstv os q voidn jättää pois lopputuloksest (8). Tilst s on siirtymä s r f tiln f. Ti jos ei ole, niin tilst s ei pääse tiln f, j silloin utomtin hyväksymä kieli onkin tyhjä kieli. Tilst f ei lähde siirtymiä, kuten näkyy kuvst 14. Tämän kuvss 17 olevn yksinkertistuneen utomtin hyväksymä kieli on jok sdn yksinkertistmll yhtälöä (7). q.r (8) Esitetään tämä menetelmä vielä lgoritmin: 72
75 q j i p i k r j.. p i.q.r j Kuv 16: Oikotie muult muulle. q.r s r f q Kuv 17: Luseke kutistuneest utomtist. 73
76 1 lisää kuvn 14 mukinen uusi hyväksyvä til f ellei sellist jo ole p q 2 while on rinnkkiset siirtymät i j j i j 3 do korv ne yhdellä yhteisellä siirtymällä i p q j 4 while on muitkin tiloj kuin lkutil s j tämä f 5 do k jokin (mikä thns) sellinen muu til p i 6 for ech siirtymä i k joss i k 7 do for ech siirtymä k r j j joss j k 8 do if on siirtymä k q k 9 then t p i.q.r j 10 else t p i.r j 11 u if on siirtymä i j 12 then päivitä se muotoon i u t j 13 else lisää sellinen muoto i t j 14 poist til k j kikki nämä siihen liittyvät siirtymät 15 if on siirtymä s r f 16 then if on siirtymä s q s 17 then return q.r 18 else return r 19 else return Tämä menetelmä on usein kevyempi j intuitiivisempi kuin luseen 5 todistuksen menetelmä, kosk: Automtit ovt usein modulrisi eli niissä on tilrykelmiä, joiden sisällä kulkee pljon siirtymiä, mutt joiden välillä kulkee vin vähän siirtymiä. Esimerkiksi liukuluvkion lukevss utomtiss on modulit 1. lue kokonisos 2. lue desimlios joist kumpikin on om silmukkns, joiss luetn numeromerkkejä, mutt siirtymä edellisestä jälkimmäiseen on vin desimlipisteellä.. Tällä menetelmällä voimme käydä tilt läpi moduli kerrlln mehän smme vlit tiln k kuten hlumme. Silloin tulokseen muodostuu näitä modulej vstvi lilusekkeit, jolloin se heijst utomtin intuitiot. Todistuksen menetelmä ei (inkn suorn) hyödynnä tätä modulrisuutt, vn tuott kikki yhteydet jokisest tilst jokiseen tiln. Otetn esimerkki tästä menetelmästä: 74
77 (i) lkuperäinen utomtti: (ii) lisätään f: s 1 s (iii) yhdistetään rinnkkiset: 1 1 ε 1 f (iv) poistetn til: ε s s ε f ε 0 1 ε (0 1).ε f (v) poistetn til: (vi) poistetn til: s 1 (0 1).(ε (0 1).ε) s 1.(0 1).(ε (0 1).ε) 0 1 f 0 1 f Nyt voidn luke lopputulos (0 1).1.(0 1).(ε (0 1).ε) jot voidn vielä hiemn sieventää muotoon (0 1).1.(0 1).(ε 0 1) jost voidn luke vstus: lkuperäinen utomtti hyväksyy ne inäärikkoston merkkijonot, joiden toiseksi ti kolmnneksi viimeinen merkki on 1. Voimme j knnttkin sievennellä lusekkeit jo menetelmän ikn. Tehtävä 26. Lue säännöllinen luseke seurvst utomtist: 75
78 , Säännöllisten kielten rjoituksist Kysymys: Kuink voidn hvit, ettei ongelm rtkekn äärellisisllä utomteill? Eli ettei vstv formlikieli olekn säännöllinen? Esimerkki 27. Onko tspinoisten sulkujonojen muodostm kieli L mtch = {( k ) k : k 0} säännöllinen? Yritetään tehdä sille utomtti: ( ( ( ( q 0 q 1 q n 1 q n ) ) ) ) q 2n q 2n 1 q n+2 q n+1 ) ( ( ( ( q 0 q 1 q n 1 q n ) ) ) ) Mutt entäpä jos sisäkkäisiä sulkuprej onkin n + 1 kpl.? Automttien rjllinen muisti Ääärellinen utomtti muist merkkijonon lkuosn vin tilojens vull. 76
79 Se ei siis voi pitää kirj kikist tpmistn merkeistä. Ääretön kieli voi oll säännöllinen vin jos siinä on jokin toistuv rkenne. Automtiss silmukk, säännöllisessä lusekkeess sulkeum (...). Säännöllisten kielten pumppuslemm formlisoi tämän hvinnon. Kielen osoittminen säännölliseksi ei ole lskennllisesti rtkev ongelm, vn siihen trvitn ihmisen mtemttist intuitiot on keksittävä sille utomtti ti luseke ti todistettv se sulkeumominisuuksien vull säännöllisiksi tiedetyistä kielistä ti... Stt näyttää ilmeiseltä, että äärellisen muistin jtuksen soveltminen olisi jotenkin intuitiivisesti selvää, eli että muistivtimukset näkisi jotenkin suorn. Kieli A = {w {0, 1} : w sisältää yhtä mont noll j ykköstä} ei ole säännöllinen (todistetn pin... ). Mutt kieli onkin säännöllinen. B = {w {0, 1} : w:ssä esiintyy 01 j 10 yhtä mont kert} Tehtävä 27. Todist että tämä kieli B on säännöllinen. Vihje: Mieti merkkijonon w ensimmäistä j viimeistä merkkiä... Luse 6. Kieltä C = {0 n 1 n : n N} ei voi tunnist äärellisellä utomtill. Todistus: Tehdään vstoletus, eli oletetn, että C voitisiin tunnist jollin äärellisellä utomtill M, eli siis L(M) = C. Olkoon tässä tuntemttomss utomtiss M k = Q til, j m = k/2. Kosk L(M) = C, niin silloin myös syöte s = 0 m 1 m L(M). Tämän syötteen s pituus s = 2m k. Merkitään sen merkkejä s = s 1 s 2... s 2m. Syötteellä s utomtti käy yhteensä 2m + 1 tilss, mukn lukien lkutil (joist os (ti kikki) voivt oll smoj). Toisin snoen, utomtti käy tiloiss: r 1 0 r r 1 m+1 r 1 1 m+2 r 2m+1. Eli lkutil q 0 = r 1 j δ(r i, s i ) = r i+1, missä r i Q. Hvinto: Q = k < 2m + 1 joten jonoss r 1... r 2m+1 inkin yksi til esiintyy usemmin kuin kerrn, eli r i = r j jollin i < j. Siis merkkijonoll s i... s j 1 utomtti tekee silmukn tilst r i tkisin tiln r i = r j : 77
80 x = s 1... s i 1 r i = r j z = s j... s 2m r 1 r 2m+1 y = s i... s j 1 Automtti siis hyväksyy lkuperäisen jonon s = xyz = xy 1 z kiertämällä silmukn yhden kerrn. Merkitään vstv hyväksyvää lskent lyhyesti: r 1 x r i y ri z r 2m+1. Silmukn sisältävästä hyväksyvästä lskennst sdn uusi hyväksyvä lskent ohittmll silmukk: r 1 x r i z r 2m+1 Siis utomtti hyväksyy myös merkkijonon xy 0 z = xz. Silmukk voidn myös toist mielivltisen mont kert: r 1 x r i y ri y ri z r 2m+1. r 1 x r i y ri y ri y ri z r 2m+1. Siis utomtti hyväksyy myös merkkijonot xy 2 z = xyyz, xy 3 z = xyyyz, xy 4 z = xyyyyz,... Kysymys: Kuuluuko merkkijono xy l z kieleen C = {0 n 1 n : n N} jokisell mhdollisell toistokertojen lukumäärällä l N? Trkstelln silmukn erilisi mhdollisi sijintej merkkijonon s keskikohdn suhteen: 1. i < j m + 1: nyt y = 0 j i. 2. i < m + 1 < j: nyt y = 0 m+1 i 1 j m m + 1 i < j: nyt y = 1 j i. Missään näistä tpuksist esimerkiksi xy 2 z ei kuulu kieleen C: tpuksess 1 siinä on liik nolli tpuksess 2 se on muoto tpuksess 3 siinä on liik ykkösiä. Kosk utomtti kuitenkin hyväksyy merkkijonon xy 2 z, tämä on ristiriit oletuksen C = L(M) knss. 78
81 Siis kieltä C ei voi tunnist k-tilisell äärellisellä utomtill millään k, eli kieli C ei ole säännöllinen. Edellisen todistuksen peruside oli osoitt, että jos M on k-tilinen utomtti, niin kielellä L(M) on pumppuspituus k: Määritelmä 4. Kielellä A on äärellinen pumppusominisuus, jos on olemss sellinen p, että mikä thns s A, joll s p, voidn esittää muodoss s = xyz, missä 1. xy i z A kun i = 0, 1, 2,..., 2. y > 0 j 3. xy p. Tällöin p on (eräs) kielen A pumppuspituus. Siis x = ε j z = ε ovt sllittuj, mutt y ε (ehto 2, muuten pumpttvuus olisi trivili). Kun kielellä on äärellinen pumppusominisuus, millä thns riittävän pitkällä merkkijonoll s on epätyhjä keskios y, jot pumppmll sdn uusi kieleen kuuluvi merkkijonoj xy 2 z, xy 3 z,... Luse 7 (Säännöllisten kielten pumppuslemm). Jokisell säännöllisellä kielellä on äärellinen pumppusominisuus. Todistus: Sivuutetn, ide on kuten edellisen luseen todistuksess yleistettynä mille thns säännölliselle kielelle. Intuitiivisesti, sm suomeksi: Äärettömän säännöllisen kielen tunnistvss utomtiss on silmukk siten, että 1. xy i z A: silmukk voidn kiertää mielivltisen mont kert i, j silti voidn päästä jonoll z hyväksyvään tiln. 2. y > 0: silmukk ei voi oll tyhjä, vn siihen pitää kuulu vähintään yksi ei-tyhjä siirtymä. 3. xy p: lskennn täytyy joutu silmukkn ennen kuin utomtist loppuvt tilt. Siis pumpputuvuusehto 2 trkoitt, että kieli sisältää merkkijonot xz, xyz, xyyz, xyyyz,... Ehdost 2 seur, että nämä jonot ovt toinen toistn pidempiä. Siis merkkijono y pumppmll sdn rjttomsti uusi kieleen kuuluvi merkkijonoj. Jos merkkijono s on pumpputuv, se kuuluu kieleen, kosk s = xy 1 z. Lisäksi se sisältää osjonon y, jonk poistminen ti monistminen tuott uusi kielen merkkijonoj. Ehdon 3 nojll tämä osjono y löytyy jonon s lkuosst, jonk pituus on p. Kielen pumpputuvuus trkoitt, että jokinen trpeeksi pitkä kieleen kuuluv merkkijono on pumpputuv. Äärellisellä kielellä voidn (j täytyy) vlit pumppuspituus p, jok on suurempi kuin kielen pisimmään merkkijonon pituus. Tällöin kielessä ei siis ole yhtään trpeeksi pitkää merkkijono... 79
82 Pumppuslemmn soveltminen Kiinnostv vin äärettömille kielille (äärelliset kielet ovt in säännöllisiä). Pumppuslemmn mukn millä thns säännöllisellä kielellä A on pumppusominisuus, toisin snoen jollkin p N mille thns selliselle s A jok on riittävän pitkä eli s p on olemss jko s = xyz joll pumppusehdot 1 3 toteutuvt. Pumppuslemmll ei voi osoitt kielen säännöllisyyttä, vin epäsäännöllisyyden. (Eikä sitäkään in, kosk on olemss epäsäännöllisiä kieliä, joill on äärellinen pumppuspituus... ) Iden todistus kontrpositioll, eli lemm käytetään käänteisesti ; A on säännöllinen A on pumpttviss A ei ole pumpttviss A ei ole säännöllinen Toisin snoen, on osoitettv, että mille thns p N on olemss sellinen s A, että s p j mille thns sen jolle s = xyz jokin pumppusehdoist 1 3 jää toteutumtt. Siis luksi voimme itse vlit s sopivsti helpottmn todistust, mutt sitten meidän pitää käydä läpi kikki mhdolliset tvt jk vlitsemmme s osiin x, y j z j osoitt, että mikään ei toteut pumppusehtoj. Toisin snoen, kun hlutn todist kieli epäsäännölliseksi, tehdään vstoletus, eli oletetn se säännölliseksi, j osoitetn että tästä seur ristiriit jonk voi osoitt käyttämällä pumppuslemm mutt jonk voi osoitt muutenkin: Esimerkiksi sulkeumominisuuksien vull ( plutetn ongelm tunnettuun kieleen). Esimerkki 28. Kieli C = {0 n 1 n : n N} ei ole säännöllinen. Todistus: Tehdään vstoletus että C olisikin säännöllinen. Silloin sillä olisi äärellinen pumppusominisuus, eli jokin vkio p siten, että jokinen inkin niin pitkä merkkijono s C (eli s p) jkutuu jotenkin osiin s = xyz jotk täyttävät ominisuuden 3 ehto. Me emme tiedä vkion p rvo, mutt me smme vlit sellisen merkkijonon s kuin hlumme (kunhn vlitsemme trpeeksi pitkän). Kun olemme vlinneet merkkijonomme s, niin me emme tiedä sen jost s = xyz muut kuin nämä 3 ominisuutt. Kosk tvoittelemme ristiriit, niin useimmiten knntt vlit s siten, että ehdot 2 j 3 ovt voimss, j osoitt että silloin ehto 1 ei enää sdkn voimn. 80
83 Tässä todistuksess knntt vlit s = 0 p 1 p (ti jokin vielä pidempi) kosk silloin ehdot 2 j 3 kertovt meille pljon osien xy rkenteest: joss k > 0 mutt j + k p. x = 0 j y = 0 k z = 0 p (j+k) 1 p Kosk tämä järkeilymme ei olet näistä rvoist j j k yhtään mitään muut, niin olemme todellkin tulleet käyneeksi läpi smll kert kikki mhdolliset jot. Nyt ehdon 3 mukn (vikkp) i = 0 kert pumpttu merkkijono 0 j 0 p (j+k) 1 p = 0 p k 1 p C. Mutt toislt kielen C määritelmän mukn pitäisi oll kosk k > 0. smll merkkijonoll 0 p k 1 p C Tässä on etsimämme ristiriit jok todist, että vstväite olikin väärin, eli että lkuperäinen väite olikin oikein. Pumppuslemmn ohell käytössämme ovt myös säännöllisten kielten sulkeumominisuudet (luse 3) j muut säännöllisiksi tunnetut kielet. Esimerkki 29. Osoit, että D = {w {0, 1} : w sisältää yhtä mont noll j ykköstä} ei ole säännöllinen. Todistus: Tehdään ts vstoletus: D on säännöllinen. Kieli 0 1 on säännöllinen (kosk se voidn tunnist kksitilisell utomtill). Siten kieli (0 1 ) D on säännöllinen (tunnettu sulkeumominisuus). Tämä on ristiriit, kosk (0 1 ) D on sm kuin C = {0 n 1 n : n N}, jok on iemmin todistettu epäsäännölliseksi esimerkissä 28. Esimerkki 30. Osoit, että kieli D = {w {0, 1} : w sisältää yhtä mont noll j ykköstä} ei ole säännöllinen. Todistus: Tehdään jälleen se vstoletus että D on säännöllinen. Edetään pumppuslemmll: Vlitn s = 0 p 1 p. Olkoon s = xyz D. Siis y ε j xy p, joten y koostuu yhdestä ti usemmst nollst. Kosk xyz D, niin xyyz sisältää nolli enemmän kuin ykkösiä, joten xyyz D. Ristiriit. Miten vlitn sopiv s? Jos olisi vlittu s = (01) p, ei olisi stu ristiriit, kosk tätä voidn pumpt (esim. x = ε, y = 01, z = (01) p 1 ). Pitäisi siis keksiä (sille tuntemttomlle) utomtille hnkli tpuksi. 81
84 Heuristisi ohjeit epäsäännöllisyystodistuksiin Mikä ominisuus tekee kielen epäsäännölliseksi?. Usein ominisuus koskee kht snn os, joiden välillä vllitsee jokin ehto. Tämä ominisuus voi koske esim. tiettyjen merkkien lukumäärien keskinäistä suhdett, esim. L 1 = { k m c m : k, m = 0, 1, 2,...} L 2 = { m 2m : m = 0, 1, 2,...} snn eri osi, esim. snn lku- j loppuos riippuvt jotenkin toisistn: L 3 = {ww R : w Σ } L 4 = {ww : w Σ }. Mikä on yksinkertisin, mielivltisen pituinen merkkijono, joss tämä ominisuus esiintyy? Joskus kielessä on todistuksen knnlt täysin turhi (säännöllisiä) osi, esim. kielessä L 1 merkin lukumäärällä ei ole mitään väliä voidn vlit merkkijono m c m. Mutt jos ehdon ospuolten välissä on tuollinen säännöllinen os, se stt oll trpeen ospuolien erottmiseen toisistn, esim. kielessä L 5 = { m k m : m, k = 0, 1, 2,...} trvitn inkin yksi erottmn lkuosn j loppuos merkit. Vlitn esim. m m. Jos kielen lku- j loppuos riippuvt jotenkin toisistn, mutt muuten ne svt oll mitä thns, riittää erott lku- j loppuos toisistn. Esim. kielen L 4 kohdll voidn vlit m m ti m m. Vlitse p siten, että eheysehdon toinen ospuoli kuuluu ensimmäiseen p merkkiin j sitä päästään pumppmn. Toinen tvoite on, että merkkijonon mhdollisi erilisi jkoj osiin xyz olisi mhdollisimmn vähän. Tätä käytimme esimerkin 28 todistuksessmme, ettei kieli C = {0 n 1 n : n N} ole säännöllinen: vlitsimme merkkijonon s niin pitkäksi, että lkuos x j pumpputuv os y olivt molemmt 0-jonoj. Test kikki pumppuslemmn mukiset jot w = xyz, xy p j y ε. Jokisell joll kokeile pumppust kierroslskurin i rvoill 0, 2, 3,... kunnes löytyy sellinen rvo i, että xy i z ei kuulu kieleen. Säännöllisten kielten luokk on suljettu (erityisesti) leikkuksen j komplementin suhteen. On nnettu kieli A, jok pitäisi osoitt epäsäännölliseksi. 82
85 Vlitn jokin säännöllinen kieli B, Jos nyt A B ei ole säännöllinen, niin myöskään A ei ole säännöllinen. (On kuitenkin oltv trkkn, esim. khden epäsäännöllisen kielen leikkus voi oll säännöllinen.) Jos A (komplementti) on epäsäännöllinen, niin myös A on epäsäännöllinen. Voitisiin siis sovelt pumppuslemm kieliin C = A B ti D = A, mutt joskus C ti D voi oll jokin tunnetusti epäsäännöllinen kieli, jolloin erillistä pumppuslemm-todistust ei trvit. Pikkertus: tähän mennessä... Deterministinen äärellinen utomtti (DFA): yksinkertinen lskentlite, muisti vin vkiomäärä, syötteen pituudest riippumtt. Säännölliset kielet: niiden kielten luokk, jok voidn tunnist DFA:ll. Epädeterministinen äärellinen utomtti (NFA): kieli voidn tunnist DFA:ll jos j vin jos se voidn tunnist NFA:ll. NFA on hyödyllinen kuvusformlismi. DFA voi vti eksponentilisesti enemmän tiloj kuin NFA. Kieli voidn tunnist DFA:ll jos j vin jos se voidn esittää lusekkeell. säännöllisellä Kikki kielet eivät ole säännöllisiä. Pumppuslemm voidn käyttää kielen epäsäännöllisyyden osoittmiseen. Eräs esimerkki epäsäännöllisestä kielestä on {w : w = w R, w {, } } Tähän mennessä: säännölliset kielet, tunnistus äärellisellä utomtill Seurvksi tällä LAP-kurssill: kontekstittomt kielet, tunnistus pinoutomtill Myöhemmin (LAT-kurssill): kontekstilliset j rekursiiviset kielet: tunnistus Turingin koneell ( tietokoneell ) Kikki muut kielet: vin osittin rtkevi ( kyllä -tpuksess) ti täysin rtkemttomi. Koetehtäviä? Yleisesti, smntyylisiä kuin luentojen esimerkit j kotitehtävät. Perustehtäväprototyyppi: Tehtävä 28. Ldi DFA / NFA jok tunnist kielen X. Minimoi / determinisoi utomtti käyttäen luennoill nnettu menetelmää. Mikä on utomtti / kieltä vstv säännöllinen luseke? Muunn säännöllinen luseke / utomtti utomtiksi / lusekkeeksi käyttäen luennoill nnettu menetelmää. Jne... Soveltvmp: 83
86 Tehtävä 29. Säännöllinen kieli A voidn tunnist deterministisellä äärellisellä utomtill M A. Kielen A komplementtikieli A voidn tunnist utomtill M A, jok sdn utomtist M A vihtmll hyväksyvät tilt ei-hyväksyviksi, j ei-hyväksyvät hyväksyviksi. Toisin snoen säännöllisten kielten luokk on suljettu komplementin suhteen. Edelleen, olkoon M A epädeterministinen utomtti, jok tunnist kielen A. Voidnko utomtist M A viht hyväksyvien j ei-hyväksyvien tilojen roolit edellä kuvtull tvll, j sd tulokseksi epädeterministinen äärellinen utomtti jok tunnist kielen A? Ovtko epädeterministisen utomttien tunnistmt kielet suljettu komplementin suhteen? Tehtävä 30. Miten mielivltisest NFA:st sdn NFA joss on vin yksi hyväksyvä til? Tehtävä 31. Voiko säännöllistä kieltä 0 1 tunnist deterministisellä äärellisellä utomtill, joss on vin yksi hyväksyvä til? Perustele. Tehtävä 32. Osoit, että säännöllisten kielten luokk on suljettu leikkuksen suhteen. Tehtävä 33. Olkoon A säännöllinen kieli. Osoit, että myös A R = {w R säännöllinen. : w A} on Tehtävä 34. Olkoot kielet A j B säännöllisiä. Onko kieli C = A B = (A B) (B A) säännöllinen? (Siis w C, jos w kuuluu joko kieleen A ti B, mutt ei molempiin.) Perustele. Tehtävä 35. Mitkä seurvt kkoston Σ = {, } kielistä ovt säännöllisiä? 1. E = { n n : n N} 2. F = {wuw R : w, u Σ + } 3. G = {ww : w Σ } 4. H = { i j : i j} 84
87 5 Kontekstittomt kielet j pinoutomtit Kontekstittomt kielet (context-free lnguges, yhteydettömät kielet) voidn kuvt kontekstittomill kieliopeill (context-free grmmr) j tunnist epädeterministisillä pinoutomteill (pushdown utomton). Verrttun edelliseen lukuun, korvmme säännölliset lusekkeet näillä kieliopeill, j epädeterministiset äärelliset utomtit näillä pinoutomteill. Pinoutomtti on kuten äärellinen utomtti, johon on lisätty rjoittmttomn suuri muisti. Tämä muisti on TRA-kurssilt tuttu pino (stck). Tämä rjoittmttomn suuri muisti trkoitt, että pino-opertiot eivät koskn jumiudu virheilmoitukseen Out Of Memory error. Joskus kirjllisuudess näitä pinoj kutsutn nimellä pushdown store/stck: Niissä voi ktsell vin pinon päällimmäistä tietolkiot, sen ll olevt jäävät piiloon (kunnes ne nousevt päällimmäiseksi). Silloin yleisnimi stck vrtnkin tietorkenteelle, jot suomeksi kutsutnkin nimellä vopino: Niissä koko pinon sisältöä voi selill, mutt vin päällimmäisen lkion voi poist. Tvoitteet: Opitn mitä ovt kontekstittomt kielet j pinoutomtit, j mikä on niiden välinen suhde. Opitn muodostmn kielioppi yksinkertisille kontekstittomille kielille. Opitn jäsentämisen perusidet. Johdttelev esimerkki: Miten kuvisit seurvt kielet? Sisäkkäisten sulkulusekkeiden kieli: if else-prien muodostm kieli: L ( ) = { ( k ) k : k 0 } L if-else = { if k else l : l k } Ne eivät ole säännöllisiä, joten säännöllisillä lusekkeill se ei onnistu. Rtkisuyritys: Annetn kielelle L ( ) rekursiivinen kuvus: Merkitään S = mielivltinen sisäkkäinen sulkumerkkijono. Tällöin S on sisäkkäinen sulkumerkkijono, jos 1. S = ε ti 2. S on muoto (S ), missä myös S on sisäkkäinen sulkumerkkijono. Toinen kuvustp (ensimmäinen kontekstiton kielioppimme): 85
88 1. S ε 2. S (S) Esimerkiksi merkkijonon ((())) tuottminen: S (S) ((S)) (((S))) (((ε))) = ((())) Vstv jäsennyspuu (tähän pltn vielä): S S S ( ( ( ε ) ) ) Kontekstittomn kieliopin ide On nnettu joukko muuttujsymoleit j muunnossääntöjä tämän muuttujsymolin esiintymän s korvt tuoll merkkijonoll jok voi vuorostn sisältää uusi muuttujsymolien esiintymiä. Yksi näistä muuttujsymoleist on erityinen loitussymoli jost lähdetään liikkeelle. Muunnetn merkkijono näillä säännöillä, kunnes siinä ei enää esiinny muuttujsymoleit. Silloin voidn luke näin tuotettu lopullinen merkkijono. Esimerkki 31. Yksinkertinen kielioppi ritmeettisille lusekkeille: E T E + T T F T F F (E). Esimerkiksi ensimmäinen rivi luetn muuttujsymoli E voidn korvt merkkijonoll T ti merkkijonoll E + T joss T on toinen muuttujsymoli j + merkki. 86
89 Se tuott vikkp ritmeettisen lusekkeen ( + ) seurvsti: E T T F F F (E) F (E + T ) F (T + T ) F (F + T ) F ( + T ) F ( + F ) F ( + ) F ( + ) Siinä lleviivttu muuttujsymolin esiintymä on korvttu. Kontekstittomn kieliopin formli määritelmä Määritelmä 5. Kontekstiton kielioppi on nelikko joss G = (V, Σ, P, S) äärellinen joukko V on kieliopin kkosto; Σ V on kieliopin päätemerkkien joukko; sen komplementti N = V \ Σ on kieliopin välikemerkkien eli -symolien joukko (joit edellä kutsuimme muuttujsymoleiksi); äärellinen joukko P N V on kieliopin sääntöjen eli produktioiden joukko; j S N on kieliopin lähtösymoli. Sääntöä (A, ω) P merkitään A ω. Sen voi luke välike A voi tuott/joht merkkijonon ω. Intuitiivisesti kontekstiton kielioppi G = (V, Σ, P, S) tuott merkkijonoj Σ seurvll epädeterministisellä lgoritmill: 1 r S 2 while r sisältää yhä välikemerkkien esiintymiä 3 do vlitse mikä thns (siis vikkp ensimmäinen ti viimeinen) sellinen esiintymä joten r on siis muoto αaβ joss A N on se vlittu esiintymä, α V on sitä ennen tulev os, j β V on sen jälkeen tulev os 4 vlitse mikä thns tämän vlitun esiintymän sääntö A ω P 5 r αωβ 6 tulost näin stu r Silloin kieliopin G tuottm formli kieli L(G) = kikki ne merkkijonot r jotk tämä lgoritmi voi tulost vlitsemll säännöt sopivsti rivillään 4. 87
90 Kontekstittomn kielen formli määritelmä Merkkijono αaβ V, joss A N, voi tuott ti joht suorn merkkijonon αωβ V, jos kieliopiss G on sääntö A ω P. Tätä merkitään Esimerkiksi sekä että αaβ G αωβ T F G F F T F G T esimerkin 31 kieliopiss ritmeettisille lusekkeille. Merkkijono γ 0 V, voi tuott ti joht merkkijonon γ n V, jos on olemss jono merkkijonoj V siten, että γ 0 γ 1 γ 2 G G G G γ n eli jos merkkijono γ 0 voi tuott suorn merkkijonon γ 1 jok voi tuott suorn merkkijonon γ 2 jok voi tuott suorn merkkijonon... jok voi tuott suorn merkkijonon γ n. Tätä merkitään Esimerkiksi kosk on jono γ 0 γ n G T F (E) G T F G F F G (E) F G (E) esimerkin 31 kieliopiss ritmeettisille lusekkeille. Erikoistpuksen jokinen merkkijono γ V voi tuott itsensä eli tyhjällä jonoll (joss n = 0). Esimerkiksi γ γ G T F T F G esimerkin 31 kieliopiss ritmeettisille lusekkeille. 88
91 Merkkijono γ V on kieliopin G lusejohdos, jos γ voidn joht sen lähtösymolist S: S γ. G Esimerkiksi (E) j ( + ) ovt lusejohdoksi esimerkin 31 kieliopiss ritmeettisille lusekkeille. Kieliopin G luse on sellinen sen lusejohdos, jok koostuu pelkästään sen päätemerkeistä: S γ j γ Σ. G Esimerkiksi ( + ) on luse esimerkin 31 kieliopiss ritmeettisille lusekkeille. Kieliopin G tuottm ti kuvm kieli koostuu sen luseist: { } L(G) = γ Σ : S γ. G Eli L(G) on kikkien niiden luseiden (merkkijonojen) joukko, jotk voidn tuott kieliopill G loittmll sen lähtösymolist S. Määritelmä 6. Formli kieli L Σ on kontekstiton, jos se voidn tuott jollkin kontekstittomll kieliopill. Kontekstist Sn konteksti (englnniksi context ) on suomeksi luseyhteys. Siten snn kontekstiton tilll käytetäänkin joskus snoj yhteydetön ti yhteysvp. Kontekstiton viitt siihen, että kieliopin säännöt ovt muoto A ω, mikä voidn tulkit siten, että muuttuj A voi tuott merkkijonon ω, olip sen ympärillä mitä thns. Sääntöjä siis voidn sovelt kontekstist riippumtt. Kontekstittomn kieliopin yleistys on konteksti(lli)nen kielioppi (context-sensitive grmmr). Tällisen kieliopin säännöt ovt muoto αaβ αωβ joss α, β, ω V. Tällinen sääntö tulkitn siten, että muuttuj A voidn korvt merkkijonoll ω jos sen edessä on α j perässä β eli jos A on luseyhteydessä α... β. Lisäksi vditn että Esimerkiksi kieli säännön vsemmn puolen pituus sen oiken puolen pituus. (9) { n n c n : n N} ei ole kontekstiton, mutt se voidn esittää käyttämällä kontekstisi sääntöjä. 89
92 Kontekstisi kielioppej ei käsitellä tällä kurssill. Nekin ovt silti kiintoisi... utomttien teoriss: Kuten jo vihjttiin, kontekstittomt kielet voidn tunnist utomteill joill on tvllinen pino. Kontekstiset ts utomteill joill on vopino. lskennn vtivuusteoriss: Kontekstiset kielet ovt ne, jotk voidn tunnist käyttämällä relistinen eli polynominen määrä muisti. Jos pituusehdost (9) luovutn, niin sdn edelleen rjoittmttomt kieliopit j kielet, j silloin svutetn lskettvuuden äärirj. Vkiintuneit merkintätpoj Välikesymoleit merkitään isoill kirjimill: A, B, C,..., S, T Päätemerkkeinä käytetään pieniä kirjimi,, c,..., s, t; numeromerkkejä 0, 1,..., 9; erikoismerkkejä; vrttuj snoj kuten if,for,end,... lihvoituin ti lleviivttuin. Mielivltisin merkkeinä (kun välikkeitä j päätemerkkejä ei erotell) käytetään X, Y, Z. Päätemerkkijonoin käytetään u, v, w, x, y, z. Sekmerkkijonoin käytetään α, β, γ,..., ω. Kielioppi esitetään usein pelkkänä sääntöjoukkon: Tällöin A 1 ω ω 1k1 A 2 ω ω 2k2. A m ω m1... ω mkm välikesymolit päätellään joko edellisten merkintäsopimusten mukn ti siitä, että ne esiintyvät sääntöjen vsempin puolin lähtösymoli on ensimmäisen säännön vsempn puolen esiintyvä välike; tässä siis A 1. Esimerkki 32. Sisäkkäisten sulkujonojen muodostmn kielen L ( ) = {( k ) k k 0} tuott kielioppi G ( ) = ({S, (, )}, {(, )}, {S ε, S (S)}, S) Esimerkki 33. Tspinoisten sulkujonojen muodostmn kielen tuott kielioppi G ( ) = ({S, (, )}, {(, )}, {S ε, S (S), S SS}, S) Esimerkiksi ()(()) on tspinoinen muttei sisäkkäinen sulkujono. Tämän mhdollist uuden säännön lisäämisen edellisen esimerkin 32 kielioppiin. 90
93 Esimerkki 34. Kielen { i k c k i, k = 0, 1,...} voi tuott kieliopill G = (V, Σ, P, S), joss V = {S, A, B,,, c} Σ = {,, c} P = {S AB, A A, A ε, B Bc, B ε}. Esimerkki 35. Yksinkertisten ritmeettisten lusekkeiden muodostmn kielen L expr tuott kielioppi G expr = (V, Σ, P, E) (10) joss V = {E, T, F,, +,, (, )}, Σ = {, +,, (, )}, P = {E T, E E + T, T F, T T F, F, F (E)}. Kieliopill (10) voidn joht esim. seurvt lusejohdokset: E G E + T G T + T G T F + T G F F + T G F + T G (E) + T G (T ) + T G (F ) + T G () + T G () + F G () +. Toinen kielioppi kielen L expr tuottmiseen on joss V = {E,, +,, (, )}, Σ = {, +,, (, )}, G expr = (V, Σ, P, E) (11) P = {E E + E, E E E, E, E (E)} Esimerkki 36. Trkstelln suomen kielen virkettä, jok koostuu yksinkertisest pääluseest sekä nollst ti usemmst sisäkkäisestä reltiiviluseest: L rel = {suj( jok pred ttr oj) pred ttr oj} 91
94 Tällisi virkkeitä voidn tuott esim. seurvill kontekstittomn kieliopin G rel säännöillä: VIRKE SUBJ SL PRED ATTR OBJ SL jok PRED ATTR OBJ SL ε SUBJ poik tyttö jänis susi peikko PRED pelkäsi metsästi ATTR suurt pientä vihist hirmuist rk OBJ poik tyttöä jänistä sutt peikko Mitä virkkeitä voit joht lähtösymolist VIRKE? Esimerkiksi: Kontekstittomt kieliopit ovt luontisi positionlisille kielille, joss kuk teki mitä kenelle ilmistn niiden pikoill luseess. Esimerkiksi englnnin kielessä on snjärjestys on vltosin sujekti-veriojekti (SVO) kuten yllä. Mutt suomen kielessä snjärjestys onkin vp j kuk teki mitä kenelle ilmistnkin sijmuodoill. Esimerkki 37. Ohjelmointikielten syntksin kuvus. Psclin osjoukko: luse ehtoluse koottu-luse sijoitus kutsu ehtoluse if ehto then luse else luse ehto x=0 koottu-luse egin lusejono end lusejono luse luse ; lusejono sijoitus x:=0 kutsu c Tästä on hyötyä ohjelmoijlle (syntksi pitää ost, jos ikoo ohjelmoid), mutt myös kääntäjä (ti yksi sen os, jäsentäjä (englnniksi prser )) voidn lti suorviivisesti perustuen kielioppiin. Oletus on, että esim äärellisellä utomtill (ti trnsduktorill) ohjelmn lähdekoodi on ensin pilkottu vlmiiksi yllä kuvttuihin osiin (vrtut snt, muuttujt, liohjelmien nimet, vkiot, jne). Tehtävä 36. Ldi kontekstiton kielioppi, jok tuott rjttomn monist sisäkkäisistä for-silmukoist, lkeisopertioist j kokonislukuvkioist N koostuvt ohjelmointikielen luseet, kuten for (i=n; i<n; i++) { for (j=n; j<n; j++) { } } 5.1 Kontekstittomien kielten sulkeumominisuuksist Kontekstittomi kielioppej on helppo tuott soveltmll moni vstvi opertioit kuin säännöllisissä lusekkeiss. Huom: Kontekstittomt kielet eivät kuitenkn ole suljettu kikkien smojen opertioiden suhteen kuin säännölliset! 92
95 Luse 8. Jos A j B ovt kontekstittomi kieliä, niin myös niiden yhdiste A B, tulo AB j sulkeum A ovt. Todistus: Trkstelln esimerkkinä yhdistettä A B; muut kohdt menevät smn tpn. Olkoot siis A j B kkoston Σ kontekstittomi kieliä. Siis A = L(G A ) j B = L(G B ) joillin kontekstittomill kieliopeill G A = (V A, Σ, P A, S A ) j G B = (V B, Σ, P B, S B ). Olkoon S / N A N B. Määritellään G = (V A V B {S}, Σ, P, S), missä P = P A P B {S S A } {S S B }. Selvästi L(G) = A B. Toislt, toisin kuin säännöllisten kielten luokk, kontekstittomien kielten luokk ei ole suljettu leikkuksen j komplementin suhteen. Toislt ts jos kieli A on säännöllinen, j kieli B kontekstiton, niin niiden leikkus A B on kontekstiton. Joitkin epäsäännöllisiä kieliä, kuten {0 n 1 n : n N} ti {w {0, 1} : w = w R } on helppo tuott kontekstittomll kieliopill. Toislt esimerkiksi kopiokieli {ww : w {0, 1} } ei ole kontekstiton (vn kontekstinen). Miten keksiä nnetulle kielelle kielioppi? On nnettu kontekstiton kieli L, j ldittv sen tuottv kontekstiton kielioppi G. Millisen kielen määrittely kuv? Yritä esittää L usemmn yksinkertisemmn kielen yhdisteenä (kuten L = L 1 L 2 L 3 ), tulon (kuten L = L 1 L 2 ) ti sulkeumn (kuten L = (L 1 L 2 ) ). Ldi näille oskielille L 1, L 2,... kieliopit. Olkoot niiden lkusymolit S 1, S 2 j S 3. Ldi sitten koko kielen L kielioppi seurvsti: Muit usein toistuvi rkenteit: Kieli Säännöt L = L 1 L 2 L 3 S S 1 S 2 S 3 L = L 1 L 2 S S 1 S 2 L = (L 1 ) S S 1 S ε L = (L 1 L 2 ) S SA ε, A S 1 S 2 Sääntö Kieli A {, } A A ε L( ) = {ε,,,,...} B Bc ε { n c n : n = 0, 1, 2,...} B Bc ε { 2n c n n = 0, 1,...} Tehtävä 37. Ldi kielioppi seurville kielille: 93
96 (0 1) 3. {0 n 1 n : n N} {1 n 0 n : n N} 4. {ww R : w {0, 1} } 5. {w {0, 1} : w = w R } 5.2 Säännölliset kielet j kontekstittomt kieliopit Säännölliset kielet sisältyvät idosti kontekstittomiin kieliin, jotk vuorostn sisältyvät idosti kontekstisiin kieliin. Siis jokinen säännöllinen kieli voidn kuvt kontekstittomll kieliopill jop linerisell kontekstittomll kieliopill, jonk rkenne on yksinkertisempi kuin yleinen kontekstiton kielioppi. tyyppi 2: kontekstittomt kielet tunnistus: pinoutomtti tyyppi 3: säännölliset kielet tunnistus: äärellinen utomtti rjllinen muisti äärelliset kielet Lineriset kieliopit Määritelmä 7. Kontekstiton kielioppi on oikelle linerinen jos sen kikki produktiot ovt muoto A ε ti A B, j vsemmlle linerinen jos sen kikki produktiot ovt muoto A ε ti A B. Intuitiivisesti kielioppi on oikelle linerinen jos välikesymoli s esiintyä vin säännön oikess lidss eikä missään muull. Oikelle lineriset kieliopit j epädeterministiset äärelliset utomtit vstvt toisin Äärellistä utomtti vstv linerinen kielipppi Luse 9. Jokinen säännöllinen kieli voidn tuott oikelle linerisell kieliopill. Todistus: Olkoon kieli L Σ säännöllinen, j M = (Q, Σ, δ, q 0, F ) sen tunnistv äärellinen utomtti. Iden on muodost kielioppi G M jok tuott smt merkkijonot jotk M tunnist. Silloinhn L(G M ) = L(M) = L kuten hlutn. Siten kieliopin G M päätekkostoksi on vlittv utomtin M syötekkosto eli Σ. 94
97 Luodn kielioppiin G M om välike A q jokiselle utomtin M tillle q Q. Muit välikkeitä ei kielioppiin G M tule. Kieliopin L G lähtösymoliksi tulee A q0 eli utomtin M lkutil q 0 vstv välike. Kieliopin G M säännöt suunnitelln oikelle linerisiksi j siten, että siinä on lusejohdos ua p täsmälleen silloin kun utomtiss M päästään lkutilst q 0 tiln p lukemll syötemerkkijono u Σ. Ti toisin merkiten, kieliopin G M lusejohdokset ovt muoto ua δ (p 0,u). Tämä svutetn siten, että jokinen utomtin M siirtymä p c q tuott kielioppiin G M säännön A p ca q. Silloinhn ua p G M uca q kuten hlusimmekin. Automtin M pysähtyminen esitetään siten, että lusejohdoksen oikess lidss olev ino välike kto; silloinhn merkkijono u on sellinen jonk M hyväksyy, joten sen pidentäminen lisämerkeillä c voidn lopett. Siis siten, että kielioppiin G M lisätään sääntö A q ε jokiselle utomtin M hyväksyvälle tillle q F. Kielioppi G M on nyt vlmis. Esimerkki 38. Kuvss on yksinkertinen äärellinen utomtti, jok hyväksyy kielen L = {w {, } : wsisältää vähintään yhden merkin }., 1 2 Automtti vstv kielioppi on: A 1 A 1 A 2 A 2 ε A 2 A Linerist kielioppi vstv äärellinen utomtti Luse 10. Jokinen oikelle linerisell kieliopill tuotettv kieli on säännöllinen. Todistus: Tehdään edellisen luseen 9 todistuksen konstruktio toiseen suuntn. Olkoon siis G = (V, Σ, P, S) oikelle linerinen kielioppi. Muodostetn kielen L(G) tunnistv epädeterministinen äärellinen utomtti M G = (Q, Σ, δ, q S, F ) seurvsti: Tilt vstvt kieliopin välikkeitä: Q = {q A : A V \ Σ} 95
98 Alkutil on lähtösymoli S vstv til q S. Syötekkosto on päätekkosto Σ. Siirtymäfunktio δ jäljittelee produktioit siten, että produktiost A B tulee siirtymä q A q B (eli q B δ(q A, )). Lopputiloj ovt ne tilt, joit vstviin välikkeisiin liittyy ε-produktio: F = {q A Q: A ε P } Yhteenveton lineristen kielioppien j äärellisten utomttien vstvuuksist: Äärellinen utomtti til q lähtötil q 0 Linerinen kielioppi välikesymoli A q lähtösymoli A q0 siirtymä q q sääntö A q A q hyväksyvä til q F sääntö A q ε Esimerkki 39. Olkoon d lyhenne lukumerkille {0, 1,..., 9}. Trkstelln seurv oikelle linerist kielioppi: S +A A db A db B db ε Automttiin tulee kolme til: q S, q A j q B. Lähtösymoli S vst lkutil q S j säännöstä B ε tiedämme, että q B on (ino) lopputil. Muit sääntöjä vstvt tilsiirtymät q S + q A q S q A q S d q B q A d q B q B d q B Sdn kuvn 18 tuttu utomtti, jok tunnist etumerkilliset kokonisluvut. Huom: Kielioppi voi usein oll luontevmpi luke kuin äärellistä utomtti ti säännöllistä lusekett. Tässäkin välike B voidn luke 0 ti usempi numeromerkkejä jne. Tehtävä 38. Piirrä seurvi kielioppej vstvt äärelliset utomtit: 1. Luseke:, kielioppi: S S ε. 2. Luseke: + =, kielioppi: S S. 3. Luseke: ( ), kielioppi: S A B A S A B B ε 4. Luseke: (), kielioppi: S S ε. 96
99 d +, d q S q A q B d Kuv 18: Kokonislukuutomtti niiden kieliopist. 5. Luseke: ( ), kielioppi: S BBBS ε B B ε 6. Luseke: ( )( ), kielioppi: S DN N DN ε D Muit sovelluksi ovt esimerkiksi pseudotiedettä suoltv puppugenerttori http: //pdos.csil.mit.edu/scigen/ sekä ksvikieliopit (nimeltään L- eli Lindenmyer-systeemit): 97
Laskennan perusmallit (LAP)
Lskennn perusmllit (LAP) Pekk Kilpeläinen Tietojenkäsittelytieteen litos, Itä-Suomen yliopisto sähköposti: pekk.t.kilpelinen@uef.fi Lukuvuoden 2012 13 III periodi Versiohistori: vuodet luennoij 2012 2013
Laskennan perusmallit (LAP)
Lskennn perusmllit (LAP) Kimmo Fredrikssonin j Mtti Nykäsen luentomonisteest krsien muoknnut Pekk Kilpeläinen Tietojenkäsittelytieteen litos, Itä-Suomen yliopisto sähköposti: pekk.t.kilpelinen@uef.fi Lukuvuoden
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2 Tietojenkäsittelyteori Kevät 2 Kierros,. 5. helmikuut Demonstrtiotehtävien rtkisut D: Sievennä seurvi säännöllisiä lusekkeit (so. konstruoi yksinkertisemmt lusekkeet smojen kielten kuvmiseen): ()
T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 5 Demonstraatiotehtävien ratkaisut. ja kaikki a Σ ovat säännöllisiä lausekkeita.
T-79.8 Syksy 22 Tietojenkäsittelyteorin perusteet Hrjoitus 5 Demonstrtiotehtävien rtkisut Säännölliset lusekkeet määritellään induktiivisesti: j kikki Σ ovt säännöllisiä lusekkeit. Mikäli α j β ovt säännöllisiä
Arvostelu OHJ Johdatus tietojenkäsittelyteoriaan syksy op. Viikkoharjoitukset. Materiaali. Kurssista voi selvitä parhaalla mahdollisella
OHJ-300 Johtus tietojenkäsittelyteorin syksy 006 6 op Luennot: prof Tpio Elom j DI Jussi Kujl m, to 6 T B 8 8 3 - työmtkt 6 9 j 6 309 - perioituko 9 3 0 Viikkohrjoitukset 59 Teknyo Timo Aho ti 0 sli T
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteori Kevät 2016 Kierros 2, 18. 22. tmmikuut Demonstrtiotehtävien rtkisut D1: Formuloi luennoll (monisteen s. 17) esitetty yksinkertinen khviutomtti täsmällisesti äärellisen
2.6 SÄÄNNÖLLISET LAUSEKKEET Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:
2.6 SÄÄNNÖLLISET LAUSEKKEET Automttimlleist poikkev tp kuvt yksinkertisi kieliä. Olkoot A j B kkoston Σ kieliä. Perusopertioit: Yhdiste: A B = {x Σ x A ti x B}; Ktentio: AB = {xy Σ x A, y B}; Potenssit:
Olkoon. M = (Q, Σ, δ, q 0, F)
T 79.148 Tietojenkäsittelyteorin perusteet 2.4 Äärellisten utomttien minimointi Voidn osoitt, että jokisell äärellisellä utomtill on yksikäsitteinen ekvivlentti (so. smn kielen tunnistv) tilmäärältään
Automaatin tunnistama kieli on sen hyväksymien merkkijonojen joukko. Täsmällinen muotoilu: δ,q 0,{q 2,q 3,q 6 }), missä
T 79.1001/1002 Tietojenkäsittelyteorin perusteet 2.3 Äärellisen utomtin käsitteen formlisointi eknistinen mlli: syötenuh: nuhpää: ohjusyksikkö: i n p δ u q 1 q 2 Äärellinen utomtti koostuu äärellistilisest
ICS-C2000 Tietojenkäsittelyteoria Kevät 2015
ICS-C2 Tietojenkäsittelyteori Kevät 25 Kierros 3, 26. 3. tmmikuut Demonstrtiotehtävien rtkisut D: Ldi epädeterministinen äärellinen utomtti, jok test onko nnetun inäärijonon kolmnneksi viimeinen merkki,
Säännöllisten operaattoreiden täydentäviä muistiinpanoja
Säännöllisten operttoreiden täydentäviä muistiinpnoj Antti-Juhni Kijnho 1. huhtikuut 2011 Vnht määritelmät Määritelmä 1. Äärellinen epätyhjä joukko on merkistö, j sen lkioit kutsutn merkeiksi. Määritelmä
Laskennan mallit (syksy 2010) 1. kurssikoe, ratkaisuja
582206 Lskennn mllit (syksy 2010) 1. kurssikoe, rtkisuj 1. [2+2+2 pistettä] Säännöllisissä lusekkeiss on käytetty tuttu lyhennysmerkintää Σ = ( ). () merkkijonot, joiden kksi ensimmäistä merkkiä ovt joko
Olkoon. äärellinen automaatti. Laajennetaan M:n siirtymäfunktio yksittäisistä syötemerkeistä merkkijonoihin: jos q Q, x Σ, merkitään
T 79.00/002 Tietojenkäsittelyteorin perusteet 2. Äärellisten utomttien minimointi Voidn osoitt, että jokisell äärellisellä utomtill on yksikäsitteinen ekvivlentti (so. smn kielen tunnistv) tilmäärältään
Automaattimalleista poikkeava tapa kuvata yksinkertaisia kieliä. Olkoot A ja B aakkoston Σ kieliä. Perusoperaatioita:
2.6 SÄÄNNÖLLISET LAUSEKKEET Automttimlleist poikkev tp kuvt yksinkertisi kieliä. Olkoot A j B kkoston Σ kieliä. Perusopertioit: Yhdiste: A B = {x Σ x A ti x B}; Ktentio: AB = {xy Σ x A, y B}; Potenssit:
Q on automaatin tilojen äärellinen joukko; Σ on automaatin syöteaakkosto; δ : Q Σ Q on automaatin siirtymäfunktio; q 0 Q on automaatin alkutila;
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
Laskennan perusmallit (LAP)
Lskennn perusmllit (LAP) Kimmo Fredrikssonin j Mtti Nykäsen mterileist muoknnut Pekk Kilpeläinen Tietojenkäsittelytieteen litos, Itä-Suomen yliopisto sähköposti: pekk.t.kilpelinen@uef.fi Lukuvuoden 2014
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 22. syyskuuta 2016
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
Laskennan mallit Erilliskoe , ratkaisuja (Jyrki Kivinen)
58226 Lskennn mllit Erilliskoe 4.2.2, rtkisuj (Jyrki Kivinen). [6+6+3+3 pistettä] () Kieli A koostuu niistä kkoston {, } merkkijonoist, joiss esiintyy osjono. Esitä kielelle A sekä deterministinen äärellinen
Laskennan perusmallit 2013: Kertausta
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
Q = {q 1, q 2, q 3, q 4 } Σ = {a, b} F = {q 4 },
T-79.48 Syksy 22 Tietojenkäsittelyteorin perusteet Hrjoitus 4 Demonstrtiotehtävien rtkisut 4. Tehtävä: Ldi epädeterministinen äärellinen utomtti, jok test onko nnetun inäärijonon kolmnneksi viimeinen merkki,
2.2 Automaattien minimointi
24 2.2 Automttien minimointi Kksi utomtti, jotk tunnistvt täsmälleen smn kielen ovt keskenään ekvivlenttej Äärellinen utomtti on minimlinen jos se on tilmäärältään pienin ekvivlenttien utomttien joukoss
3.3 KIELIOPPIEN JÄSENNYSONGELMA Ratkaistava tehtävä: Annettu yhteydetön kielioppi G ja merkkijono x. Onko
3.3 KILIOPPIN JÄSNNYSONGLMA Rtkistv tehtävä: Annettu yhteydetön kielioppi G j merkkijono x. Onko x L(G)? Rtkisumenetelmä = jäsennyslgoritmi. Useit vihtoehtoisi menetelmiä, erityisesti kun G on jotin rjoitettu
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteori Kevät 2016 Kierros 5, 8. 12. helmikuut Demonstrtiotehtävien rtkisut D1: Hhmolusekkeet ovt esimerkiksi UN*X-järjestelmien tekstityökluiss käytetty säännöllisten lusekkeiden
Riemannin integraalista
Lebesguen integrliin sl. 2007 Ari Lehtonen Riemnnin integrlist Johdnto Tämän luentomonisteen trkoituksen on tutustutt lukij Lebesgue n integrliin j sen perusominisuuksiin mhdollisimmn yksinkertisess tpuksess:
Laskennan mallit (syksy 2007) Harjoitus 5, ratkaisuja
58226 Lskennn mllit (syksy 27) Hrjoitus 5, rtkisuj. Muodostetn NF kielelle : ε ε Muunnetn DF:ksi: {,,} {,} {,} {,} Luennoll (s. 5) stiin kielelle seurv DF: Poistmll tästä svuttmttomt tilt sdn Tulos on
6.2 Algoritmin määritelmä
6.2 Algoritmin määritelmä Mitä lgoritmill yleensä trkoitetn? Peritteess: Yksiselitteisesti kuvttu jono (tietojenkäsittely)opertioit, jotk voidn toteutt meknisesti. Käytännössä: luonnollist kieltä, pseudokoodi
Kuvausta f sanotaan tällöin isomorfismiksi.
Määritelmä..12. Oletetn, että 1 =(V 1,E 1 ) j 2 =(V 2,E 2 ) ovt yksinkertisi verkkoj. Verkot 1 j 2 ovt isomorfiset, jos seurvt ehdot toteutuvt: (1) on olemss bijektio f : V 1 V 2 (2) kikill, b V 1 pätee,
Kertausta: kielet ja automaatit. ICS-C2000 Tietojenkäsittelyteoria. Alue ja aiheet. Äärelliset automaatit
Kertust: kielet j utomtit Lskennllisen ongelmn rtkisevi tietokoneohjelmi j -litteit voidn trkstell utomttein ICS-C2 Tietojenkäsittelyteori Luento 2: Äärelliset utomtit Alto-yliopisto Perustieteiden korkekoulu
Matematiikan tukikurssi
Mtemtiikn tukikurssi Kurssikert 4 Tilvuuden j vipn ln lskeminen Kuten iemmin käsittelimme, määrätyn integrlin vull voi lske pintloj j tilvuuksi. Tyypillisenä sovelluksen tilvuuden lskemisest on tpus, joss
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C Tietojenkäsittelyteori Kevät 6 Kierros 8, 7.. mliskuut Demonstrtiotehtävien rtkisut D: Määrittele Turingin koneen stndrdimllin muunnelm, joss koneen työnuh on molempiin suuntiin ääretön, j osoit
2.5 Säännöllisten kielten rajoituksista
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
M = (Q, Σ, Γ, δ, q 0, q acc, q rej )
6. LASKETTAVUUSTEORIAA Churchin Turingin teesi: Mielivaltainen (riittävän vahva) laskulaite Turingin kone. Laskettavuusteoria: Tarkastellaan mitä Turingin koneilla voi ja erityisesti mitä ei voi laskea.
II.1. Suppeneminen., kun x > 0. Tavallinen lasku
II. EPÄOLEELLISET INTEGRAALIT nt II.. Suppeneminen Esim. Olkoon f() =, kun >. Tvllinen lsku = / =. Kuitenkn tätä integrli ei ole ikisemmss mielessä määritelty, kosk f ei ole rjoitettu välillä [, ] (eikä
TAMPEREEN YLIOPISTO Valinnaisten opintojen syventäviin opintoihin kuuluva tutkielma. Lauri Kumpulainen. Büchin automaateista
TAMPEREEN YLIOPISTO Vlinnisten opintojen syventäviin opintoihin kuuluv tutkielm Luri Kumpulinen Büchin utomteist Luonnontieteiden tiedekunt Tietojenkäsittelytieteiden tutkinto-ohjelm Huhtikuu 2017 Tmpereen
Mutta esimerkiksi 0-kertaisesti pumpattaessa: Siten L ei voi olla säännöllinen.
2.8 Säännöllisten kielten rjoituksist Krdinliteettisyistä on oltv olemss (pljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituv määrä, säännöllisiä lusekkeit vin numeroituvsti. Voidnko löytää konkreettinen,
Yhteydettömän kieliopin jäsennysongelma
Yhteydettömän kieliopin jäsennysongelma Yhteydettömän kieliopin jäsennysongelmalla tarkoitetaan laskentaongelmaa Annettu: yhteydetön kielioppi G, merkkijono w Kysymys: päteekö w L(G). Ongelma voidaan periaatteessa
Kieli, merkitys ja logiikka, kevät 2011 HY, Kognitiotiede. Vastaukset 2.
Kieli, merkitys j logiikk, kevät 2011 HY, Kognitiotiede stukset 2. ** Kikiss utomteiss lkutil on. 1.. nn äärelliset utomtit luseille (1-c), jokiselle omns. (1).. c. q3 q4 q3 q4 q5 q6. Muodost äärellinen
Reaalinen lukualue. Millainen on luku, jossa on päättymätön ja jaksoton desimaalikehitelmä?
Relinen lukulue POLYNOMIFUNKTIOT JA -YHTÄLÖT, MAA Millinen on luku, joss on päättymätön j jksoton desimlikehitelmä? Onko sellisi? Trkstelln Pythgorn luseest stv yksikköneliön lävistäjää, luku + = x x =.
Käydään läpi: ääriarvo tarkastelua, L Hospital, integraalia ja sarjoja.
DI mtemtiikn opettjksi: Täydennyskurssi, kevät Luentorunko j hrjoituksi viikolle : ti 9.. klo :-5:, to.. klo 9:5-: j klo 4:5-6: Käydään läpi: äärirvo trkstelu, L Hospitl, integrli j srjoj.. Kerrtn äärirvojen
Kognitiivinen mallintaminen I, kevät Harjoitus 1. Joukko-oppia. MMIL, luvut 1-3 Ratkaisuehdotuksia, MP
Kognitiivinen mllintminen I, kevät 007 Hrjoitus. Joukko-oppi. MMIL, luvut -3 Rtkisuehdotuksi, MP. Määritellään joukot: A = {,,, 3, 4, 5} E = {, {}, } B = {, 4} F = C = {, } G = {{, }, {,, 4}} D = {, }
TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 29. toukokuuta 2013
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 29. toukokuuta 2013 Sisällys Chomskyn hierarkia (ja muutakin) kieli LL(k) LR(1) kontekstiton kontekstinen rekursiivisesti
Riemannin integraali
LUKU 5 iemnnin integrli Tässä luvuss funktion f iemnnin integrli merkitään - b f = - b f() d. Vstvsti funktion f Lebesgue in integrli merkitään f = f() dm(). [,b] [,b] Luse 5.1. Olkoon f : [, b] rjoitettu
Matematiikan tukikurssi
Mtemtiikn tukikurssi Kurssikert 5 1 Jtkuvuus Trkstelln funktiot fx) josskin tietyssä pisteessä x 0. Tämä funktio on tässä pisteessä joko jtkuv ti epäjtkuv. Jtkuvuuden ymmärtää prhiten trkstelemll epäjtkuv
Pythagoraan lause. Pythagoras Samoslainen. Pythagoraan lause
Pythgorn luse Pythgors Smoslinen Pythgors on legendrinen kreikklinen mtemtiikko j filosofi. Tiedot hänen elämästään ovt epävrmoj j ristiriitisi. Tärkein Pythgorst j pythgorlisi koskev lähde on Lmlihosin
Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista
Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista Antti-Juhani Kaijanaho 15. maaliskuuta 2012 1 Apumääritelmä Määritelmä 1. Olkoon Σ merkistö, jolla on olemassa täydellinen järjestys ( ) Σ 2.
Ristitulo ja skalaarikolmitulo
Ristitulo j sklrikolmitulo Opetussuunnitelmn 00 mukinen kurssi Vektorit (MAA) sisältää vektoreiden lskutoimituksist keskeisenä ineksen yhteenlskun, vähennyslskun, vektorin kertomisen luvull j vektoreiden
Laskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2003 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa esitiedot käytännössä
Määritelmä Olkoon C R m yksinkertainen kaari ja γ : [a, b] R m sen yksinkertainen parametriesitys, joka on paloittain C 1 -polku.
Muodostetn vektorikentän kri-integrli yksinkertisen kren tpuksess. Plutetn mieleen, että joukko C R m on yksinkertinen kri, jos löytyy sellinen jtkuv bijektio γ : [, b] C, jok on ploittin C 1 -funktio
Chomskyn hierarkia ja yhteysherkät kieliopit
Chomskyn hierarkia ja yhteysherkät kieliopit Laskennan teorian opintopiiri Tuomas Hakoniemi 21. helmikuuta 2014 Käsittelen tässä laskennan teorian opintopiirin harjoitustyössäni muodollisten kielioppien
Esimerkki 8.1 Määritellään operaattori A = x + d/dx. Laske Af, kun f = asin(bx). Tässä a ja b ovat vakioita.
8. Operttorit, mtriisit j ryhmäteori Mtemttinen operttori määrittelee opertion, jonk mukn sille nnettu funktiot muoktn. Operttorit ovt erityisen tärkeitä kvnttimekniikss, kosk siinä jokist suurett vst
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali
MS-A1{3,4} (ELEC*) Differentili- j integrlilskent 1 Luento 8: Integrlifunktio j epäoleellinen integrli Pekk Alestlo, Jrmo Mlinen Alto-yliopisto, Mtemtiikn j systeeminlyysin litos 5.1.216 Pekk Alestlo,
Pysähtymisongelman ratkeavuus [Sipser luku 4.2]
Pysähtymisongelman ratkeavuus [Sipser luku 4.2] Osoitamme nyt vihdoin, että jotkin Turing-tunnistettavat kielet ovat ratkeamattomia ja jotkin kielet eivät ole edes Turing-tunnistettavia. Lisäksi toteamme,
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 TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Laskenta datan käsittely annettuja sääntöjä täsmällisesti seuraamalla kahden kokonaisluvun kertolasku tietokoneella, tai kynällä ja paperilla: selvästi laskentaa entä
3 Mallipohjainen testaus ja samoilutestaus
Tietojenkäsittelytiede 24 Joulukuu 2005 sivut 8 21 Toimittj: Jorm Trhio c kirjoittj(t) Historiljennus mllipohjisess testuksess Timo Kellomäki Tmpereen teknillinen yliopisto Ohjelmistotekniikn litos 1 Johdnto
5.3 Ratkeavia ongelmia
153 5.3 Ratkeavia ongelmia Deterministisen äärellisten automaattien (DFA) hyväksymisongelma: hyväksyykö annettu automaatti B merkkijonon w? Ongelmaa vastaava formaali kieli on A DFA = { B, w B on DFA,
OSA 1: POLYNOMILASKENNAN KERTAUSTA, BINOMIN LASKUSÄÄNTÖJÄ JA YHTÄLÖNRATKAISUA
OSA 1: POLYNOMILASKENNAN KERTAUSTA, BINOMIN LASKUSÄÄNTÖJÄ JA YHTÄLÖNRATKAISUA Tekijät: Ari Heimonen, Hellevi Kupil, Ktj Leinonen, Tuomo Tll, Hnn Tuhknen, Pekk Vrniemi Alkupl Tiedekeskus Tietomn torninvrtij
Matematiikan johdantokurssi, syksy 2017 Harjoitus 6, ratkaisuista. 1. Onko jokin demojen 5 tehtävän 3 relaatioista
Mtemtiikn johntokurssi, syksy 07 Hrjoitus 6, rtkisuist. Onko jokin emojen 5 tehtävän reltioist ) R := {(, ), (, ), (, ), (, ), (, ), (, ), (, ), (, )}, ) S := {(, ), (, ), (, ), (, ), (, ), (, ), (, ),
TEHTÄVÄ 1. Olkoon (f n ) jono jatkuvia funktioita f n : [a, b] R, joka suppenee välillä [a, b] tasaisesti kohti funktiota f : [a, b] R.
Topologi I Hrjoitus 10, rtkisuj AP TEHTÄVÄ 1. Olkoon (f n ) jono jtkuvi funktioit f n : [, b] R, jok suppenee välillä [, b] tsisesti kohti funktiot f : [, b] R. Osoit, että tällöin f n (x) dx f(x) dx.
MS-A010{2,3,4,5} (SCI, ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 8: Integraalifunktio ja epäoleellinen integraali
MS-A1{2,3,4,5} (SC, ELEC*, ENG*) Differentili- j integrlilskent 1 Luento 8: ntegrlifunktio j epäoleellinen integrli Pekk Alestlo, Jrmo Mlinen Alto-yliopisto, Mtemtiikn j systeeminlyysin litos November
Syksyn 2015 Pitkän matematiikan YO-kokeen TI-Nspire CAS -ratkaisut
Sksn 0 Pitkän mtemtiikn YO-kokeen TI-Nspire CAS -rtkisut Tekijät: Olli Krkkulinen Rtkisut on ldittu TI-Nspire CAS -tietokoneohjelmll kättäen Muistiinpnot -sovellust. Kvt j lskut on kirjoitettu Mth -ruutuihin.
Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. kesäkuuta 2013 Sisällys Chomskyn hierarkia (ja vähän muutakin) kieli säännöllinen LL(k) LR(1) kontekstiton kontekstinen
(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3
T-79.48 Tietojenkäsittelyteorian perusteet Tentti 25..23 mallivastaukset. Tehtävä: Kuvaa seuraavat kielet sekä säännölisten lausekkeiden että determinististen äärellisten automaattien avulla: (a) L = {w
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015
ja ja TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho NFA:ksi TIETOTEKNIIKAN LAITOS 16. marraskuuta 2015 Sisällys ja NFA:ksi NFA:ksi Kohti säännöllisiä lausekkeita ja Nämä tiedetään:
3 Integraali ja derivaatta
3 Integrli j erivtt 3.1 Integrli ylärjns funktion Olkoon funktio f Riemnn-integroituv välin I jokisell suljetull osvälillä j välin I jokin kiinteä luku. Tällöin integrli määrittelee funktion G(): I R,
SARJAT JA DIFFERENTIAALIYHTÄLÖT Funktiojonot 1
SARJAT JA DIFFERENTIAALIYHTÄLÖT 2003 JOUNI PARKKONEN Sisältö 0. Tästä tekstistä. Funktiojonot 0. Tästä tekstistä Tämä moniste on trkoitettu käytettäväksi kurssin Srjt j differentiliyhtälöt luentomterilin.
10. MÄÄRÄTYN INTEGRAALIN KÄYTTÖ ERÄIDEN PINTA-ALOJEN LASKEMISESSA
MAA0 0. Määrätyn integrlin käyttö eräiden pint-lojen lskemisess 0. MÄÄRÄTYN INTEGRAALIN KÄYTTÖ ERÄIDEN PINTA-ALOJEN LASKEMISESSA Edellä on todettu, että f (x)dx nt x-kselin j suorien x =, x = sekä funktion
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 TIETOTEKNIIKAN LAITOS 31. maaliskuuta 2011 Sisällys Sisällys Chomskyn hierarkia kieli säännöllinen kontekstiton kontekstinen rekursiivisesti
Neliömatriisin A determinantti on luku, jota merkitään det(a) tai A. Se lasketaan seuraavasti: determinantti on
4. DETERINANTTI JA KÄÄNTEISATRIISI 6 4. Neliömtriisi determitti Neliömtriisi A determitti o luku, jot merkitää det(a) ti A. Se lsket seurvsti: -mtriisi A determitti o det(a) () -mtriisi A determitti void
MS-A010{3,4} (ELEC*) Differentiaali- ja integraalilaskenta 1 Luento 7: Integraali ja analyysin peruslause
MS-A010{3,4} (ELEC*) Differentili- j integrlilskent 1 Luento 7: Integrli j nlyysin perusluse Pekk Alestlo, Jrmo Mlinen Alto-yliopisto, Mtemtiikn j systeeminlyysin litos 3.10.2016 Pekk Alestlo, Jrmo Mlinen
2.4 Pienimmän neliösumman menetelmä
2.4 Pienimmän neliösummn menetelmä Optimointimenetelmiä trvitn usein kokeellisen dtn nlysoinniss. Mittuksiin liittyy virhettä, joten mittus on toistettv useit kertoj. Oletetn, että mittn suurett c j toistetn
Kertymäfunktio. Kertymäfunktio. Kertymäfunktio: Mitä opimme? 2/2. Kertymäfunktio: Mitä opimme? 1/2. Kertymäfunktio: Esitiedot
TKK (c) Ilkk Mellin (24) 1 Johdtus todennäköisyyslskentn TKK (c) Ilkk Mellin (24) 2 : Mitä opimme? 1/2 Jos stunnisilmiötä hlutn mllint mtemttisesti, on ilmiön tulosvihtoehdot kuvttv numeerisess muodoss.
Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria)
1.6 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite
Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }
135 4.3 Algoritmeista Churchin ja Turingin formuloinnit laskennalle syntyivät Hilbertin vuonna 1900 esittämän kymmenennen ongelman seurauksena Oleellisesti Hilbert pyysi algoritmia polynomin kokonaislukujuuren
Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. kesäkuuta 2013 Sisällys Aikataulumuutos Tämänpäiväinen demotilaisuus on siirretty maanantaille klo 14:15 (Ag Delta).
Rajoittamattomat kieliopit (Unrestricted Grammars)
Rajoittamattomat kieliopit (Unrestricted Grammars) Laura Pesola Laskennanteorian opintopiiri 13.2.2013 Formaalit kieliopit Sisältävät aina Säännöt (esim. A -> B C abc) Muuttujat (A, B, C, S) Aloitussymboli
5 Epäoleellinen integraali
5 Epäoleellinen integrli 5. Integrlin suppeneminen Olkoon f sellinen välillä [, b[ (ei siis välttämättä pisteessä b) määritelty funktio, että f on Riemnn-integroituv välillä [, ] kikill ], b[ eli on olemss
vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 13. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 13.10.2016 klo 9:42 passed waiting redo submitters
MS-A010{2,3,4,5} (SCI,ELEC*, ENG*) Differentiaali- ja integraalilaskenta 1 Luento 7: Integraali ja analyysin peruslause
MS-A010{2,3,4,5} (SCI,ELEC*, ENG*) Differentili- j integrlilskent 1 Luento 7: Integrli j nlyysin perusluse Pekk Alestlo, Jrmo Mlinen Alto-yliopisto, Mtemtiikn j systeeminlyysin litos November 20, 2017
Automaatit. Muodolliset kielet
Automaatit Automaatit ovat teoreettisia koneita, jotka käsittelevät muodollisia sanoja. Automaatti lukee muodollisen sanan kirjain kerrallaan, vasemmalta oikealle, ja joko hyväksyy tai hylkää sanan. Täten
7 Funktiosarjoista. 7.1 Funktiosarjojen suppeneminen
7 Funktiosrjoist 7. Funktiosrjojen suppeneminen Seurvksi trkstelln srjoj, joiden termit ovt (lukujen sijst) jollkin välillä I määriteltyjä funktioit. Täsmällisemmin funktiosrjll (ti lyhyemmin srjll) trkoitetn
Rekursiiviset palautukset [HMU 9.3.1]
Rekursiiviset palautukset [HMU 9.3.1] Yleisesti sanomme, että ongelma P voidaan palauttaa ongelmaan Q, jos mistä tahansa ongelmalle Q annetusta ratkaisualgoritmista voidaan jotenkin muodostaa ongelmalle
Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.
Lause: Tyhjyysongelma ei ole osittain ratkeava; ts. kieli ei ole rekursiivisesti lueteltava. L e = { w { 0, 1 } L(M w ) = } Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia,
T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (Predikaattilogiikka )
T-79.3001 Kevät 2009 Logiikk tietotekniikss: perusteet Lskuhrjoitus 7 (Predikttilogiikk 9.1 10.2) 19.3. 23.3. 2009 Rtkisuj demotehtäviin Tehtävä 9.1 Rtkisuss on käytetty usen otteeseen rjoitettuj universli-
Laskennan teoria
581336-0 Laskennan teoria luennot syyslukukaudella 2004 Jyrki Kivinen tietojenkäsittelytieteen laudatur-kurssi, 3 ov pakollinen tietojenkäsittelytieteen suuntautumisvaihtoehdossa, opettajan suuntautumisvaihtoehdossa
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 206 Kierros 0, 2. 24. maaliskuuta Huom! Perjantaina 25. maaliskuuta ei ole laskareita (pitkäperjantai), käykää vapaasti valitsemassanne ryhmässä aiemmin viikolla.
Numeeriset menetelmät TIEA381. Luento 9. Kirsi Valjus. Jyväskylän yliopisto. Luento 9 () Numeeriset menetelmät / 29
Numeeriset menetelmät TIEA381 Luento 9 Kirsi Vljus Jyväskylän yliopisto Luento 9 () Numeeriset menetelmät 17.4.2013 1 / 29 Luennon 9 sisältö Numeerisest integroinnist Newtonin j Cotesin kvt Luento 9 ()
on rekursiivisesti numeroituva, mutta ei rekursiivinen.
6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli H = { M pysähtyy syötteellä w} on rekursiivisesti numeroituva, mutta ei rekursiivinen. Todistus. Todetaan ensin, että kieli H on rekursiivisesti
2.1 Vaillinaiset yhtälöt
.1 Villiniset yhtälöt Yhtälö, jok sievenee muotoon x + bx + c = 0 (*) on yleistä normlimuoto olev toisen steen yhtälö. Tämän rtkiseminen ei olekn enää yhtä meknist kuin normlimuotoisen ensisteen yhtälön
Sarjaratkaisun etsiminen Maplella
Srjrtkisun etsiminen Mplell Olkoon trksteltvn ensimmäisen kertluvun differentiliyhtälö: > diffyht:= diff(y(x, x=1y(x^; d diffyht := = dx y( x 1 y( x Tälle pyritään etsimään srjrtkisu origokeskisenä potenssisrjn.
Digitaalinen videonkäsittely Harjoitus 5, vastaukset tehtäviin 25-30
Digitlinen videonkäsittely Hrjoitus 5, vstukset tehtäviin 5-30 Tehtävä 5. ) D DCT sdn tekemällä ensin D DCT kullekin riville, j toistmll D DCT tuloksen sdun kuvn srkkeill. -D N-pisteen DCT:, k 0 N ( k),
sin θ θ θ r 2 sin 2 θ φ 2 = 0.
Mtemtiikn j tilstotieteen litos Osittisdifferentiliyhtälöt Kevät 21 Hrjoitus 9 Rtkisuj Jussi Mrtin 1. Osoit, että Lplce-yhtälö pllokoordinteiss on 2 u 1 r 2 2 u r r 1 r 2 sin θ u 1 2 u sin θ θ θ r 2 sin
Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä
Rekursiolause Laskennan teorian opintopiiri Sebastian Björkqvist 23. helmikuuta 2014 Tiivistelmä Työssä käydään läpi itsereplikoituvien ohjelmien toimintaa sekä esitetään ja todistetaan rekursiolause,
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. lokakuuta 2016
ja ja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. lokakuuta 2016 Sisällys ja ja Vuosi on 1936, eikä tietokoneita ollut. Computer oli ammattinimike. http://www.nasa.gov/centers/dryden/
Havaitaan: muuttujan NykyisetTilat arvot kuuluvat potenssijoukkoon P(Q).
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,
Output. Input Automaton
16 Aakkostot, merkkijonot ja kielet Automaattiteoria diskreetin signaalinkäsittelyn perusmallit ja -menetelmät ( diskreettien I/O-kuvausten yleinen teoria) 1011 Input Automaton Output Automaatin käsite
Täydentäviä muistiinpanoja laskennan rajoista
Täydentäviä muistiinpanoja laskennan rajoista Antti-Juhani Kaijanaho 10. joulukuuta 2015 1 Diagonaalikieli Diagonaalikieli on D = { k {0, 1} k L(M k ) }. Lause 1. Päätösongelma Onko k {0, 1} sellaisen
2. Laskettavuusteoriaa
2. Laskettavuusteoriaa Käymme läpi ratkeamattomuuteen liittyviä ja perustuloksia ja -tekniikoita [HMU luku 9]. Tämän luvun jälkeen opiskelija tuntee joukon keskeisiä ratkeamattomuustuloksia osaa esittää
Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin
Yhteydettömien kielioppien ja pinoautomaattien yhteys [Sipser s. 117 124] Todistamme, että yhteydettömien kielioppien tuottamat kielet ovat tasan samat kuin ne, jotka voidaan tunnistaa pinoautomaatilla.
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. tammikuuta 2012 Sisällys Sisällys Muistathan A B -konstruktion 0 k 1 i 2 s 3 s 4 a 5 0 k 1 o 2 i 3 r 4