
Chapitre 1 : Notions de base sur l’optimisation combinatoire
2.3. La théorie de la complexité
La complexité d’un problème donné est observée selon deux axes: axe temporel
(complexité temporelle) et axe spatial (complexité spatiale). L’objectif de la
complexité temporelle est d’évaluer le temps de calcul nécessaire pour résoudre un
problème donné. Tandis que la complexité spatiale à pour objectif d’estimer les
besoins en mémoire (l’espace mémoire demandé) pour la résolution d’un problème
donné. La complexité d’un problème donné est estimée en fonction du nombre
d’instructions nécessaire pour aboutir à la solution du problème posé. Elle est en
relation étroite avec la taille du problème en question. En effet, elle exprime un
rapport entre la taille du problème, le temps de calcul nécessaire et l’espace mémoire
requis.
La théorie de la complexité mesure la difficulté des problèmes par l’étude de la
complexité de solutions algorithmiques proposées. Elle associe à chaque algorithme
résolvant un problème donné une fonction de complexité et mesure les ressources
nécessaires pour la résolution d’un problème posé. En effet, elle classe l’ensemble des
problèmes le temps de calcul nécessaire et l’espace mémoire requis.
La théorie de la complexité est étendue aux problèmes d’optimisations malgré
qu’elle était concentrée sur des problèmes de décision [7].
La théorie de la complexité classe les problèmes selon leur complexité en deux
classes principales: la classe P (Polynomial time) et la classe NP (Non deterministic
Polynomial time). En outre, elle partage les problèmes de la classe NP en deux sous
classes: NP-Complet et NP-Difficile.
2.3.1. Les problèmes de la classe P
Ce sont les problèmes qui peuvent être résolus en un temps de calcul
polynomial par rapport à la taille de l’instance du problème à traiter. Ils sont souvent
faciles à résoudre par des algorithmes efficaces dont le nombre d’instructions
nécessaire pour la résolution d’un problème donné est borné par une fonction
polynomiale par rapport à la taille du problème [6].
Le calcul du plus grand diviseur commun est un exemple d’un problème
appartenant à la classe P.