NP-komplet problem - i teorien om algoritmer , et problem med svaret "ja" eller "nej" fra klassen NP , hvortil ethvert andet problem fra denne klasse kan reduceres i polynomisk tid (det vil sige ved hjælp af operationer, hvis antal ikke overstiger et eller andet polynomium afhængigt af størrelsen af de originale data). Således danner NP-komplette problemer på en måde en undergruppe af "typiske" problemer i NP-klassen: hvis der findes en "polynomisk hurtig" løsningsalgoritme for nogle af dem, så kan ethvert andet problem fra NP-klassen løses lige så "hurtigt" ".
Et alfabet er ethvert begrænset sæt af tegn (f.eks. {} eller {}). Sættet af alle mulige ord (endelige strenge sammensat af tegnene i dette alfabet) over et eller andet alfabeter betegnet. Et sprog over et alfabeter en hvilken som helst delmængde af sættet, dvs.
Opgaven med anerkendelse af et sprog er at afgøre, om et givet ord hører til sproget .
Lad og vær to sprog over alfabetet . Et sprog siges at kunne reduceres (ifølge Karp) til et sprog, hvis der findes en funktion , , som kan beregnes i polynomisk tid og har følgende egenskab:
Et sprog siges at være NP-hårdt, hvis et sprog i klassen NP kan reduceres til det. Et sprog siges at være NP-komplet , hvis det er NP-hårdt og selv er i klassen NP.
Uformelt set betyder det, at problemet er reduceret til problemet , at problemet "ikke er sværere" end problemet (for hvis vi kan løse , så kan vi løse og ). Klassen af NP-hårde problemer inkluderer således NP-komplette problemer og problemer, der er "sværere" end dem (det vil sige de problemer, som NP-komplette problemer kan reduceres til). NP-klassen inkluderer NP-komplette problemer og problemer, der er "lettere" end dem (det vil sige de problemer, der er reduceret til NP-komplette problemer).
Det følger af definitionen, at hvis der findes en algoritme, der løser et eller andet NP-fuldstændigt problem i polynomiel tid, så vil alle NP-problemer være i klassen P , det vil sige, at de bliver løst i polynomiel tid.
En opgave kaldes NP-komplet i stærk forstand , hvis den har en delopgave, der:
Klassen af sådanne problemer kaldes NPCS . Hvis hypotesen P ≠ NP er sand, er der ingen pseudopolynomial algoritme for NPCS-problemet .
Spørgsmålet om sammenfaldet mellem klasserne P og NP har været et af de centrale åbne problemer i mere end tredive år . Det videnskabelige samfund har en tendens til at give et negativt svar på dette spørgsmål [1] - i dette tilfælde vil det ikke være muligt at løse NP-komplette problemer i polynomisk tid.
Kompleksitetsklasser af algoritmer | |
---|---|
Betragtes som lys | |
Formodes at være svært | |
Anses for vanskelig |
|
NP-komplette problemer | |
---|---|
Maksimeringsproblem ved stabling (pakning) |
|
grafteori mængdeteori | |
Algoritmiske problemer | |
Logiske spil og puslespil | |