Classi decisionali
Le due classi principali sono la classe P, cioè l'insieme di tutti i problemi decisionali risolvibili in tempo polinomiale, e la classe NP, cioè l'insieme dei problemi che sono verificabili in tempo polinomiale.
Da queste definizioni si può quindi dedurre che .
Un problema è verificabile se esiste un algoritmo di verifica che ha come input un e un certificato, cioè una dimostrazione della soluzione. Si considera verificato se il certificato è una soluzione valida per .
Di conseguenza, per i è facile verificare le istanze e forse difficile verificare quelle .
Riducibilità
Le ulteriori classi dipendono dalla riducibilità polinomiale di due problemi e , definita come: per cui esiste un algoritmo polinomiale che trasforma le istanze di in istanze equivalenti di .
Per la riducibilità vale che la trasformazione deve mantenere la positività delle istanze, ed inoltre è:
-
Riflessiva, ovvero riducibile a se stesso:
-
Transitiva, ovvero riducibile a catena:
Questo è dimostrabile perchè per ipotesi esistono gli algoritmi e di conseguenza si può costruire come:
-
Non sempre simmetrica, ovvero:
Classe Co-NP
La classe Co-NP è l'insieme di tutti i problemi decisionali per cui il loro complemento è verificabile.
Il complemento di un problema è definito come il problema in cui le istanze positive si invertono di ruolo con le istanze negative , e quindi saranno queste ultime ad essere facili da verificare.
Classe NP-hard
La classe NP-hard è l'insieme di ogni problema decisionale per cui vale che: per cui i problemi sono almeno tanto difficili quanto quelli in .
Classe NP-C
La classe NP-C è l'insieme di ogni problema decisionale , detto NP completo, per cui vale che: da cui si può ricavare il teorema fondamentale della NP completezza: anche se non è ancora stato trovato un problema dell'intersezione o provato che non ne esistono.
Si può dimostrare perchè per ipotesi e, siccome si ha che, per definizione ogni è riducibile a . Di conseguenza, dato che , anche e quindi .
Inoltre, dato un problema è possibile riconoscerlo NP completo se: perchè ogni problema in è riducibile a , e quindi lo sono anche a per la transitività.