L’argomento viene trattato in modo molto… semplificato.
Definiamo polinomiali quei problemi con T(n) <= nc, (c > 1) e esponenziali quelli con T(n) <= an, (a > 1).
Ci sono problemi per i quali si può dimostrare che il tempo di esecuzione del miglior algoritmo è almeno esponenziale
- torre di Hanoi
- permutazioni
- …
Si dice che sono problemi intrinsecamente esponenziali.
Sono problemi intrattabili per la maggior parte delle loro istanze.
Problemi NP
Esistono molti problemi che hanno tutti le stesse caratteristiche
- data una potenziale soluzione è possibile verificare in tempo polinomiale la sua correttezza
- ammettono un algoritmo polinomiale ma con una macchina non deterministica
- non è dimostrato che la complessità del problema sia esponenziale
Si definiscono problemi polinomiali non deterministici (NP).
Insiemisticamente, P ( NP ( EXP.
Problemi NP-C
Osserva
- Si sceglie uno dei problemi NP, per esempio il problema del commesso viaggiatore, e si dichiara NP Completo, NP-C.
- STRANO… tutti i problemi NP studiati sono riconducibili al problema NP-C fissato, basta manipolare i dati in ingresso e in uscita.
- CONCLUSIONE: se dovesse esistere un algoritmo polinomiale per uno qualsiasi dei problemi NP-C potrebbe essere utilizzato per risolvere tutti i problemi NP-C.
- P = NP ???
Nel frattempo la ricerca va avanti… esistono algoritmi che non possono promettere di dare la risposta ottima ma ci offrono quasi sempre una risposta quasi ottima.