NP täydellinen ongelma

NP-täydellinen ongelma  - algoritmien teoriassa ongelma, jonka vastaus on "kyllä" tai "ei" luokasta NP , johon mikä tahansa muu tämän luokan ongelma voidaan pelkistää polynomiajassa (eli käyttämällä operaatioita, joiden numero ei ylitä jotakin polynomia alkuperäisen tiedon koosta riippuen). Siten NP-täydelliset ongelmat muodostavat tietyssä mielessä "tyypillisten" NP-luokan ongelmien osajoukon: jos joillekin niistä löydetään "polynomiaalisesti nopea" ratkaisualgoritmi, niin mikä tahansa muu NP-luokan ongelma voidaan ratkaista. yhtä "nopeasti"".

Muodollinen määritelmä

Aakkoset ovat mikä tahansa rajallinen merkkijoukko ( esimerkiksi {} tai {}). Kaikkien mahdollisten sanojen joukko ( tämän aakkosten merkeistä koostuvaviimeinen merkkijono ) joidenkin aakkosten kohdalla on merkitty. Kieli aakkosten ylion mikä tahansajoukon osajoukko , ts.

Kielen tunnistamisen tehtävänä on määrittää, kuuluuko tietty sana kieleen .

Olkoon ja  olla kaksi kieltä aakkosten päällä . Kielen sanotaan olevan pelkistävissä (Karpin mukaan) kieleksi , jos on olemassa funktio , , joka on laskettavissa polynomiajassa ja jolla on seuraava ominaisuus:

Kielen sanotaan olevan NP-kova , jos mikä tahansa luokan NP kieli on pelkistävissä siihen. Kielen sanotaan olevan NP-täydellinen , jos se on NP-kova ja kuuluu itse luokkaan NP.

Epävirallisesti sanottuna se, että ongelma pelkistetään ongelmaksi , tarkoittaa, että ongelma "ei ole vaikeampi" kuin ongelma (koska jos voimme ratkaista , voimme ratkaista ja ). Siten NP-kovien ongelmien luokka sisältää NP-täydelliset ongelmat ja ongelmat, jotka ovat niitä "kovempia" (eli ne ongelmat, joihin NP-täydelliset ongelmat voidaan vähentää). NP-luokkaan kuuluvat NP-täydelliset ongelmat ja niitä "helppoisemmat" ongelmat (eli ne ongelmat, jotka on pelkistetty NP-täydellisiksi ongelmiksi).

Määritelmästä seuraa, että jos löydetään algoritmi, joka ratkaisee jonkin (mikä tahansa) NP-täydellisen ongelman polynomiajassa, niin kaikki NP-ongelmat ovat luokkaa P , eli ne ratkaistaan ​​polynomiajassa.

NP-täydellinen vahvassa merkityksessä

Tehtävää kutsutaan NP-täydelliseksi vahvassa merkityksessä, jos siinä on alitehtävä, joka:

  1. ei ole ongelma numeeristen parametrien kanssa (eli tässä tehtävässä havaittujen suureiden maksimiarvoa rajoittaa ylhäältä syötteen pituuden polynomi)
  2. on NP-täydellinen.

Tällaisten ongelmien luokkaa kutsutaan NPCS :ksi . Jos hypoteesi P ≠ NP on totta, NPCS-ongelmalle ei ole pseudopolynomiaalista algoritmia .

Hypoteesi P ≠ NP

Kysymys luokkien P ja NP yhteensattumisesta on ollut yksi keskeisistä avoimista ongelmista yli kolmenkymmenen vuoden ajan . Tiedeyhteisöllä on taipumus antaa kielteinen vastaus tähän kysymykseen [1]  – tässä tapauksessa NP-täydellisiä ongelmia ei voida ratkaista polynomiajassa.

Esimerkkejä NP-täydellisistä ongelmista

Katso myös

Muistiinpanot

  1. William I. Gasarch. P=?NP-kysely.  (neopr.)  // SIGACT News. - 2002. - T. 33 , nro 2 . - S. 34-47 . - doi : 10.1145/1052796.1052804 .
  2. Erik D. Demaine, Susan Hohenberger, David Liben-Nowell. Tetris on kova, jopa  likimääräinen . Tulosta.

Kirjallisuus

Linkit