NP-komplett problem - i teorin om algoritmer , ett problem med svaret "ja" eller "nej" från klassen NP , till vilket alla andra problem från denna klass kan reduceras i polynomtid (det vill säga med hjälp av operationer vars antal inte överstiger något polynom beroende på storleken på originaldata). Således bildar NP-kompletta problem på sätt och vis en delmängd av "typiska" problem i NP-klassen: om en "polynomiellt snabb" lösningsalgoritm hittas för några av dem, så kan alla andra problem från NP-klassen lösas lika "snabbt" ".
Ett alfabet är en ändlig uppsättning tecken (till exempel {} eller {}). Uppsättningen av alla möjliga ord (slutsträngar som består av tecknen i detta alfabet) över något alfabetbetecknas. Ett språk över ett alfabetär vilken delmängd som helst av mängden, dvs.
Uppgiften att känna igen ett språk är att avgöra om ett givet ord tillhör språket .
Låt och vara två språk över alfabetet . Ett språk sägs vara reducerbart (enligt Karp) till ett språk om det finns en funktion , , som är beräkningsbar i polynomtid och har följande egenskap:
Ett språk sägs vara NP-hårt om något språk i klassen NP är reducerbart till det. Ett språk sägs vara NP-komplett om det är NP-hårt och självt är i klassen NP.
Informellt sett betyder det faktum att problemet reduceras till problemet att problemet "inte är svårare" än problemet (för om vi kan lösa , så kan vi lösa och ). Således inkluderar klassen av NP-hårda problem NP-kompletta problem och problem som är "svårare" än dem (det vill säga de problem till vilka NP-kompletta problem kan reduceras). NP-klassen inkluderar NP-kompletta problem och problem som är "enklare" än dem (det vill säga de problem som reduceras till NP-kompletta problem).
Det följer av definitionen att om en algoritm hittas som löser något (vilket som helst) NP-komplett problem i polynomtid, så kommer alla NP-problem att vara i klassen P , det vill säga de kommer att lösas i polynomtid.
En uppgift kallas NP-komplett i stark mening om den har en deluppgift som:
Klassen av sådana problem kallas NPCS . Om hypotesen P ≠ NP är sann, så finns det ingen pseudopolynomisk algoritm för NPCS-problemet .
Frågan om sammanträffandet av klasserna P och NP har varit ett av de centrala öppna problemen i mer än trettio år . Det vetenskapliga samfundet tenderar att ge ett negativt svar på denna fråga [1] — i detta fall kommer det inte att vara möjligt att lösa NP-kompletta problem i polynomtid.
Komplexitetsklasser av algoritmer | |
---|---|
Anses som ljus | |
Ska vara svårt | |
Anses vara svårt |
|
NP-kompletta problem | |
---|---|
Maximeringsproblem med stapling (packning) |
|
grafteori mängdteori | |
Algoritmiska problem | |
Logiska spel och pussel | |