Laskennan vaativuus ja NP-täydelliset ongelmat

Samankaltaiset tiedostot
Algoritmit 2. Luento 13 Ti Timo Männikkö

Muita vaativuusluokkia

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Algoritmit 1. Luento 1 Ti Timo Männikkö

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

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:

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

Algoritmit 1. Luento 2 Ke Timo Männikkö

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

Algoritmit 2. Luento 13 Ti Timo Männikkö

6. Approksimointialgoritmit

Algoritmit 2. Luento 14 To Timo Männikkö

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

P? = NP Kysymys ratkaisun keksimisestä ja sen tarkistamisesta

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

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

Parinmuodostuksesta tietojenkäsittelytieteen silmin. Petteri Kaski Tietojenkäsittelytieteen laitos Aalto-yliopisto

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ö

1.1. Määritelmiä ja nimityksiä

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

Datatähti 2019 loppu

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

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

Laskennan teoria

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

Kombinatorinen optimointi

Kannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:

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

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

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

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

Täydentäviä muistiinpanoja laskennan rajoista

Algoritmi on periaatteellisella tasolla seuraava:

Algoritmit 1. Luento 14 Ke Timo Männikkö

MS-A0402 Diskreetin matematiikan perusteet

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Aalto-yliopisto Perustieteiden korkeakoulu Tietotekniikan koulutusohjelma. Kaariväritysongelma. Kandidaatintyö. 29. huhtikuuta Sami J.

Laskennan teoria

Säännöllisen kielen tunnistavat Turingin koneet

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

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

Lineaariset kongruenssiyhtälöryhmät

Latinalaiset neliöt ja taikaneliöt

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

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

Lineaariset yhtälöryhmät ja matriisit

isomeerejä yhteensä yhdeksän kappaletta.

Algoritmit 1. Luento 12 Ti Timo Männikkö

Algoritmit 2. Luento 1 Ti Timo Männikkö

2.8. Kannanvaihto R n :ssä

TKT20005 Laskennan mallit (syksy 2018) Kurssikoe, malliratkaisut

Rekursiiviset palautukset [HMU 9.3.1]

Yhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

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

w + x + y + z =4, wx + wy + wz + xy + xz + yz =2, wxy + wxz + wyz + xyz = 4, wxyz = 1.

4.3. Matemaattinen induktio

Johdatus matemaattiseen päättelyyn

Tehtävä 10 : 1. Tehtävä 10 : 2

Esitetään tehtävälle kaksi hieman erilaista ratkaisua. Ratkaisutapa 1. Lähdetään sieventämään epäyhtälön vasenta puolta:

Verkon värittämistä hajautetuilla algoritmeilla

Miten osoitetaan joukot samoiksi?

3. Laskennan vaativuusteoriaa

BM20A0700, Matematiikka KoTiB2

Lineaarialgebra ja matriisilaskenta I

Pysähtymisongelman ratkeavuus [Sipser luku 4.2]

Algoritmit 1. Luento 13 Ti Timo Männikkö

rm + sn = d. Siispä Proposition 9.5(4) nojalla e d.

Matematiikan tukikurssi

Numeeriset menetelmät

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4

j(j 1) = n(n2 1) 3 + (k + 1)k = (k + 1)(k2 k + 3k) 3 = (k + 1)(k2 + 2k + 1 1)

Laskennan mallit (syksy 2008) 2. kurssikoe , ratkaisuja

5.3 Ratkeavia ongelmia

LUKUTEORIA johdantoa

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

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.

Algoritmit 1. Demot Timo Männikkö

Syötteen ainoalla rivillä on yksi positiivinen kokonaisluku, joka on alle = Luvussa ei esiinny missään kohtaa numeroa 0.

Algoritmit 1. Luento 12 Ke Timo Männikkö

Jokaisen parittoman kokonaisluvun toinen potenssi on pariton.

2.5. Matriisin avaruudet ja tunnusluvut

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

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

Rajoittamattomat kieliopit (Unrestricted Grammars)

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 9 (6 sivua) OT

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

Algoritmit 1. Luento 11 Ti Timo Männikkö

Lukuteorian kertausta

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

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

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

Käänteismatriisin ominaisuuksia

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

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

Transkriptio:

Laskennan vaativuus ja NP-täydelliset ongelmat TRAK-vierailuluento 13.4.2010 Petteri Kaski Tietojenkäsittelytieteen laitos

Tietojenkäsittelytiede Tietojenkäsittelytiede tutkii 1. mitä tehtäviä voidaan automatisoida, ja 2. miten tämä tehdään tehokkaasti

Kuten tieteessä yleensä, tietojenkäsittelytieteessä eräänä keskeisenä tavoitteena on luokitella tarkasteltavaa aineistoa Aineisto: Laskennalliset ongelmat

Lajittelu Syöte: Taulukko a[1],a[2],...,a[n] kokonaislukuja Tehtävä: Lajittele taulukko kasvavaan järjestykseen Toistuvat alkiot (päätös) Syöte: Taulukko a[1],a[2],...,a[n] kokonaislukuja Tehtävä: Onko taulukossa toistuvia alkioita? (kyllä/ei)

Mediaani Syöte: Taulukko a[1],a[2],...,a[n] kokonaislukuja Tehtävä: Laske taulukon mediaani Maksimi Syöte: Taulukko a[1],a[2],...,a[n] kokonaislukuja Tehtävä: Määritä taulukon suurin arvo

Kuinka tehokkaasti osaamme ratkaista ongelman? - Esimerkiksi: algoritmin ajoaika syötteen koon (=n) funktiona Mitkä ovat ongelmien väliset suhteet? - Esimerkiksi: auttaako toisen ratkaisu toisessa?

Luennon sisältö Esimerkkejä laskennallisista ongelmista Laskennan vaativuus --- tehokas laskenta Ongelmaluokat P ja NP P=NP? Luokan NP rakenteesta: NP-täydelliset ongelmat

1. Esimerkkejä laskennallisista ongelmista

Verkko-ongelmat - pienin virittävä puu - kauppamatkustajan ongelma Boolen logiikka - piirin arvo - piirin toteutuvuus Kokonaisluvut - kertolasku - tekijöinti Matriisien yhtäsuuruus - rivijärjestystä vaille - rivi- ja sarakejärjestystä vaille

Verkko-ongelmat

Pienin virittävä puu Syöte: Kaaripainotettu täydellinen verkko Tehtävä: Määritä verkolle virittävä puu, joka on kokonaispainoltaan pienin 1 3 2 1 3 2 4 6 4 6 5 5

Esimerkki: Sähköverkon suunnittelu solmut = sähköistettävät kohteet kaaripaino = sähkölinjan rakennuskustannus

Kauppamatkustajan ongelma Syöte: Kaaripainotettu täydellinen verkko Tehtävä: Määritä verkolle virittävä kehä, joka on kokonaispainoltaan pienin 1 3 2 1 3 2 4 6 4 6 5 5

10639 populated locations in Finland http://www.tsp.gatech.edu/

Boolen logiikka

Logiikkaportit: sisääntulo(t) ja ulostulo 0 0 AND 0 0 0 OR 0 0 NOT 1 0 1 AND 0 0 1 OR 1 1 NOT 0 1 0 AND 0 1 0 OR 1 1 1 AND 1 1 1 OR 1 0 ~ epätosi 1 ~ tosi

Piirin arvo Syöte: Piiri ja arvot piirin sisääntuloille Tehtävä: Määritä arvot ulostuloissa 1 OR 1 AND? NOT AND?

Esimerkki: AES salausalgoritmi http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

Esimerkki: AES salausalgoritmi selväkielinen lohko (128 bittiä) AES salattu lohko (128 bittiä) avain (128, 192, tai 256 bittiä)

Piirin toteutuvuus (päätös) Syöte: Piiri ja arvot piirin ulostuloille (sekä mahdollisesti osalle sisääntuloista) Tehtävä: Voidaanko tuntemattomille sisääntuloille asettaa arvot siten, että piiri saa halutut arvot? (kyllä/ei)?? OR AND 1 NOT AND 1

Esimerkki: AES salausavaimen päättely AES selväkielinen sanoma AES salattu sanoma (tunnettu) AES (tunnettu) AES avain (tuntematon)

Arvataan avain bitti kerrallaan arvaus oikein jos piiri toteutuva AES selväkielinen sanoma AES salattu sanoma (tunnettu) AES (tunnettu) AES avaimen alkuosa & arvausbitti avaimen loppuosa (tuntematon) (tunnettu)

Kokonaisluvut

1234 Kokonaislukujen tulo Syöte: kokonaisluvut x ja y 5678 9872 8638 Tehtävä: määritä tulo xy 7404 + 6170 Kokonaisluvun tekijöinti 7006652 Syöte: kokonaisluku x Tehtävä: määritä luvun x alkulukutekijät 7006652 = 2 2 17 167 617

D. Bonenberger & M. Krone (29.12.2009) RSA-170 = 2606262368413984492152987926667443219708592 5380486406416164785191859999628542069361450 2839319145146186835121981648059198820530572 22974116478065095809832377336510711545759 = 3586420730428501486799804587268520423291459 681059978161140231860633948450858040593963 7267029064107019078863797763923946264136137 803856996670313708936002281582249587494493

Vierailijan (ssh) RSA-modulus 243938701851862667499836722144675211065914 471696944136332772881670889334800944300521 244799438612333022612795015548813823424837 100197734465663373421527664551393744993180 956534256467699487248096967775446078746429 795939143820352722298827974446267410396088 522009880418756781062236474694580289276151 152949775742831526463775238086673764086054 882479519075627457344230312515070277153671 458799527579754259082007190849303409184088 241179188626942589437583386669935959246564 515512564816759383021564259826688190898556 376623946634904222736632044685585187857423 281580688545419643707071501503243715575058 7624859740044931251045154149 617 desimaalia (2048 bittiä)

solo1.nordea.fi RSA-modulus 291464334243315748173731663886432228044003 314047531093118767196026824846698055956247 079952886057006933558769175292645035093860 670371713787240244351631386231505757343700 374613640776107198162208681721970355383399 704940323142439804494631238818446616774870 681676486050744073809157392145201140907341 227367398326484482257714190264492304821872 753738986236375330247420742784655189629559 544178997139871926401017024691212545281566 877280768676077523790644855808544617301372 450789481783455988485070594458128242131674 282226419173290869476834034535998758385743 067533217257847474544727556058841181107633 37137123576752373123133614931 617 desimaalia (2048 bittiä)

Matriisien yhtäsuuruus

Sama matriisi? (rivijärjestystä vaille)

Sama matriisi? (rivi- ja sarakejärj. vaille)

Esimerkki: Onko kyseessä sama verkko?

Verkko-ongelmat - pienin virittävä puu - kauppamatkustajan ongelma Boolen logiikka - piirin arvo - piirin toteutuvuus Kokonaisluvut - kertolasku - tekijöinti Matriisien yhtäsuuruus - rivijärjestystä vaille - rivi- ja sarakejärjestystä vaille

A B C

Luennon sisältö Esimerkkejä laskennallisista ongelmista Laskennan vaativuus --- tehokas laskenta Ongelmaluokat P ja NP P=NP? Luokan NP rakenteesta: NP-täydelliset ongelmat

2. Tehokas laskenta Kuinka tehokkaasti osaamme ratkaista ongelman? Tehokkuusmitta: Algoritmin pahimman tapauksen ajoaika syötteen koon (=n) funktiona

Esimerkkejä kokomitoista syötteelle: Verkko-ongelmat - pienin virittävä puu solmujen lkm - kauppamatkustajan ongelma Boolen logiikka - piirin arvo porttien lkm - piirin toteutuvuus Kokonaisluvut - kertolasku - tekijöinti Matriisien yhtäsuuruus - rivijärjestystä vaille - rivi- ja sarakejärjestystä vaille lukujen pituus bitteinä rivien ja sarakkeiden lkm

Tehokas ratkeavuus Laskennallinen ongelma on tehokkaasti ratkeava jos sille löytyy algoritmi, jonka pahimman tapauksen ajoaika kasvaa enintään polynomisesti syötteen koon n suhteen

Polynominen kasvu Syötteen koko kaksinkertaistuu => ajoaika kasvaa vakiokertoimella n n 2 n 3 2 4 8 4 16 64 8 64 512 16 256 4096 32 1024 32768 64 4096 262144 128 16384 2097152 256 65536 16777216 512 262144 134217728 1024 1048576 1073741824

Ylipolynominen kasvu n n log 2 n 2 n n! 2 2 4 2 4 16 16 24 8 512 256 40320 16 65536 65536 2.092 10 13 32 3.355 10 7 4.295 10 9 2.631 10 35 64 6.872 10 10 1.845 10 19 1.269 10 89 128 5.630 10 14 3.403 10 38 3.856 10 215 256 1.845 10 19 1.158 10 77 8.578 10 506 512 2.418 10 24 1.341 10 154 3.477 10 1166 1024 1.268 10 30 1.798 10 308 5.419 10 2639

Havainto (1/3) Tehokas ratkeavuus on teoreettinen yläraja sille mitä voidaan käytännössä ratkaista syötteen koon kasvaessa

Havainto (2/3) Ongelman tehokas ratkeavuus pysyy ennallaan vaikka syötteen koon määritelmää (polynomisesti) muutettaisiin Esimerkkejä: 1. matriisin rivien ja sarakkeiden määrä vs. matriisin alkioiden määrä 2. verkon solmujen määrä vs. verkon solmujen ja kaarien määrä 3. kokonaisluvun pituus 10-järjestelmässä vs. binäärijärjestelmässä

Havainto (3/3) Tehokas ratkeavuus pysyy ennallaan vaikka laskennan mallia (jonka suhteen algoritmin ajoaikaa teoreettisesti mitataan) hieman muutettaisiin Esimerkki: Java-virtuaalikonetta voidaan simuloida Turingin koneella ja päinvastoin Yhden laskenta-askeleen simulointi vaatii simuloijalta syötteen kokoon nähden polynomisen määrän askelia

3. Ongelmien luokittelusta Pienin virittävä puu Piirin arvo Kertolasku Matriisien yhtäsuuruus (rivijärj. vaille) Matriisien yhtäsuuruus (rivi- ja sarakejärj. vaille) Kauppamatkustajan ongelma Piirin toteutuvuus Tekijöinti

Ongelmien luokittelusta Laskennallisia ongelmia voidaan luokitella monin eri kriteerein Ehkäpä keskeisin kriteeri on tehokas ratkeavuus Tavoitteenamme on jakaa laskennalliset ongelmat kolmeen luokkaan 1. tehokkaasti ratkeaviin, 2. ei-tehokkaasti ratkeaviin, ja (3. ratkeamattomiin)

Verkko-ongelmat - pienin virittävä puu Tehokas ratkaisualgoritmi tunnetaan - kauppamatkustajan ongelma Boolen logiikka - piirin arvo - piirin toteutuvuus Kokonaisluvut - kertolasku - tekijöinti Matriisien yhtäsuuruus - rivijärjestystä vaille - rivi- ja sarakejärjestystä vaille Tehokasta algoritmia ei tunneta, eikä sellaisen olemassaoloa ole pystytty poissulkemaan

Ongelmaluokat P ja NP

Tarkastelemme jatkossa vain päätösongelmia (tehtävän ratkaisu: kyllä / ei) Esimerkki: Kauppamatkustajan ongelma (päätös) Syöte: a) Kaaripainotettu täydellinen verkko b) Painoraja 1 3 2 Tehtävä: Onko verkolla virittävää kehää, jonka kokonaispaino on enintään annettu painoraja? (kyllä / ei) 4 5 6

Luokka P Luokka P koostuu tehokkaasti ratkeavista päätösongelmista Esimerkkejä: - Pienin virittävä puu (päätös) - Piirin arvo on tosi? - Alkuluku? - Matriisien yhtäsuuruus rivijärjestystystä vaille

Monille päätösongelmille ei tunneta tehokasta ratkaisualgoritmia, toisaalta sellaisen olemassaoloa ei ole pystytty poissulkemaan Esimerkkejä: - Kauppamatkustajan ongelma (päätös) - Piirin toteutuvuus - Matriisien yhtäsuuruus rivi- ja sarakejärjestystä vaille

Onko seuraavilla päätösongelmilla yhteisiä piirteitä? - Kauppamatkustajan ongelma (päätös) - Piirin toteutuvuus - Matriisien yhtäsuuruus rivi- ja sarakejärjestystä vaille = varmenne Eräs yhteinen piirre: Jos meille paljastetaan sopivaa lisätietoa annetusta kyllä -syötteestä, voimme helposti varmistua kyseessä olevan kyllä -syöte

Piirin toteutuvuus (päätös) Syöte: Piiri ja arvot piirin ulostuloille (sekä mahdollisesti osalle sisääntuloista) Tehtävä: Voidaanko tuntemattomille sisääntuloille asettaa arvot siten, että piiri saa halutut arvot? (kyllä/ei) Varmenne = arvot tuntemattomille?0? OR 0 AND 10 NOT sisääntuloille s.e. piiri saa AND 0 1 halutut arvot

Kauppamatkustajan ongelma (päätös) Syöte: a) Kaaripainotettu täydellinen verkko b) Painoraja Tehtävä: Onko verkolla virittävää kehää, jonka kokonaispaino on enintään annettu painoraja? (kyllä / ei) Varmenne 1 3 2 1 3 2 = painorajan toteuttava 4 6 4 6 virittävä kehä 5 5

Matriisien yhtäsuuruus rivi- ja sarakejärjestystä vaille (päätös) Varmenne = rivi- ja sarakepermutaatio, joka muuntaa ensimmäisen matriisin toiseksi

Päätösongelma on tehokkaasti tarkistettavissa jos on olemassa algoritmi, joka ottaa syötteekseen 1) päätösongelman syötteen; ja 2) ehdokkaan tämän varmenteeksi Algoritmilta vaaditaan, että a) päätösongelman kyllä -syötteen tapauksessa on olemassa ainakin yksi varmenne, joka tuottaa algoritmilta päätöksen kyllä ; b) päätösongelman ei -syötteen tapauksessa kaikki varmenne-ehdokkaat tuottavat algoritmilta päätöksen ei ; c) algoritmin ajoaika on enintään polynominen päätösongelman syötteen koon suhteen

Ratkeavuus vs. tarkistettavuus Jokainen tehokkaasti ratkeava päätösongelma on tehokkaasti tarkistettavissa - Perustelu: Tarkistusalgoritmiksi voidaan ottaa päätösongelman ratkaisualgoritmi Ei tiedetä onko jokainen tehokkaasti tarkistettavissa oleva päätösongelma tehokkaasti ratkeava

Luokka NP Luokka NP koostuu tehokkaasti tarkistettavissa olevista päätösongelmista Esimerkkejä: - Kauppamatkustajan ongelma (päätös) - Piirin toteutuvuus - Matriisien yhtäsuuruus rivi- ja sarakejärjestystä vaille Luokka P sisältyy luokkaan NP

? P = NP Onko ratkaisun löytäminen aidosti työläämpää kuin sen tarkistaminen? http://www.claymath.org/millennium/p_vs_np/

...1. 4....2......5.4.7..8...3....1.9... 3..4..2...5.1......8.6... 693784512 487512936 125963874 932651487 568247391 741398625 319475268 856129743 274836159

Luennon sisältö Esimerkkejä laskennallisista ongelmista Laskennan vaativuus --- tehokas laskenta Ongelmaluokat P ja NP P=NP? Luokan NP rakenteesta: NP-täydelliset ongelmat

Ongelmien suhteellisesta työläydestä Onko päätösongelma A enintään yhtä työläs kuin päätösongelma B? Esimerkki: A = Matriisien yhtäsuuruus (rivi- ja sar. järj. vaille) B = Piirin toteutuvuus Huom: Molemmat luokassa NP Kumpaankaan ei tunneta tehokasta algoritmia

Matriisien yhtäsuuruus (rivi- ja sar. järj. vaille) Piirin toteutuvuus?? OR AND 1 NOT AND 1

Palautuksen käsite Olkoon P algoritmi, joka ottaa syötteekseen päätösongelman A syötteen x, ja muodostaa tästä päätösongelman B syötteen P(x) Sanomme, että P on palautus päätösongelmasta A päätösongelmaan B jos pätee, että x on kyllä -syöte jos ja vain jos P(x) on kyllä -syöte Palautus P on tehokas jos sen ajoaika on enintään polynominen syötteen koon suhteen

Oletetaan että päätösongelmasta A on olemassa tehokas palautus päätösongelmaan B Tällöin jos B on tehokkaasti ratkeava, niin on myös A Perustelu: Muunnetaan annettu A:n syöte x B:n syötteeksi P(x) tehokkaalla palautuksella, ja ratkaistaan P(x) käyttäen B:n tehokasta ratkaisualgoritmia Tehokas palautus A ==> B ~ A on enintään niin työläs kuin B

Tehokas palautus Matriisien yhtäsuuruus ==> Piirin toteutuvuus Tehokas algoritmi P, x: joka muuttaa kaksi annettua matriisia piiriksi ja arvoiksi...?? OR AND 1 P(x): NOT AND 1

1) Piiri, joka tarkistaa yhtäsuuruuden a b AND NOT OR a=b? AND NOT

2) Piiri, joka ohjatusti vaihtaa kaksi syötettä keskenään AND a NOT AND OR a / b b AND OR b / a NOT AND s

3) Piiri, joka on toteutuva jos ja vain jos matriisit ovat yhtäsuuria rivien ja sarakkeiden järjestystä vaille Rivien ohj. vaihto Sarakk. ohj. vaihto Yhtäsuuruus 1 1 1 1 1 1 pareittain pareittain??????????????

Tehokas x: palautus P(x): Rivien ohj. vaihto pareittain Sarakk. ohj. vaihto pareittain Yhtäsuuruus 1 1 1 1 1 1??????????????

NP-täydelliset ongelmat Päätösongelma B on NP-täydellinen jos 1) ongelma B on itse luokassa NP; ja 2) jokaisesta luokan NP päätösongelmasta A on olemassa tehokas palautus ongelmaan B

NP-täydelliset ongelmat ovat luokan NP työläimpiä ongelmia Erityisesti, jos jokin NP-täydellinen ongelma on tehokkaasti ratkeava, kaikki luokan NP ongelmat ovat tehokkaasti ratkeavia Perustelu: - Olkoon B NP-täydellinen ongelma, jolle on olemassa tehokas ratkaisualgoritmi - Olkoon A jokin päätösongelma luokassa NP - Koska B on NP-täydellinen, on olemassa tehokas palautus A ==> B - Voimme tehokkaasti ratkaista A:n palauttamalla ongelmaan B, ja käyttämällä B:n ratkaisualgoritmia

NP-täydelliset ongelmat NP-täydellisiä ongelmia on olemassa! Lause (Cook 1971, Levin 1973) Piirin toteutuvuus on NP-täydellinen Luokan NP päätösongelma A voidaan edellisen perusteella osoittaa NP-täydelliseksi esittämällä vain tehokas palautus B ==> A, missä B on NP-täydellinen

Kauppamatkustajan ongelma (päätös) Syöte: a) Kaaripainotettu täydellinen verkko b) Painoraja Tehtävä: Onko verkolla virittävää kehää, jonka kokonaispaino on enintään annettu painoraja? (kyllä / ei) NP-täydellinen

Riippumaton joukko (päätös) Syöte: a) Verkko b) Kokonaisluku k Tehtävä: Löytyykö verkosta k solmun joukko, joiden välillä ei ole kaaria? (kyllä / ei) NP-täydellinen

Solmupeite (päätös) Syöte: a) Verkko b) Kokonaisluku k Tehtävä: Löytyykö verkosta k solmun joukko siten, että jokaisen kaaren ainakin toinen päätepiste on joukossa? NP-täydellinen

Verkon solmuväritys (päätös) Syöte: a) Verkko b) Kokonaisluku k Tehtävä: Voidaanko verkon solmut värittää k värillä siten, että jokaisen kaaren päätepisteillä on eri väri? NP-täydellinen

Verkon kaariväritys (päätös) Syöte: a) Verkko b) Kokonaisluku k Tehtävä: Voidaanko verkon kaaret värittää k värillä siten, että jokaiseen solmuun liittyvillä kaarilla on eri värit? NP-täydellinen

Ja niin edelleen...... NP-täydellisiä ongelmia tunnetaan varovaisesti arvioiden ainakin joitakin tuhansia... Valitettavan moni käytännön kannalta hyvinkin keskeinen laskennallinen ongelma on NPtäydellinen Mikä harmillisinta, emme osaa sanoa ovatko nämä ongelmat tehokkaasti ratkeavia vai eivät! Toisaalta, jos jokin NP-täydellinen ongelma olisi tehokkaasti ratkeava, kaikki luokan NP ongelmat olisivat tehokkaasti ratkeavia...

Luokan NP rakenteesta Verkkoisomorfia (~matriisien yhtäsuuruus rivien ja sarakkeiden järj. vaille) on eräitä harvoja luonnollisia esimerkkejä luokan NP ongelmasta a) jolle ei tunneta tehokasta algoritmia; ja b) jota ei ole osoitettu NP-täydelliseksi Jos P NP, voidaan osoittaa, että luokassa NP on (ainakin keinotekoisia) ongelmia, jotka eivät ole NP-täydellisiä eivätkä luokassa P

Verkko-ongelmat - pienin virittävä puu Tehokas ratkaisualgoritmi tunnetaan - kauppamatkustajan ongelma Boolen logiikka - piirin arvo - piirin toteutuvuus Kokonaisluvut - kertolasku - tekijöinti Matriisien yhtäsuuruus - rivijärjestystä vaille - rivi- ja sarakejärjestystä vaille NP-täydellisiä (päätösongelmina) Tehokasta algoritmia ei tunneta, eikä sellaisen olemassaoloa ole pystytty poissulkemaan

Lisää aiheesta T-79.1001 Tietojenkäsittelyteorian perusteet T-79.5103 Computational Complexity Theory M.R. Garey, D.S. Johnson, Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman and Co., 1979 C.H. Papadimitriou, Computational Complexity. Addison-Wesley, 1994 S. Arora, B. Barak, Computational Complexity: A Modern Approach. Cambridge University Press, 2009