Lors de la conception d'un algorithme pour un nouveau problème, si je ne trouve pas d'algorithme temporel polynomial après un certain temps, je pourrais essayer de prouver qu'il est NP-difficile à la place. Si je réussis, j'ai expliqué pourquoi je ne pouvais pas trouver l'algorithme temps polynomial. Ce n’est pas que je sache avec certitude que P! = NP, c’est simplement que c’est ce qui se fait de mieux avec les connaissances actuelles, et de fait, le consensus est que P! = NP.
De même, supposons que j'ai trouvé une solution polynomiale pour certains problèmes, mais que le temps d'exécution soit . Après beaucoup d'efforts, je ne fais aucun progrès pour améliorer cela. Donc, au lieu de cela, je pourrais essayer de prouver que c'est plutôt 3SUM-hard. Cela est généralement un état satisfaisant des choses, non pas à cause de ma croyance suprême que 3sum ne nécessite en effet Θ ( n 2 ) du temps, mais parce que c'est l'état actuel de l'art, et beaucoup de gens intelligents ont essayé de l' améliorer, et ont échoué. Donc ce n’est pas de ma faute si c’est le mieux que je puisse faire.
Dans de tels cas, le mieux que nous puissions faire est d'obtenir un résultat de dureté, au lieu d'une limite inférieure réelle, car nous n'avons pas de limite inférieure super-linéaire pour Turing Machines pour les problèmes de NP.
Existe-t-il un ensemble uniforme de problèmes pouvant être utilisés pour toutes les durées d'exécution polynomiales? Par exemple, si je veux prouver qu'il est peu probable qu'un problème ait un algorithme meilleur que , existe-t-il un problème X tel que je puisse montrer qu'il est X-hard et en rester là?
Mise à jour : Cette question visait à l'origine les familles de problèmes. Puisqu'il n'y a pas beaucoup de familles de problèmes et que cette question a déjà reçu d'excellents exemples de problèmes difficiles individuels, je me limite à la question qui peut être utilisée pour obtenir des résultats de dureté en temps polynomial. J'ajoute également une prime à cette question pour encourager plus de réponses.