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

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

Muita vaativuusluokkia

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

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:

SAT-ongelman rajoitetut muodot

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

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

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

Rekursiiviset palautukset [HMU 9.3.1]

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

3. Laskennan vaativuusteoriaa

Lisää pysähtymisaiheisia ongelmia

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Säännöllisen kielen tunnistavat Turingin koneet

3. Laskennan vaativuusteoriaa

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

Algoritmit 2. Luento 13 Ti Timo Männikkö

Laskennan teoria

Algoritmit 2. Luento 14 To Timo Männikkö

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Polynomiset palautukset ja NP-täydellisyys

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

5.3 Ratkeavia ongelmia

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

Algoritmit 1. Luento 2 Ke Timo Männikkö

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

10. Satunnaisalgoritmit

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

Täydentäviä muistiinpanoja laskennan rajoista

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

Turingin koneen laajennuksia

Laskennan teoria

Algoritmit 2. Luento 14 Ke Timo Männikkö

2. Laskettavuusteoriaa

isomeerejä yhteensä yhdeksän kappaletta.

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

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

Laskennan vaativuus ja NP-täydelliset ongelmat

6.1 Rekursiiviset palautukset

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

Chomskyn hierarkia. tyyppi 0 on juuri esitelty (ja esitellään kohta lisää) tyypit 2 ja 3 kurssilla Ohjelmoinnin ja laskennan perusmallit

Ratkeavuus ja efektiivinen numeroituvuus

4. Tehtävässä halutaan todistaa seuraava ongelma ratkeamattomaksi:

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

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

2. Laskettavuusteoriaa

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

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 6. maaliskuuta 2012 TIETOTEKNIIKAN LAITOS.

Laskennan rajoja. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 20. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS.

Algoritmin määritelmä [Sipser luku 3.3]

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

Luonnollisen päättelyn luotettavuus

Chomskyn hierarkia ja yhteysherkät kieliopit

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

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

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

6. Approksimointialgoritmit

Johdatus logiikkaan I Harjoitus 4 Vihjeet

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 8. maaliskuuta 2012

Turingin koneet. Sisällys. Aluksi. Turingin koneet. Turingin teesi. Aluksi. Turingin koneet. Turingin teesi

Yhteydettömän kieliopin jäsennysongelma

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

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

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

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

Algoritmit 1. Luento 9 Ti Timo Männikkö

Rajoittamattomat kieliopit (Unrestricted Grammars)

ongelma A voidaan ratkaista ongelman B avulla, joten jossain mielessä

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

T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C.

1. Universaaleja laskennan malleja

1 Tensoriavaruuksista..

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Miten osoitetaan joukot samoiksi?

Verkon värittämistä hajautetuilla algoritmeilla

6.5 Turingin koneiden pysähtymisongelma Lause 6.9 Kieli. H = {c M w M pysähtyy syötteellä w}

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 20. lokakuuta 2016

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

Vapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

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

1.4 Funktioiden kertaluokat

Laskennan rajoja. Sisällys. Meta. Palataan torstaihin. Ratkeavuus. Meta. Universaalikoneet. Palataan torstaihin. Ratkeavuus.

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

Vaihtoehtoinen tapa määritellä funktioita f : N R on

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

Säännöllisten kielten sulkeumaominaisuudet

ICS-C2000 Tietojenkäsittelyteoria

Kokonaislukuoptimointi

Ratkaisu: (b) A = x 0 (R(x 0 ) x 1 ( Q(x 1 ) (S(x 0, x 1 ) S(x 1, x 1 )))).

vaihtoehtoja TIEA241 Automaatit ja kieliopit, syksy 2016 Antti-Juhani Kaijanaho 13. lokakuuta 2016 TIETOTEKNIIKAN LAITOS

Johdatus matematiikkaan

Tietojenkäsittelytieteen ja tilastotieteen matematiikkaa 1/137

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Transkriptio:

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 CNF-kaavasta φ tuotetaan 3-CNF-kaava ψ joka on toteutuva joss φ on Tämän muunnoksen olemassaolosta seuraa siis Lause 3.13: CSAT p m 3SAT. Koska CSAT on NP-täydellinen ja 3SAT NP, saadaan Korollaari 3.14: [HMU Thm 10.15] 3SAT on NP-täydellinen. Huom. SAT-ongelma rajoitettuna 2-CNF-kaavoihin ratkeaa polynomisessa ajassa. 238

Todistus sille että CSAT p m 3SAT Olkoon F (x 1,..., x n ) klausuuli (siis literaalien disjunktio). Muodostamme 3-CNF-kaavan F (x 1,..., x n, y 1,..., y m ) missä y i :t ovat uusia muuttujia ja F (v 1,..., v n ) = 1 jos ja vain jos F (v 1,..., v n, v 1,..., v m ) = 1 joillain (v 1,..., v m ) { 0, 1 }m. Tästä seuraa yleisemmin, että kun φ on CNF-kaava φ = niin voidaan muodostaa 3-CNF-kaavojen konjunktio, eli edelleen 3-CNF-kaava, k ψ = F j missä φ(v 1,..., v n ) = 1 joss ψ(v 1,..., v n, v 1,..., v l ) = 1 jollain (v 1,..., v l ) { 0, 1 }l, joten erityisesti φ on toteutuva joss ψ on toteutuva. Huom. eri kaavoihin F j lisättävien muuttujien pitää olla erillisiä. k j=1 j=1 F j 239

Olkoon F klausuuli. Neljä tapausta sen mukaan, kuinka monta literaalia z i klausuuli F sisältää: 1. F = z 1 missä z 1 = x i tai z 1 = x i jollain i. Uudet muuttujat u ja v; F = (z u v) (z u v) (z u v) (z u v). Koska uudet muuttujat u ja v on otettu kaikilla merkkikombinaatioilla, ainoa tapa saada F = 1 on valita z 1 = 1 jolloin F = 1. 2. F = z 1 z 2. Uusi muuttuja w; F = (z 1 z 2 w) (z 1 z 2 w). Kuten edellisessä kohdassa F voidaan toteuttaa vain tekemällä F todeksi. 3. F = z 1 z 2 z 3 : valmiiksi 3-CNF; F = F. 240

4. F = z 1 z 2... z m missä m 4. Uudet muuttujat y 1,..., y m 3 ; F = (z 1 z 2 y 1 ) (z 3 y 1 y 2 ) (z 4 y 2 y 3 )... (z m 2 y m 4 y m 3 ) (z m 1 z m y m 3 ). Jos F = 1, niin z i = 1 jollain 1, joten F = 1 kun valitaan y j = 1 kun j < i 1 ja y j = 0 muuten. Jos F = 0 ja siis z i = 0 kaikilla i, niin F = 0 miten tahansa y j :t valitaankin. Jos nimittäin yritetään saada F = 1, pitää 1. klausuulin ja ehdon z 1 = z 2 = 0 takia valita y 1 = 1. Kun y 1 = 1 ja z 3 = 0, toisen klausuulin takia pitää ottaa y 2 = 1. Näin päädytään lopulta valitsemaan y m 3 = 1, mutta tällöin viimeinen klausuuli jää toteutumatta. Siis φ CSAT jos ja vain jos ψ 3SAT. Selvästi muunnos φ ψ voidaan laskea polynomisessa ajassa. 241

NP-täydellisyys tähän mennessä: jos jollakin NP-täydellisellä ongelmalla on polynominen ratkaisualgoritmi, niin P = NP tätä ei pidetä luultavana, koska se tarkoittaisi että eksponentiaalisen suuria hakuavaruuksia voitaisiin etsiä polynomisessa ajassa suoraan määritelmästä todistettiin, että SAT on NP-täydellinen suoraviivaisilla palautuksilla osoitettiin, että jo SAT-ongelman rajoitetut erikoistapaukset CSAT ja 3SAT ovat NP-täydellisiä Jatko: [HMU 10.4] osoitetaan 3SAT p m IS ja 3SAT p m HC siis IS ja HC NP-täydellisiä aiemmin osoitettu IS p m VC ja HC p m TSP joten myös VC ja TSP NP-täydellisiä 242

Lause 3.15: [HMU Thm 10.18] Riippumaton joukko -ongelma on NP-täydellinen Todistus: Tarkastellaan siis joukkoa IS = { G, k G sisältää k-solmuisen riippumattoman joukon }. Harjoitustehtävänä osoitetaan IS NP. Muodostetaan palautus f: 3SAT p m IS. Koska 3SAT on NP-täydellinen, väite seuraa. Siis muodostetaan f(φ) = G, k, missä G, k IS jos ja vain jos φ on toteutuva 3-CNF-kaava. Erityisesti jos x ylipäänsä ei ole 3-CNF-kaava, pitää olla f(x) IS. Tällaisissa tapauksissa valitaan esim. f(x) = (V, E), n + 1 missä V = n. Keskitytään jatkossa tapaukseen jossa x todella on 3-CNF-kaava. 243

Olkoon siis φ 3-CNF-kaava, jossa m klausuulia: φ = m i=1 (z i,1 z i,2 z i,3 ) missä kukin z i,r on muotoa x j tai x j. Nyt f(φ) = (V, E), k missä k = m V = 3m ja V = { v i,r i { 1,..., m }, r { 1, 2, 3 } } (v i,r, v i,s ) E kaikilla i { 1,..., m }, r, s { 1, 2, 3 }, r s kun i j, niin (v i,r, v j,s ) E jos z i,r = z j,s tai z i,r = z j,s Selvästi f laskettavissa polynomisessa ajassa. 244

Esimerkki 3.16: Muodostetaan G, k = f(φ) kun φ = (x 1 x 3 x 4 ) ( x 2 x 4 x 5 ) ( x 1 x 5 x 6 ) (x 1 x 6 x 5 ). Rengastetuista solmuista muodostuu kokoa m = 4 oleva riippumaton joukko. Tämä vastaa kaavan toteuttavia arvoja x 1 = 1, x 5 = 0, x 6 = 0, muut muuttujat mielivaltaisia x 1 x 2 x 1 x 1 x 3 x 4 x 5 x 6 x 4 x 5 x 6 x 5 245

Nähdään että φ toteutuva verkossa G on m solmun riippumaton joukko U: : Ol. φ toteutuva. Valitaan muuttujien x i arvot siten, että jokaisessa kaavan φ klausuulissa i ainakin yksi literaali z i,r saa arvon 1. Valitaan joukkoon U vastaavat v i,r. Nyt U sisältää tasan yhden solmun jokaisesta kolmiosta. Lisäksi valitut solmut vastaavat tosia literaaleja, joten minkään kahden eri kolmiosta valitun solmun välillä ei ole kaarta. Siis U on riippumaton ja U = m. : Ol. m solmun joukko U riippumaton. Nyt U sisältää tasan yhden solmun joka kolmiosta. Koska minkään eri kolmioista valittujen solmujen välillä ei ole kaarta, voidaan ilman ristiriitaa asettaa todeksi valittuja solmuja vastaavat literaalit. Jokaiseen klausuuliin tulee ainakin yksi tosi literaali; φ toteutuva. 246

Tarkastellaan seuraavaksi suunnattu Hamiltonin kehä -ongelmaa (Directed Hamiltonian Circuit, DHC): Annettu: suunnattu verkko G Kysymys: onko verkossa G suunnattu polku joka käy jokaisessa solmussa tasan kerran ja palaa lähtösolmuunsa Siis eroksi alkuperäiseen Hamiltonin kehä -ongelmaan (HC) verkon kaarilla on suunta, ja kehän pitää näitä suuntia noudattaa. Lause 3.17: [HMU Thm 10.21] DHC on NP-täydellinen. Koska HC NP ja harjoitustehtävänä osoitetaan DHC p m HC, pätee Korollaari 3.18: [HMU Thm 10.23] HC on NP-täydellinen. 247

Todistus: Kuten suuntaamattomassa tapauksessa nähdään helposti että DHC NP. Muodostetaan palautus f: 3SAT p m DHC, mistä väite nyt seuraa. Olkoon annettu n-muutujainen 3-CNF-kaava φ jossa m klausuulia m φ = (z j,1 z j,2 z j,3 ). j=1 Suunnattu verkko f(φ) = G = (V, E) muodostuu kahdenlaisista osaverkoista eli laitteista (gadget): jokaista muuttujaa x i kohti laite A i, i = 1,..., n laite A i voidaan käydä läpi kahdella eri tavalla jotka koodaavat valintaa x i = 0 tai x i = 1 jokaista klausuulia β j = z j,1 z j,2 z j,3 kohti laite B j, j = 1,..., m laitteen B j läpikäynti voidaan lomittaa laitteen A i läpikäyntiin joss muuttuja x i tekee todeksi klausuulin β j 248

Laite A i : laitteessa on 2m + 4 solmua a i, d i sekä b i,j ja c i,j, j = 0,..., m. Laitteen sisäiset kaaret: solmusta a i kaari solmuihin b i,0 ja c i,0 solmuista b i,m ja c i,m kaari solmuun d i solmusta b i,j kaari solmuun c i,j ja solmusta c i,j kaari solmuun b i,j, j = 0,..., m solmusta b i,j 1 kaari solmuun c i,j ja solmusta c i,j 1 kaari solmuun b i,j, j = 1,..., m Havaitaan että laitteen A i solmut voidaan käydä läpi kahdessa järjestyksessä: järjestys a i c i,0 b i,0 c i,1 b i,1... c i,m b i,m d i vastaa valintaa x i = 0 järjestys a i b i,0 c i,0 b i,1 c i,1... b i,m c i,m d i vastaa valintaa x i = 1 Eri laitteita yhdistävät kaaret esitellään pian. 249

b i,0... b i,1 b i,2 b i,m A i 1 a i d i A i+1 c i,0 c i,1 c i,2... c i,m A i Laite A i. Kuvasta puuttuu kaaret laitteisiin B j. 250

Laite B j : laitteessa 6 solmua r j,1, r j,2, r j,3, s j,1, s j,2, s j,3. Laitteen sisäiset kaaret: solmut r j,k sisältävä sykli: kaaret (r j,1, r j,2 ), (r j,2, r j,3 ) ja (r j,3, r j,1 ) solmut s j,k sisältävä sykli: kaaret (s j,1, s j,3 ), (s j,3, s j,2 ) ja (s j,2, s j,1 ) (huom. suunta) syklejä kytkevät kaaret (r j,1, s j,1 ), (r j,2, s j,2 ) ja (r j,3, s j,3 ) Havaitaan että jos Hamiltonin kehä tulee laitteeseen B j solmun r j,k kautta niin sen pitää vastaavasti poistua solmun s j,k kautta. (Kehä voi vierailla laitteessa B j useita kertoja, mutta jokaisen vierailun on noudatettava tätä sääntöä.) Muuten osa solmuista jäisi eristyksiin eikä enää pääsisi mukaan kehään. 251

A i r j,3 s j,3 A i r j,2 s j,2 A i r j,1 s j,1 Laite B j. Tässä literaalin β j muuttujat ovat x i, x i ja x i. 252

Laitteet A i yhdistetään yhdeksi isoksi sykliksi: solmusta d i kaari solmuun a i+1, i = 1,..., n 1 solmusta d n kaari solmuun a 1 Laite A i yhdistetään niihin laitteisiin B j joilla klausuuli β j sisältää literaalin x i tai x i : jos z j,k = x i niin lisätään kaaret (c i,j 1, r j,k ) ja (s j,k, b i,j ) jos z j,k = x i niin lisätään kaaret (b i,j 1, r j,k ) ja (s j,k, c i,j ) Havainto: Jos klausuuli β j sisältää literaalin x i (vast. x i ) ja laitteen A i läpikäyntijärjestys vastaa valintaa x i = 1 (vast. x i = 0) niin laitteen B j läpikäynti voidaan sijoittaa laitteen A i läpikäynnin lomaan. 253

Verkkoon G = f(φ) ei tule muita kaaria kuin edellä luetellut. Selvästi f voidaan laskea polynomisessa ajassa. Seuraavasta väitteestä seuraa että f: 3SAT p m DHC. Väite: φ on toteutuva verkossa G on Hamiltonin kehä : Olkoon φ = 1 kun (x 1,..., x n ) = (v i,..., v n ) { 0, 1 } n. Siis jokaisella klausuulilla β j = z j,1 z j,2 z j,3 ainakin yksi literaali z j,k on tosi kun (x 1,..., x n ) = (v i,..., v n ). Valitaan jokin indeksi k(j) { 1, 2, 3 } s.e. jollain i joko z j,k(j) = x i ja v i = 1, tai z j,k(j) = x i ja v i = 0, Siis klausuulin numero j toteutuminen on siinä olevan literaalin numero k(j) vastuulla. 254

Verkkoon G voidaan muodostaa Hamiltonin kehä seuraavasti: 1. käy laite A i läpi järjestyksessä a i c i,0 b i,0... c i,m b i,m d i jos v i = 0 a i b i,0 c i,0... b i,m c i,m d i jos v i = 1 2. yhdistä laitteiden A i läpikäynnit järjestyksessä A 1 A 2... A n A 1 3. kaikilla j = 1,..., m: jos z j,k(j) = x i (jolloin v i = 0), korvaa laitteen A i läpikäynnin kaari (b i,j 1, c i,j ) polulla (b i,j 1, r j,k(j),..., s j,k(j), c i,j ) missä r j,k(j),..., s j,k(j) on laitteen B j läpikäynti jos z j,k(j) = x i (jolloin v i = 1), korvaa laitteen A i läpikäynnin kaari (c i,j 1, b i,j ) polulla (c i,j 1, r j,k(j),..., s j,k(j), b i,j ) missä r j,k(j),..., s j,k(j) on laitteen B j läpikäynti 255

: Olkoon verkossa G Hamiltonin kehä. Jos kehä sisältää kaaren (a i, b i,0 ) valitaan v i = 1. Jos kehä sisältää kaaren (a i, c i,0 ) valitaan v i = 0. Selvästi tasan yksi näistä pätee. Väitetään että φ = 1 jos x i = v i kaikilla i. Jos kehä tulee laitteeseen B j solmun r j,k kautta, se poistuu solmun s j,k kautta; muuten osa laitteen solmuista leikkautuisi pois kehältä. Siis laitteen B j kautta voidaan siirtyä solmusta c i,j 1 solmuun b i,j jos β j sisältää literaalin x i ja solmusta b i,j 1 solmuun c i,j jos β j sisältää literaalin x i. 256

Siis jos v i = 1, laite A i käydään läpi järjestyksessä a i b i,0 c i,0 b i,1 c i,1... b i,m c i,m d i missä c i,j 1 b i,j tarkoittaa siirtymistä solmusta c i,j 1 solmuun b i,j joko suoraan tai laitteen B j kautta. Jos v i = 0, saadaan vastaavasti a i c i,0 b i,0 c i,1 b i,1... c i,m b i,m d i. Jos laitteessa B j käydään laitteen A i läpikäynnin välissä ja v i = 1, niin laitteeseen B j mennään kaarta (c i,j 1, r j,k ) jolloin z j,k = x i. Vastaavasti jos v i = 0 niin z j,k = x i. Siis z j,k = 1 kun valitaan x i = v i. Jokaisessa laitteessa B j käydään ainakin kerran, joten jokaisessa klausuulissa β j on ainakin yksi literaali z j,k joka saa arvon 1 kun x i = v i kaikilla i. 257

TSP HC DHC VC IS Yhteenveto todistetuista polynomisista palautuksista 3SAT CSAT SAT NP-täyd. Nuoli A B tarkoittaa A p m B Huom. kaikki NP-ongelmat on palautettu ongelmaan SAT (Lause 3.7). NP 258

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 3.19 [Ladner 1975]: Jos P NP niin luokassa NP P on muitakin kuin NP-täydellisiä kieliä. Siis ei ole mahdollista, että luokka NP jakaantuisi toisaalta polynomisesti ratkeaviin ja toisaalta NP-täydellisiin ongelmiin: joko nämä ongelmaluokat yhtyvät tai niiden välissäkin on jotain. Eräs ehdokas välissä olevaksi ongelmaksi on verkkoisomorfia: Annettu: verkot G 1 = (V 1, E 1 ) ja G 2 = (V 2, E 2 ) Kysymys: onko olemassa bijektio f: V 1 V 2 jolla (u, v) E 1 joss ((f(u), f(v)) E 2 259

Luokan NP ongelmien komplementit [HMU 11.1] muodostavat luokan co-np = { A A NP }. Luokalla co-np on omat täydelliset ongelmansa. Lause 3.20: A on co-np-täydellinen jos ja vain jos A on NP-täydellinen. Todistus: Jos f on palautus B p m A, se on samalla palautus B p m A. Jos P = NP niin tietysti myös P = co-np. Joka tapauksessa selvästi P NP co-np. Nykytietämyksen mukaan seuraavat vaihtoehdot ovat kaikki mahdollisia: P = NP = co-np P NP mutta NP = co-np P = NP co-np mutta P NP ja P co-np P NP co-np ja NP co-np Näistä viimeistä pidetään ehkä luultavimpana. 260

Toisistaan poikkeavia aika- ja tilavaativuusluokkia on ääretön määrä. Määritelmä Funktio t on aikakonstruoituva, jos syötteellä 1 n luvun t(n) binääriesitys voidaan laskea ajassa O(t(n)). Kaikki järkevät vähintään n log n olevat funktiot ovat aikakonstruoituvia, esim. n log n, n 3/2, n 5, 2 n. Lause 3.21: Jos t on aikakonstruoituva, niin on olemassa ongelma A joka voidaan ratkaista ajassa O(t(n)) mutta ei ajassa O(t(n) 1 ɛ ) millään ɛ > 0.. Määritelmä Funktio s on tilakonstruoituva, jos syötteellä 1 n luvun s(n) binääriesitys voidaan laskea tilassa O(s(n)). Kaikki järkevät vähintään log n olevat funktiot ovat tilakonstruoituvia, esim. log n, n 3/2, n 5, 2 n. Lause 3.22: Jos s on tilakonstruoituva, niin on olemassa ongelma A joka voidaan ratkaista tilassa O(s(n)) mutta ei tilassa O(s(n) 1 ɛ ) millään ɛ > 0. 261

Koska P = NP? ja NP = co-np? ovat klassisia avoimia ongelmia, on hieman yllättävää että vastaavat tilavaativuusluokkia koskevat kysymykset helppoja : Lause 3.23 [Savitch 1970]: Olkoon s(n) n kaikilla n. Kaikki ongelmat, jotka voidaan ratkaista epädeterministisesti tilassa s(n), voidaan ratkaista deterministisesti tilassa O(s(n) 2 ). Korollaari 3.24: PSPACE = NPSPACE = co-npspace Tässä on siis merkitty co-c = { A A C } kuten aiemminkin. Komplementoinnin suhteen on saatu vielä tarkempikin tulos: Lause 3.25 [Immerman 1988, Szelepcsényi 1987]: Olkoon s(n) log n kaikilla n. Jos ongelma A voidaan tunnistaa epädeterministisesti tilassa s(n), niin A voidaan tunnistaa epädeterministisesti tilassa O(s(n)). (Tulos on mielekäs myös tapauksessa s(n) < n, kun tarkastellaan työtilaa eli syötteen säilyttämisestä ei makseta.) 262

Seuraava lause suhteuttaa karkeasti deterministiset aika- ja tilavaativuusluokat. Lause 3.26: Jos ongelman aikavaativuus on T (n), niin sen tilavaativuus on O(T (n)). Jos ongelman tilavaativuus on S(n), niin sen aikavaativuus on O(2 cs(n) ) jollain c > 0. Todistushahmotelma: Ajassa T (n) ei ehdi kuluttaa yli T (n) paikkaa muistia. Jos koneen M tilavaativuus on S(n) ja laskenta on kestänyt yli Q Γ S(n) askelta, jokin tilanne on toistunut, joten kone on ikuisessa silmukassa. Määritellään vielä eksponentiaalinen tilavaativuusluokka ESPACE = { L(M) M deterministinen, space M (n) = O(2 nk ) jollain k }. Korollaari 3.27: P NP PSPACE E ESPACE. Ylläolevien sisältyvyyksien aitoudesta ei tiedetä kuin seuraava Lause 3.28: P E ja PSPACE ESPACE 263

4. Yhteenveto Laskennan mallit Turingin kone on universaali laskennan malli: sen on tarkoitus kuvata kaikkia periaatteessa mahdollisia mekaanisia laskentoja alkuperäinen motivaatio logiikasta, ei tietokoneista laskettavuus Turingin koneella ei riipu mallin yksityiskohdista (erityisesti deterministisyydestä) vastaavia malleja on muitakin: rekursiiviset funktiot, yleiset kieliopit, Random Access Machine; ohjelmointikielet kaikki nämä määrittelevät saman käsitteen laskettavuus Churchin-Turingin teesi: Turingin koneet ovat oikea malli mekaaniselle laskennalle 264

Laskettavuusteoria peruskysymys: mitä voidaan laskea äärellisessä ajassa rekursiivisuus (ratkeavuus) ja rekursiivinen lueteltavuus (osittainratkeavuus) tärkeä tekninen yksityiskohta: Turingin koneen esitys merkkijonona, universaali Turingin kone universaalikieli L u : rekursiivisesti lueteltava, ei rekursiivinen muita ei-ratkeavia ongelmia: pysähtymisongelma, epätyhjyysongelma, tyhjyysongelma; Postin vastaavuusongelma Ricen lause: semanttiset ominaisuudet ratkeamattomia 265

rekursiivinen palautus A m B: ongelma A ainakin yhtä ratkeava kuin B tärkeä tekniikka: A todistetaan ratkeamattomaksi osoittamalla B m A missä B on jokin tunnettu ratkeamaton ongelma ongelma A on RE-täydellinen jos A on rekursiivisesti lueteltava ja B m A kaikilla rekursiivisesti lueteltavilla B RE-täydelliset ongelmat ovat maksimaalisen vaikeita osittain ratkeavia ongelmia esim. universaalikieli, pysähtymisongelma, epätyhjyysongelma 266

Vaativuusteoria peruskysymys: mitä voidaan laskea polynomisessa ajassa kertaluokat, aika- ja tilavaativuudet; vaativuusluokat, erityisesti P epädeterministiset vaativuusluokat, erityisesti NP avoin ongelma: onko P = NP, ts. vaikuttaako epädeterminismi siihen mikä on laskettavissa polynomisessa ajassa yleinen uskomus: P NP 267

polynominen palautus A p m B: ongelma A ainakin yhtä helppo kuin ongelma B A on NP-täydellinen jos A NP ja B p m A kaikilla B NP jos A on NP-täydellinen ja A ratkeaa deterministisesti polynomisessa ajassa, niin P = NP jos A on NP-täydellinen, on siis aihetta uskoa että A ei ratkea deterministisesti polynomisessa ajassa tärkeitä NP-täydellisiä ongelmia: SAT, 3SAT, HC, TSP, VC, IS,... ongelman A osoittaminen NP-täydelliseksi: 1. osoita A NP (yleensä helppoa) 2. osoita B p m A jollain NP-täydelliseksi tunnetulla B 268

LOPPU 269