Nell’ipotesi che P ≠ NP (vedi l’articolo
P è uguale a NP?), purtroppo per alcuni problemi di ottimizzazione non esistono algoritmi di risoluzione efficienti. Eppure, come spesso accade in matematica, la loro formulazione è talvolta così semplice da non far immaginare la difficoltà che vi si nasconde. Prendiamo, per esempio, il celebre problema del commesso viaggiatore: dato un insieme di città, quale percorso di lunghezza minima consente di visitarle tutte e di tornare al punto di partenza? Malgrado la sua semplicità, non esiste alcun algoritmo che permetta di risolvere efficacemente questo problema: persino il migliore richiederebbe un tempo che cresce esponenzialmente con il numero di città. Che fare quando si vuole risolvere in un tempo «accettabile» (dell’ordine di qualche minuto) un problema «di grandi dimensioni» (del tipo di quelli che si incontrano nella pratica)?