HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty
|
|
- Teuvo Honkanen
- 8 vuotta sitten
- Katselukertoja:
Transkriptio
1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Matemaattis-luonnontieteellinen Tekijä Författare Author Aleksi Karpansalo Työn nimi Arbetets titel Title Matematiikan ja tilastotieteen laitos Inflatorinen kiintopistelogiikka ja polynomisen ajan vaativuusluokka Oppiaine Läroämne Subject Matematiikka Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Pro gradu -tutkielma Syyskuu s. Tiivistelmä Referat Abstract Tutkielmassa esitetään kuvailevan vaativuusteorian tulos inflatorisen kiintopistelogiikan ja polynomisen ajan vaativuusluokan yhteydestä. Tuloksen todistamiseen tarvittavat logiikan ja vaativuusteorian pohjatiedot käydään tutkielmassa läpi. Joukko-opin perusteet ja yleiset merkinnät toivotaan lukijalle entuudesta tutuiksi. Inflatorinen kiintopistelogiikka on ensimmäisen kertaluvun logiikan laajennus, johon on lisätty inflatoriseksi kiintopistekvantifioinniksi kutsuttu kaavanmuodostussääntö. Inflatorinen kiintopistekvantifiointi määrittelee relaation induktiivisesti ja sopii hyvin kuvailemaan tietokoneiden iteratiivisia ja rekursiivisia toimenpiteitä. Rajoittumalla äärellisiin järjestettyihin malleihin saadaan inflatorisen kiintopistelogiikan ilmaisuvoima vastaamaan vaativuusteorian polynomisen ajan vaativuusluokkaa. Vaativuusteoriassa käytetään Turingin koneita työkaluna ongelmien ratkaisemiseen tarvittavia resursseja arvioitaessa. Resurssivaativuuksiltaan samankaltaisia ongelmia luokitellaan vaativuusluokkiin. Polynomisen ajan vaativuusluokka on luokka kaikille ongelmille, jotka voidaan ratkaista syötteen pituudesta polynomisesti riippuvassa määrässä Turingin koneen laskennan askelia. Inflatorisen kiintopistelogiikan ja polynomisen ajan vaativuusluokan yhteyden osoittamiseksi tutkielmassa esitetään, kuinka kuvailla logiikan malleja Turingin koneilla ja Turingin koneita logiikan kaavoilla. Tarvittavien työkalujen esittelyjä seuraa tutkielman päätulos: inflatorinen kiintopistelogiikka karakterisoi polynomisen ajan vaativuusluokan. Lopuksi käydään läpi järjestyksen olettamisen tarpeellisuutta. Avainsanat Nyckelord Keywords Inflatorinen kiintopistelogiikka, IFP, PTIME, Turingin kone, äärellisten mallien teoria Säilytyspaikka Förvaringsställe Where deposited Kumpulan tiedekirjasto Muita tietoja Övriga uppgifter Additional information
2 Inflatorinen kiintopistelogiikka ja polynomisen ajan vaativuusluokka Aleksi Karpansalo
3 Sisältö 1 Johdanto 2 2 Logiikka Äärelliset mallit Järjestetyt mallit Ensimmäisen kertaluvun logiikka Inflatorinen kiintopistelogiikka Vaativuusteoria Kielet Turingin kone Vaativuusluokat Moninauhaiset Turingin koneet IFP ja PTIME Turingin kone logiikan malleille Määriteltävyydestä Turingin koneet logiikassa IFP ja PTIME Järjestyksen olettamisesta
4 Luku 1 Johdanto Tutkielmani esittelee kuvailevaa vaativuusteoriaa käyttämällä inflatorisen kiintopistelogiikan (IFP) ja polynomisen ajan vaativuusluokan (PTIME) yhteyttä havainnollistavana esimerkkinä. Kuvaileva vaativuusteoria on matemaattisen logiikan tutkimusala, jolla tutkitaan matemaattisen logiikan hyödyntämistä yleensä tietojenkäsittelytieteen osaksi laskettavassa vaativuusteoriassa. Yksinkertaisesti ilmaistuna vaativuusteoria tutkii, mikä on algoritmisesti laskettavissa, ja kuvaileva vaativuusteoria etsii logiikoita, jotka vastaavat ilmaisuvoimaltaan vaativuusteorian vaativuusluokkia. Vaativuusluokat ovat vaativuusteorian käsite algoritmisesti ratkaistavien ongelmien luokitteluun, ja polynomisen ajan vaativuusluokka PTIME on joukko kaikille ongelmille, joiden ratkaisun kesto n-pituisella syöteellä on aina lyhyempi kuin jonkin luvusta n riippumattoman yksimuuttujaisen kokonaislukukertoimisen polynomin arvo sijoituksella n. Osoittautuu, että inflatorinen kiintopistelogiikka äärellisillä järjestetyillä malleilla pystyy kuvailemaan juuri ne ongelmat, jotka sisältyvät polynomisen ajan vaativuusluokkaan. Inflatorinen kiintopistelogiikka on ensimmäisen kertaluvun logiikan laajennus, johon on lisätty inflatorinen kiintopistekvantifiointi. Tutkielmassa käydään ensiksi läpi tarvittavat ensimmäisen kertaluvun logiikan ominaisuudet ja merkinnät sekä äärellisten järjestettyjen mallien määritelmät. Inflatorinen kvantifiointi, kiintopisteet ja inflatorinen kiintopistelogiikka esitellään perusteiden jälkeen. Vaativuusluokkien, kuten PTIME, ja algoritmien määrittelyyn tarvitaan jokin hyvin määritelty työkalu, ja Turingin koneet ovat tähän hyvin soveltuvia ja yleisesti käytettyjä. Tutkielmani esittelee Turingin koneita siinä laajuudessa, jossa niitä tarvitaan PTIME:n määrittelyssä ja liittyvien kuvailevan vaativuusteorian tuloksien todistamisessa. Tutkielman tavoite on esittää inflatorisen kiintopistelogiikan ja PTIME:n yhteys tarkasti ja selvästi. 2
5 Luku 2 Logiikka 2.1 Äärelliset mallit Määritelmä 2.1. Olkoon k > 0 luonnollinen luku. Joukon X k-paikkainen relaatio R on jokin hyvinmääritelty osajoukko R X k, missä X k = {(x 1,...,x k ) x i X)}. Kaksipaikkaisilla relaatioilla on hyödyllisiä erityisominaisuuksia, joita tarvitaan jatkossa esimerkiksi alkioiden järjestyksien määrittelyssä. Määritelmä 2.2. Olkoon X joukko ja R kaksipaikkainen relaatio R X 2. Tällöin 1. R on refleksiivinen, jos (x, x) R kaikilla x X, ja R on irrefleksiivinen, jos (x,x) R kaikilla x X. 2. R on symmetrinen, jos kaikilla(x,y) R pätee(y,x) R, jaron antisymmetrinen, jos kaikilla (x,y) R pätee (y,x) R kun x y. 3. R on transitiivinen, jos (x, z) R kaikilla x, z X, joille on olemassa y X siten, että {(x,y),(y,z)} R. 4. R on vertailullinen, jos joko (x,y) R tai (y,x) R kaikilla x,y X, x y. Aakkostot ovat äärellisiä monikkoja τ = R 0,...,R n,c 0,...,c m,f 0,...,f l, jotka koostuvat relaatio-, vakio- ja funktiosymboleista. Kullakin symbolilla s τ on paikkaluku #(s) N. Relaatio- ja funktiosymbolien a paikkaluvuilta vaaditaan #(a) > 0, ja vakiosymboleilla c on paikkaluku aina #(c) = 0. Aakkostoa, jossa on vain relaatiosymboleita, kutsutaan relationaaliseksi. Koska n-paikkaiset funktiot f voidaan tulkita (n+1)-paikkaisina relaatioina R f = {(x 0,...,x n 1,x n ) f(x 0,...,x n 1 ) = x n }, 3
6 rajoitamme jatkossa tarkastelumme aakkostoihin, joissa on vain relaatio- ja vakiosymboleita. Määritelmä 2.3. Olkoon τ = R 0,...,R n,c 0,...,c m aakkosto. Tällöin τ-malli M on monikko M,R A 0,...,R A n,c A 0,...,c A m, missä M on epätyhjä joukko, jokaiselle aakkoston τ relaatiosymbolille R i on tulkinta R A i M #(R i) ja jokaiselle aakkoston τ vakiosymbolille c j on tulkinta c A j M. Mallin määritelmän joukkoa M kutsutaan mallin M universumiksi. Aakkoston relaatiosymbolien tulkinnat ovat joukon M relaatioita, joiden paikkaluvut vastaavat symbolien paikkalukuja, ja vakiosymbolien tulkinnat ovat joukon M alkioita. Malli liittää siis aakkoston symboleille tulkinnan. Malli M on äärellinen, jos sen universumi M on äärellinen joukko. Merkitään universumin A kokoa A. Oletamme jatkossa kaikkien mallien olevan äärellisiä. Käytämme aakkoston τ kaikille äärellisille malleille merkintää STRUCT(τ). Jos aakkosto τ on relationaalinen, sanotaan τ-mallien olevan relationaalisia malleja. Määritelmä 2.4. Olkoon τ = E aakkosto, missä E on kaksipaikkainen relaatiosymboli. Tällöin τ-malleja G = V,E, joille E G on irrefleksiivinen ja symmetrinen, kutsutaan verkoiksi. Verkon universumin V alkioita v kutsutaan solmuiksi, ja relaation E G jäseniä (v 1,v 2 ) kutsutaan särmiksi. Verkot ovat tärkeitä rakenteita tietojenkäsittelytieteessä. Verkon G solmujen v 0 ja v n välillä sanotaan olevan polku, jos jokov 0 = v n tai on olemassa jono solmuja(v 0,v 1,...,v n 1,v n ) siten, että (v i,v i+1 ) E G kaikilla i < n. Polku on edellämainitusta solmujen jonosta saatujen särmien jono ((v 0,v 1 ),...,(v n 1,v n )). Jos v 0 = v n, polku on tyhjä jono (). Polun pituus on polun sisältämien särmien lukumäärä. Määritelmä 2.5. Sanomme τ-mallien A ja B olevan isomorfisia, jos on olemassa bijektio f : A B, jolle Jokaiselle relaatiosymboliller τ ja alkioillex 0,...x n A pätee (x 0,...,x n ) R A, jos ja vain jos (f(x 0 ),...,f(x n )) R B. Jokaiselle vakiosymbolille c τ pätee c B = f(c A ). Isomorfiset mallit ovat logiikan kannalta vastaavia siinä mielessä, että kaikki loogiset väittämät, jotka pätevät mallille M, pätevät myös kaikille mallin M kanssa isomorfisille malleille. Täten on esimerkiksi mahdollista tarkastella mallin M sijaan isomorfista mallia N, jonka universumi ja tulkinnat ovat tekijälle tai lukijalle tutumpia, ja saada mallia M koskevia tuloksia. 4
7 2.2 Järjestetyt mallit Järjestetyt mallit ovat malleja, joille on määritelty erityiset ehdot täyttävä relaatio. Määritelmä 2.6. Kaksipaikkainen relaatio on lineaarijärjestys, jos se on refleksiivinen, antisymmetrinen, transitiivinen ja vertailullinen. Käytämme lyhenteitä a b ja b a merkinnälle (a,b). Käytämme myös lyhennettä a < b, kun a b ja a b. Määritelmä 2.7. Olkoon τ aakkosto siten, että τ ja #( ) = 2. Tällöin τ-malli M on järjestetty malli, jos M on lineaarijärjestys. Käytämme merkintää O[τ] kaikkien äärellisten järjestettyjen τ-mallien luokalle. Esimerkki 2.8. Olkoon lineaarijärjestys, Y yksipaikkainen relaatio ja τ =, Y aakkosto. Tällöin τ on binäärisanojen aakkosto. Olkoon B = B,,Y τ-malli, missä universumi B = {0,1,2,3,4}, ykkösten paikkoja kuvaavan relaation tulkinta Y B = {0,2,3} ja järjestyksen tulkinta on lukujen luonnollinen järjestys. Mallia B vastaava binäärisana on Lineaarijärjestys B on tarpeellinen binäärisanan ykkösten ja nollien paikkojen valitsemisessa. Relaatio Y B kertoo vain, mitkä alkiot ovat ykkösiä, ja universumi B on puhdas joukko, eikä siis määrää alkioidensa järjestystä. Koska rajoitumme äärellisiin malleihin, on joukolla aina sekä pienin että suurin alkio lineaaristen järjestysten suhteen ja on mahdollista puhua alkion x seuraajasta eli yksikäsitteisestä alkiosta, joka on lineaarisessa järjestyksessä suurempi kuin x, mutta pienempi kuin mikään muu y x, y x. Käytämme jatkossa järjestyksen pienimmälle alkiolle merkintää min, suurimmalle max ja alkion x seuraajalle S(x). Käyttämissämme logiikoissa min, max ja S(x) ovat ilmaistavissa käyttäen lineaarijärjestystä, joten niiden lisääminen aakkostoon erillisinä vakio- ja relaatiosymboleina ei ole tarpeen. Myöhemmin tarvitsemme tavan järjestää järjestetyn mallin universumin M karteesisten tulojen M k alkioita (x 0,...,x k 1 ). Käytämme tällöin erityistä lineaarista järjestystä, joka järjestää karteesisen tulon alkiot mallin lineaarista järjestystä hyödyksi käyttäen. Määritelmä 2.9. Olkoon M järjestetty malli, M sen universumi, sen lineaarijärjestys ja (x 0,...,x k 1 ),(y 0,...,y k 1 ) M k. Sanakirjajärjestys k on joukon M k lineaarijärjestys, jolle pätee (x 0,...,x k 1 ) k (y 0,...,y k 1 ), jos ja vain jos jokin seuraavista toteutuu: 1. x i < y i, i {0,...,k 1}, ja x j = y j kaikilla j < i 2. x i = y i kaikilla i {0,...,k 1} 5
8 Sanakirjajärjestys vertaa karteesisen tulon alkioita vertaamalla alkion jäseniä vasemmalta oikealle, kunnes joko ehto 1. toteutuu tai kaikki jäsenet on käyty läpi ja ehto 2. toteutuu. Jos ajattelee suomen kielen kirjainten joukkoa mallin universumina ja kirjainten aakkosjärjestystä mallin lineaarisena järjestyksenä, sanojen aakkosjärjestys on sanakirjajärjestys. 2.3 Ensimmäisen kertaluvun logiikka Seuraavat määritelmät ovat sidottuja käytettyyn aakkostoon. Valitaan jokin mielivaltainen aakkosto τ. Määritelmä Termit ovat merkkijonoja, jotka määritellään seuraavasti: Aakkoston τ ulkopuoliset vakiosymbolit, muuttujat, x ovat termejä. Aakkoston τ vakiosymbolit c ovat termejä. Määritelmä Olkoott 1,...t n termejä jarrelaatio. Tällöin ensimmäisen kertaluvun logiikan atomikaavat ovat merkkijonoja, jotka määritellään seuraavasti: t 1 = t 2 on atomikaava. Rt 1...t n on atomikaava. Määritelmä Ensimmäisen kertaluvun logiikan kaavat ovat merkkijonoja, jotka määritellään induktiivisesti seuraavien sääntöjen perusteella. Atomikaavat ovat kaavoja. Jos φ on kaava, niin negaatio φ on kaava. Jos φ ja ψ ovat kaavoja, niin disjunktio (φ ψ) on kaava. Jos φ on kaava, ja x on muuttuja, niin xφ on kaava. Kaikkien aakkoston τ ensimmäisen kertaluvun logiikan kaavojen joukkoa merkitään FO(τ). Disjunktion duaalia ( ψ φ) kutsutaan konjunktioksi ja merkitään (ψ φ), ja eksistenssikvanttorin duaalia x ψ kutsutaan universaalikvanttoriksi ja merkitään xψ. Voimme jättää disjunktion ja konjunktion sulut merkitsemättä, jos ne eivät ole tarpeellisia operaatioiden oikean järjestyksen tulkitsemiselle. 6
9 Esimerkki Oletetaan τ. Esitellään ensimmäisen kertaluvun logiikan kaavoja joillekin lyhennyksille, joita tulemme käyttämään: x y := xy, x < y := (x = y) x y, y = S(x) := x < y z( (x < z z < y)), x = min := y(x y), Rmax := y(y x) Rx. Viimeisessä lyhennyksessä käytimme lisäoletuksia R τ ja #(R) = 1. Merkkijonoja, jotka sisältyvät johonkin kaavaan ja ovat itsekin kaavoja, kutsutaan alikaavoiksi. Määrittelemme kaavan ϕ vapaiden muuttujien joukon Free(ϕ) induktiivisesti: Jos ϕ on atomikaava, niin Free(ϕ) on kaavan ϕ muuttujien joukko. Free( ϕ) = Free(ϕ). Free(ϕ ψ) = Free(ϕ) Free(ψ). Free( xϕ) = Free(ϕ)\{x}. Jos muuttuja ei ole vapaa, sanotaan sen olevan sidottu. Kaavoja, joilla ei ole vapaita muuttujia, kutsutaan lauseiksi. Merkinnällä ϕ(x 0,...,x n ) tarkoitamme, että kaavan ϕ muuttujat x 0,...,x n ovat erillisiä ja Free(ϕ) {x 0,...,x n }. OlkoonAτ-malli,Asen universumi jaξ = {x 0,...,x n } jokin äärellinen joukko aakkoston τ muuttujia. Funktio s : ξ A on mallin A sijoitus. Sijoitus antaa siis muuttujille arvon mallin universumista. Käytämme merkintää s(a/x) sijoitukselle, jolle s(a/x)(i) = s(i), kun i x, ja s(a/x)(i) = a, kun i = x. Kaavat itsekseen ovat vain merkkijonoja. Määrittelemme seuraavaksi erityisen relaation, joka määrittelee kaavojen totuuden malleissa. Määritelmä Olkoon A malli ja s sijoitus, jonka määrittelyjoukko sisältää kaikki käytetyissä kaavoissa esiintyvät muuttujat. Totuusrelaatio A = s ϕ määritellään seuraavasti: A = s t 1 = t 2, jos ja vain jos s(t 1 ) = s(t 2 ). A = s Rt 1...t n, jos ja vain jos (s(t 1 ),...,s(t n )) R A. A = s ψ, jos ja vain jos A = s ψ. 7
10 A = s ψ φ, jos ja vain jos A = s ψ tai A = s φ. A = s xψ, jos ja vain jos on olemassa jokin a A siten, että A = s(a/x) ψ. Sijoitukset vaikuttavat vain vapaisiin muuttujiin, joten lauseiden totuudet eivät riipu valitusta sijoituksesta. Täten, jos ψ on lause ja A = s ψ millä tahansa sijoituksella s, voidaan kirjoittaa A = ψ ja sanoa, että A on lauseen ψ malli. Jos jollain jonolla ā = (a 0,...,a n ), sijoituksella s ja kaavalla ϕ(x 0,...,x n ) pätee A = s ϕ ja a i = s(x i ) kaikilla i n, voimme ajatella sijoittavamme jonon ā alkiot kaavaan järjestysnumeroltaan vastaaville jonon (x 0,...,x n ) muuttujille ja käyttää merkintää A = ϕ[ā]. Totuusrelaatio kertoo, onko kaava totta mallissa, ja antaa samalla kaavoille merkityksen. Täten kaavoilla pystyy ilmaisemaan mallien ominaisuuksia. Ensimmäisen kertaluvun logiikan ilmaisuvoima on kuitenkin hyvin rajallinen. Kombinatorisia pelejä 1 käyttäen on esimerkiksi osoitettu, että ensimmäisen kertaluvun logiikka ei pysty ilmaisemaan, onko mielivaltaisen järjestetyn mallin universumissa parillinen määrä alkioita. Esimerkki [4, s. 9] Olkoon G = V,E verkko. Tällöin kaavoille ϕ d(1) (x,y) := x = y Exy ϕ d(2) (x,y) := z(ϕ d(1) (x,z) ϕ d(1) (z,y)) ϕ d(3) (x,y) := z(ϕ d(2) (x,z) ϕ d(1) (z,y)). ϕ d(i) (x,y) := z(ϕ d(i 1) (x,z) ϕ d(1) (z,y)) pätee G = ϕ d(j) [a,b] täsmälleen silloin, kun solmujen a ja b välillä on polku, jonka pituus on korkeintaan j. Verkko on yhtenäinen silloin, kun jokaisesta solmusta a on polku jokaiseen solmuun b. Ensimmäisen kertaluvun logiikan lause ϕ y(i) := x y(ϕ d(i) (x,y)) ilmaisee, että verkon kaikkien solmujen x ja y välillä on polku, jonka pituus on korkeintaan i. OlkoonG verkko jai N. JosG = ϕ y(i), tiedämme verkong olevan yhtenäinen. JosG = ϕ y(i), emme lisätiedoitta pysty päättelemään, onko G epäyhtenäinen vai yhtenäinen siten, että joidenkin solmujen välinen polku on pidempi kuin i. Jokaiselle j N on olemassa yhtenäinen verkko G, jolla G = ϕ y(j). Kombinatorisia pelejä käyttäen onkin osoitettu, että ei ole olemassa ensimmäisen kertaluvun logiikan lausetta, jolla voisi ilmaista, onko mielivaltainen verkko yhtenäinen. 1 Kombinatorisista peleistä ja mainituista todistuksista voi lukea esimerkiksi Libkinin [2] kirjasta. 8
11 2.4 Inflatorinen kiintopistelogiikka Tässä luvussa esittelemme ensimmäisen kertaluvun logiikan laajennuksen, joka kykenee määrittelemään relaatioita induktiivisesti. Tämä relaatioiden määrittely mahdollistetaan uudella kaavanmuodostussäännöllä. Tavoitteenamme on ilmaista tietokoneiden toimintaa logiikan keinoin, ja valitsemamme induktiivinen relaatioiden muodostus sopii hyvin iteratiivisten ja rekursiivisten toimenpiteiden kuvailuun [1]. Aloitamme määrittelemällä uudelle kaavanmuodostussäännöllemme tarpeellisia käsitteitä. Määritelmä Olkoon M joukko ja P(M) sen potenssijoukko. Funktio f : P(M) P(M) on inflatorinen, jos X f(x) kaikilla X P(M). Funktioita F : P(M) P(M) kutsutaan joukon M operaattoreiksi. Täten erityisesti inflatoriset funktiot ovat inflatorisia operaattoreita. Määritelmä Olkoon M joukko ja F : P(M) P(M) joukon M operaattori. Joukko X P(M) on operaattorin F kiintopiste, jos F(X) = X. Määritellään joukon M operaattorille F : P(M) P(M) merkintä F k seuraavasti F 0 =, F i+1 = F(F i ). Jos on olemassa n 0 N, jolle F n 0+1 = F n 0, eli F(F n 0 ) = F n 0, merkitään F n 0 = F ja sanotaan, että funktion F kiintopiste F on olemassa. Jos kiintopiste F ei ole olemassa, merkitään F :=. Koska rajoitamme tarkastelumme äärellisiin joukkoihin, inflatorisilla operaattoreilla F on aina olemassa kiintopiste F. Tämä seuraa siitä, että äärellisessä joukossa M on M alkiota, ja operaattorin inflatorisuuden myötä F 0 F 1... M, joten F n+1 = F n viimeistään, kun n = M. Jokaiselle operaattorille G voidaan määritellä inflatorinen operaattori G infl (X) = X G(X). Jos operaattori G on inflatorinen, niin G infl = G. Määritelmä Olkoon M joukko ja F joukon M operaattori. Operaattorin F inflatorisen muunnoksen F infl kiintopistettä Finfl kutsutaan operaattorin F inflatoriseksi kiintopisteeksi ja merkitään ifp(f). Olkoon σ relationaalinen aakkosto, R σ sen ulkopuolinen k-paikkainen relaatiosymboli ja ϕ(r,x 1,...,x k ) aakkoston σ {R} kaava. Kaavasta ϕ(r, x) saadaan jokaisella A STRUCT(σ) operaattori F ϕ : P(A k ) P(A k ), jolle F ϕ (X) = {ā A = ϕ(x/r,ā)}. 9
12 Aakkoston ulkopuolista relaatiota R kutsutaan toisen kertaluvun muuttujaksi. Olemme nyt valmiit määrittelemään inflatorisen kiintopistelogiikan. Käytämme Libkinin [2] esitystä määritelmälle. Määritelmä Inflatorinen kiintopistelogiikka IFP(τ) on ensimmäisen kertaluvun logiikan FO(τ) laajennus, johon on lisätty seuraava kaavanmuodostussääntö: Jos ϕ(r, x) on kaava, missä R on k-paikkainen relaatio, t on jono termejä, ja k = x = t, niin [IFP R, x ϕ(r, x)]( t) on kaava, jonka vapaat muuttujat ovat Free( t) (Free(ϕ)\{R, x}). Uuden säännön, inflatorisen kiintopistekvantifioinnin, semantiikka määritellään seuraavasti: A = s [IFP R, x ϕ(r, x)]( t), jos ja vain jos s( t) = (s(t 1 ),...,s(t n )) ifp(f ϕ ). Inflatorisen kiintopistekvantifioinnin voi ajatella toimivan iteratiivisesti siten, että kaavan toisen asteen muuttuja R on aluksi tyhjä muokattava joukko, jota muokataan käymällä kaava läpi muuttujan R sen hetkisessä tilassa ja lisäämällä kaikki kaavan silloin toteuttavat alkiot muuttujaan R, kunnes kaavan läpikäynnillä ei enää löydy uusia lisättäviä alkioita. Tällöin R on saavuttanut kiintopisteen, ja voidaan tarkistaa päteekö R t. Esimerkki Olkoon A = {1,2,3},S malli, missä S on lukujen luonnollisen seuraajarelaation rajoittuma, ja X yksipaikkainen toisen kertaluvun muuttuja. Tällöin A = s [IFP X,x ( y(syx) y z(xy Syx Sxz))]t, jos ja vain jos s(t) 3. Inflatorinen kiintopistekvantifiointi määrittelee relaation X seuraavalla iteraatiolla: 1. X = : Kaavan y(syx) alikaava toteutuu ainoastaan luvuilla, joiden edeltäjä ei ole mallin universumissa. Disjunktion oikeaa puolta ei toteuta mikään, koska ei ole alkiota y, jolla Xy. Täten lisätään disjunktion vasemman puolen toteuttava 1 toisen kertaluvun muuttujan tulkintaan. 2. X = {1} : Disjunktion vasen alikaava ei sisällä toisen kertaluvun muuttujaa X ja ei siten muutu iteraatiossa. 2 Xy toteutuu nyt vain, kun y = 1. Tällöin S1x toteutuu vain, jos x = 2. Muuttujaan z sopii sijoitettavaksi 3. Täten lisätään 2 toisen kertaluvun muuttujan tulkintaan. 2 Luku 1 toteuttaa kaavan tälläkin iteraatiolla, mutta X sisältää sen jo ja ei siten muutu luvun 1 lisäämisestä. 10
13 3. X = {1,2} : Kuten edellä, mutta nyt Xy toteutuu myös, kun y = 2. Täten Syx toteutuisi, kun x = 3, mutta ei ole lukua z, jolle S3z. Täten yhä X = {1,2}, ja X on saavuttanut kiintopisteen. Edellisen esimerkin kaava ei vielä ilmaissut mitään, mitä ensimmäisen kertaluvun logiikka ei pystyisi ilmaisemaan. Vastaavan seuraajarelaatiosta riippuvan kaavan pystyy muodostamaan ilman iteraatiotakin. Ensimmäisen kertaluvun logiikalla yhden verkon yhtenäisyyden ilmaiseva lause ei välttämättä kykene ilmaisemaan toisen verkon yhtenäisyyttä. Inflatorisella kiintopistelogiikalla yksi lause riittää kattamaan kaikki verkot. Esimerkki [1, s. 121] Olkoon G = (V,E) verkko ja Tällöin jos ja vain jos G on yhtenäinen. ψ(x,x,y) := (Exy z(xxz Ezy)). G = x y(x = y [IFP X,x,y ψ(x,x,y)]xy) Edellisestä esimerkistä näemme inflatorisen kiintopistekvantifioinnin lisäämää ilmaisuvoimaa verrattuna pelkkään ensimmäisen kertaluvun logiikkaan. Järjestetyillä malleilla inflatorinen kiintopistelogiikka on tarpeeksi voimakas ilmaisemaan mallin universumin kokoon liittyviä ominaisuuksia. Esimerkki Jos rajoitamme tarkastelumme järjestettyihin malleihin, inflatorinen kiintopistelogiikka pystyy määrittelemään mallin universumin parillisuuden seuraavalla lauseella: [IFP X,x (x = min y(xy x = y +2 ))]max, missä x = y +2 on z(y < z z < x v( (y < v v < z) (z < v v < x))). Inflatorinen kiintopistelogiikka ei kykene määrittelemään mallin universumin parillisuutta mielivaltaiselle mallille 3, joten järjestetyn mallin olettaminen on tarpeellista. 3 Todistus liian laaja tutkielmaan. 11
14 Luku 3 Vaativuusteoria Vaativuusteoria on tietojenkäsittelytieteen osa-alue, jossa tutkitaan kysymystä: "Mikä tekee jotkut ongelmat laskennallisesti vaikeiksi ja toiset helpoiksi?"[6] Kuvaileva vaativuusteoria on matematiikan haara, jossa vaativuusteorian ongelmiin haetaan ratkaisuja käyttäen matemaattisen logiikan työkaluja. Tutkielman tarkoitus on esitellä kuvailevaa vaativuusteoriaa esimerkillä vaativuusteorian ja matemaattisen logiikan yhteyksistä. Tässä luvussa esittelemme vaativuusteorian määritelmiä ja menetelmiä, joita tarvitaan tuloksen esittämiseen. 3.1 Kielet Aloitamme määrittelemällä vaativuusteoriassa käytettävien symbolijonojen tarvittavat ominaisuudet ja merkinnät. Määritelmä 3.1. Olkoon Σ joukko symboleita eli merkistö. Merkistön Σ alkioista koostuvia äärellisiä jonoja δ 0 δ 1...δ m kutsutaan merkistön Σ sanoiksi. Kaikkien merkistön Σ sanojen joukolle käytetään merkintää Σ. Olkoon σ 1 = δ 0...δ n ja σ 2 = η 0...η m sanoja. Tällöin σ 1 = σ 2, jos ja vain jos n = m ja δ i = η i kaikilla i m. Merkinnällä σ 1 σ 2 tarkoitamme sanaa δ 0...δ n η 0...η m, ja merkinnällä σ R 1 tarkoitamme sanaa δ n...δ 0. Jokaisella merkistöllä on olemassa erityinen tyhjä sana ǫ, jonka pituus on nolla. Tyhjällä sanalla ǫ kuvataan siis oikeastaan sanan puutetta. Mille tahansa sanalle σ pätee siis esimerkiksi σǫ = σ. Määritelmä 3.2. Kieli L on jonkin merkistön Σ sanojen osajoukko L Σ. 12
15 Vaativuusteorian ongelmat liittyvät siihen, kuinka vaikeaa on ratkaista, kuuluuko jokin sana σ kieleen L. Täten kielet ja ongelmat usein samaistetaan. Seuraavassa esimerkissä esittelemme palindromien kielen. Esimerkki 3.3. Merkistön Σ palindromi on sana σ Σ, jolle pätee σ = σ R. Merkistön Σ palindromien kieli L pal on kaikkien Σ-palindromien joukko, eli L pal = {σ Σ σ = σ R } = {σδσ R σ Σ ja δ Σ {ǫ}}. Olkoon merkistö Σ suomen kielen kirjainten joukko. Tällöin esimerkiksi sana saippuakauppias kuuluu kieleen L pal. On helppo nähdä, että sana jokirosvo ei ole palindromi, eikä siis kuulu kieleen L pal. Kysymys σ L pal on helppo ratkaista, kun sana σ on lyhyt. Palindromien kieli kuitenkin sisältää myös mielivaltaisen pitkiä sanoja. Esimerkiksi annetulle miljoona merkkiä pitkälle sanalle σ kysymyksen σ L pal ratkaiseminen ei välttämättä onnistu yhtä helposti kuin edellisen esimerkin sanojen. Tutkittava kieli voi myös olla sellainen, että lyhyilläkin sanoilla on todella työlästä tarkistaa, kuuluuko sana kieleen. Intuition pettäessa ja halutessamme toimivan teorian tarvitsemme hyvinmääritellyn työkalun näiden ongelmien tutkimiseen. Vaativuusteorian kiinnostus on erityisesti algoritmisissa ratkaisuissa. Seuraavassa luvussa esittelemme Turingin koneen, jota käytämme algoritmisen laskennan määritelmänä. 3.2 Turingin kone Turingin kone on abstrakti ääretönmuistinen tietokone. Sen muistin ajatellaan olevan vasemmalta suljettu, mutta oikealle loputon yksirivinen tekstinauha, jolta kone voi lukea ja korvata merkkejä. Koneella on loputtoman nauhan lisäksi äärellinen joukko tiloja, joissa se voi olla. Turingin kone käsittelee nauhan sisältöä lukupäällä, joka liikkuu nauhan päällä ja lukee yhden merkin kerrallaan. Kussakin vaiheessa Turingin koneen toimintaa, lukupää lukee merkin ja korvaa sen merkillä, joka riippuu luetusta merkistä ja tilasta, jossa kone on. Korvattuaan merkin lukupää pysyy paikallaan tai siirtyy yhden merkin vasemmalle tai oikealle, ja kone siirtyy tilaan, joka myöskin riippuu vaiheessa luetusta merkistä ja koneen sen hetkisestä tilasta. Lukupää kulkee nauhaa pitkin lukien ja korvaten merkkejä, kunnes kone siirtyy erityiseen hyväksymis- tai hylkäämistilaan. Kutsumme lukupään mahdollisia sijainteja soluiksi. Nauhalla sijaitsevat solut numeroidaan luonnollisilla luvuilla siten, että nauhan vasemmanpuolisin solu on 0, ja solujen numerot kasvavat luonnollisessa järjestyksessä oikealle edetessä. Helpottaaksemme nauhan vasemman reunan löytämistä annamme lukupään liikkua nauhan vasemman reunan 13
16 yli erityiseen soluun 1, johon ei voi kirjoittaa ja josta lukupää ei voi enää siirtyä vasemmalle. Solu 1 sisältää aina erityissymbolin, jonka lukiessaan lukupää tunnistaa ylittäneensä nauhan vasemman reunan. Ennen laskennan alkua, jokaisella solulla on symboli. Turingin koneelle annetaan syötteenä sana, joka kirjoitetaan nauhalle merkki kerrallaan nauhan vasemmasta reunasta alkaen. Turingin koneen käynnistyessä lukupää on syötteen ensimmäisen kirjaimen päällä, tai nauhan vasemmassa päässä, ja kone on erityisessä alkutilassa. Kone sitten toimii sisältämiensä ohjeiden mukaisesti lukiessaan syötettä. Määritelmä 3.4. (Deterministinen) Turingin kone on viisikko M = (K,Σ,Γ,δ,s 0 ), missä K on äärellinen joukko tiloja, syöteaakkosto Σ on merkistö, joka ei sisällä erityissymboleita,,, nauha-aakkosto Γ = Σ {,, }, δ on tilasiirtymäfunktio, eli funktio δ : K Γ (K {s 1,s }) Γ {V,O,P}, joka toteuttaa seuraavat ehdot: 1. s 1,s,V,O,P K Σ, 2. δ(s a, ) (s b,,v) ja δ(s a, ) (s b,a j,s) kaikilla s a,s b K, a j Γ \ { }, S {V,O,P}. s 0 K on alkutila Tilasiirtymäfunktion määritelmässä on joukko erityissymboleita, joilla on tärkeä merkitys koneen toiminnan kannalta. Symboli s 1 kuvastaa hyväksymis-, ja s hylkäämistilaa. Symbolit V, O ja P kertovat, kuinka lukupään tulee liikkua. Symboli V siirtää lukupäätä solusta i vasemmalle soluun i 1, O oikealle soluun i + 1 ja P samaan soluun i. Hyväksymis- ja hylkäämistilat ovat tilasiirtymäfunktion määrittelyjoukon ulkopuolella ja pysäyttävät koneen laskennan. Tilasiirtymäfunktion toinen ehto varmistaa, että lukupää ei pysty liikkumaan symbolin luettuaan vasemmalle erityisesti lukupää ei pysty liikkumaan solusta 1 vasemmalle ja että lukupää ei pysty korvaamaan merkkiä toisella merkillä. Turingin koneen määrittelyyn riittää yleensä tilasiirtymäfunktion määrittely. Tilojen joukon pystyy päättelemään tilasiirtymäfunktiosta, ja jos ei toisin mainita oletamme nauha-aakkoston olevan pienin joukko, joka sisältää tilasiirtymäfunktiossa esiintyvät aakkostosymbolit ja nauha-aakkoston erityissymbolit. Otamme käyttöön uuden merkinnän tilasiirtymäfunktioiden määrittelyyn. Olkoon δ tilasiirtymäfunktio. Käytämme merkintää 14
17 s i a s j bs, kunδ(s i,a) = (s j,b,s). Merkintääs i a s j bs kutsutaan Turingin koneen ohjeeksi, ja ohjeen alkupäätä s i a ohjeen kannaksi. Jos tilasiirtymäfunktiota δ määriteltäessä jätämme jollain tilalla s h K ja symbolilla c Γ merkitsemättä ohjetta s h c s k ds millään s k,d,s, tarkoittaa se s h c s cp. Erikseen määrittelemättömät ohjeet siis hylkäävät syötteen. Seuraavan esimerkin tarkoitus on esitellä tilasiirtymäfunktion ohjeiden käyttöä Turingin koneiden määrittelyssä ja sitä, kuinka koneet toimivat annetuilla ohjeilla. Esimerkki 3.5. Määritellään Turingin kone M tilasiirtymäfunktiolla: s 0 s 1 V s 2 1 s 0 1O Tällöin M toimii seuraavasti: s 0 1 s 2 O Kun M on tilassa s 0 ja lukupää lukee merkin, M korvaa lukemansa merkin merkillä, eli ei muuta merkkiä, siirtää lukupäätä vasemmalle ja siirtyy hyväksyvään tilaan s 1 lopettaen laskennan. Kun M on tilassa s 0, ja lukupää lukee merkin 1, M korvaa lukemansa merkin 1 merkillä, siirtää lukupäätä oikealle ja siirtyy tilaan s 2. Kun M on tilassa s 2, ja lukupää lukee merkin 1, M korvaa lukemansa merkin 1 merkillä 1, siirtää lukupäätä oikealle ja siirtyy tilaan s 0. Kun koneen M tilan ja lukupään lukeman merkin yhdistelmä on mikä tahansa muu, esimerkiksi tila s 2 ja luettu merkki, M ei vaihda merkkiä, pitää lukupään paikallaan ja siirtyy hylkäävään tilaan s lopettaen laskennan. Tilasiirtymäfunktion määritelmässä esiintyy tilat s 0, s 1 ja s 2. Koneen M tilojen joukko K sisältää vain tilat s 0 ja s 2, koska s 1 on hyväksymistila. Ohjeissa esiintyy aakkostosymbolit ja 1. Täten oletamme syöteaakkoston Σ olevan {1}, koska on nauha-aakkoston erityissymboli. Turingin kone M on itseasiassa siis vain koneen toimintaohje. Koneen tila, nauhan sisältö ja lukupään sijainti määritellään osana Turingin koneen laskentaa. Määritelmä 3.6. Turingin koneen M = (K,Σ,Γ,δ,s 0 ) laskennan tilanne on kolmikko C = (s,t,h), missä s K on tila, T on funktio T : (N { 1}) Γ, joka kertoo nauhan sisällön kuvaamalla solujen järjestysnumerot vastaavien solujen sisältämiksi symboleiksi, ja h on koneen M lukupään sijainti. Kun Turingin koneelle M = (K,Σ,Γ,δ,s 0 ) annetaan syötteenä merkistön Σ sana σ = a 0...a m, ollaan laskennan alkutilanteessa C 0 = (s 0,T 0,0). Tällöin siis M on alkutilassa s 0, nauhan sisältö on sana σ, 1 ja lukupää on solussa 0. 1 Tarkemmin T 0 (i) = a i, kun i {0,...,m}, T 0 ( 1) = ja T 0 (j) = kaikilla j > m. 15
18 Olkoon C i = (s b,t i,j) koneen M laskennan tilanne. Sijoittamalla s b ja T i (j) koneen tilasiirtymäfunktioon saamme δ(s b,t i (j)) = (s c,d,s) joillekin s c K,d Γ,S {V,O,P}. Tällöin tilanteen C i seuraaja on laskennan tilanne C i+1 = (s c,t i+1,j +X(S)), missä { Ti (x) jos x j T i+1 (x) = d jos x = j ja X(V) = 1, X(O) = 1 ja X(P) = 0. Laskennan tilanteen C i seuraaja C i+1 kuvaa siis tilannetta, jossa kone M on kerran vaihtanut tilansa, muokannut nauhaa ja siirtänyt lukupäätä ohjeidensa mukaisesti tilanteesta C i. Laskennan tilanne C = (s,t,x) on hyväksyvä, jos s on hyväksyvä tila s 1. Vastaavasti C on hylkäävä, jos s on hylkäävä tila s. Hyväksyvä ja hylkäävä tila eivät ole sijoitettavissa tilasiirtymäfunktioon, joten hyväksyvän ja hylkäävän tilanteen seuraajiksi määritellään itsensä. Hyväksyvän tilanteen C seuraaja on siis C itse, ja vastaavasti hylkääville tilanteille. Turingin koneenm laskenta syötteellä σ on jono laskennan tilanteita(c 0,...C n ), missä C 0 on alkutilanne syötteelle σ ja C i+1 on tilanteen C i seuraaja kaikilla i {0,...,n 1}. Turingin kone M hyväksyy syötteen σ, jos on olemassa laskenta syötteellä σ, joka sisältää hyväksyvän tilanteen. Vastaavasti M hylkää syötteen, jos on olemassa laskenta syötteellä σ, joka sisältää hylkäävän tilanteen. Jos M hyväksyy tai hylkää syötteen σ, sanomme Turingin koneen M pysähtyvän syötteellä σ. Määritelmä 3.7. Turingin kone M tunnistaa kielen L Σ, jos seuraavat ehdot toteutuvat. 1. M pysähtyy jokaisella syötteellä σ Σ, 2. M hyväksyy syötteen σ, jos ja vain jos σ L. Seuraavaksi esittelemme Turingin koneen, joka tunnistaa esimerkissä 3.3 esitellyn palindromien kielen kaksimerkkiselle merkistölle. Esimerkki 3.8. Määritellään Turingin kone M = (K,Σ,Γ,δ,s 0 ), joka tunnistaa merkistön Σ = {a,b} palindromien kielen L pal, seuraavalla tilasiirtymäfunktiolla: Koko syöte luettu havaitsematta ongelmia, joten hyväksytään. s 0 s 1 P Luetaan merkki a, muistetaan se siirtymällä tilaan s 2, haetaan syötteen viimeinen merkki ja katsotaan, onko a. Verrattavat merkit korvataan symbolilla. s 0 a s 2 O s 2 a s 2 ao s 2 b s 2 bo s 2 s 3 V s 3 a s 4 V 16
19 Vastaavat ohjeet, kun luetaan merkki b. s 0 b s 5 O s 5 a s 5 ao s 5 b s 5 bo s 5 s 6 V s 6 b s 4 V Jos tilassa s 3 tai s 6 luetaan tyhjä merkki, on syötteen pituus ollut pariton ja keskimmäinen merkki oli viimeinen tarkistettu, joten voidaan hyväksyä. s 3 s 1 P s 6 s 1 P Tila s 4 siirtää lukupään vasemmalta ensimmäiseen merkkiin, jota ei vielä ole verrattu, jos kaikkia ei ole vielä verrattu, ja aloittaa uuden kierroksen s 4 a s 4 av s 4 b s 4 bv s 4 s 0 O Seuraavassa taulukossa on kuvailtu koneen M laskenta syötteellä aba esimerkkinä koneen toiminnasta. Merkitsemme lukupään sijainnin viivalla luettavan merkin päällä nauhan sisältö -sarakkeessa. Laskennan tilanne Tila Nauhan sisältö Käytettävä sääntö C 0 s 0 aba... s 0 a s 2 O C 1 s 2 ba... s 2 b s 2 bo C 2 s 2 ba... s 2 a s 2 ao C 3 s 2 ba... s 2 s 3 V C 4 s 3 ba... s 3 a s 4 V C 5 s 4 b... s 4 b s 4 bv C 6 s 4 b... s 4 s 0 O C 7 s 0 b... s 0 b s 5 O C 8 s 5... s 5 s 6 0V C 9 s 6... s 6 s 1 P C 10 s 1... Syöte hyväksytty. Kone M hyväksyy syötteen aba. Toisaalta esimerkiksi syötteellä ab kone M päätyy lopulta tilaan s 3 siten, että lukupää lukee merkin b, jolloin kone siirtyy hylkäävään tilaan. Turingin koneiden määritteleminen tilasiirtymäfunktion tarkalla määrittelyllä käy epäkäytännölliseksi tarvittavien koneiden monimutkaistuessa. Kuvaillaksemme palindromien kielen tunnistavan koneen esimerkiksi suomen kielen kirjainten joukon merkistölle joutuisimme määrittelemään edellisen esimerkin ohjeita vastaavat ohjeet uusine tiloineen jokaiselle merkistön merkille. Helpottaaksemme sekä määrittelyä että määrittelyjen tulkintaa, kuvailemme joidenkin koneiden toimintaa sanallisesti. Lause 3.9. Jokaiselle Turingin koneelle M on olemassa Turingin kone M, joka hyväksyy täsmälleen ne syötteet, jotka M hylkää, ja hylkää täsmälleen ne syötteet, jotka M hyväksyy. 17
20 Todistus. Olkoon M Turingin kone. Tällöin M voidaan määritellän siten, että se on muutoin kuten M, mutta s 1 ja s on vaihdettu keskenään. 3.3 Vaativuusluokat Ongelmien vaativuutta mitataan resursseissa, joita niiden ratkaisemiseen tarvitaan Turingin koneella. Luonnollisimmat resurssit ovat tila ja aika. Keskitymme tutkielmassa aikavaativuuteen, mutta käytämme aika ja tilavaativuuden välisiä ominaisuuksia hyväksi todistuksissa. Määrittelemme, että Turingin koneella kestää jokaisen yksittäisen ohjeen suorittamisessa vakioaika, joten aikavaativuus voidaan määritellä laskussa kuluneiden askelien määrällä. Tilavaativuus määritellään laskussa tarvittavien erillisten solujen määrällä. Laskun vaativuutta on luonnollista verrata syötteen pituuteen. Käytämme kaikkien äärellisten luonnollislukukertoimisten polynomien p(x) luokalle merkintää N(X). Määritelmä Olkoon L kieli. Sanomme kielen L ratkeavan polynomisessa ajassa, jos on olemassa polynomi p N(X) ja Turingin kone M siten, että M ratkaisee kielen L ja pysähtyy jokaisella syötteellä korkeintaan p(n) askeleessa, missä n on syötteen pituus. Vaativuusluokka PTIME on kaikkien polynomisessa ajassa ratkeavien kielien luokka. Sanomme kielen L ratkeavan polynomisessa tilassa, jos on olemassa polynomi p N(X) ja Turingin kone M siten, että M ratkaisee kielen L ja pysähtyy jokaisella syötteellä käyttäen korkeintaan p(n) eriä solua nauhalla, missä n on syötteen pituus. Vaativuusluokka PSPACE on kaikkien polynomisessa tilassa ratkeavien kielien luokka. Esimerkki Esimerkin 3.8 kone M päättää kielen L polynomisessa ajassa ja tilassa. Olkoon n syötteen pituus. Jokaisella kierroksella M siirtää lukupäänsä syötteen vasemmanpuolisimmasta yhä vertaamattomasta merkistä oikeanpuolisimpaan vertaamattomaan ja takaisin. Päädystä toiseen kulkemiseen menee vaativimmassakin tilanteessa korkeintaan 2n+1 askelta. Kierroksia tarvitaan korkeintaan n/2+1, koska syötettä verrataan molemmista päistä. Kun kierroksia ei enää tarvita, hyväksymiseen menee askel. Täten M pysähtyy alle n 2 +3n+1 askeleessa. Lukupää lukee koko syötteen ja käy vain yhdellä syötteen ulkopuolisella solulla, joten sen tilavaatimus on n + 1. Kieli L ratkeaa täten polynomisessa ajassa ja tilassa. Määritelmä Epädeterministinen Turingin kone N = (K,Σ,Γ,δ,s 0 ) on Turingin koneen variaatio, jonka tilasiirtymäfunktio on muotoa δ : K Γ P((K {s 1,s }) Γ {V,O,P}) 18
21 ja toteuttaa ehdot: 1. s 1,s,V,O,P K Σ, 2. (s b,,v) δ(s a, ) ja (s b,a j,s) δ(s a, ) kaikilla s a,s b K, a j Γ \ { }, S {V,O,P}. Merkintä s i a s j bs on ohje, kun (s j,b,s) δ(s i,a). Epädeterministisellä Turingin koneella voi olla useita ohjeita yhdelle kannalle. Epädeterministisen Turingin koneen laskennan tilanne määritellään kuten deterministisen. Koska kannoilla voi olla useita ohjeita, epädeterministisen koneen laskennan tilanteella voi olla useita seuraajia, ja täten syötteillä voi olla useita laskentoja. Syötteellä σ epädeterministinen kone suorittaa jokaisen ohjeidensa määrittelemän deterministisen laskennan syötteellä σ yhtäaikaisesti. Epädeterministinen kone hyväksyy syötteen, jos ainakin yksi sen suorittamista deterministisistä laskennoista hyväksyy, ja hylkää muutoin. Deterministiset Turingin koneet vastaavat epädeterministisiä koneita, joissa kullakin kannalla on vain yksi ohje. Epädeterministisen Turingin koneen N laskenta on mahdollista simuloida deterministisellä Turingin koneella kokeilemalla kutakin koneen N laskennan haaraa yksi kerrallaan, kunnes joko löytyy hyväksyvä haara tai kaikki haarat on käyty läpi [6, s. 178]. Epädeterministisen koneen laskennan haarojen määrä voi kasvaa eksponentiaalisesti syötteen pituuden suhteen, joten epädeterminististen koneiden simulointi deterministisillä koneilla ei yleisesti pysähdy polynomisessa ajassa. Polynomisessa ajassa ratkeavien ongelmien katsotaan olevan periaatteessa ratkaistavissa. On olemassa ongelmia, joiden ratkaisemiseen tällä hetkellä tunnetuilla menetelmillä kuluu aikaa eksponentiaalisesti, mutta epädeterministisillä koneilla ratkaisu onnistuisi polynomisessa ajassa. Epädeterministisillä Turingin koneilla polynomisessa ajassa ratkeavien ongelmien luokkaa kutsutaan nimellä NPTIME (nondeterministic polynomial time). Kysymyksen PTIME =? NPTIME vastaus on yhä tuntematon. Selvästi PTIME NPTIME. Toisen suunnan NPTIME? PTIME kysymys on yhä avoin. Tunnetaan useita ongelmia, joiden tiedetään olevan luokassa NPTIME, mutta ei tiedetä kuuluvatko ne luokkaan PTIME. Esimerkki Mahdollisesti kuuluisin ongelma, joka on luokassa NPTIME ja jonka ei tiedetä olevan luokassa PTIME, tunnetaan nimellä kauppamatkustajan ongelma. Ongelmassa on n kaupunkia, joista kunkin kaupunkiparin välinen etäisyys on tunnettu, ja halutaan selvittää lyhin reitti, jolla käydään kaikissa kaupungeissa tasan kerran. Epädeterministinen kone laskee kaikki reitit yhtäaikaisesti, merkitsee kussakin laskennan haarassa reitin pituuden muistiin ja aloittaa kasvattamaan nauhan vapaissa soluissa laskuria verraten laskurin arvoa laskennan haaran reitin pituuteen jokaisen laskurin kasvattamisen yhteydessä. Kun laskurin arvo on suurempi tai yhtäsuuri kuin laskettu reitti jossain 19
22 laskennan haarassa, kyseinen haara hyväksyy pysäyttäen laskennan. Lyhin reitti on merkittynä hyväksyneen laskennan haaran nauhalle. Polynomien luokka on suljettu yhteen- ja kertolaskun suhteen, mistä seuraa vastaava ominaisuus polynomisen ajan ja tilan vaativuusluokille. Jos kielen A PTIME aikavaatimus on polynomi p(n) ja kielen B aikavaatimus on (p(n)) x, missä x N, niin myös B PTIME. Vastaava pätee myös polynomisessa tilassa ratkeaville kielille. Tämä ominaisuus on erittäin hyödyllinen. Erityisesti voimme käyttää sitä perusteluna aliohjelmien käyttämiseen polynomisessa ajassa pysähtyviä Turingin koneita tarkasteltaessa 3.4 Moninauhaiset Turingin koneet Esittelemme tässä luvussa moninauhaisen variaation Turingin koneista. Kuten yksinauhaisessa Turingin koneessa, moninauhaisen Turingin koneen kaikki nauhat ovat vasemmalta suljettuja ja oikealle äärettömiä. Jokaisella nauhalla on oma lukupäänsä, joka voi liikkua itsenäisesti muista lukupäistä riippumatta. Määritelmällisesti ero on tilasiirtymäfunktiossa, jonka tulee ottaa huomioon lukupäiden itsenäisyys. Määritelmä k-nauhainen Turingin kone (k-tm) on viisikko M = (K,Σ,Γ,δ,s 0 ), missä: K on äärellinen joukko tiloja, syöteaakkosto Σ on merkistö, joka ei sisällä erityissymboleita,,, nauha-aakkosto Γ = Σ {,, }, δ on k-tilasiirtymäfunktio, eli funktio δ : K Γ k (K {s 1,s }) (Γ {V,O,P}) k, joka toteuttaa seuraavat ehdot: 1. s 1,s,V,O,P K Σ, 2. Kaikille jonoille ω = (s a,σ 1,...,σ k ) K Γ k, jos σ i = jollain i k ja δ(ω) = (s b,σ 1,S 1,...,σ k,s k), niin σ i = ja S i V. 2 s 0 K on alkutila Tilasiirtymäfunktioon sijoitetaan siis koneen tila ja k kappaletta luettuja symboleita, ja arvoksi saadaan koneen uusi tila ja kirjoitus- ja liikkumisohjeet jokaiselle lukupäälle. 2 Mikään lukupäistä ei voi korvata merkkiä toisella merkillä tai liikkua vasemmalle sen luettuaan. 20
23 Käytämme k-nauhaisten Turingin koneiden määrittelyssä yksinauhaista vastaavaa, mutta hiukan muokattua merkintää k-tilasiirtymäfunktioilla määrittelyä varten: s i a 0...a k 1 s j b 0 X 0...b k 1 X k 1, kun δ(s i,a 0,...,a k 1 ) = (s j,b 0,X 0,...,b k 1,X k 1 ). Vastaavasti oletamme, että merkitsemättömät tilasiirtymät menevät hylkäävään tilaan muokkaamatta nauhojen sisältöä ja liikuttamatta lukupäitä. Myös laskennan tilanteet täytyy muokata k-nauhaisille Turingin koneille sopivaksi. Täten k-nauhaisen Turingin koneen M = (K,Σ,Γ,δ,s 0 ) laskennan tilanne on monikko C = (s,t 0,h 0,...,T k 1,h k 1 ), missä, kaikilla i {0,...,k 1}, T i on funktio, joka kuvaa nauhan i sisällön kuten yksinauhaisen koneen laskennan tilanteessa, ja h i kertoo nauhan i lukupään sijainnin luettavan solun järjestysnumerona. Moninauhaiset Turingin koneet saavat syötteenä sanan, joka kirjoitetaan ensimmäiselle nauhalle ennen laskennan aloitusta. Täten kun k-tm M = (K,Σ,Γ,δ,s 0 ) saa syötteenä merkistön Σ sanan σ, on laskennan alkutilanne C 0 = (s 0,T 0,h 0,...,T k 1,h k 1 ), missä T 0 kuvaa sanan σ nauhalle kuten yksinauhaisen koneen tapauksessa, T i (x) = kaikilla x ja i 0, ja h j = 0 kaikilla j. Yksinauhaisten koneiden määritelmiä vastaavasti laskennan tilanteen seuraajat riippuvat k-tilasiirtymäfunktiosta ja se, onko laskennan tilanne hyväksyvä tai hylkäävä, koneen tilasta. Moninauhaiselle Turingin koneelle M ja sanalle σ määritellään laskenta, syötteen hyväksyntä, syötteen hylkääminen ja syötteellä pysähtyminen vastaavasti kuin yksinauhaisille koneille. Moninauhaisuus helpottaa ohjelmien hahmottamista. Esimerkissä 3.8 esittelimme yksinauhaisen palindromeja päättävän Turingin koneen. Moninauhaisella Turingin koneella saman ongelman saa yleensä ratkaistua huomattavasti pienemmällä määrällä askelia. Seuraavassa esimerkissä ratkaisemme saman ongelman moninauhaisella Turingin koneella. Esimerkki Määritellään 2-nauhainen Turingin kone M = (K,Σ,Γ,δ,s 0 ), joka tunnistaa merkistön Σ = {a,b} palindromien kielen L pal, seuraavalla tilasiirtymäfunktiolla: Aloitamme kopioimalla syötteen nauhalle 2. s 0 a s 0 aoao s 0 b s 0 bobo s 0 s 2 P V Siirretään nauhan 2 lukupää soluun 0 ja nauhan 1 lukupää syötteen viimeiselle merkille. s 2 a s 2 PaV s 2 b s 2 PbV s 2 s 3 V O Siirretään nauhan 1 lukupäätä vasemmalle ja nauhan 2 lukupäätä oikealle verraten merkkejä. Jos merkit ovat samoja koko syötteen läpi tai syöte on tyhjä, hyväksytään. s 3 aa s 0 avao s 3 bb s 0 bvbo s 3 s 1 P P s 3 s 1 P P 21
24 Kone M hyväksyy täsmälleen samat syötteet kuin esimerkin 3.8 kone. Joskus on hyödyllistä, esimerkiksi esityksen selvyyden kannalta, määritellä jonkin toiminnon suorittava Turingin kone M erikseen ja hyödyntää sen ohjeistoa muissa koneissa M. Tämä tehdään lisäämällä koneeseenm sopivasti uusia nauhoja, tiloja ja ohjeita simuloimaan koneen M toimintaa halutuilla nauhoilla. Kun simuloitava kone M yrittää siirtyä hyväksyvään tilaansa, siirrytään takaisin koneelle tarkoituksenmukaiseen tilaan koneessa M. Sanomme tällöin käyttävämme Turingin konetta M aliohjelmana. Seuraavassa esimerkissä kaksinauhainen Turingin kone laskee syötteen alusta peräkkäisten ykkösten jonon pituuden binääriesityksen nauhalle 2 ja hyväksyy syötteen. Käytämme osia tämän koneen toiminnasta myöhemmin muiden koneiden aliohjelmana. Esimerkki Määritellään kaksinauhainen Turingin kone M = (K,Σ,Γ,δ,s 0 ), missä Σ = {0, 1}, seuraavalla tilasiirtymäfunktiolla: Aluksi järjestämme nauhan 2 sisällöksi nollan binääriesityksen. 0 s 0 1 s 2 1P0O s 0 0 s 2 0P0O s 0 s 2 P0O s 2 1 s 3 1P V s 2 0 s 3 0P V s 2 s 3 P V Jos s 3 lukee nauhalta 1 tyhjän merkin tai nollan, tiedetään ykkösjonon loppuneen ja nauhan 2 binääriesityksen olevan valmis. s 3 0 s 1 P0P s 3 1 s 1 P1P s 3 00 s 1 0P0P s 3 01 s 1 0P1P Jos s 3 lukee nauhalta 1 ykkösen, on binääriesitystä muutettava. s 3 10 s 8 1O1P s 3 11 s 3 1P0V s 3 1 s 4 1P O Tilan s 4 tarkoitus on siirtää nauhan 2 lukupää merkin oikealle puolelle. s 4 10 s 4 1P0O s 4 11 s 4 1P1O s 4 1 s 5 1P0O Tilat s 5 ja s 6 siirtävät nollista ja lopetusmerkistä koostuvan binääriesityksen välivaiheen yhden paikan oikealle. Tila s 7 merkitsee ykkösen vasemmanpuolisimpaan soluun, ja koska binääriesityksen luku on taas kasvanut yhdellä, lukunauhan 1 lukupää siirtyy oikealle. s 5 1 s 6 1P V s 6 10 s 6 1P0V s 6 1 s 7 1P O s 7 10 s 8 1O1O Tila s 8 tarkistaa aluksi, onko syötteen alun ykkösjono käyty läpi. Jos on, binääriesitys on valmis ja siirrytään hyväksymistilaan. Muutoin s 8 siirtää nauhan 2 lukupään binääriesityksen oikeaan päähän ja aloittaa seuraavan kierroksen siirtymällä tilaan s 3. s 8 00 s 1 0P0P s 8 0 s 1 P0P s 8 10 s 8 1P0O s 8 11 s 8 1P1O s 8 1 s 3 1P V 22
25 Syötteellä koneen M tila hyväksyessä on kuten alla olevassa kuvassa. Nauha Nauha Kuvasta näemme, että nauhalla 2 on 101, joka on luvun 5 binääriesitys. Näytetään vielä, että M suorittaa laskentansa polynomisessa ajassa. Olkoon n syötteen pituus. Jokainen syöte alkaa nollan binääriesityksellä, johon menee 2 askelta. Jokaista syötteen merkkiä kohti lisätään binääriesitykseen yksi, ja pahimmillaan tämä tarkoittaa koko binääriesityksen siirtoa oikealle. Koska binääriesityksen pituus reunamerkkeineen on pienempi tai yhtäsuuri kuin log 2 (n)+2, sen oikealle siirtämisessä menee korkeintaan 2 log 2 (n) + 6 askelta. Syötteen loputtua hyväksymiseen menee askel. Täten voimme asettaa laskun ylärajaksi n(2 log 2 (n)+6)+3. Polynomi 2n 2 +6n+3 on aina suurempi, joten M pysähtyy polynomisessa ajassa. Edellisen esimerkin Turingin kone M hyväksyy jokaisen syötteen, joten sen määrittelemä kieli ei ole erityisen kiinnostava. On tilanteita, joissa ollaan kiinnostuneempia työnauhojen sisällöstä kuin koneen määrittelemästä kielestä. Tämän tutkielman kannalta työnauhojen sisältö on tarpeellista vain välivaiheille, joten asiaan ei perehdytä tämän tarkemmin. Seuraava lause todistuksineen on hiukan muokattu versio Papadimitrioun kirjasta löytyvästä [5, s. 30]. Lause Olkoon M mielivaltainen k TM, joka toimii ajassa f(n). Tällöin on olemassa yksinauhainen Turingin kone M, joka toimii ajassa α f(n) 2 jollain α N, ja tunnistaa saman kielen kuin M. Todistus. Yksinauhaisen koneemme idea tulee olemaan simuloida koneen M moninauhaista toimintaa koneen M yhdellä nauhalla siten, että koneen M nauhat esitetään katenoituna sopivilla välimerkeillä ja koneelle M lisätään simulointiin tarvittavaa muistia erikoismerkeillä ja ylimääräisillä tiloilla. OlkoonM = (K,Σ,Γ,δ,s 0 ). Luomme yksinauhaisen koneemmem = (K,Σ,Γ,δ,s 0 ) seuraavasti. Esitellään ensimmäiseksi tarvittavat erikoismerkit. Tarvitsemme simuloitavien nauhojen reunamerkkien tilalle välimerkit, joiden yli lukupää voi kulkea ja myöhemmin ylimääräisen oikean reunan merkin, {,, }. Moninauhaisella Turingin koneella on useita 23
26 lukupäitä, ja tarvitsemme keinon muistaa niiden sijainnit simulaatiossa. Koska lukupäät voivat olla minkä tahansa merkin päällä, tarvitsemme erikoismerkin jokaiselle merkille merkistössä. Yksinkertaisuuden vuoksi oletamme, ettei merkistössä ole alleviivattuja merkkejä, ja valitsemme jokaiselle merkistön merkille a vastaavaksi erikoismerkiksi alleviivatun version a. Merkitään Σ = {a a Σ {,, }}. Yksinauhaisen koneemme M merkistöksi saadaan Σ = Σ {,, } Σ. Aivan ensimmäiseksi M muokkaa nauhan simulaatiolle sopivaksi. Tätä varten M siirtää koko syötteen yhden solun verran oikealle ja korvaa vasemmalla "vapautuneen"solun 0 sisällön merkillä. Seuraavaksi M siirtää lukupäänsä oikealle ensimmäiselle tyhjän merkin sisältävälle solulle ja kirjoittaa sanan ( ) k 1, missä ( ) k 1 tarkoittaa 2k 2 merkkiä pitkää merkkijonoa. Loppuun tulevan välimerkkijonon kirjoittamisen pystyy toteuttamaan lisäämällä koneeseen M 2k+2 tilaa sitä varten. Valmisteluvaiheen lopuksi M siirtää päänsä nauhan vasempaan reunaan. Koneen M täytyy muistaa simuloitujen lukupäiden sijainnit, minkä ratkaisemme lisätyillä tiloilla. Lukupäiden sijaintien muistamiseen käytettäviä tiloja voi olla huomattavan paljon, koska tilojen tulee koodata koneen M toiminta, simulaation vaihe, ja simulaation lukemat merkit. Pelkästään koodaukseen tiloja täytyy täten olla koneen M jokaisen vaiheen ja aakkoston Σ symbolien k-monikon yhdistelmälle. Kone M simuloi koneen M laskennan askeleen käymällä nauhansa läpi vasemmalta oikealle kahdesti. Ensimmäisellä kierroksella M etsii jokaisen alleviivatun merkin ja siirtyy tilaan, joka muistaa kyseisen kierroksen tähän mennessä löydetyt alleviivatut merkit ja koneen M tilan simulaatiossa. Poikkeuksena edellämainittuun on merkki, jonka kohdatessaan M ei yritäkään muistaa sitä, vaan siirtyy suoraan nauhan oikeaan reunaan merkkien oikeanpuoleiseen soluun, siirtää kaikki merkin oikealla puolella olevat merkit yhden oikealle, kirjoittaa merkin vapautuneeseen soluun merkin oikealla puolella, korvaa itse merkin merkillä siirtäen samalla lukupään yhden merkin vasemmalle ja palaa poikkeusta edeltäneeseen tilaan jatkaakseen alleviivattujen etsintöjä. Tämä poikkeustapaus laajentaa simuloitua nauhaa yhdellä merkillä. Ensimmäisen kierroksen jälkeen M on siis tilassa, joka koodaa jokaisen simuloidun lukupään sijainnin ja koneen M tilan, ja täten sillä on kaikki tarvittava tieto koneen M liikkeen simuloimiseen. Käydessään nauhaa läpi vasemmalta oikealle toisella kertaa M muokkaa matkan varrella merkkejä alleviivattujen ympäriltä sopivasti siten, että alleviivatut vaihtuvat kuten koneen M nauhoilla ja alleviivaukset ovat simulaation kannalta oikeiden merkkien alla. Simulaatio päättyy, kun M pysähtyy. Koska M pysähtyy syötteellä x ajassa f( x ), kullakin sen nauhoista on käytetty korkeintaan f( x ) ruutua. Täten koneen M nauhalla on käytössä korkeintaan k(f( x ) + 1) + 1 merkkiä. Täten pahimmillaan yhden liikkeen simulaation kaksi edestakaista matkaa kestää 4k(f( x ) + 1) + 4 askelta, ja lisäksi korkeintaan 3k(f( x ) + 1) + 3 askelta jokaista simuloitua nauhaa kohti. Yhteenlaskettuna 24
Turingin koneen laajennuksia
Turingin koneen laajennuksia Turingin koneen määritelmään voidaan tehdä erilaisia muutoksia siten että edelleen voidaan tunnistaa tasan sama luokka kieliä. Moniuraiset Turingin koneet: nauha jakautuu k
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna
Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna. q 0 x solmuina laskennan mahdolliset tilanteet juurena alkutilanne lehtinä tilanteet joista ei siirtymää,
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.
9.5. Turingin kone. Turingin koneen ohjeet. Turingin kone on järjestetty seitsikko
9.5. Turingin kone Turingin kone on järjestetty seitsikko TM = (S, I, Γ, O, B, s 0, H), missä S on tilojen joukko, I on syöttöaakkosto, Γ on nauha-aakkosto, I Γ, O on äärellinen ohjeiden joukko, O S Γ
Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja
581336 Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja 1. S! axc X! axc X! by c Y! by c Y! " 2. (a) Tehtävänä on konstruoida rajoittamaton kielioppi, joka tuottaa kielen f0 n 1 n jn 1g. Vaihe1: alkutilanteen
δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.
42 Turingin koneiden laajennuksia 1 oniuraiset koneet Sallitaan, että Turingin koneen nauha koostuu k:sta rinnakkaisesta urasta, jotka kaikki kone lukee ja kirjoittaa yhdessä laskenta-askelessa: Koneen
Algoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 2.5.2017 Timo Männikkö Luento 13 Merkkijonon sovitus Horspoolin algoritmi Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys
Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 10. joulukuuta 2015 Sisällys TM vs yleiset kieliopit Lause Jokaiselle kielelle A seuraavat ovat yhtäpitävät: 1.
4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:
T-79.148 Kevät 2004 Tietojenkäsittelyteorian perusteet Harjoitus 12 Demonstraatiotehtävien ratkaisut 4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi: Hyväksyykö annettu Turingin kone
Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 17. lokakuuta 2016 Sisällys Harjoitustehtävätilastoa Tilanne 17.10.2016 klo 15:07 passed waiting redo submitters
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
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,
Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja
582206 Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja 1. Seuraavissa laskennoissa tilat on numeroitu sarakkeittain ylhäältä alas jättäen kuitenkin hyväksyvä tila välistä. Turingin koneen laskenta
3. Laskennan vaativuusteoriaa
3. Laskennan vaativuusteoriaa tähän asti puhuttu siitä, mitä on mahdollista laskea äärellisessä ajassa siirrytään tarkastelemaan laskemista kohtuullisessa ajassa vaihtoehtoisesti voidaan laskenta-ajan
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
Lisää pysähtymisaiheisia ongelmia
Lisää pysähtymisaiheisia ongelmia Lause: Pysähtymättömyysongelma H missä H = { w111x w validi koodi, M w ei pysähdy syötteellä x } ei ole rekursiivisesti lueteltava. Todistus: Pysähtymisongelman komplementti
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
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
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.
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
Esimerkkejä polynomisista ja ei-polynomisista ongelmista
Esimerkkejä polynomisista ja ei-polynomisista ongelmista Ennen yleisempiä teoriatarkasteluja katsotaan joitain tyypillisiä esimerkkejä ongelmista ja niiden vaativuudesta kaikki nämä ongelmat ratkeavia
Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 6. maaliskuuta 2012 Sisällys Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on
Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.
TIEA241 Automaatit ja kieliopit, kesä 2013 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 20. kesäkuuta 2013 Sisällys Päätösongelmat Ongelma on päätösongelma (engl. decision problem), jos se on muotoa Onko
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 19. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 19. syyskuuta 2016 Sisällys Neuvoja opintoihin tee joka päivä ainakin vähän uskalla mennä epämukavuusalueelle en
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ä
Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.
TIE303 Formaalit menetelmät, kevät 2005 Logiikan kertausta Antti-Juhani Kaijanaho antkaij@mit.jyu.fi Jyväskylän yliopisto Tietotekniikan laitos TIE303 Formaalit mentetelmät, 2005-01-27 p. 1/17 Luento2Luentomoniste
Hahmon etsiminen syotteesta (johdatteleva esimerkki)
Hahmon etsiminen syotteesta (johdatteleva esimerkki) Unix-komennolla grep hahmo [ tiedosto ] voidaan etsia hahmon esiintymia tiedostosta (tai syotevirrasta): $ grep Kisaveikot SM-tulokset.txt $ ps aux
Rajoittamattomat kieliopit
Rajoittamattomat kieliopit Ohjelmoinnin ja laskennan perusmalleista muistetaan, että kieli voidaan kuvata (esim.) kieliopilla joka tuottaa sen, tai automaatilla joka tunnistaa sen. säännölliset lausekkeet
C C. x 2. x 3 x 3. Lause 3SAT p m VC Todistus. Olk. φ = C 1 C 2 C m 3-cnf-kaava, jossa esiintyvät muuttujat. φ toteutuva:
Lause 3SAT p m VC Todistus. Olk. φ = C 1 C C m 3-cnf-kaava, jossa esiintyvät muuttujat x 1,..., x n. Vastaava solmupeiteongelman tapaus G, k muodostetaan seuraavasti. G:ssä on solmu kutakin literaalia
7. Aikavaativuus. Ohjelmistotekniikan laitos OHJ-2300 Johdatus tietojenkäsittelyteoriaan, syksy
212 7. Aikavaativuus Edellä tarkasteltiin ongelmien ratkeavuutta kiinnittämättä huomiota ongelman ratkaisun vaatimaan aikaan Nyt siirrytään tarkastelemaan ratkeavien ongelmien aikavaativuutta Periaatteessa
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,
verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari
Tehtävä 9 : 1 Merkitään kirjaimella G tehtäväpaperin kuvan vasemmanpuoleista verkkoa sekä kirjaimella H tehtäväpaperin kuvan oikeanpuoleista verkkoa. Kuvan perusteella voidaan havaita, että verkko G on
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
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.
M =(K, Σ, Γ,, s, F ) Σ ={a, b} Γ ={c, d} = {( (s, a, e), (s, cd) ), ( (s, e, e), (f, e) ), (f, e, d), (f, e)
Tik-79.148 Kevät 2001 Tietojenkäsittelyteorian perusteet Laskuharjoitus 7 Demonstraatiotehtävien ratkaisut 1. Pinoautomaatti M = K Σ Γ s F missä K Σ s ja F on määritelty samalla tavalla kuin tilakoneellekin.
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
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,
Äärellisten mallien teoria
Äärellisten mallien teoria Harjoituksen 7 ratkaisut (Hannu Niemistö) Tehtävä 1 Olkoot G ja H äärellisiä verkkoja, joilla kummallakin on l yhtenäistä komponenttia Olkoot G i, i {0,,l 1}, verkon G ja H i,
Luokan P loogisesta karakterisoinnista
Luokan P loogisesta karakterisoinnista Janne Korhonen Pro Gradu 18. marraskuuta 2009 Helsingin yliopisto Matematiikan ja tilastotieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF
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.
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
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
Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?
Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin? 2013-2014 Lasse Lensu 2 Algoritmit ovat deterministisiä toimintaohjeita
Insinöörimatematiikka A
Insinöörimatematiikka A Mika Hirvensalo mikhirve@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2018 Mika Hirvensalo mikhirve@utu.fi Luentoruudut 3 1 of 23 Kertausta Määritelmä Predikaattilogiikan
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
isomeerejä yhteensä yhdeksän kappaletta.
Tehtävä 2 : 1 Esitetään aluksi eräitä havaintoja. Jokaisella n Z + symbolilla H (n) merkitään kaikkien niiden verkkojen joukkoa, jotka vastaavat jotakin tehtävänannon ehtojen mukaista alkaanin hiiliketjua
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:
Konsensusongelma hajautetuissa järjestelmissä. Niko Välimäki Hajautetut algoritmit -seminaari
Konsensusongelma hajautetuissa järjestelmissä Niko Välimäki 30.11.2007 Hajautetut algoritmit -seminaari Konsensusongelma Päätöksen muodostaminen hajautetussa järjestelmässä Prosessien välinen viestintä
Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.
Ei-säännöllisiä kieliä [Sipser luku 1.4] Osoitamme, että joitain kieliä ei voi tunnistaa äärellisellä automaatilla. Tulos ei sinänsä ole erityisen yllättävä, koska äärellinen automaatti on äärimmäisen
(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. 5. marraskuuta 2015
TIEA24 Automaatit ja kieliopit, syksy 205 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 5. marraskuuta 205 Sisällys Käsiteanalyysiä Tarkastellaan koodilukkoa äärellisenä automaattina. Deterministinen äärellinen
Äärellisten mallien teoria
Äärellisten mallien teoria Harjoituksen 4 ratkaisut Tehtävä 1. Määritä suurin aste k, johon saakka kuvan verkot G ja G ovat osittaisesti isomorfisia: Ratkaisu 1. Huomataan aluksi, että G =4 G : Ehrenfeucht-Fraïssé
Muita vaativuusluokkia
Muita vaativuusluokkia Käydään lyhyesti läpi tärkeimpiä vaativuusluokkiin liittyviä tuloksia. Monet tunnetuista tuloksista ovat vaikeita todistaa, ja monet kysymykset ovat vielä auki. Lause (Ladner 1975):
MS-A0402 Diskreetin matematiikan perusteet
MS-A040 Diskreetin matematiikan perusteet Osa : Relaatiot ja funktiot Riikka Kangaslampi 017 Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Relaatiot Relaatio Määritelmä 1 Relaatio joukosta A
= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120
Tehtävä 1 : 1 Merkitään jatkossa kirjaimella H kaikkien solmujoukon V sellaisten verkkojen kokoelmaa, joissa on tasan kolme särmää. a) Jokainen verkko G H toteuttaa väitteen E(G) [V]. Toisaalta jokainen
Säännöllisen kielen tunnistavat Turingin koneet
186 Säännöllisen kielen tunnistavat Turingin koneet Myös säännöllisen kielen hyväksyvien Turingin koneiden tunnistaminen voidaan osoittaa ratkeamattomaksi palauttamalla universaalikielen tunnistaminen
1. Universaaleja laskennan malleja
1. Universaaleja laskennan malleja Esimerkkinä universaalista laskennan mallista tarkastellaan Turingin konetta muunnelmineen. Lyhyesti esitellään myös muita malleja. Tämän luvun jälkeen opiskelija tuntee
TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012
TIEA241 Automaatit ja kieliopit, kevät 2012 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. tammikuuta 2012 Sisällys Sisällys Äärellisiä automaatteja PUSH ON PUSH OFF Q T Q J C C H S C,Q C,Q 0 50s 1e
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
Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja
582206 Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja 1. Esitä tilakaaviona NFA N = (Q, Σ, δ, q 0, F ), missä Q = { q 0, q 1, q 2, q 3, q 4, q 5, q 6, q 7 }, Σ = { a, b, c }, F = { q 4 } ja δ on
T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )
T-79144 Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet 11-22) 26 29102004 1 Ilmaise seuraavat lauseet predikaattilogiikalla: a) Jokin porteista on viallinen
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
(Interaktiivisen tietokoneohjelman tapauksessa tietenkin syötteet ja tulosteet vuorottelevat.
"!#$ Edellisissä luvuissa on ollut esimerkkejä malleista: toisaalta puhtaasti matemaattisia objekteja, kuten ryhmiä, lineaarijärjestettyjä joukkoja ja verkkoja, toisaalta sellaisia malleja, kuten suomalaisten
Büchin lause ja transitiivisen sulkeuman logiikat
TAMPEREEN YLIOPISTO Matematiikan Pro Gradu -tutkielma Outi Vatula Büchin lause ja transitiivisen sulkeuman logiikat Matematiikan, tilastotieteen ja filosofian laitos Matematiikka Joulukuu 2005 TAMPEREEN
T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )
T-79.144 Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet 2.3-3.4) 2 5.11.2005 1. Olkoon R kaksipaikkainen predikaattisymboli, jonka tulkintana on relaatio R A
Äärellisten mallien teoria
Äärellisten mallien teoria Harjoituksen 2 ratkaisut Tehtävä 1 Olkoon X = {a, b, c} kolmen alkion joukko. a) Mikä on joukon X eri laskutoimitusten lukumäärä? b) Kuinka moni näistä laskutoimituksista on
6.1 Rekursiiviset palautukset
6.1 Rekursiiviset palautukset Olk. = (Q, Σ, Γ, δ, q 0, q acc, q rej ) mv. standardimallinen Turingin kone ääritellään koneen laskema osittaisfunktio f : Σ Γ seur. u, jos q 0 w u q av, f (w) = q { q acc,
T Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut
T-79.148 Syksy 2002 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S tuottama
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 12. marraskuuta 2015 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 a 5 00 k 11 i
Säännöllisten kielten sulkeumaominaisuudet
Säännöllisten kielten sulkeumaominaisuudet Osoitamme nyt, että säännöllisten kielten joukko on suljettu yhdisteen, konkatenaation ja tähtioperaation suhteen. Toisin sanoen jos A ja B ovat säännöllisiä,
Äärellisten automaattien ja säännöllisten kielten ekvivalenssi
Äärellisten automaattien ja säännöllisten kielten ekvivalenssi Osoitamme seuraavan keskeisen tuloksen: Lause 1.8: [Sipser Thm. 1.54] Kieli on säännöllinen, jos ja vain jos jokin säännöllinen lauseke esittää
Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.
Väite: T (n) (a + b)n 2 + a. Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m. Huomaa että funktion x x 2 + (m 1 x) 2 kuvaaja on ylöspäin aukeava paraabeli, joten funktio saavuttaa suurimman
uv n, v 1, ja uv i w A kaikilla
2.8 Säännöllisten kielten rajoituksista Kardinaliteettisyistä on oltava olemassa (paljon) ei-säännöllisiä kieliä: kieliä on ylinumeroituva määrä, säännöllisiä lausekkeita vain numeroituvasti. Voidaanko
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon
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/
Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: 1 (Alkuarvot) Ilmoitetaan funktion arvot
Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.
Joukon määritelmä Joukko on alkioidensa kokoelma. Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti. Näin ei tässä
Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on
Rekursio Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on käyttää rekursiota: Rekursio Funktio f : N R määritellään yleensä
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ää
TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut
TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut Pisteytys on ilmoitettu välikoevaihtoehdon mukaan (joko tehtävät 1, 2 ja 3 välikokeen 1 uusintana tai tehtävät 4, 5 ja 6 välikokeen 2 uusintana).
TAMPEREEN YLIOPISTO Pro gradu -tutkielma. Roosa Niemi. Riippuvuuslogiikkaa
TAMPEREEN YLIOPISTO Pro gradu -tutkielma Roosa Niemi Riippuvuuslogiikkaa Informaatiotieteiden yksikkö Matematiikka Syyskuu 2011 Tampereen yliopisto Informaatiotieteiden yksikkö ROOSA NIEMI: Riippuvuuslogiikkaa
TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 22. toukokuuta 2013
TIEA24 Automaatit ja kieliopit, kesä 3 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 22. toukokuuta 3 Sisällys Äärellisiä automaatteja ON PUSH PUSH OFF Q T J Q C C H S C,Q C,Q 0 40 60 80 00, 70 90 Deterministinen
1.1. Määritelmä. a) Termit ovat merkkijonoja, jotka muodostuvat induktiivisesti. k 1
Tähän mennessä aakkoston rooli on jäänyt mallin käsitteessä hivenen irralliseksi seikaksi, sillä symboleita on käytetty lähinnä mallin rakenneosien (funktioiden, relaatioiden ja vakioiden) indeksoimiseen.
Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.
Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta
LUKU II HOMOLOGIA-ALGEBRAA. 1. Joukko-oppia
LUKU II HOMOLOGIA-ALGEBRAA 1. Joukko-oppia Matematiikalle on tyypillistä erilaisten objektien tarkastelu. Tarkastelu kohdistuu objektien tai näiden muodostamien joukkojen välisiin suhteisiin, mutta objektien
Matematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 1 Määrittelyjoukoista Tarkastellaan funktiota, jonka määrittelevä yhtälö on f(x) = x. Jos funktion lähtöjoukoksi määrittelee vaikkapa suljetun välin [0, 1], on funktio
Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,
Relaation Joukossa X määritelty relaatio R on (r) refleksiivinen, jos xrx kaikilla x X, (ir) irrefleksiivinen, jos x Rx kaikilla x X, Relaation Joukossa X määritelty relaatio R on (r) refleksiivinen, jos
S BAB ABA A aas bba B bbs c
T-79.148 Kevät 2003 Tietojenkäsittelyteorian perusteet Harjoitus 8 Demonstraatiotehtävien ratkaisut 4. Tehtävä: Laadi algoritmi, joka testaa onko annetun yhteydettömän kieliopin G = V, Σ, P, S) tuottama
Tietotekniikan valintakoe
Jyväskylän yliopisto Tietotekniikan laitos Tietotekniikan valintakoe 2..22 Vastaa kahteen seuraavista kolmesta tehtävästä. Kukin tehtävä arvostellaan kokonaislukuasteikolla - 25. Jos vastaat useampaan
Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,
Relaation Joukossa X määritelty relaatio R on (r) refleksiivinen, jos xrx kaikilla x X, (ir) irrefleksiivinen, jos x Rx kaikilla x X, (s) symmetrinen, jos xry yrx, (as) antisymmetrinen, jos xry yrx x =
Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen.
261 Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen. Pitää osoittaa siis, että A mp SAT mielivaltaisella A NP Ainoa, mitä A:sta tiedetään on, että sillä on polynomisessa
= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko
238 7.2 Luokka NP Luokka NP on: NP = { NTIME(t) t on polynomi } = k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko P NP Luokan NP ongelmista
Luonnollisen päättelyn luotettavuus
Luonnollisen päättelyn luotettavuus Luotettavuuden todistamiseksi määrittelemme täsmällisesti, milloin merkkijono on deduktio. Tässä ei ole sisällytetty päättelysääntöihin iteraatiosääntöä, koska sitä
Näytetään nyt relaatioon liittyvien ekvivalenssiluokkien olevan verkon G lohkojen särmäjoukkoja. Olkoon siis f verkon G jokin särmä.
Tehtävä 6 : 1 Oletetaan ensin joukon X olevan sisältymisen suhteen minimaalinen solmut a ja b toisistaan erotteleva joukon V(G)\{a, b} osajoukko. Olkoon x joukon X alkio. Oletuksen nojalla joukko X\{x}
Onko kuvaukset injektioita? Ovatko ne surjektioita? Bijektioita?
Matematiikkaa kaikille, kesä 2017 Avoin yliopisto Luentojen 2,4 ja 6 tehtäviä Päivittyy kurssin aikana 1. Olkoon A = {0, 1, 2}, B = {1, 2, 3} ja C = {2, 3, 4}. Luettele joukkojen A B, A B, A B ja (A B)
Injektio (1/3) Funktio f on injektio, joss. f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f )
Injektio (1/3) Määritelmä Funktio f on injektio, joss f (x 1 ) = f (x 2 ) x 1 = x 2 x 1, x 2 D(f ) Seurauksia: Jatkuva injektio on siis aina joko aidosti kasvava tai aidosti vähenevä Injektiolla on enintään
Johdatus matematiikkaan
Johdatus matematiikkaan Luento 7 Mikko Salo 11.9.2017 Sisältö 1. Funktioista 2. Joukkojen mahtavuus Funktioista Lukiomatematiikassa on käsitelty reaalimuuttujan funktioita (polynomi / trigonometriset /
3SAT-ongelman NP-täydellisyys [HMU ]
3SAT-ongelman NP-täydellisyys [HMU 10.3.4] erotukseksi yleisestä CNF-esityksestä, kaikilla kaavoilla ei ole 3-CNF-esitystä; esim. x 1 x 2 x 3 x 4 esitämme muunnoksen, jolla polynomisessa ajassa mielivaltaisesta
T Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )
T-79.3001 Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet 2.3 3.4) 21. 24.3.2006 1. Olkoon R kaksipaikkainen predikaattisymboli, jonka tulkintana on relaatio
PRO GRADU -TUTKIELMA. Satu Vahtera. 0 1 lait äärellisissä malleissa
PRO GRADU -TUTKIELMA Satu Vahtera 0 1 lait äärellisissä malleissa TAMPEREEN YLIOPISTO Informaatiotieteiden yksikkö Matematiikka Tammikuu 2012 2 Tampereen yliopisto Informaatiotieteiden yksikkö VAHTERA,