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

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:

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

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

Muita vaativuusluokkia

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

10. Satunnaisalgoritmit

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

Säännöllisen kielen tunnistavat Turingin koneet

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

3. Laskennan vaativuusteoriaa

Turingin koneen laajennuksia

Algoritmit 2. Luento 13 Ti Timo Männikkö

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

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

6.1 Rekursiiviset palautukset

Algoritmit 2. Luento 14 To Timo Männikkö

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

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

5.3 Ratkeavia ongelmia

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

3. Laskennan vaativuusteoriaa

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

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

Algoritmit 2. Luento 14 Ke Timo Männikkö

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

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

Täydentäviä muistiinpanoja laskennan rajoista

SAT-ongelman rajoitetut muodot

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

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

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

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

Algoritmit 1. Luento 2 Ke Timo Männikkö

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

Automaatit. Muodolliset kielet

Laskennan vaativuus ja NP-täydelliset ongelmat

Rekursiiviset palautukset [HMU 9.3.1]

Laskennanteoria: Mitä voimmelaskea tietokoneella ja kuinkatehokkaasti?

Chomskyn hierarkia ja yhteysherkät kieliopit

Kertausta 1. kurssikokeeseen

6. Approksimointialgoritmit

Ongelma(t): Mikä on Turingin kone? Miten Turingin kone liittyy funktioihin ja algoritmeihin? Miten Turingin kone liittyy tietokoneisiin?

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta

Lisää pysähtymisaiheisia ongelmia

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

Algoritmit 2. Luento 1 Ti Timo Männikkö

1. Universaaleja laskennan malleja

Rajoittamattomat kieliopit

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

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

Algoritmin määritelmä [Sipser luku 3.3]

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

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

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

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

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

Polynomiset palautukset ja NP-täydellisyys

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

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

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

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

DFA:n käyttäytyminen ja säännölliset kielet

isomeerejä yhteensä yhdeksän kappaletta.

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

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

Satunnaisalgoritmit. Antti Tanhuanpää. 25. maaliskuuta 2013

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

Muunnelmia Turingin koneista sekä muita vaihtoehtoisia malleja

ICS-C2000 Tietojenkäsittelyteoria

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 16. marraskuuta 2015

1.4 Funktioiden kertaluokat

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 19. tammikuuta 2012

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

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

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

14. Juurikunnat Määritelmä ja olemassaolo.

Algoritmit 1. Luento 14 Ke Timo Männikkö

2. Laskettavuusteoriaa

Kombinatorinen optimointi

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

Äärellisten mallien teoria

Laskennan mallit (syksy 2010) 2. kurssikoe, ratkaisuja

2. Laskettavuusteoriaa

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

7 Vapaus. 7.1 Vapauden määritelmä

f(n) = Ω(g(n)) jos ja vain jos g(n) = O(f(n))

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 12. marraskuuta 2015

Jos sekaannuksen vaaraa ei ole, samastamme säännöllisen lausekkeen ja sen esittämän kielen (eli kirjoitamme R vaikka tarkoitammekin L(R)).

Rajoittamattomat kieliopit (Unrestricted Grammars)

Nopea kertolasku, Karatsuban algoritmi

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

1. Universaaleja laskennan malleja

Yllä osoitettiin, että säännöllisten kielten joukko on suljettu yhdisteen

Transkriptio:

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 ajassa toimiva epädeterministinen tunnistaja N Palautusfunktio 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 262 Kertaus 1. Luokan P ongelmat ovat käytännössä ratkeavia 2. 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 NP-tä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 mp A; lemman 7.36 perusteella myös A on NP-täydellinen 1

263 Seuraus: CSAT, 3SAT ja VC ovat NP-tä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 mp IS ja IS mp KLIKKI Lemma Olkoon G = (V, E) suuntaamaton verkko ja V V. Tällöin seuraavat ehdot ovat ekvivalentit: 1.V'on G:n solmupeite, 2.V\V'on riippumaton solmujoukko ja 3.V\V'on klikki G:n komplementtiverkossa = (V, (V V) \ E) 264 VC mp 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 mp IS. IS mp KLIKKI: Valitaan kuvaus f: f( G, k ) =, k. Kuvaus voidaan laskea polynomisessa ajassa. Edellisen lemman perusteella G, k IS, k KLIKKI. Täten f: IS mp KLIKKI. 2

265 SAT / CSAT 3SAT Osajoukkosumma VC Hamiltonin polku IS TSP KLIKKI 266 8. Tilavaativuus Standardimallisen Turingin koneen M = (Q,,,, q 0,accept,reject) laskennan tilavaativuus syötteellä w on space M (w) = max{ uav : q 0 w M u q av, q Q, u, a, v * } Epädeterministisen Turingin koneen N = (Q,,,, q 0,accept,reject) laskennan tilavaativuus: space N (w) = eniten tilaa vievän laskennan q 0 w N vaatimien nauhapaikkojen määrä 3

267 Olkoon s: + mv. funktio 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 268 Tilavaativuuden yhdisteluokat ovat PSPACE = { DSPACE(s) s on polynomi } = k 0 DSPACE(n k ) EXPSPACE = k 0 DSPACE(2 nk ) NPSPACE = k 0 NSPACE(n k ) NEXPSPACE = k 0 NSPACE(2 nk ) 4

269 Lemma Kaikilla t(n), s(n) n: 1. DTIME(t(n)) DSPACE(t(n)) ja 2. DSPACE(s(n)) k 0 DTIME(k s(n) ) Todistus. 1.t(n):ssä askelessa Turingin kone voi kirjoittaa korkeintaan t(n) merkkiä työnauhalleen. 2. 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 270 Savitchin lause Lause 8.5 Olkoon f: + mv. funktio s.e. f(n) n. Tällöin NSPACE(f(n)) DSPACE(f 2 (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ää 2 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 2 O(f(n)) tila, joten tämä menetelmä ei käy. Tarkastellaankin johtamisongelmaa: voiko epädeterministinen kone N päästä tilanteesta c 1 tilanteeseen c 2 askelten määrällä t. 5

271 Asettamalla c 1 N:n alkutilanteeksi ja c 2 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/2 ja 2. c m johtaa tilanteeseen c 2 askelten määrällä t/2. Rekursiivisten kutsujen vaatima tila voidaan uudelleenkäyttää. Rekursiopinon tallettamiseen tarvitaan tilaa. Joka tasolla käytetään O(f(n)) tila tilanteen tallettamiseen. Rekursiopinon maksimikorkeus on logaritminen epädeterministisen koneen pisimmän laskentapolun pituuden suhteen, eli log(2 O(f(n)) ) = O(f(n)). Deterministinen simulointi vaatii siis O(f 2 (n)) tilan. 272 Seuraus 1. NPSPACE = PSPACE 2. NEXPSPACE = EXPSPACE Nyt tiedämme yhdistevaativuusluokista lineaarisen järjestyksen PSPACE P NP EXPTIME NPSPACE EXPSPACE NEXPTIME NEXPSPACE 6

273 Lause 1. P EXPTIME 2. 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ä 274 Lause 1. Jos A REC, niin on olemassa rekursiivinen funktio t(n), jolla A DTIME(t(n)). 2. Kaikilla rekursiivisilla funktioilla t(n) on olemassa kieli A REC \ DTIME(t(n)). Funktio f(n) = f'(n, n) on rekursiivinen f'(0, n) = 2 2 2 } n kpl f'(m+1, n) = 2 2 2 } f'(m, n) kpl f(0) = 1, f(1) = 4, f(2) = 2 2 2 } 65 536 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. 7

275 8.1 PSPACE-täydellisyys Kieli B on PSPACE-täydellinen, jos 1.B PSPACE ja 2.A mp Bkaikilla A PSPACE Jos B täyttää vain ehdon 2, niin sitä nimitetään PSPACEkovaksi Täysin kvantifioidussa Boolen kaavassa kaikki muuttujat ovat jonkin kvanttorin vaikutuspiirissä, esim. = x y[(x y) ( x y)] TQBF on tosien täysin kvantifioitujen Boolen kaavojen kieli Lause 8.9 TQBF on PSPACE-täydellinen. 276 Mv. A PSPACE pitää palauttaa polynomisesti TQBF:en lähtien liikkeelle A:n polynomisessa tilassa toimivasta tunnistajakoneesta M Cook-Levin lauseen tapainen todistus ei kuitenkaan tule kyseeseen, koska kone M voi edelleen vaatia eksponentiaalisen ajan Tarvitaan Savitchin lauseen todistustekniikan kaltainen lähestyminen Syöte w kuvataan kvantifioiduksi kaavaksi, joka on tosi jos ja vain jos M hyväksyy w:n Muuttujajoukot c 1 ja c 2 kuvaavat tilanteita 8

277 Muodostetaan kaava (c 1, c 2, t), joka on tosi jos ja vain jos (joss) M voi siirtyä c 1 :stä c 2 :een korkeintaan t > 0 askelella Palautus tapahtuu kun muodostetaan kaava (c start, c accept, h), missä h = 2 df(n) d on siten valittu vakio, että M:llä ei ole n:n mittaisella syötteellä mahdollisia tilanteita kuin korkeintaan 2 df(n) f(n) = n k Kaavan tulee koodata koneen M työnauhan sisältö Jokaiseen nauhan soluun liittyy useita muuttujia, yksi jokaista nauha-aakkoston merkkiä kohden ja yksi jokaista M:n tilaa vastaten 278 Koska tilanteessa on n k solua, niin on muuttujiakin O(n k ) Kun t = 1, niin Joko c 1 = c 2 tai c 2 seuraa c 1 :stä yhdessä M:n siirtymäaskelessa Kaavan (c 1, c 2, t) muodostaminen on helppoa Kunkin c 1 :tä kuvaavan muuttujan arvo on sama kuin vastaavan c 2 :ta kuvaavan muuttujan arvo (Kuten Cook-Levin lauseen todistuksessa) kirjoittamalla lauseet, jotka varmistavat, että c 1 :n kuvauksen kolmikot voivat johtaa suoraan vastaaviin c 2 :n kuvauksen kolmikoihin 9

279 Kun t >1, niin (c 1, c 2, t) muodostetaan rekursiivisesti Suoraviivainen ratkaisu olisi määritellä (c 1, c 2, t) = m 1 [ (c 1, m 1, t/2) (m 1, c 2, t/2) ], missä m 1 on M:n tilanne Tarkkaan ottaen m 1 tarkoittaa x 1,, x l, missä l = O(n k ) ja x 1,, x l ovat tilanteen m 1 koodaavat muuttujat (c 1, c 2, t) on oikea kaava, sen arvo on tosi kun M voi päästä c 1 :stä c 2 :een t:ssä askelessa Sen pituus kuitenkin kasvaa rekursion myötä liian pitkäksi (eksponentiaaliseksi) 280 Kaavan (c 1, c 2, t) pituuden lyhentämiseksi muutetaan se muotoon m 1 (c 3, c 4 ) { (c 1, m 1 ), (m 1, c 2 ) }: [ (c 3, c 4, t/2) ] Selvästikin tämä kaava ilmaisee saman ehdon kuin aiemminkin, mutta nyt yhdellä rekursiivisella kaavalla Kaavan syntaktisesti korrektiin muotoon muuttamiseksi x { y, z }: [ ] voidaan korvata ekvivalentilla x [ (x = y x = z) ] Kukin rekursiotaso kasvattaa kaavan pituutta O(f(n)):n verran Rekursiotasoja on log(2 df(n) ) = O(f(n)), joten kaikkiaan muodostuvan kaavan pituus on O(f 2 (n)) 10

281 Kirjassa esitetään kahden "keinotekoisen" pelin PSPACEtäydellisyys Niille ei siis ole polynomiaikaista algoritmia, jollei P = PSPACE 8 8 -laudalla pelattava shakki ei kuitenkaan suoraan taivu samanlaiseen todistustekniikkaan Tilanteita on "vain" äärellinen määrä Periaatteessa voitaisiin siis tabuloida kaikki mahdolliset tilanteet ja paras siirto kussakin tilanteessa Täten Turingin koneen (tai äärellisen automaatin) kontrolliin voi tallettaa vastaavan tiedon ja koneella voi pelata optimaalisesti lineaarisessa ajassa 282 Taulukon koko vain valitettavasti on linnunrataamme suurempi Kiinteän kokoisten ongelmien vaativuutta ei voi käsitellä esitetyillä tekniikoilla Ne pätevät vain vaativuuden kasvunopeudelle ongelman tapauksen pituuden kasvaessa Yleistämällä pelit n n -laudoille, voidaan niiden optimaalisen pelaamisen vaativuutta tarkastella asymptoottisin keinoin Mm. shakki ja GO on osoitettu ainakin PSPACE-koviksi tässä katsantokannassa 11