Introduction
La relation entre la classe des algorithmes de complexité P et la classe des algorithmes de complexité NP est un problème non résolu en informatique théorique, et est considéré par de nombreux chercheurs comme un des plus importants problèmes du domaine, et même des mathématiques en général. À ce titre, l'Institut de mathématiques Clay, qui se consacre au développement et la diffusion des connaissances mathématiques, a inclus ce problème dans sa liste des problèmes du prix du millénaire.
Ce problème est souvent désigné comme le problème P = NP, car le problème est de savoir si ces deux classes sont équivalentes ou non. Les algorithmes de classe P sont les algorithmes dont le temps de traitement peut être majoré par un polynôme, en fonction du nombre d'éléments à traiter (par exemple T(N) = N). Les algorithmes de classe NP sont des algorithmes dont la vérification du résultat, une fois celui-ci connu, demande un temps polynomial.
En théorie de la complexité des algorithmes, un algorithme qui demande un temps d'exécution polynomial est considéré comme « rapide » (par rapport à un temps d'exécution exponentiel par exemple). Si la relation P=NP était démontrée, cela signifierait que si la solution d'un problème peut être vérifiée « rapidement », alors elle doit être nécessairement calculable « rapidement ». On saurait alors que de nombreux algorithmes importants peuvent être accélérés de manière drastique. Les conséquences en seraient considérables dans de nombreux domaines : cryptologie, informatique, mathématiques, ingénierie, économie…
S'il est avéré que P n'est pas égal à NP, cela signifierait que certains problèmes sont définitivement et fondamentalement hors d'atteinte du calcul dans un temps raisonnable, et qu'il n'existe pas d'algorithme meilleur que la force brute pour les traiter.
