• Ei tuloksia

P = N P -ongelma – mikä se on?

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "P = N P -ongelma – mikä se on?"

Copied!
4
0
0

Kokoteksti

(1)

Solmu 2/2013 1

P = N P -ongelma – mikä se on?

Tuomas Korppi

Johdanto

Tässä kirjoitelmassa esittelemme erään kuuluisimmis- ta avoimista matemaattisista ongelmista. Kyse onP = N P -kysymyksestä, joka kysyy, voidaanko tiettyjä tie- tokoneella suoritettavia laskentoja suorittaa nopeas- ti. Yhtälössä P tarkoittaa nk. polynomisessa ajassa laskettavia ongelmia ja N P nk. polynomisessa ajassa ei-deterministisesti laskettavia ongelmia. Nämä käsit- teet määritellään myöhemmin tässä tekstissä. Yhtälö P =N P siis väittää, että nämä kaksi ongelmaluokkaa ovat samat. Onko näin? Sitä kukaan ei tiedä.

Koska kyse on matemaattisesta ongelmasta, ratkaisuk- si vaaditaan todistusta jommalle kummalle seuraavis- ta:

Todistus sille, että kyseiset luokat ovat samat.

Tämä voitaisiin todistaa mm. tekemällä tiettyjäN P- luokkaan kuuluvia ongelmia nopeasti ratkova tieto- koneohjelma.

Todistus sille, että luokat ovat eri. Tämä tar- koittaisi todistusta sille, että on mahdotonta teh- dä tiettyjäN P-luokkaan kuuluvia ongelmia nopeasti ratkovaa tietokoneohjelmaa.

Jos joku saa P = N P -kysymyksen ratkaistua, Clay Mathematics Institute on luvannut ratkaisusta mil- joonan dollarin palkinnon. Yllättävää kyllä, palkinto

olisi periaatteessa mahdollista saada riittävän hyvällä Miinaharava-pelin analyysilla.

Laskennasta

Tässä kirjoitelmassa tarkoitamme tietokoneohjelmalla ohjelmaa, joka saa aluksi yhden syötteen, joka on ää- rellinen merkkijono1, laskee sitä aikansa, ja lopuksi pa- lauttaa joko merkkijonon ”Kyllä” tai merkkijonon ”Ei”.

Tavallisessa tietokoneessa on rajallinen määrä muistia, ja tavallisissa yhteyksissä on rajallinen määrä aikaa las- kennalle, mutta laskennan teoreettisessa tarkastelussa oletetaan, että nämä suureet ovat riittävän suuria kä- sillä olevan laskennan loppuunviemiseksi, olivatpa ne kuinka suuria tahansa, kunhan ne ovat äärellisiä. Sa- moin ohjelman saama syöte saa olla kuinka pitkä ta- hansa, kunhan se on äärellinen.

Polynominen aika

Olkoon T tietokoneohjelma edellisessä luvussa kuvail- lussa mielessä. Merkitään f(1):llä pisintä aikaa, jonka ohjelma käyttää yhden merkin mittaisen syötteen kä- sittelyyn. Yhden merkin mittaisia syötteitä on useita, ja merkitsemme siisf(1):llä maksimia kaikkien yhden

1Yhteen merkkijonoon voidaan koodata vaikka millä mitalla tietoa, eli ohjelmamme voi saada syötteeksi esimerkiksi useita lukuja vaikkapa puolipisteellä erotettuna.

(2)

2 Solmu 2/2013

merkin mittaisten syötteiden vaatimista ajoista. Merki- täänf(2):lla pisintä aikaa, jonka ohjelma käyttää kah- den merkin mittaisen syötteen käsittelyyn ja niin edel- leen. Näin saamme funktion f: N→N (voidaan olet- taa, että laskenta-ajat ovat kokonaislukuja, ja voidaan asettaaf(0) = 0).

Tyypillisesti limn→∞f(n) = ∞, ja meitä kiinnostava kysymys on:

Kuinka nopeastif lähenee ääretöntä?

Sanomme, että ohjelmanT vaatima aika onpolynomi- nen, jos on olemassa (kokonaiskertoiminen) polynomi Q, jollef(n)≤Q(n) kaikillan. Tässä sillä, mikä on yk- köstä edustava ajanjaksof:n määritelmässä ei ole mer- kitystä. Samat ohjelmat ovat polynomisia, valittiinpa tuo ajanjakso lyhyeksi tai pitkäksi.

Jos ohjelman T vaatima aika on polynominen, ohjel- maa T pidetään yleensä nopeana. Tämä johtuu siitä, ettän:n kasvaessa minkä tahansa polynominQ(n) ar- vo kasvaa kohti ääretöntä suhteellisen hitaasti. Poly- nominen ohjelma onkin oikeasti nopea, jos polynomin Q aste on pieni. Jos polynomin Q aste on suuri, voi ohjelma olla käytännössä liian hidas, vaikka se olisikin polynominen.

Jos ohjelman T vaatima aika ei ole polynominen, se on niin hidas, että laskenta yhtään pidemmillä syöt- teillä on käytännössä toivotonta. Eksponenttifunktio f(n) = 2n kasvaa nopeammin kuin mikään polyno- mi. Voidaan siis todistaa, että josQ on polynomi, on olemassa sellainen n0 ∈N, että kaikilla n > n0 pätee f(n) > Q(n). Ei-polynomisten tietokoneohjelmien ai- kavaatimukset ovatkin melko usein joitakin eksponent- tifunktion johdannaisia.

Esimerkki 1. OlkoonT ohjelma, joka saa syötteenään listan lukuja sekä luvunk, ja joka tutkii käymällä listan läpi, onko luku k listassa. Tällaiselle ohjelmalle par- haan polynominQaste on yksi, eli T on polynominen ja nopea.

Esimerkki 2. Tässä esimerkissä puhutaan alkuluku- testeistä, eli ohjelmista, jotka saavat syötteenään kym- menjärjestelmässä esitetyn luvun ja palauttavat tiedon siitä, onko kyseessä alkuluku. Huomautamme, että kun puhumme siitä, onko joku alkulukutesti polynominen, emme tarkoita, että onko ohjelman suoritusaika kor- keintaan joku syötteenä saadun luvun polynomi, vaan sitä, onko ohjelman suoritusaika korkeintaan joku syöt- teenä saadun luvun kymmenjärjestelmäesityksen pituu- den polynomi. Esimerkiksi luvun 1000000 kymmen- järjestelmäesityksessä on seitsemän merkkiä, mikä on huomattavasti vähemmän kuin miljoona.

Jos käymme läpi kaikki kaikki luonnolliset luvut, jotka ovat korkeintaan syötteenä annetun luvun neliöjuuri,

ja testaamme jokaisen kohdalla, onko kyseessä syötteen tekijä, saamme aikaan alkulukutestin, mutta sen vaati- ma laskenta-aika on niin pitkä, että testimme ei ole po- lynominen. Josnon syötteenä saadun luvun kymmen- järjestelmäesityksen pituus, syötteenä saadun luvun ne- liöjuurta pienempiä lukuja on yli10n/2−2= 1001

10n, mikä on suurempi kuin 2n, kun non riittävän suuri.

Paras tunnettu varmasti toimiva alkulukutesti on po- lynominen, mutta paras sille tunnettu polynomi Q on astetta seitsemän. Näin suuri aste tarkoittaa sitä, että käytännössä tätä ohjelmaa ei käytetä alkulukujen tes- taamiseen, vaan alkulukutesteinä käytetään nopeampia ohjelmia, jotka toimivat vain tietyllä todennäköisyydel- lä, joka tosin saadaan huomattavan korkeaksi.

Päätösongelmat

OlkoonM (jossain äärellisessä aakkostossa esitettyjen) äärellisten merkkijonojen joukko, jaM0, M00joukonM jako kahteen osaan elipäätösongelma. OlkoonmM. Meitä kiinnostaa, kumpaan osaan,M0vaiM00,mkuu- luu. OlkoonT tietokoneohjelma, joka ratkaisee tämän, eliT on ohjelma, joka saa syötteenäänm:n, ja T ker- too, kumpaan osaan,M0 vaiM00, syötemkuuluu. Ole- tamme siis, ettäT toimii näin kaikkien M:n alkioiden kohdalla. Tällaisessa tapauksessa sanomme, ettäTrat- kaisee päätösongelmanM0, M00.

Jos jollekin päätösongelmalle M0, M00 on mahdollista kirjoittaa sen ratkaiseva tietokoneohjelma, joka toimii polynomisessa ajassa, sanomme, ettäM0, M00on poly- nominen. Polynomisten päätösongelmien luokkaa mer- kitään kirjaimellaP.

Kauppamatkustajan ongelma

Tutkitaan seuraavaa päätösongelmaa: On annettu joukko kaupunkeja sekä hinnat kaikkien kahden kau- pungin välisille matkoille. On lisäksi annettu maksi- mihinta h. Kauppamatkustajan ongelma kuuluu: Voi- daanko tehdä kiertomatka, joka alkaa jostain kaupun- gista ja päättyy samaan kaupunkin niin, että jokaisessa kaupungissa käydään kerran ja kierroksen yhteishinta on korkeintaanh?

Jos haluamme saada tämän päätösongelman edellisessä kappaleessa esitettyyn formalismiin,M0siis kuvaa niitä systeemejäs(jossain merkkijonokoodauksessa esitetty- nä; tässä siisssisältää tiedot kaupungeista, niiden vä- listen matkojen hinnoista sekä maksimihinnanh), joille kyseisenlainen kiertomatka on olemassa, ja M00 kuvaa muita systeemejä.

Kukaan ei tiedä, onko tämä päätösongelma polynomi- nen, eli onko nopein mahdollinen tämän päätösongel- man ratkaiseva tietokoneohjelma polynominen. Luki-

(3)

Solmu 2/2013 3

jalla kävi ehkä mielessä, että ongelma voitaisiin rat- kaista käymällä kaikki mahdolliset reitit läpi ja kat- somalla jokaisen reitin kohdalla, onko sen hinta kor- keintaan h. Syötteen pituuden kasvaessa tällaisen las- kennan viemä aika kasvaa kuitenkin nopeammin kuin mikään syötteen pituuden polynomi, eli tämä ei kelpaa polynomiseksi ratkaisuksi. Polynomisessa ajassa tämän ongelman ratkaisevan tietokoneohjelman pitäisi siis ol- la huomattavasti ovelammin laadittu.

Kuitenkin seuraavanlainen polynominen tietokoneoh- jelma T on olemassa: Olkoonskuten edellä ja kkier- tomatka systeemissäs.T saa syötteenään parins, k ja ratkaisee, onko k sellainen kierros, että sen hinta on korkeintaanh.

Ei-deterministinen polynominen aika

OlkoonM0, M00 päätösongelma. Oletetaan, että jokai- selle mM0 on olemassa toinen merkkijono m0, jo- ta kutsutaanm:ntodistajaksi. Sallimme myös sen, että merkkijonolla voi olla useita todistajia. Lisäksi oletam- me, ettäm:n lyhyimmän todistajan pituus on korkein- taan joku m:n pituuden polynomi. Lisäksi oletamme, että josmM00,m:llä ei ole todistajia.

Esimerkiksi Kauppamatkustajan ongelma on tällainen päätösongelma: Systeemin s todistaja on kiertomatka k, jonka hinta on korkeintaanh.

Sanomme, että M0, M00 on ei-deterministinen polyno- minen päätösongelma, jos on olemassa polynomisessa ajassa toimiva tietokoneohjelma T, joka saa syöttee- nään parin m, m0 ja ratkaisee, onko m0 jonon m to- distaja. Ei-determinististen polynomisten päätösongel- mien luokkaa merkitään N P. Kuten edellisen luvun viimeisessä kappaleessa totesimme, Kauppamatkusta- jan ongelma on ei-deterministinen polynominen pää- tösongelma.

Huomautamme, että josM0, M00on ei-deterministinen polynominen päätösongelma, on olemassa tietokoneoh- jelma T, joka ratkaisee tämän päätösongelman, jos- kin epärealistisen hitaasti.T muodostetaan seuraavas- ti: Olkoon Q polynomi siten, että jos m on pituutta n oleva syöte, jolla on todistaja, m:llä on korkeintaan pituuttaQ(n) oleva todistaja. Nyt kun tietokoneohjel- malle T annetaan syöte m, se käy kaikki korkeintaan pituuttaQ(n) olevat merkkijonot läpi ja kokeilee jokai- sen kohdalla, onko kyseessäm:n todistaja. Syötteen pi- tuuden kasvaessa tällaisen laskennan viemä aika kasvaa kuitenkin nopeammin kuin mikään syötteen pituuden polynomi, eli tämä ei kelpaa polynomiseksi ratkaisuksi.

Sivuhuomautuksena vielä mainittakoon, että nimitys ei-deterministinen polynominen tulee siitä, että täl- laiset ongelmat voidaan ratkaista polynomisessa ajas- sa kuvitteellisilla tietokoneohjelmilla, jotka toimivat

”ei-deterministisesti” eli osaavat arvata oikein. N P- päätösongelma voidaan ratkaista ei-deterministisesti niin, että ensin arvataan oikein todistaja ja sen jäl- keen tarkastetaan polynomisessa ajassa, että arvattiin oikein.

Onko P = N P ?

Nyt saamme muotoiltuaP =N P -kysymyksen. Se siis kysyy, onko luokka P sama kuin luokka N P. Jos T on jonkin päätösongelmanM0, M00 ratkaiseva polyno- minen tietokoneohjelma, voidaan ajatella, että jokaisen M0:uun kuuluvan syötteen todistaja on tyhjä merkkijo- no, jotenT toimii myös ei-deterministisessä polynomi- sessa ajassa. SiisPsisältyy luokkaanN P. Kysymys siis kuuluu: Voidaanko jokainen ei-deterministinen polyno- minen päätösongelma ratkaista polynomisessa ajassa, siis ohjelmalla, joka saa syötteekseen vain alkuperäi- sen syötteen eikä todistajakandidaattia? Kukaan ei tie- dä. Yleisesti uskotaan, että nämä kaksi luokkaa ovat eri, mutta kukaan ei osaa todistaa, että kaikkia N P- ongelmia on mahdotonta ratkaista polynomisessa ajas- sa.

Sen verran kuitenkin tiedetään, että jos Kauppamat- kustajan ongelma saataisiin ratkaistua polynomisessa ajassa, ratkaisusta osattaisiin muokata minkä tahan- sa N P-päätösongelman polynominen ratkaisu. Tällai- sia N P-päätösongelmia, joiden polynominen ratkaisu ratkaisisiP =N P -kysymyksen kertaheitolla on mui- takin. Esimerkkinä tällaisesta mainittakoon seuraava:

Esimerkki 3. Miinaharava-pelin tilanteella tarkoi- tamme mielivaltaisen kokoista Miinaharava-pelin tilan- netta, jossa osa ruuduista on avattu ja osa avaamatta, ja kussakin avatussa ruudussa on numero, joka voi ol- la myös nolla. Lisäksi tilanteessa on asetettu lippuja osaan niistä ruuduista, joissa on miina. On myös mah- dollista, että yhtään lippua ei ole asetettu. Oletamme kuitenkin, että liput on asetettu oikein, eli jokaisessa sellaisessa ruudussa, jossa on lippu, on myös miina.

Nyt päätösongelmamme on seuraava: On annettu Miinaharava-pelin tilanne. Onko olemassa (muiden kuin liputettujen) miinojen sellaisia sijainteja, että ne sopivat annettuun tilanteeseen?

Lopuksi

N P ei suinkaan ole vaikeimpien mahdollisten päätös- ongelmien luokka. On olemassa päätösongelmia, jotka ovat ratkaistavissa tietokoneella2, mutta jotka ovat niin vaikeita, että ne eivät kuulu edes luokkaanN P. Päätös- ongelmille on määritelty paljon muitakin luokkia kuin

2Joskin käytännön kannalta epärealistisen hitaasti.

(4)

4 Solmu 2/2013

P ja N P, ja P = N P -kysymyksen lisäksi myös pal- jon muita luokkia koskevia kysymyksiä on vastaamatta.

P =N P -kysymys on pelkästään näistä kuuluisin.

On olemassa myös päätösongelmia, joita mikään tieto- koneohjelma ei ratkaise. Tällaisiin tutustuimme kirjoi- telmassa Korppi [1].

Pähkinöitä

1. Olkoonf:N→Nfunktio, jolle on olemassa polyno- miQja luonnollinen lukun0siten, ettäf(n)≤Q(n) aina, kunnn0. Osoita, että on olemassa polynomi Q0 siten, että f(n) ≤Q0(n) kaikilla n∈N. (Tämä tehtävä osoittaa, että tässä kirjoitelmassa annettu polynomisen aikavaatimuksen määritelmä on yhtä- pitävä kirjallisuudesta yleisemmin löytyvän määri- telmän kanssa.)

2. Tutkitaan Esimerkissä 3 esitettyä Miinaharavaa kos- kevaa päätösongelmaa. Osoita, että kyseinen ongel- ma kuuluu luokkaanN P.

3. Osoita, että jos Esimerkissä 3 esitetty Miinahara- vaa koskeva päätösongelma saataisiin ratkaistua po- lynomisessa ajassa, saataisiin polynomisessa ajassa ratkaistua myös seuraava päätösongelma: On annet- tu Miinaharava-pelin tilanne ja suljettu ruutur. On- ko varmaa, että ruudussarei ole miinaa?

4. OnkoP =N P?

Viitteet

[1] Korppi, Tuomas, Mitä ei voida laskea?, Solmu 1/2013

Verkko-Solmun oppimateriaalit

Osoitteestahttp://solmu.math.helsinki.fi/oppimateriaalit.htmllöytyvät oppimateriaalit:

Kilpailumatematiikan opas (Matti Lehtinen) Geometrian perusteita (Matti Lehtinen) Geometria (K. Väisälä)

Lukualueiden laajentamisesta (Tuomas Korppi)

Jaksolliset desimaaliesitykset algebrallisesta näkökulmasta (Jaska Poranen ja Pentti Haukkanen) Algebra (Tauno Metsänkylä ja Marjatta Näätänen)

Algebra (K. Väisälä)

Matemaattista fysiikkaa lukiolaiselle 1: Mekaniikkaa (Markku Halmetoja ja Jorma Merikoski) Matemaattista fysiikkaa lukiolaiselle 2: Sähköoppia (Markku Halmetoja ja Jorma Merikoski) Lukuteorian helmiä lukiolaisille (Jukka Pihko)

Matematiikan peruskäsitteiden historia (Erkki Luoma-aho) Matematiikan historia (Matti Lehtinen)

Reaalianalyysiä englanniksi (William Trench)

Viittaukset

LIITTYVÄT TIEDOSTOT

Jyv¨ askyl¨ an p¨ aivien osallistujissa oli mainiosta ajankohdasta huolimatta matematiikan opettajia kor- keintaan kourallinen, ja kourallinen tarkoittaa t¨ ass¨ a..

Esitä ja todista Fréchet-Rieszin lause.. Hilbertin avaruuksissa on

[r]

[r]

Näin ollen jokainen toisen topologian virittävän jou- kon alkio kuuluu ensimmäisen topologian virittävään joukkoon, joten toinen topologia kuuluu ensimmäiseen. 5 Ja se että joukko

[r]

Siksikö, että henkilökohtaiset ominai- suudet ovat perittyjä, niin että meidän ei tarvitse kulkea koulutuksen läpi niiden saavuttamiseksi.. Ja jos joku jää ulos, onko

Onko tutkijakunta jo niin akateemisen kapitalismin (Kaidesoja ja Kauppinen 2018) kyllästämä, että se näkee tiedon ostettavana tuotteena, jota joku ulkopuolinen järjestelmä