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 kohden G:ssä on kolme solmua C 1 j, C j, C3 j kutakin φ:n tekijää C j kohden G:ssä on kaaret: (x i, x i ), (C 1 j, C j ), (C j, C3 j ), (C3 j, C1 j ) ja Jos C j = (α 1 α α 3 ), niin (Cj 1, α 1), (Cj, α ), (Cj 3, α 3) k = n + m Selvästi verkko G voidaan muodostaa kaavasta φ polynomisessa ajassa. 4 1. φ toteutuva G:llä on enint. k:n 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 r j, α r) nyt peitetty Otetaan solmupeitteeseen vielä kolmion kaksi muuta kulmaa (kaikkiaan m solmua) 44 43 Kaavan F=(x 1 3 ) & (x 4 1 4 ) verkko 1 3 1 3 C C 1 x 1 x 1 x x x 3 x 3 x 4 x 4. G:llä on enint. k:n solmun solmupeite φ toteutuva: Olk. 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 jos x i V t(x i ) = 0 jos x i V Jokaisen C j -kolmion kärjistä alkavista kaarista yhden peittää literaalisolmu α V Tällöin t(α) = t(c j ) = 1 45
Siis SAT p m CSAT p m 3SAT p m VC Kieli B on NP-täydellinen, jos 1. B NP ja. A p m B kaikilla A NP NP-täydellinen kieli voidaan tunnistaa det. polynomisessa ajassa jos ja vain jos kaikki muutkin luokan NP kielet voidaan tunnistaa det. polynomisessa ajassa Lause 7.35 Olk. B NP-täydellinen kieli ja B P. Tällöin P = NP. Lause 7.36 Olk. B NP-täydellinen kieli, C NP ja B p m C. Tällöin myös C on NP-täydellinen 46 Pitää osoittaa siis, että A p m SAT mielivaltaisella A NP Ainoa, mitä A:sta tiedetään on, että sillä on polynomisessa ajassa toimiva epädeterministinen tunnistaja N Palautusfuntio muuntaa koneen N mahdollisen syötteen w lausekalkyylin kaavaksi φ w, joka kuvaa N:n mahdollisia laskentoja syötteellä w φ w on toteutuva joss w L(N) = A Kutakin N:n mahdollista laskentaa vastaa yksi φ w :n muuttujien totuusarvoasetus Kaava φ w muodostetaan ilmaisemaan ne ehdot, joilla annettu totuusarvoasetus vastaa N:n hyväksyvää laskentaa 48 Todistus. Koska B on NP-täydellinen, niin määritelmän mukaan A p m B kaikilla A NP. Toisaalta B p m C, joten polynomisen palautuksen transitiivisuuden perusteella (lause 7.31) pätee A p m C kaikilla A NP. Oletuksen perusteella C NP, joten väite pätee. Jos siis halutaan osoittaa C NPtä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 NPtäydelliseksi Lause (Cook-Levin) Kieli SAT { φ φ on toteutuva lausekalkyylin kaava } on NP-täydellinen 47 1. Luokan P ongelmat ovat käytännössä ratkeavia. P NP. Lisäksi NP:ssä on ongelmia, joille ei tunneta polynomista ratkaisualgoritmia 3. Kaikki luokan NP ongelmat voidaan palauttaa NP-täydelliseen ongelmaan polynomisesti. Jos jokin NPtäydellinen ongelma kuuluu P:hen, niin P=NP. 4. Ongelman A NP todistaminen NP-täydelliseksi: (a) Valitse samankaltainen tunnetusti NP-täydellinen ongelma B (b) Muodosta polynominen palautus f : B p m A; lemman 7.36 perusteella myös A on NP-täydellinen 49
Seuraus: CSAT, 3SAT ja VC ovat NPtäydellisiä ongelmia. Riippumaton joukko, IS Annettuna suuntaamaton verkko G ja luonnollinen luku k. Onko G:ssä vähintään k solmua, joiden välillä ei kulje yhtään kaarta? Seuraavan lemman perusteella on helppo muodostaa palautukset VC p m IS ja IS p m CLIQUE Lemma Olk. G = (V, E) suuntaamaton verkko ja V V. Tällöin seuraavat ehdot ovat ekvivalentit: 1. V on G:n solmupeite,. V \ V on riippumaton solmujoukko ja 3. V \V on klikki G:n komplementtiverkossa G = (V, (V V ) \ E) SAT/CSAT 3SAT Osajoukkosumma VC IS Hamiltonin polku TSP CLIQUE 50 5 VC p m IS: Valitaan kuvaus f: f( G, k ) = G, V k. Selvästi tämä muunnos voidaan laskea polynomisessa ajassa. Nyt edellisen lemman perusteella G, k VC G, V k IS. Täten f : VC p m IS. IS p m CLIQUE: Valitaan kuvaus f: f( G, k ) = G, k. Kuvaus voidaan laskea polynomisessa ajassa. Edellisen lemman perusteella G, k IS G, k CLIQUE. Täten f : IS p m CLIQUE. 8. Tilavaativuus Standardimallisen Turingin koneen M = (Q, Σ, Γ, δ, q 0, q yes, q no ) laskennan tilavaativuus syötteellä w on space M (w) = { max uav q 0 w u q av, M q Q, u, a, v Γ } Epädeterministisen Turingin koneen N = (Q, Σ, Γ, δ, q 0, q acc, q rej ) laskennan tilavaativuus: space N (w) = eniten tilaa vievän laskennan q 0 w N... vaatimien nauhapaikkojen määrä 51 53
Olk. s: N R + mv. ftio Formaalien kielten deterministinen tilavaativuusluokka on: DSPACE(s) = { A A voidaan tunnistaa tilassa s } Epädeterministinen tilavaativuusluokka puolestaan on NSPACE(s) = { A A voidaan tunnistaa epädet. tilassa s } Tilaa voidaan uudelleenkäyttää, kun taas aikaa ei Esim. SAT:in tapauksen ratkaiseminen vaatii vain lineaarisen tilan, vaikka se luultavasti ei NP-täydellisenä ongelmana ole polynomisen ajan puitteissa ratkaistavissa Lemma Kaikilla t(n), s(n) n: 1. DTIME(t(n)) DSPACE(t(n)) ja. DSPACE(s(n)) k 0 DTIME(ks(n) ) Todistus. 1. t(n):ssä askelessa Turingin kone voi kirjoittaa korkeintaan t(n) merkkiä työnauhalleen.. Koneella, joka toimii tilassa s(n), on n:n merkin syötteellä enintään k s(n) mahdollista tilannetta (k vakio). Antamalla laskennan jatkua korkeintaan k s(n) askelta, saadaan kone toimimaan aina ajassa k s(n). Seuraus P PSPACE EXPTIME EXPSPACE 54 56 55 NEXPSPACE = k 0 NSPACE( nk ) NPSPACE = k 0 NSPACE(n k ) EXPSPACE = k 0 DSPACE( nk ) = k 0 DSPACE(n k ) PSPACE = { DSPACE(s) s on polynomi } Tilavaativuuden yhdisteluokat ovat Savitchin lause Lause 8.5 Olk. f : N R + mv. funktio s.e. f(n) n. Tällöin NSPACE(f(n)) DSPACE(f (n)). Todistus. Epädeterminististä konetta on siis simuloitava deterministisellä. Suoraviivaisin tapa on käydä kukin laskentapuun haara kerrallaan läpi. Haara, joka käyttää f(n) tilan voi kuitenkin sisältää O(f(n)) askelta ja kussakin askelessa voi olla epädeterministinen valinta. Jotta seuraava haara voidaan saavuttaa, on vaihtoehdoista pidettävä kirjaa. Vaaditaan siis pahimmillaan O(f(n)) tila, joten tämä menetelmä ei käy. Tarkastellaankin johtamisongelmaa: voiko epädeterministinen kone N päästä tilan- 57
teesta c 1 tilanteeseen c askelten määrällä t. Asettamalla c 1 N:n alkutilanteeksi ja c sen hyväksyväksi lopputilaksi, ja ratkaisemalla ongelma deterministisesti käyttämättä liikaa tilaa, voidaan todeta lauseen pätevän. Etsitään N:n keskimmäinen tilanne c m s.e. 1. c 1 johtaa tilanteeseen c m askelten määrällä t/ ja. c m johtaa tilanteeseen c askelten määrällä t/. Rekursiivisten kutsujen vaatima tila voidaan uudelleenkäyttää. Rekursiopinon tallettamiseen tarvitaan tilaa. Joka tasolla käytetään O(f(n)) tila tilanteen tallettamiseen. Rekursio- Lause 1. P EXPTIME. PSPACE EXPSPACE Eksponentiaalisen etäällä toisistaan olevat vaativuusluokat tiedetään toisistaan eroaviksi P EXPTIME, NP NEXPTIME ja PSPACE EXPSPACE Sen sijaan ei tiedetä pätevätkö P NP, NP PSPACE, PSPACE EXPTIME,... Uskotaan, että kaikki nämä epäyhtälöt ovat tosia, mutta tuloksia ei osata todistaa Voidaan osoittaa, että ei ole olemassa vaikeinta rekursiivista kieltä 58 60 pinon maksimikorkeus on logaritminen epädeterministisen koneen pisimmän lasketapolun pituuden suhteen, eli log( O(f(n)) ) = O(f(n)). Deterministinen simulointi vaatii siis O(f (n)) tilan. Seuraus 1. NPSPACE = PSPACE. NEXPSPACE = EXPSPACE Nyt tiedämme yhdistevaativuusluokista lineaarisen järjestyksen PSPACE = P NP NPSPACE EXPTIME EXPSPACE = NEXPTIME NEXPSPACE Lause 1. Jos A REC, niin rekursiivinen ftio t(n), jolla A DTIME(t(n)).. Kaikilla rekursiivisilla ftioilla t(n) on olemassa kieli A REC \ DTIME(t(n)). Ftio f(n) = f (n, n) on rekursiivinen f (0, n) =... } n kpl f (m + 1, n) =... } f (m, n) kpl f(0) = 1, f(1) = 4, f() =... } 65536 kpl Ed. lause: A REC \ DTIME(f(n)) Siis on olemassa ratkeavia ongelmia, jotka n merkin syötteillä vaativat enemmän aikaa kuin funktion f(n) verran. 59 61