diff --git a/algo/AlgoApprofondie/cours/complexite.txt b/algo/AlgoApprofondie/cours/complexite.txt index cf2ad19..7e6c8d9 100644 --- a/algo/AlgoApprofondie/cours/complexite.txt +++ b/algo/AlgoApprofondie/cours/complexite.txt @@ -49,3 +49,33 @@ exemples - O(n^p) : progression polynomiale - O(p^n ) : progression exponentielle - O(log(n)): progression logarithmique + +Problèmes NP-complets +---------------------- + +En théorie de la complexité, un problème NP-complet (c'est-à-dire un problème +complet pour la classe NP) est un problème de décision vérifiant les +propriétés suivantes : + +- Il est possible de vérifier une solution efficacement (en temps + polynomial) ; la classe des problèmes vérifiant cette propriété est notée + NP ; +- Tous les problèmes de la classe NP se ramènent à celui-ci via une + réduction polynomiale ; cela signifie que le problème est au moins + aussi difficile que tous les autres problèmes de la classe NP. + +- Un problème NP-difficile est un problème qui remplit la seconde + condition, et donc peut être dans une classe de problème plus large et + donc plus difficile que la classe NP. + +Bien qu'on puisse vérifier rapidement toute solution proposée d'un +problème NP-complet, on ne sait pas en trouver efficacement. C'est le +cas, par exemple, du problème du voyageur de commerce ou de celui du +problème du sac à dos. + +Tous les algorithmes connus pour résoudre des problèmes NP-complets +ont un temps d'exécution exponentiel en la taille des données d'entrée +dans le pire cas, et sont donc inexploitables en pratique même pour +des instances de taille modérée. + +