P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta



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

Turingin koneen laajennuksia

Säännöllisen kielen tunnistavat Turingin koneet

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

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

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Täydentäviä muistiinpanoja laskennan rajoista

Laskennan vaativuus ja NP-täydelliset ongelmat

Algoritmit 2. Luento 13 Ti Timo Männikkö

Rekursiiviset palautukset [HMU 9.3.1]

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Muita vaativuusluokkia

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

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

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

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

Lisää pysähtymisaiheisia ongelmia

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:

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

1. Universaaleja laskennan malleja

on rekursiivisesti numeroituva, mutta ei rekursiivinen.

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

Automaatit. Muodolliset kielet

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

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

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

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

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

Laskennan mallit (syksy 2009) Harjoitus 11, ratkaisuja

3. Laskennan vaativuusteoriaa

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

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

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

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

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

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

Täydentäviä muistiinpanoja Turingin koneiden vaihtoehdoista

Tietotekniikan valintakoe

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

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

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

Chomskyn hierarkia ja yhteysherkät kieliopit

Yhteydettömän kieliopin jäsennysongelma

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

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

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

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

5.3 Ratkeavia ongelmia

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Rajoittamattomat kieliopit (Unrestricted Grammars)

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

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

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

b) Määritä myös seuraavat joukot ja anna kussakin tapauksessa lyhyt sanallinen perustelu.

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

Rajoittamattomat kieliopit

Algoritmin määritelmä [Sipser luku 3.3]

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

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

Laskennan mallit (syksy 2010) Harjoitus 4, ratkaisuja

Kombinatorinen optimointi

Säännöllisten kielten sulkeumaominaisuudet

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

1 Kannat ja kannanvaihto

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

isomeerejä yhteensä yhdeksän kappaletta.

1. Universaaleja laskennan malleja

Matematiikan tukikurssi, kurssikerta 2

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

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

Luonnollisen päättelyn luotettavuus

2. Laskettavuusteoriaa

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

LOGIIKKA johdantoa

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

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

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

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

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

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

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

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

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

1 Määrittelyjä ja aputuloksia

TIEA241 Automaatit ja kieliopit, kevät Antti-Juhani Kaijanaho. 12. tammikuuta 2012


Pikapaketti logiikkaan

Matematiikan tukikurssi

Topologia Syksy 2010 Harjoitus 4. (1) Keksi funktio f ja suljetut välit A i R 1, i = 1, 2,... siten, että f : R 1 R 1, f Ai on jatkuva jokaisella i N,

Algoritmit 2. Luento 13 Ti Timo Männikkö

2. Laskettavuusteoriaa

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

Kertausta 1. kurssikokeeseen

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla

7.4 Sormenjälkitekniikka

Johdatus matemaattiseen päättelyyn

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

Transkriptio:

P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta Juha Nurmonen Matematiikan laitos Helsingin yliopisto Ajatellaanpa esimerkiksi kauppamatkustajan jokapäiväistä ongelmaa: Kauppamatkustajan on käytävä matkallaan useassa kaupungissa myymässä tuotteitaan. Voiton maksimoimiseksi hän haluaa luonnollisesti kiertää nämä kaupungit sopivan lyhyen esimerkiksi enintään tuhannen kilometrin pituisen reitin kautta, jotta matka olisi voittoisa ja hän pääsisi pikaisesti kotiin nauttimaan tuotostaan. Mikäli kauppamatkustaja tietää tällaisen sopivan reitin esimerkiksi lukemattomien myyntimatkojen kokemuksella tai onnistuneella arvauksella on hänen valintansa matkasuunnitelmaksi helppo. Mutta jos hän ei sitä tiedä, saattaa sopivan reitin löytäminen osoittautua varsin työlääksi. Kauppamatkustaja ei nimittäin pahimmassa tapauksessa voi löytää sopivaa reittiä ennen kuin on käynyt läpi kaikki vaihtoehdot näitä on esim. kymmenen kaupungin tapauksessa useampi miljoona! Tämä ongelma on esimerkki ratkaisun keksimisen ja sen tarkistamisen vaativuuksien erosta. Yksi turhauttavampia teoreettisen tietojenkäsittelytieteen avoimia kysymyksiä viimeiset kolmekymmentä vuotta onkin ollut ns. P? = NP kysymys. Kaikki mitä tietokoneella pystytään laskemaan, voidaan nimittäin aina esittää ns. päätösongelman muodossa: onko annetulla syötteellä kysytty ominaisuus (esimerkiksi kauppamatkustajan ongelman tapauksessa onko olemassa reittiä, joka on lyhyempi kuin annettu luku ). Luokat P ja NP kuvaavat tällaisten päätösongelmien laskennallista eli algoritmista vaativuutta. Luokka P voidaan kuvailla eräänlaisena teoreettisena likiarvona niiden ongelmien kokoelmalle, joille voidaan järkevässä ajassa laskea ratkaisu. Luokka NP taas on kokoelma ongelmia, joille ratkaisun keksimisen arvaamisen jälkeen voidaan mielekkäässä ajassa tarkistaa ratkaisun oikeellisuus. Mainittakoon heti aluksi, että luokassa NP ovat edellä mainitun kauppamatkustajan ongelman lisäksi mm. seuraavat jokapäiväisessä verkkoteoriassa vastaantulevat ongelmat (joiden ei siis tiedetä olevan luokassa P): Hamiltonisuus: onko verkossa Hamiltonin sykliä; eli voidaanko verkossa kulkea verkon kaaria pitkin käymällä kussakin solmussa täsmälleen kerran ja palata alkupisteeseen; 3-väritettävyys: voiko verkon värittää (korkeintaan) kolmella eri värillä siten, että toisiinsa yhteydessä olevat solmut ovat erivärisiä; SPK: onko verkossa klikkiä, joka sisältää puolet solmuista (klikki on solmujoukko, jossa kunkin kahden solmun välillä on yhteys). 1

Näillä ja monilla vastaavilla ongelmilla on myös tärkeä rooli useissa sovelluksissa käytetyissä algoritmeissa. Jos nimittäin niille löydettäisiin polynomiaikainen ratkaisu, eli niiden tiedettäisiin olevan luokassa P, monen tietokonepohjaisen sovelluksen uskottaisiin olevan tehokkaampi. Tuntuisi aika luonnolliselta, että ratkaisun keksimisen laskennallinen vaativuus ja tämän ratkaisun oikeellisuuden tarkistamisen vaativuus ovat jotain aivan eri suuruusluokkaa. Mutta se, että P? = NP kysymys on vielä kolmen vuosikymmenen tarmokkaiden yritysten jälkeen avoin, on sitäkin hämmästyttävämpää. Tosin kysymyksen ratkaisun osin varsin yllättävätkin seuraukset antanevat osviittaa kysymyksen syvällisyydestä ja ratkaisun vaikeudesta. Mistä siis oikeastaan on kysymys? A. Mitkä ihmeen P ja NP? P =? NP ongelma voidaan kaikessa lyhykäisyydessään määritellä kysymyksenä, voidaanko epädeterministisellä algoritmilla polynomisessa ajassa tunnistettava kieli tunnistaa myös deterministisellä algoritmilla polynomisessa ajassa. Tässä polynomiaikaisuudella tarkoitetaan, että laskennan algoritmin askelten (kukin askel kestää yhden aikayksikön ) määrä on rajoitettu jollakin tietyllä polynomilla syötteen pituuden suhteen. Laskennan malli Jotta tästä kysymyksenasettelusta saataisiin tarkka kuvaus, on ensin kuitenkin määriteltävä laskennan, tai tietokoneen, formaali malli. Standardi ja perinteinen tällainen käsite on Turingin kone, eräänlainen ideaalinen tietokone. Tämä laskennan malli esiteltiin jo paljon ennen ensimmäistäkään tietokonetta [Tur37]. Siitä huolimatta tällä koneella voidaan simuloida mitä tehokkaimpia tietokoneen ja laskennan malleja. On kuitenkin huomattava, että muitakin vastaavia laskennan malleja on olemassa, ja kaikki nämä mallit ovat oleellisesti ekvivalentteja. (Eri malleilla laskennan vaativuus muuttuu jonkin verran, muttei niin paljon, että sillä olisi merkitystä kysymyksenasetteluun.) Kuvailemme seuraavassa lyhyesti (jokseenkin teknisen) Turingin koneen määritelmän. (Jos lukija ei ole innostunut ao. teknisestä määritelmästä, hän voi myöhemmissä luvuissa huoletta korvata Turingin koneen tietokoneella.) Olkoon annettu äärellinen aakkosto Σ, eli epätyhjä joukko symboleita, jossa on ainakin kaksi alkiota (aakkoston symboleille käytetään usein merkintää a, b, jne.); lisäksi on käytössä ns. tyhjä merkki λ Σ. Turingin kone koostuu äärettömästä syötenauhasta, jossa kukin nauhapaikka voi sisältää arvonaan aakkoston Σ symbolin tai merkin λ. Alkutilanteessa nauhalla on jokin äärellinen määrä Σ:n merkkejä ja muissa nauhapaikoissa on tyhjä merkki λ. Formaalisti Turingin kone M on monikko (Q, Σ, δ), missä Q on koneen tilojen äärellinen joukko; Σ on koneen nauha-aakkosto (λ Σ) ja δ : Q (Σ {λ}) Q (Σ {λ}) {R, N, L} on koneen siirtymäfunktio. 2

Tilojen joukko sisältää aina kolme erityistä tilaa q 0 on koneen alkutila; q hyv on koneen hyväksyvä tila ja q hylk on koneen hylkäävä tila. Erityisesti kannattaa huomata, että δ kuvaa yksinkertaisesti äärellistä ohjelmaa. Tässä δ(q, m) = (q, m, f) vastaa sitä, että kone M on tilassa q ja nauhapää lukee syötenauhalta merkin m ja siirtymäfunktio δ siirtää koneen tilaan q, kirjoittaa nauhalle (nauhapään kohdalle) symbolin m ja siirtää nauhapään sitten pykälän vasemmalle, oikealle, tai jättää siirtämättä riippuen symbolista f, joka on joko L, R tai N. Tämä yksinkertainen kone riittääkin kuvaamaan kaiken tarpeellisen. Erityisesti on huomattava, että laskenta ei välttämättä pysähdy lainkaan. Luokat P ja NP Luokat P ja NP ovat kielten kokoelmia: Olkoon Σ aakkosto. Joukon Σ äärellisille merkkijonoille käytetään merkintää Σ. Aakkoston Σ kieli onkin sitten yksinkertaisesti osajoukko L Σ. Kuhunkin Turingin koneeseen M liittyy vastaavasti syöteaakkosto Σ. Samoin jokaista merkkijonoa w Σ vastaa koneen laskenta tällä syötteellä w. Kone M hyväksyy merkkijonon (eli sanan) w, jos tämä laskenta pysähtyy hyväksyvään tilaan. Jos taas M pysähtyy hylkäävään tilaan tai laskenta ei pysähdy, M ei hyväksy jonoa w. Koneen M hyväksymä kieli, L(M), on hyväksyttyjen merkkijonojen joukko, eli L(M) = {w Σ M hyväksyy jonon w}. Olkoon sitten t M (w) koneen M käyttämien laskennan askelten määrä syötteellä w (jos laskenta ei koskaan pysähdy, on t M (w) = ). Olkoon vielä n N ja T M (n) = max{t M (w) w Σ n }, missä Σ n on n:n pituisten Σ:n merkkijonojen joukko. Tämä siis tarkoittaa, että mittaamme n:n pituisten jonojen laskennan pahimman tapauksen vaativuutta mittarilla T M (n). Kone M on polynomiaikainen, jos jollakin k N pätee T M (n) n k + k kaikilla luonnollisilla luvuilla n. Luokan P formaali määritelmä kuuluu näiden esivalmistelujen jälkeen seuraavasti. 1 Määritelmä. P on (jonkin aakkoston Σ) luokka P = {L L = L(M) jollakin polynomiaikaisella koneella M}. Luokka NP (nondeterministic polynomial time) määritellään perinteisesti vastaavasti kuten P, mutta käyttäen ns. epädeterminististä konetta, jossa tilasiirtymäfunktio voikin antaa kussakin tilassa useita arvoja (eli joukon) yhden sijaan. Toinen tapa määritellä tämä luokka on käyttää ns. tarkistusrelaatiota, joka on kaksipaikkainen relaatio R Σ Σ 1, missä Σ ja Σ 1 ovat aakkostoja. Kuhunkin tällaiseen relaatioon R voidaan puolestaan liittää aakkoston Σ Σ 1 { } (tässä Σ) kieli L R, joka määräytyy joukkona L R = {w y R(w, y)}. Relaatio R on polynomiaikainen, jos sitä vastaava kieli on, eli jos L R P. Nyt voimme antaa luokan NP formaalin määritelmän. 3

2 Määritelmä. Luokka NP on niiden (jonkin aakkoston Σ) kielten L luokka, joille löydetään jokin luonnollinen luku k N ja polynomiaikainen tarkistusrelaatio R, siten että kaikilla w Σ pätee w L y( y w k ja R(w, y)), missä w ja y merkitsevät näiden merkkijonojen pituutta. Tässä siis tarkistusrelaatio R vastaa alussa mainitsemaamme löydettyä ratkaisua ja yllä oleva kaava onkin sitten vain polynomiaikainen tarkistus, onko tämä löytämämme ratkaisu oikea. Vastaavasti polynomisessa algoritmissa R vastaa keksittyä algoritmia, jonka oikeellisuus vain sitten todennetaan. B. Mistä olikaan kysymys? Nyt kun suurella vaivalla saimme tämän artikkelin pääluokat määriteltyä, voimme tarkastella niiden suhdetta. Ensinnäkin toteamme, että P NP: jos (jonkin aakkoston Σ) kieli L on luokassa P, saadaan kaivattu polynomiaikainen tarkistusrelaatio R Σ Σ määrittelemällä R(w, y) w L kaikilla w, y Σ. Miljoonan taalan kysymys onkin, onko tämä sisältyvyys aito! Tokihan kullekin päätösongelmalle yo. määritelmän kaltainen ratkaisu löydetään, mutta tällainen triviaali, kaikki mahdollisuudet läpi käyvä ratkaisu, on pahimmasa tapauksessa väistämättä eksponentiaalinen (eli n:n pituisella syötteellä T M (n) on oleellisesti muotoa 2 kn jollakin vakiolla k). Ongelmana siis onkin, onko sille mahdollista löytää polynomista ratkaisua. Tästä kysymyksestä tekevät erityisen mielenkiintoisen laskettavuuden teoriasta tutut palautuvuuden ja täydellisyyden käsitteet. Luonnollisesti myös luokkien NP ja P yhteydessä voidaan puhua aivan samoista käsitteistä. 3 Määritelmä. Tarkastellaan aakkoston Σ 1 kieltä L 1 ja aakkoston Σ 2 kieltä L 2. Silloin L 1 on p- palautuva kieleen L 2, eli L 1 p L 2, jos on olemassa polynomiaikaisesti laskettava funktio f : Σ 1 Σ 2, jolle x L 1 f(x) L 2 kaikilla x Σ 1. Kieli L on NP-täydellinen, jos L NP ja L p L kaikilla L NP. Tästä saammekin suoraan tärkeimmät työkalut otsikon kysymyksen ratkaisemiseksi. 4 Lause. Jos yksikin NP-täydellinen ongelma voidaan ratkaista polynomisessa ajassa, niin P = NP. Ja sama kääntäen kuuluu tietysti seuraavasti. 5 Seuraus. Jos P NP, niin yhdelläkään NP-täydellisellä ongelmalla ei ole polynomiaikaista ratkaisualgoritmia. 4

Toisin sanoen kysymys näiden kahden luokan suhteesta palautuukin konkreettiseen kysymykseen yhdestä ainoasta (NP-täydellisestä) ongelmasta! Juuri tämä seikka on NPtäydellisyyden käsitteen tärkein arvo. Ennen kuin tästä käsitteestä on tietenkään mitään iloa, on osoitettava, että on olemassa NP-täydellisiä ongelmia. Ensimmäisen tällaisen todisti Cook [Coo71]: ns. ratkeavuusongelma on NP-täydellinen. Ratkeavuusongelma on seuraavanlainen: syöte: kysymys: propositiolause; onko tämä propositiolause toteutuva. Propositiolause koostuu propositiosymboleista p 0,..., p k jollakin k N, niiden negaatioista, sekä disjunktioista ja konjunktioista. Kysymys onkin siis määrittää, onko olemassa totuusjakaumaa v, joka antaa ko. lauseelle arvon tosi. Esimerkiksi propositiolauseelle p 0 p 0 tällaista totuusjakaumaa ei löydy, mutta lauseelle p 0 p 1 totuusjakauma v(p 0 ) = tosi ja v(p 1 ) = epätosi antaa lauseelle totuusarvon tosi. (Vaadittava polynomiaikainen tarkistusrelaatio Cookin tuloksessa on R(x, y), joka on voimassa täsmälleen silloin, kun x on kyseisen propositiolauseen koodi ja y on propositiolauseen todeksi tekevän totuusjakauman koodi.) Tässä kysymyksessä tulee erityisen hyvin esiin ratkaisun löytämisen ja sen tarkistamisen vaativuuksien ero: Jos on arvattu oikea totuusjakauma annetulle propositiolauseelle, on suoraviivaista ja laskennalliselta vaativuudelta varsin alhaista tarkistaa sen oikeellisuus. Mutta tällaisen totuusjakauman löytäminen, kun kaikki mahdollisuudet on käytävä läpi, on vaativuudeltaan sen sijaan työlästä (muistammehan, että puhuimme pahimman tapauksen vaativuudesta). Tänä päivänä NP-täydellisiä ongelmia tunnettaneen ehkä jopa lähes tuhatkunta! Esimerkiksi teoksessa [GJ79] on lueteltu noin kolmesataa tällaista ongelmaa, joita joskus jopa kutsutaan luonnollisiksi NP-täydellisiksi ongelmiksi. Tällaisia ongelmia ovat muun muassa alussa mainitut verkkoteorian ongelmat. Todetaan vielä, että NP-täydellisten ongelmien tapauksessa tarkistusrelaatiossa R esiintyvä etsimisongelma annetulle x etsittävä y, jolle R(x, y) palautuu alkuperäiseen ongelmaan, eikä siis lisää vaativuutta. Erityisesti, jos P =NP, niin tälle etsimisongelmalle on jopa polynomiaikainen algoritmi. Lienee vielä syytä huomauttaa, että on olemassa kieliä, joiden tiedetään olevan vaativuusluokassa NP, mutta joiden ei tiedetä olevan NP-täydellisiä tai luokassa P. Esimerkkinä tällaisesta kielestä mainittakoon yhdistettyjen lukujen joukko. Tässä tapauksessa tarkistusrelaatio R määräytyy kaavalla R(ā, b) 1 < b < a ja b a. (Tässä ā ja b ovat lukujen a ja b koodeja.) Vaikka tässä onkin puhuttu vain luokista P ja NP, on näiden vaativuusluokkien sekä ala- että yläpuolella (ehkä jopa välissäkin) koko joukko mielenkiintoisia vastaavia vaativuusluokia, joihin liitty täysin samanlaisia käsitteitä ja kysymyksiä. Miksi sitten juuri tämä kysymys on suuren huomion kohteena? Ensinnäkin P? = NP kysymys lienee historiallisesti ensimmäinen alan (hyvin muotoilluista) kysymyksistä ja siksi suuren huomion kohteena. Toinen seikka liittyy vaativuusluokan P oleelliseen rooliin teoreettisessa tietojenkäsittelytieteessä: luokassa P laskettavat ongelmat ovat niitä, joita tietokoneella on järkevä ratkaista. Tosin tiedetään myös ongelmia, joille tunnettu polynomiaikainen algoritmi on varsin suuri, mutta eksponentiaalinen algoritmi varsin siedettävä käytännössä vastaan tulevissa tilanteissa. Tässä mielessä P? = NP ongelmaa voidaan pitää myös 5

teoreettisena yksinkertaistuksena tärkeään vaativuusteoreettiseen kysymykseen, mitä voidaan tehokkaasti laskea. Eräs varteenotettava viite vaativuusteoriaan on [Pap94]. Toinen mielenkiintoinen viite myös loogisesta näkökulmasta vaativuusteoreettisiin kysymyksiin on [Imm98]. C. Tulevaisuuden näkymiä Paitsi, että P? = NP ongelman ratkaisija saanee mainetta ja mammonaa, ei siinä vielä kaikki. Vaikkei kysymystä itsessään ole pystytty ratkaisemaan, ei viimeisen kolmenkymmenen vuoden aikana ihan laakereillakaan ole levätty. Sen sijaan on etsitty useita uusia ongelmia, joihin tällä kysymyksellä on yhtymäkohtia, sekä on tutkittu, mitä seurauksia ratkaisulla olisi, oli tämä ratkaisu sitten kumpi tahansa. (Kaikkihan muistavat, että Fermat n suuri lausekin lopulta ratkaistiin, kun keksittiin sopiva paljon tutkittu matematiikan osa-alue, johon se liittyy.) Yksi mahdollinen ja maininnanarvoinen lähestymistapa tähän kysymykseen ovat ns. probabilistiset vaativuusluokat, joiden suhdetta luokiin P ja NP on myös paljon tutkittu. Näistä ehkä mielenkiintoisin on luokka BPP, joka on niiden kielten luokka, jotka voidaan tunnistaa satunnaisella polynomiaikaisella algoritmilla, joka kullakin syötteellä antaa korkeintaan eksponentiaalisen pienen virheen. (Esimerkiksi alkuluvut ovat luokassa BPP, mutta niiden ei tiedetä olevan luokassa P.) Toki on P BPP mutta tämän luokan tarkka suhde tarinamme pääluokkiin ei ole tiedossa. Yleisesti toki uskotaan, että P NP. Ja monet lohduttautuvat vielä sillä, että vaikka olisikin P = NP, NP-täydellisten ongelmien polynomiaikaisuus luultavasti on niin suuri, ettei sillä käytännössä ole mitään merkitystä. Mainitaan vielä lopuksi pari P? = NP kysymykseen liittyvää seikkaa. Itse asiassa nykypäivämme jopa perustuu monelta osin olettamukseen P NP. Tarkastellaanpa nimittäin päinvastaisen ratkaisun muutamaa seurausta. Lähes kaikki nykyisin tietoliikenteessä käytetyt salaus- ja suojausmenetelmät (kuten RSA, DES) perustuvat vankasti olettamukseen P NP. Jos päinvastainen tulos todistettaisiin, etenkin osa näistä menetelmistä joutaisi täysin romukoppaan. Tämä siis esimerkiksi hyllyttäisi nykyään kovin suositun nettiasioimisen kokonaan. Toinen positiivisen vastauksen seuraus pistäisi puolestaan (lähes kaikki) matemaatikot virattomiksi. Silloin nimittäin kaikki (nykyisin yleisesti hyväksytyn aksioomasysteemin ZFC:n) järkevän pituiset teoreemat voitaisiin jättää tietokoneen löydettäväksi, sillä nämä on helppo tarkistaa polynomiajassa. Erityisesti tämä koskee kaikkia tämän lehden artikkeleita. Kannattaa siis aloittaa näiden ongelmien ratkaiseminen P? = NP kysymyksestä! Kiitokset Alex Hellstenille, Taneli Huuskoselle ja Tero Tulenheimolle kommenteista tämän artikkelin aiemmasta versiosta. 6

Viitteet [Coo71] [GJ79] S. Cook. The complexity of theorem-proving procedures. In Conference Record of Third Annual ACM Symposium on Theory of Computing, ss. 151 158, 1971. M. R. Garey and D. S. Johnson. Computers and Intractability, a Guide to the Theory of NP-Completeness. W. H. Freeman and Co., San Francisco, 1979. [Imm98] N. Immerman. Descriptive complexity. Springer Verlag, Berlin, 1998. [Pap94] C. Papadimitriou. Computational Complexity. Addison-Wesley, 1994. [Tur37] A. Turing. On computable numbers with an application to the entscheidnungsproblem. In Proceedings of the London Mathematical Society, 2:42, ss. 230 265, 1936/37. 7