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"".
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.
Tehtävää kutsutaan NP-täydelliseksi vahvassa merkityksessä, jos siinä on alitehtävä, joka:
Tällaisten ongelmien luokkaa kutsutaan NPCS :ksi . Jos hypoteesi P ≠ NP on totta, NPCS-ongelmalle ei ole pseudopolynomiaalista algoritmia .
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.
Algoritmien monimutkaisuusluokat | |
---|---|
Kevyenä pidetty | |
Taitaa olla vaikeaa | |
Vaikeaksi pidetty |
|
NP-täydellisiä ongelmia | |
---|---|
Pinoamisen (pakkauksen) maksimointiongelma |
|
graafiteorian joukkoteoria | |
Algoritmiset ongelmat | |
Logiikkapelejä ja pulmia | |