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 C3 Koe to 30 mrrskuut 006 Arvostelu: 30 + 8 = 38 Arvostelu Kurssist voi selvitä prhll mhollisell rvosnll pelkällä tentillä, mutt tentti (mx 30 p) ei ole ivn helppo siksi knntt osllistu viikottisiin lskuhrjoituksiin, joist s lisäpisteitä (mx 8 p) j joien tehtäviä itsenäisesti rtkomll oppii kurssin näennäisesti vikeit sioit Arvosn määräytyy oletettvsti seurvsti: pisteet 5 8 7 rvosn 3 5 3 Viikkohrjoitukset Viikkohrjoituksiin osllistuminen on erittäin suositeltv Vlmiuest esittää tulull vstus kysymykseen s kustkin merkinnän Kusskin hrjoituksiss on n 6 tehtävää kikkin merkintöjä voi kerätä n 6 0 = 60 kpplett Merkintöjä Lisäpisteet 0% (n ) 30% (n 8) 0% (n ) 3 80% (n 8) 7 90% (n 5) 8 Mterili Tällä toteutuskerrll oppikirj on Michel Sipser: Introuction to the Theory of Computtion, Secon E (Interntionl E), Thomson, 006 Melkein mikä thns iheen oppikirj ktt kurssill käsitellyt sit Vlmist monistett ei ole, luentoklvot pnnn verkkoon luentojen thtiin wwwcstutfi/kurssit/ohj-300/ / elom/opetus/ohj-300/ Tentti perustuu luentoihin (ei siis yksinomn klvoihin)
Luentoiktulu Johnto () Kertust: utomtit, kieliopit j kielet ( 3) Säännölliset kielet Kontekstittomt kielet 3 Lskettvuusteori ( 7) Lskennn mllej Rtkevuus Plutukset Eistyneitä iheit Lskennn vtivuusteori (8 ) Aikvtivuus Tilvtivuus Käytännöllinen rtkevuus Eistyneitä iheit 5 Lskennlliset ongelmt Lskennllinen ongelm voin mllint tietokoneell rtkistvksi; esim ritmetiikk, kkostminen, plknlskent, kurssikirjnpito, Ongelmn rtkisev ohjelm yleisempi esitys usein ymmärrettävämpi j mhollist esim nlysoinnin Ongelmll on tpuksi (= syötteitä), rtkisu on lgoritmi, jok liittää kuhunkin tpukseen vstuksen (= tulosteen) Tpus j sen vstus ovt äärellisesti (esim ittijonoin) esitettäviä Tpuksi voi oll ääretön määrä Lskennllinen ongelm on kuvus äärellisesti esitettävien tpusten joukost äärellisesti esitettävien vstusten joukkoon 7 Johnto Tällä kurssill nnetn johtus tietojenkäsittelyn mtemttis-teoreettiseen perustn Tietojenkäsittelijöien yleissivistykseen kuuluv tieto Tvoitteen on s perusymmärtämys siitä minkä tyyppisiä ongelmi tietokoneell voi peritteess rtkist Vielä tärkeämpää on hvit mille rtkevist ongelmist voi ohjelmoi tehokkn rtkisun Kurssill trkstellut tulokset ovt funmentlisi, tulevien vuosien tehonlisäykset tietokoneiss eivät tule poistmn näien tulosten merkitystä 6 Esitykset Äärellinen esitys = kkoston merkkijono Akkosto on äärellinen, epätyhjä joukko symoleit Esim inäärikkosto { 0, } j ltinlinen kkosto {A,B,,Z} Merkkijono on äärellinen järjestetty jono kkoston merkkejä Esim 0000 j TWILIGHT Merkkijonon x pituus x on siihen sisältyvien merkkien lukumäärä Esim 0000 = 5 j TWILIGHT =8 Tyhjän merkkijonon ε pituus ε = 0 8
Merkkijonojen yhteenliittäminen eli ktentio on niien perusopertio TWILIGHT ZONE = TWILIGHTZONE x = 0, y = 0 xx = 00, xy = 00, yy = 00 j yx = 00 3 Kikill x on xε = εx = x Kikill x, y on xy = x + y Jos w = xy, niin x on w:n lkuos (prefix) j y on sen loppuos (suffix) Akkoston Σ kikkien merkkijonojen joukko on Σ Esim Σ = { 0, } Σ = { ε, 0,, 00, 0, 0,, } Muit merkintöjä: Σ k, Σ k j Kääntäen jokist merkkijonojoukko A vst päätösongelm π A : Σ { 0, },, jos x A; π A (x) = 0, jos x / A Merkkijonojoukko A Σ snotn kkoston Σ (formliksi) kieleksi Vstv päätösongelm π A nimitetään kielen A tunnistusongelmksi Formlit kielet j päätösongelmt voin smist Σ = k N Σ k 9 Päätösongelmt Lskennllinen ongelm π on siis kuvus π : Σ Γ, missä Σ j Γ ovt kkostoj Päätösongelmt ovt tärkeä liluokk; niissä ongelmn tpuksen vstus on kyllä ti ei Ne ovt siis muoto π : Σ { 0, } Jokist päätösongelm π vst niien tpusten joukko, joill vstus on kyllä: A π = { x Σ π(x) = } Lskennllisten ongelmien rtkevuus Snotn, että ohjelm P (x) rtkisee lskennllisen ongelmn π, jos kikill syötteillä x ohjelm P tulost rvon π(x) Voinko kikki mholliset lskennlliset ongelmt rtkist ohjelmin? Ääretön joukko X on numeroituv, jos on olemss ijektio f : N X Myös äärelliset joukot ovt numeroituvi Bijektio = injektio + surjektio Injektio: f(x ) = f(x ) x = x Surjektio: f(a) = B Ääretön joukko, jok ei ole numeroituv on ylinumeroituv 0
Luse Minkä thns kkoston Σ merkkijonojen joukko Σ on numeroituv To Olkoon Σ = {,,, n } Kiinnitetään merkeille kkosjärjestys ; olkoon se < < < n Joukon Σ merkkijonot voin nyt luetell knonisess järjestyksessä: Ensin luetelln 0:n mittset merkkijonot, sitten :n mittiset, :n mittiset jne Kunkin pituusryhmän sisällä merkkijonot luetelln vlituss kkosjärjestyksessä Tällöin ijektio f : N Σ on 0 ε Luse Minkä thns kkoston Σ päätösongelmien joukko on ylinumeroituv To Merkitään Π:llä kikkien Σ:n päätösongelmien kokoelm: Π = { π π on kuvus Σ { 0, } } Oletetn, että Π on numeroituv, so on olemss kikki Π:n lkiot kttv numerointi Π = { π 0, π, π, } Olkoon Σ :n merkkijonot Luseen toistuksen knonisess järjestyksessä lueteltuin x 0, x, x, Muoostetn uusi päätösongelm ˆπ : Σ { 0, }: 3 5 n n n + n n n + 3n n n + n n n n + n + n + n +, jos π i (x i ) = 0; ˆπ(x i ) = 0, jos π i (x i ) = Kosk Π on kikki Σ:n päätösongelmt kttv numerointi, niin ˆπ Π Täten ˆπ = π k jollkin k N Tällöin, jos π k (x k ) = ˆπ(x k ) = 0; ˆπ(x k ) = 0, jos π k (x k ) = ˆπ(x k ) = Tämä on ristiriit, joten tehty oletus (Π on numeroituv) ei voi pitää pikkns Näin ollen Π on ylinumeroituv Toistustekniikk on ns Cntorin igonlirgumentti 6
Kosk esim Jv-ohjelmt ovt loppujen lopuksi vin ASCII-merkistön merkkijonoj, niin niitä on Luseen mukn vin numeroituv joukko Lskennllisten ongelmien joukko on kuitenkin Luseen perusteell ylinumeroituv Näin ollen kikist lskennllisist ongelmist voin Jv-ohjelmin rtkist vin häviävän pieni os Sm ongelm on millä thns ohjelmointikielellä Rtkemttomt ongelmt käsittävät myös mielenkiintoisi / käytännöllisiä ongelmi Äärellinen utomtti on viisikko M = (Q, Σ, δ, q 0, F ), missä Q on utomtin tilojen joukko, Σ on utomtin syötekkosto, δ : Q Σ Q on siirtymäfunktio, q 0 Q on lkutil j F Q (hyväksyvien) lopputilojen joukko Automtti M hyväksyy merkkijonon w = w w w n Σ n jos Q:ss on tilojen jono r 0, r,, r n se r 0 = q 0, δ(r i, w i+ ) = r i+, i = 0,, n, r n F Automtin M tunnistm kieli on L(M) = { w Σ M hyväksyy w:n } 7 9 Kertust Äärelliset utomtit Lskentjärjestelmän, joll on vin äärellisen mont mhollist til, toimint voin kuvt äärellisenä utomttin Äärellinen utomtti hvinnollistetn usein tilsiirtymäkvion q q q q 0 3 E q +, E q5 q6 Kieli on säännöllinen, jos jokin äärellinen utomtti tunnist sen Kielten perusopertiot ovt yhiste, ktentio j sulkeum: A B = { x x A x B } A B = { xy x A y B } A = { x x x k k 0 x i A i } Luse 5 Säännöllisten kielten luokk on suljettu yhisteen suhteen Toisin snoen, jos A j A ovt säännöllisiä kieliä, niin silloin myös A A on säännöllinen Luse 6 Säännöllisten kielten luokk on suljettu ktention suhteen 8 0
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 Automtti, joss on enemmän tiloj kuin ekvivlentiss minimlisess utomtiss on reunntti Automttej muoostvt lgoritmit eivät in tuot minimlist utomtti 5 Kullkin tilll q Q olkoon [q] = { q } { r Q q:n j r:n välillä ei ole krt G:ssä } 6 Muoost äärellinen utomtti M = (Q, Σ, δ, q 0, F ), missä Q = { [q] q Q }, (tuplt poisten δ ([q], ) = [δ(q, )], kikill q Q j Σ, 7 Plut M q 0 = [q 0 ] j F = { [q] q F } Minimlisen utomtin käsittely on tehokmp kuin reunntin 3 Algoritmi minimoi Syöte: äärellinen utomtti M = (Q, Σ, δ, q 0, F ) Poist M:n turht tilt ne joihin ei voi päästä lkutilst Muoost suuntmton verkko G, jonk solmuj ovt M:n tilt 3 Lisää G:hen kri kustkin ei-lopputilst kuhunkin lopputiln Toist niin kun kuin G:hen tulee uusi kri: 3 5 () Jokiselle prille q, r Q, q r, j jokiselle Σ: lisää kri (q, r) verkkoon G, jos (δ(q, ), δ(r, )) on kri G:ssä 6
[, 3] [] [, 3] 3 7 3 5 5 5 [, 5] [, 5] 6 Lopputulos Syöteutomtin M knss ekvivlentti äärellinen utomtti M, joss on minimimäärä tiloj Automtti M on tilojen nimeämistä ville yksikäsitteinen 6 3 5 I = {,3} II = {} III = {,5} I II III 8