= k 0 NTIME(n k + k) Siis polynomisessa ajassa epädeterministisellä Turingin koneella tunnistettavien kielten joukko

Samankaltaiset tiedostot
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:

Algoritmit 2. Luento 13 Ti Timo Männikkö

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

Lause (Cook-Levin) Kieli SAT = { on toteutuva lausekalkyylin kaava } on NP-täydellinen.

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

3SAT-ongelman NP-täydellisyys [HMU ]

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 14 To Timo Männikkö

Säännöllisen kielen tunnistavat Turingin koneet

SAT-ongelman rajoitetut muodot

kaikki kielet tunnistettavat A TM HALT TM { a n } { a n b n } { a n b n c n } TOTAL TM EQ TM

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Kielenä ilmaisten Hilbertin kymmenes ongelma on D = { p p on polynomi, jolla on kokonaislukujuuri }

Johdatus logiikkaan I Harjoitus 4 Vihjeet

5.3 Ratkeavia ongelmia

6. Approksimointialgoritmit

10. Satunnaisalgoritmit

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

isomeerejä yhteensä yhdeksän kappaletta.

7. Aikavaativuus. Ohjelmistotekniikan laitos OHJ-2300 Johdatus tietojenkäsittelyteoriaan, syksy

NP-täydellisyys. Joonas Järvenpää ja Topi Talvitie. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

V. V. Vazirani: Approximation Algorithms, luvut 3-4 Matti Kääriäinen

Laskennan vaativuus ja NP-täydelliset ongelmat

6.1 Rekursiiviset palautukset

3. Laskennan vaativuusteoriaa

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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)

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset

Polynomiset palautukset ja NP-täydellisyys

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle

Muita vaativuusluokkia

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset

Täydentäviä muistiinpanoja laskennan rajoista

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

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

Olkoon seuraavaksi G 2 sellainen tasan n solmua sisältävä suunnattu verkko,

T Syksy 2005 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

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

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Algoritmit 1. Luento 2 Ke Timo Männikkö

Turingin koneen laajennuksia

Lisää pysähtymisaiheisia ongelmia

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

1. Primitiivirekursiiviset funktiot muodostetaan kolmesta perusfunktiosta käyttäen. succ(n) = n + 1

Algoritmit 1. Luento 13 Ti Timo Männikkö

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 10. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Satunnaisalgoritmit. Topi Paavilainen. Laskennan teorian opintopiiri HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Matematiikan peruskurssi 2

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

T Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

Näytetään nyt relaatioon liittyvien ekvivalenssiluokkien olevan verkon G lohkojen särmäjoukkoja. Olkoon siis f verkon G jokin särmä.

Miten osoitetaan joukot samoiksi?

Satunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013

Tehtävä 1. Arvioi mitkä seuraavista väitteistä pitävät paikkansa. Vihje: voit aloittaa kokeilemalla sopivia lukuarvoja.

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

Rekursiiviset palautukset [HMU 9.3.1]

Graafit ja verkot. Joukko solmuja ja joukko järjestämättömiä solmupareja. eli haaroja. Joukko solmuja ja joukko järjestettyjä solmupareja eli kaaria

Automaatit. Muodolliset kielet

Tehtävä 4 : 2. b a+1 (mod 3)

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

δ : (Q {q acc, q rej }) (Γ k {, }) Q (Γ k {, }) {L, R}.

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

Algoritmit 2. Luento 14 Ke Timo Männikkö

Kierros 10: Laskennallisesti vaativampia ongelmia

Taulun avoimista haaroista saadaan kelvolliset lausejoukot

3. Laskennan vaativuusteoriaa

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (Predikaattilogiikka )

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

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Chomskyn hierarkia ja yhteysherkät kieliopit

P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta

w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.

Logiikan kertausta. TIE303 Formaalit menetelmät, kevät Antti-Juhani Kaijanaho. Jyväskylän yliopisto Tietotekniikan laitos.

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

Tehtävä 8 : 1. Tehtävä 8 : 2

Algoritmi on periaatteellisella tasolla seuraava:

Kertausta 1. kurssikokeeseen

IV. TASAINEN SUPPENEMINEN. f(x) = lim. jokaista ε > 0 ja x A kohti n ε,x N s.e. n n

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

Onko algoritmiselle ongelmalle löydetty ratkaisualgoritmi riittävän hyvä?

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

= 5! 2 2!3! = = 10. Edelleen tästä joukosta voidaan valita kolme särmää yhteensä = 10! 3 3!7! = = 120

MS-A0402 Diskreetin matematiikan perusteet

j(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1)

Kokonaislukuoptimointi

Yhteydettömän kieliopin jäsennysongelma

Ensimmäinen induktioperiaate

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

Luonnollisen päättelyn luotettavuus

Luonnollisten lukujen ja kokonaislukujen määritteleminen

Matematiikan tukikurssi, kurssikerta 1

Transkriptio:

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 puhuttaessa tarkoitetaan yleensä niitä ongelmia, jotka eivät kuulu P:hen Esim. Hamiltonin polun etsimiseen suunnatusta verkosta ei tunneta polynomista algoritmia, vaan verkossa on suoritettava kattava haku 239 Seuraava epädeterministinen Turingin kone ratkaisee Hamiltonin polku ongelman polynomisessa ajassa Syötteellä G, s, t, missä G on suunnattu verkko ja s sekä t sen solmuja, G:n solmujen lukumäärä on m: 1. Kirjoita m lukua p 1,, p m, missä kukin p i on epädeterministisesti valittu väliltä 1-m 2. Jos listassa p 1,, p m on toistoja, hylkää 3. Jos p 1 s tai p m t, hylkää 4. Jokaisella i { 1,, m } tarkista onko (p i, p i+1 ) kaari G:ssä. Jos yksikin testi epäonnistuu hylkää, muuten hyväksy 1

240 Klikkiongelma Suuntamattoman verkon klikki (clique) on täysin kytketty aliverkko, s.o. kaikkien klikkiin kuuluvien solmujen välillä on kaari k-klikki on k:n solmun aliverkko KLIKKI = { G, k G on suuntaamaton verkko, jossa on k-klikki } Klikkiongelma voidaan ratkaista epädeterministisesti ensin valitsemalla (arvaamalla) annetun verkon k solmua Sen jälkeen deterministisesti tarkistetaan, että kaikkien valittujen solmujen välillä tosiaan on kaari Jos ei ole, niin syöte hylätään 241 Osajoukkosumma Annettuna monijoukko lukuja S = { x 1,, x k } ja yksi erillinen luku t, onko S:llä ali(moni)joukkoa { y 1,, y l } s.e. i y i = t Esim. pari { 4, 11, 16, 21, 27 }, 25 kuuluu tämän ongelman kieleen, koska 4 + 21 = 25 Kattava haku: käy läpi kaikki 2 m osajoukkoa ja tutki onko alkioiden summa t Epädeterministisesti valitaan (arvataan) osajoukko lukuja annetusta kokoelmasta S Deterministisesti tarkistetaan, että valittujen lukujen summa on t 2

242 P =?= NP Pon nopeasti ratkaistavien ongelmien joukko NP on nopeasti verifioitavien ongelmien joukko Vaikuttaisi ilmiselvältä, NP on oleellisesti P:tä laajempi luokka, mutta ei ole kyetty todistamaan yhdellekään NP:n ongelmalle, ettei sillä ole polynomista ratkaisualgoritmia Täten on periaatteessa mahdollista, että P = NP Luokan NP \ P ongelmille tunnetaan vain eksponentiaalisen ajan vaativia deterministisiä algoritmeja NP EXPTIME = k DTIME(2 nk ) 243 7.3 NP-täydellisyys Funktio f: * * voidaan laskea polynomisessa ajassa, jos on olemassa Turingin kone M ja polynomi p, joilla f = f M ja time M (n) p(n) kaikilla n Olkoot A *, B * formaaleja kieliä A voidaan palauttaa polynomisesti B:hen, merk. A mp B, jos on olemassa polynomisessa ajassa laskettava funktio f: * * s.e. x A f(x) B x * 3

244 Lause 7.31 Kaikilla kielillä A, B, C pätee i. A mp A, (refleksiivisyys) ii. jos A mp B ja B mp C, niin A mp C (transitiivisuus), iii. jos A mp B ja B NP, niin A NP ja iv. jos A mp B ja B P, niin A P. Huom.: palautusehdon osalta tämä lause on täsmälleen sama kuin lause 5.22. Muuttunut kohta on palautuksen polynominen laskettavuus. 245 Todistus. i. Valitaan palautusfunktioksi f(x) = x. ii. Yhdistetty funktio h(x) = g(f(x)) on palautus A:sta C:hen, h: A m C (kts. 5.22). h voidaan laskea poly ajassa: Olkoon M f (M g ) funktion f (g) polynomin p (q) rajoittamassa ajassa laskeva Turingin kone. Voidaan olettaa, että p ja q ovat kaikkialla ei-väheneviä. Olkoon M g :n, M REW :n ja M f :n toiminta kuten lauseen 5.22 todistuksessa. 4

246 Yhdistämällä koneet samoin kuin aiemmin saadaan funktion h laskeva kone M h, jonka aikavaativuus syötteellä x on time Mf (x) + time MREW (f(x)v) + time Mg (f(x)) p( x ) + 2p( x ) + q( f(x) ) 3p( x ) + q(p( x )) = O(q(p( x ))), joka on polynominen x:n pituuden suhteen. iii. (ja iv.) Palautuksen f: A mp B polynomin p rajoittamassa ajassa laskeva kone M f, kielen Bq:n rajoittamassa ajassa tunnistava kone M B ja M REW yhdistämällä samaan tapaan kuin lauseen 5.22 todistuksessa, saadaan kielen A ajassa O(q(p( x ))) tunnistava kone M A. Se on deterministinen, jos kone M B :kin on. 247 Lausekalkyylin toteutuvuus, SAT Annettuna lausekalkyylin kaava (Boolen lauseke), joka koostuu muuttujista x 1,..., x n, vakioista 0 (false) ja 1 (true), sekä konnektiiveista, ja. Onko toteutuva? Onko olemassa sellaista muuttujien arvoasetusta t: { x 1,..., x n } { 0, 1 }, joilla (t(x 1 ),, t(x n )) = 1 Arvataan arvoasetus t muuttujille ja tarkistetaan, että (t) = 1. Jos :ssä on n muuttujaa, niin t voidaan esittää n-bittisenä binäärijonona ja tarkastaminen sujuu polynomisessa ajassa 5

248 Stephen Cook ja Leonid Levin osoittivat 1970-luvun alkuvuosina, että on olemassa NP-täydellisten ongelmien luokka NP-täydellisen ongelman vaativuus on sidoksissa koko luokan NP ongelmien vaativuuteen Jos polynomiaikainen ratkaisualgoritmi on olemassa yhdellekin NP-täydelliselle ongelmalle, niin sellainen on olemassa kaikille luokan NP ongelmille Helpottaa ongelman P =?= NP käsittelyä ja vaikeiden ongelmien tunnistamista Lause 7.27 SAT P P = NP 249 Monet lausekalkyylin kaavojen rajoitetut muodotkin ovat NPtäydellisiä Kaava on konjunktiivisessa normaalimuodossa (cnf), jos se on muotoa =C 1 C 2 C m, missä kukin tekijä C i on disjunktio C i = i1 i2 ir Termit ij ovat literaaleja: muuttujia tai niiden negaatioita CSAT on cnf-kaavojen toteutuvuusongelma: { on toteutuva cnf-kaava } Selvästi CSAT NP. Mv. Lausekalkyylin kaava voidaan muuntaa polynomisessa ajassa cnf-muotoon 6

250 Rajoittamalla cnf-kaavan tekijöiden literaalien lukumäärä täsmälleen k:hon literaaliin saadaan k-konjunktiivinen normaalimuoto (k-cnf) Kieliperhe ksat = { on toteutuva k-cnf-kaava} Kieli 2SAT kuuluu luokkaan P Lause CSAT mp 3SAT Todistus. Annettu cnf-kaava voidaan muuttaa polynomisessa ajassa ekvivalentiksi 3-cnf-kaavaksi ' Olkoon =C 1 C 2 C m 251 Kukin tekijä C k = 1 2 r, r 3, korvataan 3-cnf-kaavalla C k ' = ( 1 2 t 1 ) ( t 1 3 t 2 ) ( t r-3 r-1 r ), missä t 1,, t r-3 ovat uusia muuttujia. Kaava C k ' voidaan selvästi muodostaa polynomisessa ajassa tekijästä C k. Vielä on tarkistettava, että tämä muunnos täyttää palautusehdon CSAT ' 3SAT: 1. toteutuva ' toteutuva: Kaikilla tekijöillä C k täytyy :n toteuttavan totuusarvoasetuksen asettaa i = 1 jollakin i C k. C k ' toteutuu kun asetetaan literaalien arvot samoin kuin C k :n toteuttavassa arvoasetuksessa ja uusien muuttujien arvot 7

252 seuraavasti t j 1, 0, jos jos j i 2 j i 2 2. toteutuva ' toteutuva: Tällöin myös :n tekijöitä C k vastaavat alikaavat C k ' toteutuvat. Tällöin joko a) jokin literaali i = 1, i C k, ja C k toteutuu sen ansiosta tai b) jollakin i < r-3: t i =1 t i+1 = 0, jolloin on oltava i+2 =1 ja tekijä C k toteutuu. 253 Jos r 3, niin C k = 1 2 3 C k ' = C k C k = 1 2 C k ' = ( 1 2 t) ( 1 2 t) C k = C k ' = ( t 1 t 2 ) ( 1 t 1 2 t 2 ) ( t 1 t 2 ) ( 1 t 1 2 t 2 ) Kaavojen toteutuvuuden ekvivalenssi säilyy. 8

254 Solmupeite, VC Annettuna suuntaamaton verkko G ja luonnollinen luku k. Onko G:ssä enintään k:n solmun solmujoukkoa, joka peittää kustakin verkon kaaresta vähintään toisen pään? VC:n esittäminen formaalina kielenä edellyttää verkkojen koodaamista merkkijonoiksi. Voidaan käyttää samantapaisia koodaustekniikoita kuin Turingin koneiden kohdalla. Arvataan annetusta verkosta G annettu määrä k solmuja ja tarkistetaan verkon koon suhteen polynomisessa ajassa, että valitut k solmua peittävät G:n kaaret 255 Lause 3SAT mp VC Todistus. Olkoon =C 1 C 2 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 kohden G:ssä on kolme solmua C j1, C j2, C j3 kutakin :n tekijää C j kohden G:ssä on kaaret: (x i, x i ), (C j1, C j2 ), (C j2, C j3 ), (C j3 C j1 ) ja Jos C j = 1 2 3, niin (C j1, 1 ), (C j2, 2 ), (C j3, 3 ) k = n + 2m Selvästi verkko G voidaan muodostaa kaavasta polynomisessa ajassa. 9

256 Kaavan F = (x 1 x 3 x 4 ) ( x 1 x 2 x 4 ) verkko x x 1 1 x x x x x x 2 2 3 3 4 4 C 1 2 C 2 2 C 1 1 C 1 3 C 2 1 C 2 3 257 1. toteutuva G:llä on enintään k = n + 2m solmun solmupeite: Otetaan totuusarvoasetusta vastaavaan solmupeitteeseen kutakin muuttujaa vastaten sitä literaalia, joka saa arvon 1, vastaava solmu (n solmua) Jokaista tekijää C j vastaavasta kolmiosta on yhdestä kulmasta alkava kaari (C jr, r ) nyt peitetty Otetaan solmupeitteeseen vielä kolmion kaksi muuta kulmaa (kaikkiaan 2m solmua) 10

258 2. G:llä on enintään k:n solmun solmupeite toteutuva: Olkoon V', V' k, G:n solmupeite Jotta V' voisi peittää kaikki G:n kaaret, on sen sisällettävä yksi solmu kutakin muuttujaa kohden ja vähintään kaksi solmua kustakin C j -kolmiosta Näin ollen V' = k Asetetaan 1, t( xi ) 0, jos x V ' jos x V ' Jokaisen C j -kolmion kärjistä alkavista kaarista yhden peittää literaalisolmu V' Tällöin t( ) = t(c j ) = 1 i i 259 Siis SAT mp CSAT mp 3SAT mp VC Kieli B on NP-täydellinen, jos 1.B NP ja 2.A mp Bkaikilla A NP NP-täydellinen kieli voidaan tunnistaa deterministisesti polynomisessa ajassa jos ja vain jos kaikki muutkin luokan NP kielet voidaan tunnistaa deterministisesti polynomisessa ajassa Lause 7.35 Olkoon B NP-täydellinen kieli ja B P. Tällöin P = NP. 11

260 Lause 7.36 Olkoon B NP-täydellinen kieli, C NP ja B mp C. Tällöin myös C on NP-täydellinen. Todistus. Koska B on NP-täydellinen, niin määritelmän mukaan A mp B kaikilla A NP. Toisaalta B mp C, joten polynomisen palautuksen transitiivisuuden perusteella (lause 7.31) pätee A mp C kaikilla A NP. Oletuksen perusteella C NP, joten väite pätee. Jos siis halutaan osoittaa C NP-täydelliseksi kieleksi, riittää muodostaa polynominen palautus tunnetusta NP-täydellisestä kielestä B kieleen C ja lisäksi todeta, että C NP Ensin pitäisi todeta jokin kieli NP-täydelliseksi 12