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:

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

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

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

Muita vaativuusluokkia

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

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

3. Laskennan vaativuusteoriaa

10. Satunnaisalgoritmit

Algoritmit 2. Luento 13 Ti Timo Männikkö

6.1 Rekursiiviset palautukset

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Turingin koneen laajennuksia

Algoritmit 2. Luento 14 To Timo Männikkö

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

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

Säännöllisen kielen tunnistavat Turingin koneet

SAT-ongelman rajoitetut muodot

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

3. Laskennan vaativuusteoriaa

6. Approksimointialgoritmit

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Polynomiset palautukset ja NP-täydellisyys

Laskennan vaativuus ja NP-täydelliset ongelmat

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

Rekursiiviset palautukset [HMU 9.3.1]

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Lisää pysähtymisaiheisia ongelmia

5.3 Ratkeavia ongelmia

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

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

1. Universaaleja laskennan malleja

uv n, v 1, ja uv i w A kaikilla

Algoritmit 2. Luento 14 Ke Timo Männikkö

Chomskyn hierarkia ja yhteysherkät kieliopit

Kertausta 1. kurssikokeeseen

Rajoittamattomat kieliopit

Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

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

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Algoritmit 1. Luento 2 Ke Timo Männikkö

1.4 Funktioiden kertaluokat

Täydentäviä muistiinpanoja laskennan rajoista

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

isomeerejä yhteensä yhdeksän kappaletta.

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

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

14. Juurikunnat Määritelmä ja olemassaolo.

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

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

Pinoautomaatit. TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 6. kesäkuuta 2013 TIETOTEKNIIKAN LAITOS. Pinoautomaatit.

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

P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta

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)

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

Säännöllisten kielten sulkeumaominaisuudet

Automaatit. Muodolliset kielet

1. Universaaleja laskennan malleja

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Shorin algoritmin matematiikkaa Edvard Fagerholm

3. Turingin koneet. osaa esittää yksinkertaisia algoritmeja täsmällisesti käyttäen Turingin konetta ja sen muunnelmia

TIEA241 Automaatit ja kieliopit, kesä Antti-Juhani Kaijanaho. 26. kesäkuuta 2013

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.

Reaalifunktioista 1 / 17. Reaalifunktioista

2.2.1 Ratkaiseminen arvausta sovittamalla

S BAB ABA A aas bba B bbs c

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

ICS-C2000 Tietojenkäsittelyteoria

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

Algoritmit 1. Luento 14 Ke Timo Männikkö

Algoritmin määritelmä [Sipser luku 3.3]

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

Kuva 1: Kauppamatkustajan reitti Suomen 15 suurimmalle kaupungille (2002).

7. Olemassaolo ja yksikäsitteisyys Galois n kunta GF(q) = F q, jossa on q alkiota, määriteltiin jäännösluokkarenkaaksi

Turingin koneet. TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 7. joulukuuta 2015 TIETOTEKNIIKAN LAITOS.

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

7 Vapaus. 7.1 Vapauden määritelmä

2. Laskettavuusteoriaa

Satunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013

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

Taulun avoimista haaroista saadaan kelvolliset lausejoukot

58131 Tietorakenteet ja algoritmit (kevät 2016) Ensimmäinen välikoe, malliratkaisut

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

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

Transkriptio:

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