En tant qu'approche intuitive, considérez que les instanciations de problèmes NP-complets ne sont pas toujours aussi difficiles que le cas général. La satisifiabilité binaire (SAT) est NP-complète, mais il est trivial de trouver la solution à A v B v C v D v ... Les algorithmes de complexité ne font que délimiter le pire des cas, pas le cas moyen, ni même le cas à 90% .
Le moyen le plus simple de réduire un problème NP-complet à quelque chose de plus simple est d'exclure simplement les parties dures. C'est de la triche, oui. Mais souvent, les parties restantes sont toujours utiles pour résoudre des problèmes du monde réel. Dans certains cas, la ligne entre «facile» et «difficile» est facile à tracer. Comme vous l'avez souligné pour le TSP, il y a une forte réduction de la difficulté lorsque vous limitez le problème dans des directions «normales» auxquelles vous pourriez penser. Pour d'autres problèmes , il est plus difficile de trouver des moyens utiles réels de séparer les parties faciles et difficiles.
Pour quitter totalement le domaine de la CS et des mathématiques, pensez à une vieille voiture. Votre ami veut le conduire. Si vous devez lui dire: "Hé, la voiture fonctionne parfaitement. Ne la prenez pas au-dessus de 95 mph. Il y a une vilaine oscillation qui vous fera tomber de la route", ce n'est probablement pas un gros problème. De toute façon, votre ami voulait seulement l'emmener en ville. Cependant, si vous devez lui dire: "vous devez mettre l'embrayage en place juste pour passer du 1er au 2e, sinon le moteur va caler", il pourrait être plus difficile pour votre ami d'utiliser la voiture en ville sans une formation mineure.
De même, si un problème NP-complet ne devient difficile que dans des cas exotiques, il réduit la complexité assez rapidement lorsque vous examinez les sous-domaines. Cependant, si cela devient difficile dans les cas courants, il n'y a pas autant de sous-domaines utiles qui évitent la partie difficile.