Polynomiset palautukset ja NP-täydellisyys
|
|
|
- Pekka Heino
- 9 vuotta sitten
- Katselukertoja:
Transkriptio
1 Polynomiset palautukset ja NP-täydellisyys [HMU , ] Polynomisen palautuksen idea on sama kuin rekursiivisen palautuksen, paitsi että liikutaan polynomisen aikavaativuuden maailmassa. Funktio f voidaan laskea polynomisessa ajassa, jos jokin Turingin kone M laskee sen ja time M (n) = O(n k ) jollain k. Funktio f: Σ Γ palauttaa polynomisesti kielen A Σ kieleen B Γ, merkitään f: A p m B, jos f on laskettavissa polynomisessa ajassa ja x A f(x) B kaikilla x Σ. Jos tällainen f on olemassa, sanotaan että kieli A palautuu polynomisesti kieleen B ja merkitään A p m B. Lemma 3.1: Olkoon S jokin vaativuusluokista P, NP, PSPACE, E, NE. Jos A p m B ja B S, niin A S. Todistus: Helppo. 200
2 B A fa A fa B Σ Γ Periaatekuva polynomisesta palautuksesta f: A p m B (kuva sama kuin sivulla 117, mutta nyt f laskettavissa polynomisessa ajassa) 201
3 Olkoon C P(Σ ) luokka aakkoston Σ kieliä. Jatkossa yleensä C = NP, mutta myös tapaukset C = PSPACE ja C = E (jne.) ovat kiinnostavia. Kieli A Σ on C-täydellinen polynomisten palautusten suhteen jos 1. A C ja 2. B p m A kaikilla B C Kieli A Σ on C-kova polynomisten palautusten suhteen jos B p m A kaikilla B C. Siis C-kova ongelma on ainakin yhtä vaikea kuin mikä tahansa luokan C ongelma. Luokan C maksimaalisen vaikeat ongelmat ovat C-täydellisiä. Yleensä puhutaan vain NP-täydellisyydestä jne. ja yhteydestä selviää että puhutaan polynomisista palautuksista (mutta muunkinlaisia palautuksia esiintyy vaativuusteoriassa). 202
4 Täydellisten joukkojen perusominaisuuksia Lemma 3.2: Jos A p m B ja B p m C niin A p m C. Todistus: HT. Korollaari 3.3: [HMU Thm 10.4] Jos A p m B ja A on C-kova niin B on C-kova. Erityisesti B osoitetaan NP-kovaksi palauttamalla jokin tunnettu NP-kova A siihen. Jos lisäksi B NP, niin B on tällöin NP-täydellinen. Korollaari 3.4: [HMU Thm 10.5] Jos A on C-kova ja A P, niin C P. Erityisesti jos jollakin NP-täydellisellä ongelmalla on polynomisessa ajassa toimiva ratkaisu, niin P = NP (mitä siis ei pidetä luultavana). 203
5 Huomautuksia NP-täydellisyydestä ym. Jos A ei ole päätösongelma (vaan esim. etsintäongelma), sanotaan että A on NP-kova, jos polynomisen algoritmin olemassaolosta ongelmalle A seuraisi P = NP. Sen sijaan muita kuin päätösongelmia ei pidä sanoa NP-täydellisiksi. Kaikilla vaativuusluokilla C ei ole täydellisiä ongelmia. Voi esim. olla olemassa päättymätön jono yhä vaikeampia ongelmia A 0 p m A 1 p m A 2 p m..., missä A i C ja A i+1 p m A i kaikilla i. Kaikilla tähän mennessä esitellyillä luokilla kuitenkin on täydellisiä ongelmia. Seuraavana tavoitteena on osoittaa, että edellä mainittu toteutuvuusongelma SAT on NP-täydellinen. Tätä ennen luodaan alustava katsaus siihen, millaisia NP-täydellisiä ongelmia tunnetaan. 204
6 Esimerkkejä NP-täydellisistä ongelmista Toteutuvuus (Satisfiability, SAT) Annettu: propositiologiikan kaava φ Kysymys: onko φ toteutuva Hamiltonin kehä (Hamiltonian Circuit, HC) Annettu: suuntaamaton verkko G Kysymys: onko verkossa G Hamiltonin kehä Kauppamatkustajan ongelma (Travelling Salesman Problem, TSP) Annettu: suuntaamaton verkko G, painot c(u, v) N kaikille kaarille (u, v) E, luonnollinen luku k (Siis tarkemmin syöte on sopivasti koodattu kolmikko G, c, k.) Kysymys: onko verkossa G Hamiltonin kehä jonka kokonaispaino on kork. k 205
7 Lisää NP-täydellisiä ongelmia Solmupeite (Vertex Cover, VC) [HMU Node Cover (NC)] Annettu: suuntaamaton verkko G = (V, E), luonnollinen luku k Kysymys: onko verkossa G kork. k solmua sisältävä solmupeite, ts. joukko U V joka kaikista kaarista (u, v) E sisältää ainakin toisen päätepisteen u tai v. Riippumaton joukko (Independent Set, IS) Annettu: suuntaamaton verkko G = (V, E), luonnollinen luku k Kysymys: onko verkossa G riippumaton joukko jossa väh. k solmua, ts. sellainen U V että (u, v) E kaikilla u, v U Klikki (Clique, CLIQUE) Annettu: suuntaamaton verkko G = (V, E), luonnollinen luku k Kysymys: onko verkossa G klikki jossa väh. k solmua, ts. sellainen U V että (u, v) E kaikilla u, v U 206
8 Vielä lisää NP-täydellisiä ongelmia Verkonväritys (Graph Coloring, GC) Annettu: suuntaamaton verkko G, luonnollinen luku k Kysymys: voidaanko verkon G solmut värittää k värillä niin että minkään kaaren päätepisteet eivät ole saman väriset Ositus (Partition, PARTITION) Annettu: jono (a 1,..., a n ) luonnollisia lukuja Kysymys: onko olemassa A { 1,..., n } jolla i A a i = i A a i Repunpakkaus (Knapsack, KNAPSACK) Annettu: äärellinen joukko U ( esineet ) ja jokaiselle u U arvo v(u) N ja paino w(u) N; kokonaisluvut V ja W Kysymys: voidaanko valita sellainen joukko X U esineitä, että x X w(x) W ja x X v(x) V 207
9 Toiminta kun kohdataan NP-täydellinen ongelma 1. Havaitaan että käsillä oleva ongelma A näyttää NP-täydelliseltä 2. Etsitään kirjallisuudesta samantyyppinen NP-täydelliseksi tunnettu ongelma B; peruslähde Garey & Johnson: Computers and Intractability (1979) 3. Osoitetaan B p m A 4. Mietitään mitä sitten tehdään Huom. yleensä tällaisissa tilanteissa ollaan viime kädessä kiinnostuneita muusta kuin päätösongelmasta, esim. etsintäongelmasta (vrt. HC) tai optimointiongelmasta kuten TSP-ongelmaan liittyvä opt-tsp: annettu painotettu verkko, määrättävä pienin Hamiltonin kehän paino 208
10 Miten käytännössä ratkaistaan NP-kova ongelma Luultavasti ei kannata etsiä algoritmia joka aina toimii polynomisessa ajassa ja antaa tarkalleen oikean ratkaisun. Ehkä voidaan tehdä helpottavia lisäoletuksia siitä, millaisia syötteitä todella esiintyy. Jos tapaukset ovat riittävän pieniä, ehkä huolellisesti viritetty ei-polynominen algoritmi on riittävän nopea (branch-and-bound). Ehkä on olemassa tehokas approksimointialgoritmi joka todistettavasti löytää melkein optimaalisen ratkaisun. Ehkä joku heuristinen algoritmi, mahdollisesti yhdistettynä satunnaisuuteen, antaa riittävän hyviä ratkaisuja (lokaali haku, simuloitu jäähdytys). 209
11 Esimerkkejä NP-täydellisyystodistuksista Oletetaan tunnetuksi että IS on NP-täydellinen (tämä tullaan osoittamaan jatkossa) Lause 3.5: [HMU Thm 10.20] VC on NP-täydellinen. Todistus: Helposti nähdään VC NP (harj.teht.). Osoitetaan IS p m VC. Olkoon G = (V, E) missä V = n, ja U V. Nyt U on riippumaton joukko millään (u, v) E ei päde u U ja v U kaikilla (u, v) E pätee u V U tai v V U V U on solmupeite. Siis verkossa G on kokoa k oleva riippumaton joukko jos ja vain jos siinä on kokoa n k oleva solmupeite. Olkoon f funktio joka kuvaa parin G, k pariksi f( G, k ) = G, n k. Siis G, k IS joss f( G, k ) VC. Selvästi f on laskettavissa pol. ajassa, joten f: IS p m VC. 210
12 Toinen esimerkki: Oletetaan tunnetuksi, että HC on NP-täydellinen (kuten jatkossa todistetaan). Lause 3.6: [HMU Thm 10.24] TSP on NP-täydellinen. Todistus: Helposti nähdään että TSP NP. Osoitetaan HC p m TSP. Olkoon G = (V, E) HC-tapaus. Muodostetaan TSP-tapaus f(g) = G, c, n missä c(u, v) = 1 kaikilla (u, v) E, ja n = V. Siis verkko ennallaan ja kaikkien kaarten paino 1. Selvästi verkossa G on Hamiltonin kehä joss painotetussa verkossa G, c on Hamiltonin kehä jonka paino on korkeintaan n. Siis G HC jos ja vain jos f(g) TSP. Koska f: G G, c, n voidaan laskea polynomisessa ajassa, HC p m TSP. Mutta että tämä todella olisi kiinnostavaa, meidän pitää ensin osoittaa IS ja HC NP-täydellisiksi jollain muulla tavalla! 211
13 Toteutuvuusongelman NP-täydellisyys [HMU ] Että päästään osoittamaan ongelmia NP-täydellisiksi palautuksilla, pitää ensin osoittaa jokin ongelma NP-täydelliseksi suoraan määritelmästä. Valitaan täksi perusongelmaksi toteutuvuusongelma SAT. Lause 3.7: [HMU Thm 10.9] Toteutuvuusongelma SAT on NP-täydellinen. Todistus Tiedetään jo, että SAT NP. Pitää vielä osoittaa A p m SAT kaikilla A NP. Olkoon A = L(M) missä time M (n) p(n), p polynomi ja M yksinauhainen. Muodostetaan palautus f M : A p m SAT; siis f M laskettavissa polynomisessa ajassa ja w A jos ja vain jos f M (w) SAT 212
14 f M (w) on propositiologiikan kaava joka kuvaa mahdollisia koneen M laskentoja syötteellä w muuttujat ovat tyyppiä hetkellä t kone on tilassa q ja nauhapään paikka on j tai hetkellä t nauhapositiossa j on merkki c kaava f M (w) kuvaa, mitkä ajanhetkeä t + 1 vastaavat muuttujien arvot ovat sallittuja kun ajanhetken t arvot tunnetaan Muuttujien indeksoimiseksi numeroidaan ensin nauhapositiot: aluksi nauhapää positiossa 1 nauhapää voi enimmillään liikkua p(n) kertaa vasemmalle tai p(n) kertaa oikealle; siis nauhapää pysyy positioiden p(n) ja p(n) + 1 välillä aluksi syöte positioissa 1,..., n 213
15 Määritellään nyt muuttujat X t,j, arvojoukkona Q Γ, indekseinä j = (p(n) + 1),..., p(n) + 1, kuvaamaan laskentaa hetkellä t: ol. koneen tilanne aqb, nauhapään sijainti m siis kone tilassa q, nauhapään vas. puolella a = a 1... a k Γ ja nauhapäästä oikealle b = b 1... b l Γ koodataan tila ja nauhapään sijainti: X t,m 1 = q koodataan nauhan vasen osa: X t,m k 2+j = a j, j = 1,..., k koodataan nauhan oikea osa: X t,m+j 1 = b j, j = 1,..., l 214
16 Esimerkki 3.8: Oletetaan q 1 alkutila, q 2 hyväksyvä tila, Σ = { a, b, c }, Γ = Σ { # } missä # on tyhjämerkki, w = aab ja siis n = 3, p(3) = 4. Olkoon koneessa (ainakin) siirtymät δ(q 0, a) = (q 3, b, L), δ(q 3, #) = (q 3, c, R), δ(q 3, b) = (q 3, b, R) ja δ(q 3, a) = (q 2, c, R). Syötteellä aab on siis olemassa hyväksyvä laskenta q 1 aab M q 3 #bab M cq 3 bab M cbq 3 ab M cbcq 2 b Vastaavat muuttujien X t,j arvot, t = 0,..., 4, j = 5,..., 5: X t,j # # # # # q 0 a a b # # 1 # # # # q 3 # b a b # # 2 # # # # c q 3 b a b # # 3 # # # # c b q 3 a b # # 4 # # # # c b c q 2 b # # Oleellinen havainto: arvo X t,j määräytyy arvoista X t 1,j 1, X t 1,j ja X t 1,j
17 Varsinaisiksi totuusarvomuuttujiksi muodostettavaan propositiologiikan kaavaan f M (w) tulee nyt y tjz, t = 0,..., p(n), j = p(n) 1,..., p(n) + 1, z Q Γ, siis kaikkiaan (p(n) + 1)(2p(n) + 3)( Q + Γ ) muuttujaa, joiden intuitiivinen tulkinta on y tjz = 1 joss X tj = z. Nyt f M (w) tulee olemaan muuttujia y tjz sisältävä kaava, joka saa arvon 1 tasan sellaisilla muuttujien y tjz arvoilla jotka esittävät koneen M hyväksyvää laskentaa syötteellä w. Korkealla tasolla kaava tulee olemaan muotoa S N F U missä osakaavoilla S, N, F ja U on seuraavat tulkinnat: S: rivi X 0, esittää laskennan alkutilannetta N: kukin rivi X t 1, seuraa riviä X t, koneen M siirtymäfunktion mukaisesti F : jollain j pätee X p(n),j = q missä q on hyväksyvä tila. U: jokaisella ajanhetkellä koneen tila, nauhapään paikka ja jokaisen nauhaposition sisältö on yksikäsitteisesti määritelty; 216
18 Kaava U: tilanteen yksikäsitteisyys Merkitään indeksijoukkoja J = { p(n) 1,..., p(n) + 1 }, T = { 0,..., p(n) } ja Z = Q Γ. Kaava U t,j,z, t T, j J, z Z, on Q + Γ osan konjunktio joka sanoo että X t,j saa arvon z eikä mitään muuta arvoa: U t,j,z = y t,j,z. r Q Γ,r z y t,j,r Kaava U t sanoo, että X t,j saa kaikilla j jonkin yksikäsitteisen arvon: U t = U t,j,z. j J z Z Kaavan U t koko on (2p(n) + 3)( Q + Γ )2 kun yksinkertaisuuden vuoksi lasketaan muuttujasymbolin kooksi 1 eikä lasketa loogisia konnektiiveja. 217
19 Kaava U t,j,q sanoo että X t,j on tilasymboli: U t,j,q = z Q U t,j,z. Kaavan U t,j,q koko on siis Q ( Q + Γ ). Kaava U t tilasymboli tasan yhdellä j: U t = U t,j,q j J j J,j j U t,j,q sanoo, että X t,j on. Kaavan U t koko on (2p(n) + 3) 2 Q ( Q + Γ ). Lopullinen kaava U on U = t T ( U t U t ). Koko on (p(n) + 1)((2p(n) + 3)( Q + Γ ) 2 + (2p(n) + 3) 2 Q ( Q + Γ )) = O(p(n) 3 ). 218
20 Kaava S: alkutilanne Oikeaa alkutilannetta vastaava rivi X 0, koodataan kaavaksi S = y 0,0,q0 j= p(n) 1,..., 1 y 0,j,# j=1,...,n y 0,j,wj j=n+1,...,p(n)+1 y 0,j,# missä # on tyhjämerkki ja syöte on w = w 1... w n. Kaavan koko O(p(n)). Kaava F : hyväksyminen Oletetaan kone M muunnetuksi siten, että jokaisesta hyväksyvästä tilasta on siirtymä itseensä kaikilla merkeillä. Tämä selvästi ei muuta sitä, onko annetulla syötteellä kork. p(n) askelen mittaisia hyväksyviä laskentoja. Riittää siis tarkastaa, että hetkellä p(n) ollaan hyväksyvässä tilassa: F = 1 i k j J y p(n),j,ai missä hyväksyvien tilojen joukkoa on merkitty { a 1,..., a k }. Kaavan koko on O(p(n)) 219
21 Kaava N: laskennan oikea eteneminen; todistuksen ydin on tässä Huomataan, että koko laskennan, eli (p(n) + 1) (2p(n) + 3)-taulukon (X t,j ), oikeellisuuden tarkastamiseksi riittää tarkastaa kaikki (vakiokokoiset!) 2 3 -laatikot X t 1,j 1 X t 1,j X t 1,j+1 X t,j 1 X t,j X t,j+1 jos X t 1,j 1, X t 1,j ja X t 1,j+1 ovat kaikki nauhasymboleita, on oltava X t,j = X t 1,j (nauhan sisältö voi muuttua vain nauhapään kohdalla jos X t 1,j on tilasymboli, niin nauhapään alla on merkki X t 1,j+1 ja siirtymäfunktion arvo δ(x t 1,j, X t 1,j+1 ) antaa uudet arvot X t,j 1, X t,j ja X t,j+1 220
22 Esitetään ensin eri mahdollisuudet kaavioina. Seuraavassa A, B, C jne. esittävät nauhasymboleja ja q, q tilasymboleja. Nauhapää muualla: laatikon keskikohta ei muutu; reunoista ei voi sanoa koska nauhapää saattaa olla juuri laatikon vieressä A B C X t,j 1 B X t,j+1 Nauhapää liikkuu oikealle: tässä δ(q, B) = (q, C, R) A q B A C q Nauhapää liikkuu vasemmalle: tässä δ(q, B) = (q, C, L) A q B q A C Reunat on helpoin käsitellä erikoistapauksina: X t, p(n) 1 ja X t,p(n)+1 ovat aina tyhjämerkkejä, koska nauhapää ei voi ehtiä niin kauas. 221
23 Reunat hetkellä t käsitellään kaavalla ˆN t = y t, p(n) 1,# y t,p(n)+1,#. Esitetään nyt em. kolme päätapausta kaavoina N t,j, N t,j ja N t,j. Nauhapää muualla: Tämä on helpoin tapaus. Kaava N t,j sanoo, että X t 1,j 1 ja X t 1,j+1 ovat nauhasymboleja, ja X t 1,j ja X t,j ovat sama nauhasymboli: ( ) ( ) ( ) N t,j = y t 1,j 1,z y t 1,j+1,z (y t 1,j,z y t,j,z ) z Γ z Γ z Γ 222
24 Nauhapää siirtyy oikealle: Kaava N t,j sanoo, että hetkellä t nauhapään sijainti nauhalla on j + 1. Lisäksi, kun q = X t 1,j on koneen tila ja B = X t 1,j+1 nauhapään alla oleva merkki, on valittu jokin sallittu siirtymä (q, C, R) δ(q, B). Merkki A nauhapään vasemmalla puolella pysyy ennallaan: ( N t,j = yt 1,j 1,A y t,j 1,A y t 1,j,q y t 1,j+1,B q Q A,B Γ (y t,j,c y t,j+1,q ) (q,c,r) δ(q,b) Nauhapää siirtyy vasemmalle: Kaava N t,j muodostetaan kuten N t,j. Kaava H t,j sanoo, että lähettyvillä oleva nauhapää määrää symbolin X t,j : H t,j = N t,j 1 N t,j 1 N t,j N t,j N t,j+1 N t,j
25 Laskennan oikean etenemisen esittää nyt kaava N = ˆN t (N t,j H t,j ). t=1,...,p(n) j= p(n),...,p(n) Koska kukin N t,j jne. on jotain (koneesta M riippuvaa) vakiokokoa, kaavan N koko on O(p(n) 2 ). Edellä esitetystä seuraa, että konstruoitu kaava f M (w) = S N F U toteutuu joillain muuttujien y t,j,z arvoilla jos ja vain jos koneella M on syötteellä w hyväksyvä laskenta jonka pituus on kork. p( w ). Lisäksi f M voidaan selvästi laskea polynomisessa ajassa. (Huomaa, että M on kiinteä; laskettaessa f M (w) ainoat syötteestä w riippuvat asiat ovat kaava A eli alkutilanne ja p(n) eli kaavojen pituus.) Siis f M : A p m SAT 224
26 SAT-ongelman rajoitetut muodot tähän mennessä: todistettu että SAT on NP-täydellinen tavoite: todistetaan A on NP-täydellinen, kun A = IS, VC, HC, TSP,... tekniikka: osoitetaan SAT p m A tekninen ongelma: hankalaa käsitellä mielivaltaisia propositiologiikan kaavoja ratkaisu: määritellään luokka syntaktisesti yksinkertaisia kaavoja, jotka kuitenkin ovat riittävän vaikeita että SAT on NP-täydellinen myös näihin yksinkertaisiin kaavoihin rajoitettuna tarkemmin: määritellään SAT-ongelman erikoistapaus CSAT, ja edelleen tämän erikoistapaus 3SAT, joille SAT p m CSAT p m 3SAT p m SAT ja siis SAT p m A jos ja vain jos 3SAT p m A 225
27 Propositiologiikan kaavojen luokittelua (Jatkossa kaava tarkoittaa propositiologiikan kaavaa.) literaali on muuttuja tai muuttujan negaatio; esim. x 7 tai x 3 klausuuli (engl. clause) on literaalien disjunktio; esim. x 3 x 2 x 4 tai x 1 kaava on konjunktiivisessa normaalimuodossa (conjunctive normal form, CNF) jos se on klausuulien konjunktio; esim. (x 3 x 2 x 4 ) (x 7 x 3 ) x 1 CNF-kaava on k-konjunktiivisessa normaalimuodossa (k-cnf) jos jokaisessa klausuulissa on tasan k literaalia; esim. (x 3 x 2 ) (x 7 x 3 ) (x 1 x 4 ) on 2-CNF-kaava Määritellään nyt SAT-ongelman erikoistapaukset CSAT ja ksat, k = 1, 2, 3,...: CSAT = { φ φ on toteutuva CNF-kaava } ksat = { φ φ on toteutuva k-cnf-kaava } 226
28 Kuten pian nähdään, jokaiselle kaavalle φ(x 1,..., x n ) on olemassa CNF-kaava ψ(x 1,..., x n ) jolle φ(v 1,..., v n ) = ψ(v 1,..., v n ) kaikilla (v 1,..., v n ) { 0, 1 } n. Todetaan ensin että mikä tahansa kaava voidaan muuntaa muotoon, jossa negaatiot kohdistuvat suoraan muuttujiin, ts. ei esiinny muotoa (A B) tai (A B) olevia osakaavoja. Tämä perustuu de Morganin lakeihin ja kaksinkertaisen negaation lakiin (A B) (A) (B) (A B) (A) (B) A A. 227
29 Esimerkki 3.9: negaatioiden painaminen literaaleihin Lähtökohtana kaava Saadaan (x 2 ( (x 1 x 3 ) (x 3 x 4 ))). (x 2 ( (x 1 x 3 ) (x 3 x 4 ))) x 2 ( (x 1 x 3 ) (x 3 x 4 )) x 2 ( (x 1 x 3 ) (x 3 x 4 )) x 2 ((x 1 x 3 ) ( x 3 x 4 )). 228
30 Jotta saataisiin CNF-kaavoja pitää lisäksi painaa disjunktiot konjunktioiden sisäpuolelle Tämä on periaatteessa mahdollista osittelulakien avulla: A (B C) (A B) (A C) A (B C) (A B) (A C) Ongelma: kaavan koko voi kasvaa eksponentiaalisesti; esim. kaavan (x 1 x 2 ) (x 3 x 4 ) (x 5 x 6 ) CNF-esitys on (x 1 x 3 x 5 ) (x 1 x 3 x 6 ) (x 1 x 4 x 5 ) (x 1 x 4 x 6 ) (x 2 x 3 x 5 ) (x 2 x 3 x 6 ) (x 2 x 4 x 5 ) (x 2 x 4 x 6 ). Ratkaisu: muodostetaan ei-cnf-kaavasta φ(x 1,..., x n ) CNF-kaava ψ(x 1,..., x n, y 1,..., y m ) missä y 1,..., y m ovat uusia muuttujia ja φ(v 1,..., v n ) = 1 jos ja vain jos ψ(v 1,..., v n, v 1,..., v m ) = 1 jollain (v 1,..., v m ) { 0, 1 }m 229
31 Seuraava rekursiivinen funktio CNF(φ) palauttaa CNF-kaavan ψ joka on toteutuva joss φ on, olettaen että kaavassa φ negaatiot kohdistuvat suoraan muuttujiin. CNF(φ): kolme tapausta kaavan φ muodon mukaan. 1. φ on literaali: palauta φ sellaisenaan. 2. φ = φ 1 φ 2 : laske ψ 1 = CNF(φ 1 ) ja ψ 2 = CNF(φ 2 ); palauta ψ = ψ 1 ψ φ = φ 1 φ 2 : laske ψ 1 = CNF(φ 1 ) ja ψ 2 = CNF(φ 2 ); olkoon ψ 1 = g 1 g 2... g p ψ 2 = h 1 h 2... h q missä g i ja h j ovat klausuuleja. Ota käyttöön uusi muuttujasymboli y ja palauta kaava (y g 1 )... (y g p ) ( y h 1 )... ( y h q ). 230
32 Esimerkki 3.10: Lasketaan CNF(φ) kun φ(x 1, x 2, x 3, x 4, x 5, x 6 ) = ((x 1 x 2 ) (x 3 x 4 )) (x 5 x 6 ). Yksinkertaisyyden vuoksi tehdään laskenta alhaalta ylöspäin. Selvästi CNF(x 1 x 2 ) = x 1 x 2 ja CNF(x 3 x 4 ) = x 3 x 4. Siis CNF((x 1 x 2 ) (x 3 x 4 )) = (y x 1 ) (y x 2 ) ( y x 3 ) ( y x 4 ) missä y on uusi muuttuja. Edelleen CNF(x 5 x 6 ) = x 5 x 6 joten ottamalla käyttöön taas uusi muuttuja z saadaan CNF(φ) = ψ missä ψ(x 1, x 2, x 3, x 4, x 5, x 6, y, z) = (z y x 1 ) (z y x 2 ) (z y x 3 ) (z y x 4 ) ( z x 5 ) ( z x 6 ). Nyt esim. φ(0, 0, 1, 1, 0, 0) = 1, mitä vastaten ψ(0, 0, 1, 1, 0, 0, y, z) = 1 kun valitaan y = 1 ja z =
33 Lause 3.11: Olkoon φ(x 1,..., x n ) kaava jossa negaatiot kohdistuvat suoraan muuttujiin, ja CNF(φ(x 1,..., x n )) = ψ(x 1,..., x n, y 1,..., y m ). Nyt ψ on CNF-kaava, ja φ(v 1,..., v n ) = 1 jos ja vain jos ψ(x 1,..., x n, v 1,..., v m ) = 1 joillain v i. Todistus: Induktio kaavan φ sisältämien disjunktioiden ja konjunktioiden lukumäärän suhteen. Perustapaus: ei konjunktioita eikä disjunktioita. Siis φ on literaali x i tai x j jotka sellaisenaan ovat CNF-kaavoja. Väite selvästi pätee. Induktioaskel: Oletetaan, että väite pätee kun konjunktioita ja disjunktioita on kork. n; olkoon niitä nyt n + 1. On ilmeistä että palautettavat kaavat ovat CNF-kaavoja; mielenkiintoinen puoli on niiden toteutuvuus. Kaksi tapausta: tapaus 1 triviaali (kun ymmärtää merkinnät), tapaus 2 konstruktion ydinkohta. 232
34 Tapaus 1: φ(x 1,..., x n ) = φ 1 (x 1,..., x n ) φ 2 (x 1,..., x n ). Merk. CNF(φ 1 (x 1,..., x n )) = ψ 1 (x 1,..., x n, y 1,..., y r ) ja CNF(φ 2 (x 1,..., x n )) = ψ 2 (x 1,..., x n, y 1,..., y s ). Siis CNF(φ) = ψ missä ψ(x 1,..., x n, y 1,..., y r, y 1,..., y s ) = ψ 1 (x 1,..., x n, y 1,..., y r ) ψ 2(x 1,..., x n, y 1,..., y s ). Konstruktiosta seuraa että muuttujajoukot { y 1,..., y r erilliset, joten } ja { y 1,..., y s } ovat φ(v 1,..., v n ) = 1 φ 1 (v 1,..., v n ) = 1 ja φ 2 (v 1,..., v n ) = 1 ψ 1 (v 1,..., v n, y 1,..., y r ) = 1 joillain y i ja ψ 2 (v 1,..., v n, y 1,..., y r ) = 1 joillain y i (ind.ol.) ψ(v 1,..., v n, y 1,..., y r, y 1,..., y s ) = 1 joillain y i, y i (koska muuttujajoukot erilliset). 233
35 Tapaus 2: φ = φ 1 φ 2 (jätetään nyt selvyyden vuoksi muuttujat merkitsemättä; ne voidaan käsitellä kuten tapauksessa 1). Merk. Siis CNF(φ) = ψ missä CNF(φ 1 ) = g 1 g 2... g p CNF(φ 2 ) = h 1 h 2... h q ψ(y) = (y g 1 )... (y g p ) ( y h 1 )... ( y h q ). Jos φ = 1 niin φ 1 = 1 tai φ 2 = 1. Jos φ 1 = 1, niin g i = 1 kaikilla i, joten ψ(0) = 1. Vastaavasti jos φ 2 = 1, niin ψ(1) = 1. Kummassakin tapauksessa ψ(y) on siis toteutuva. Kääntäen jos ψ(y) on toteutuva, niin ψ(0) = 1 tai ψ(1) = 1. Jos ψ(0) = 1, niin g i = 1 kaikilla i, joten φ 1 = 1. Jos ψ(1) = 1, niin h i = 1 kaikilla i, joten φ 2 = 1. Siis kummassakin tapauksessa φ =
36 Olkoon f seuraava funktio, joka saa argumenttina mielivaltaisen kaavan φ ja palauttaa CNF-kaavan ψ: 1. Muunna de Morganin ja kaksinkertaisen negaation lakeja käyttäen φ yhtäpitäväksi kaavaksi φ jossa negaatiot kohdistuvat suoraan muuttujiin. 2. Palauta ψ = CNF( φ). Vaihe 1 toimii selvästi polynomisessa ajassa. Myös CNF( φ) voidaan laskea polynomisessa ajassa (ks. alla) joten f voidaan laskea polynomisessa ajassa. Olemme myös nähneet että φ on toteutuva jos ja vain jos ψ on, eli φ SAT joss f(φ) CSAT. Siis SAT p m CSAT. Koska SAT on NP-täydellinen ja CSAT NP, seuraa erityisesti Korollaari 3.12: [HMU Thm 10.13] CSAT on NP-täydellinen. 235
37 Funktion CNF aikavaativuusanalyysi Olkoon T (n) kutsun CNF( φ) aikavaativuus kun kaavassa φ on n konjunktioja disjunktiosymbolia. Huomaa että kaavan kokonaispituus on O(n). Selvästi Tapauksessa n 1 voidaan kirjoittaa T (0) a jollain vakiolla a. T (n) T (i) + T (n i 1) + bn missä T (i) ja T (n i 1) ovat rekursiivisten kutsujen CNF( φ 1 ) ja CNF( φ 2 ) suoritusajat ja bn kaikkeen muuhun kuluva aika (b vakio). (Huomaa että yhtä lukuunottamatta kaikki kaavan φ symbolit menevät joko kaavoihin φ 1 ja φ 2.) 236
38 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 arvonsa välin päätepisteessä. Siis kun m 1. T (m) max (T (i) + T (m i 1)) + bm 0 i m 1 ind.ol. (a + b) max 0 i m 1 (i2 + (m i 1) 2 ) + 2a + bm = (a + b)(m 1) 2 + 2a + bm = (a + b)m 2 + m(b 2(a + b)) + 3a + b (a + b)m 2 + a 237
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
= 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
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
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
6. Approksimointialgoritmit
6. Approksimointialgoritmit Tässä luvussa käsitellään lyhyesti approksimointiin liittyvät peruskäsitteet ja joitain keskeisiä approksimoituvuustuloksia. Tavoitteena on, että opiskelija näkee approksimointialgoritmien
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
Ää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ää
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,
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.
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
Laskennan vaativuus ja NP-täydelliset ongelmat
Laskennan vaativuus ja NP-täydelliset ongelmat TRAK-vierailuluento 13.4.2010 Petteri Kaski Tietojenkäsittelytieteen laitos Tietojenkäsittelytiede Tietojenkäsittelytiede tutkii 1. mitä tehtäviä voidaan
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):
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
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
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
V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen
V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen Luento omatoimisen luennan tueksi algoritmiikan tutkimusseminaarissa 23.9.2002. 1 Sisältö Esitellään ongelmat Steiner-puu Kauppamatkustajan
δ : (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
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.
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
3. Laskennan vaativuusteoriaa
3. Laskennan vaativuusteoriaa Siirrymme tarkastelemaan, mitä laskennallisia ongelmia voidaan ratkaista tehokkaalla algoritmilla [HMU luku 10]. Tämän luvun jälkeen opiskelija tuntee laskennallisen vaativuuden
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.
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ä
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
Johdatus logiikkaan I Harjoitus 4 Vihjeet
Johdatus logiikkaan I Harjoitus 4 Vihjeet 1. Etsi lauseen ((p 0 p 1 ) (p 0 p 1 )) kanssa loogisesti ekvivalentti lause joka on (a) disjunktiivisessa normaalimuodossa, (b) konjunktiivisessa normaalimuodossa.
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset 1. Etsi lauseen (p 0 (p 1 p 0 )) p 1 kanssa loogisesti ekvivalentti lause joka on (a) disjunktiivisessa
Algoritmit 2. Luento 14 To Timo Männikkö
Algoritmit 2 Luento 14 To 2.5.2019 Timo Männikkö Luento 14 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydelliset ongelmat Kertaus ja tenttivinkit Algoritmit
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
Algoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 8.5.2018 Timo Männikkö Luento 13 Laskennallinen vaativuus Päätösongelmat Epädeterministinen algoritmi Vaativuusluokat NP-täydellisyys Kertaus ja tenttivinkit Algoritmit 2 Kevät
kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM
Kurssi tähän asti: säännölliset yhteydettömät ratkeavat { a n } { a n b n } { a n b n c n } tunnistettavat A TM HALT TM kaikki kielet A TM HALT TM TOTAL TM TOTAL TM EQ TM EQ TM 277 5. Laskennan vaativuus
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
Tehtävä 1. Päättele resoluutiolla seuraavista klausuulijoukoista. a. 1 {p 3 } oletus. 4 {p 1, p 2, p 3 } oletus. 5 { p 1 } (1, 2) 7 (4, 6)
Tehtävä 1 Päättele resoluutiolla seuraavista klausuulijoukoista. a. {{p 0 }, {p 1 }, { p 0, p 2 }, {p 1, p 2, p 3 }, { p 2, p 3 }, {p 3 }}, b. {{ p 0, p 2 }, {p 0, p 1 }, {{ p 1, p 2 }, { p 2 }}, c. {{p
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,
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
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 Γ
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
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ä
Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).
Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)). Esimerkkejä: Σ koostuu kaikista aakkoston Σ merkkijonoista ja
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
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ää
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ä,
Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 2 Ratkaisuehdotukset 1. Olkoon totuusjakauma v sellainen että v(p i ) = 1 kaikilla i N ja A propositiolause, jossa
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).
A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.
Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =
Algoritmit 1. Luento 1 Ti Timo Männikkö
Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset 1. Päättele resoluutiolla seuraavista klausuulijoukoista: (a) {{p 0 }, {p 1 }, { p 0, p 2 },
Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja
582206 Laskennan mallit (syksy 2008) 2. kurssikoe 11.12., ratkaisuja Tehtävän 1 tarkasti Harri Forsgren, tehtävän 2 Joel Kaasinen ja tehtävän 3 Jyrki Kivinen. Palautetilaisuuden 19.12. jälkeen arvosteluun
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
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
P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta
P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta Juha Nurmonen Matematiikan laitos Helsingin yliopisto Ajatellaanpa esimerkiksi kauppamatkustajan jokapäiväistä ongelmaa: Kauppamatkustajan
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,
Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle
HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 3 Ratkaisuehdotukset 1. Olkoot A, B ja C propositiolauseita. Näytä, että A (B C) (A B) (A C). Ratkaisu: Yksi tapa
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ä
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
Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.
Approbatur 3, demo 1, ratkaisut 1.1. A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat. Käydään kaikki vaihtoehdot läpi. Jos A on rehti, niin B on retku, koska muuten
Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:
Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen
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
DIFFERENTIAALI- JA INTEGRAALILASKENTA I.1. Ritva Hurri-Syrjänen/Syksy 1999/Luennot 6. FUNKTION JATKUVUUS
DIFFERENTIAALI- JA INTEGRAALILASKENTA I.1 Ritva Hurri-Syrjänen/Syksy 1999/Luennot 6. FUNKTION JATKUVUUS Huomautus. Analyysin yksi keskeisimmistä käsitteistä on jatkuvuus! Olkoon A R mielivaltainen joukko
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, 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
Matematiikan ja tilastotieteen laitos Reaalianalyysi I Harjoitus Malliratkaisut (Sauli Lindberg)
Matematiikan ja tilastotieteen laitos Reaalianalyysi I Harjoitus 4 9.4.-23.4.200 Malliratkaisut (Sauli Lindberg). Näytä, että Lusinin lauseessa voidaan luopua oletuksesta m(a)
1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.
Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i
NP-täydellisyys. Joonas Järvenpää ja Topi Talvitie. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos
NP-täydellisyys Joonas Järvenpää ja Topi Talvitie Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Helsinki, 23. helmikuuta 2014 Sisältö 1 Johdanto 1 2 Ongelman määrittely
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,
Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E.
Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E. Perusaksioomat: Laki 1: Kukin totuusfunktio antaa kullekin propositiolle totuusarvoksi joko toden T tai epätoden
Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa. väite P(n) on totta kaikille n = 0,1,2,...
Induktiotodistus Induktiota käyttäen voidaan todistaa luonnollisia lukuja koskevia väitteitä, jotka ovat muotoa väite P(n) on totta kaikille n = 0,1,2,.... Tässä väite P(n) riippuu n:n arvosta. Todistuksessa
= 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
Pinoautomaatit. Pois kontekstittomuudesta
TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 3. joulukuuta 2015 Sisällys Pinoautomaatti NFA:n yleistys automaatilla on käytössään LIFO-muisti 1 eli pino Pino
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
IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n
IV. TASAINEN SUPPENEMINEN IV.. Funktiojonon tasainen suppeneminen Olkoon A R joukko ja f n : A R funktio, n =, 2, 3,..., jolloin jokaisella x A muodostuu lukujono f x, f 2 x,.... Jos tämä jono suppenee
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
TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016
TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 8. syyskuuta 2016 Sisällys a https://tim.jyu.fi/view/kurssit/tie/ tiea241/2016/videoiden%20hakemisto Matemaattisen
Kirjoita käyttäen propositiosymboleita, konnektiiveja ja sulkeita propositiologiikan lauseiksi:
1 Logiikan paja, kevät 2011 Ratkaisut viikolle I Thomas Vikberg Merkitään propopositiosymboleilla p i seuraavia atomilauseita: p 0 : vettä sataa p 1 : tänään on perjantai p 2 : olen myöhässä Valitaan konnektiiveiksi,
Algoritmi on periaatteellisella tasolla seuraava:
Algoritmi on periaatteellisella tasolla seuraava: Dijkstra(V, E, l, v 0 ): S := { v 0 } D[v 0 ] := 0 for v V S do D[v] := l(v 0, v) end for while S V do valitse v V S jolle D[v] on minimaalinen S := S
Joukot. Georg Cantor ( )
Joukot Matematiikassa on pyrkimys määritellä monimutkaiset asiat täsmällisesti yksinkertaisempien asioiden avulla. Tarvitaan jokin lähtökohta, muutama yleisesti hyväksytty ja ymmärretty käsite, joista
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
