Module d Algorithmique Avancée Année 2005-2006 Eléments de NP-Complétude Safia Kedad-Sidhoum Safia.Kedad-Sidhoum@lip6.fr Module d Algorithmique AvancéeAnnée 2005-2006 p. 1/15
Introduction Algorithmes efficaces : nombre d étapes qui croît de façon polynomiale par rapport à la taille de l entrée Module d Algorithmique AvancéeAnnée 2005-2006 p. 2/15
Introduction Algorithmes efficaces : nombre d étapes qui croît de façon polynomiale par rapport à la taille de l entrée Problèmes NP-complets : Voyageur de commerce (Traveling Salesman Problem) Aucun problème NP-complet ne peut être résolu par un algorithme polynomial, Sil existe un algorithme polynomial pour un problème NP-complet alors il existe un algorithme polynomial pour tout problème NP-complet. Module d Algorithmique AvancéeAnnée 2005-2006 p. 2/15
Introduction Conjecture P NP Module d Algorithmique AvancéeAnnée 2005-2006 p. 3/15
Introduction Conjecture P NP Problèmes polynomiaux : algorithmes exacts Problèmes NP-complets : approches alternatives (algorithmes d approximation, heuristiques...) Module d Algorithmique AvancéeAnnée 2005-2006 p. 3/15
Problème d optimisation Prolème d optimisation : ensemble d instances I Module d Algorithmique AvancéeAnnée 2005-2006 p. 4/15
Problème d optimisation Prolème d optimisation : ensemble d instances I Instance : (F,c) F - ensemble des solutions réalisables, c - fonction coût de F dans R. Module d Algorithmique AvancéeAnnée 2005-2006 p. 4/15
Problème d optimisation hypothèses : F et c sont donnés implicitement par deux algorithmes A F et A c A F - permet de répondre à f F, F étant caractérisé par un ensemble de paramètres S, A c - retourne la valeur de c(f) en fonction d un ensemble de paramètres Q. Module d Algorithmique AvancéeAnnée 2005-2006 p. 5/15
Problème d optimisation hypothèses : F et c sont donnés implicitement par deux algorithmes A F et A c A F - permet de répondre à f F, F étant caractérisé par un ensemble de paramètres S, A c - retourne la valeur de c(f) en fonction d un ensemble de paramètres Q. Instance : représentation des ensembles de paramètres (S,Q) (cf. modèles de calcul) Module d Algorithmique AvancéeAnnée 2005-2006 p. 5/15
Problème d optimisation : Exemples Problème du voyageur de commerce : visiter un ensemble de n villes exactement une fois S - entier n, Q - matrice de distances d ij de taille (n n). Module d Algorithmique AvancéeAnnée 2005-2006 p. 6/15
Problème d optimisation : Exemples Problème du voyageur de commerce : visiter un ensemble de n villes exactement une fois S - entier n, Q - matrice de distances d ij de taille (n n). Instance : A F - vérifie si le tour f est une permutation de l ensemble {1, 2,,n}, A c - calcule le coût c(f) en sommant toutes les distances des arêtes qui constituent le tour f. Module d Algorithmique AvancéeAnnée 2005-2006 p. 6/15
Problème d optimisation : Exemples Problème de la clique maximale : Etant donné un graphe G = (S,A), déterminer le plus grand ensemble C S tel que pour tout élément a,b C, {a,b} A. S - graphe G, Q - vide Module d Algorithmique AvancéeAnnée 2005-2006 p. 7/15
Problème d optimisation : Exemples Problème de la clique maximale : Etant donné un graphe G = (S,A), déterminer le plus grand ensemble C S tel que pour tout élément a,b C, {a,b} A. S - graphe G, Q - vide Instance : A F - vérifie si f est une clique de G (sous-graphe complet), A c - calcule le cardinal de f. Module d Algorithmique AvancéeAnnée 2005-2006 p. 7/15
Problème d optimisation combinatoire Problème d optimisation combinatoire : Etant donnée une représentation des ensembles de paramètres S et Q pour les algorithmes A F et A c, il s agit de trouver la solution réalisable optimale. Module d Algorithmique AvancéeAnnée 2005-2006 p. 8/15
Problème d optimisation combinatoire Problème d optimisation combinatoire : Etant donnée une représentation des ensembles de paramètres S et Q pour les algorithmes A F et A c, il s agit de trouver la solution réalisable optimale. Formes relaxées : Problème d évaluation - Etant donnés S et Q, trouver le coût de la solution optimale, (si A c est polynomial alors le problème d évaluation n est pas plus difficile que le problème d optimisation) Problème de reconnaissance - Etant donnés une instance (représentation de S et Q) et un entier L, existe-t-il une solution réalisable f F tel que c(f) L? (problème de minimisation) Module d Algorithmique AvancéeAnnée 2005-2006 p. 8/15
Evaluation vs. Optimisation : Exemple Problème de la clique maximale : on dispose de la procédure cliquesize qui permet d évaluer le cardinal de la clique maximale d un graphe G. On s intéresse à la résolution du problème d optimisation. Module d Algorithmique AvancéeAnnée 2005-2006 p. 9/15
Evaluation vs. Optimisation : Exemple Problème de la clique maximale : on dispose de la procédure cliquesize qui permet d évaluer le cardinal de la clique maximale d un graphe G. On s intéresse à la résolution du problème d optimisation. (Procédure récursive maxclique) procédure maxclique(g : graphe) Si G ne possède plus de sommets alors retourner Sinon Soit s un sommet tel que cliquesize(g(s)) = cliquesize(g) G(s) est le sous-graphe de G constitué de s et de tous ses vois retourner {s} maxclique(g(s)\s) Fin Si Module d Algorithmique AvancéeAnnée 2005-2006 p. 9/15
Evaluation vs. Optimisation : Complexité Soit C(n) la complexité de cliquesize Soit T(n) la complexité de maxclique Module d Algorithmique AvancéeAnnée 2005-2006 p. 10/15
Evaluation vs. Optimisation : Complexité On a : Soit C(n) la complexité de cliquesize Soit T(n) la complexité de maxclique T(0) = O(1) T(n) (n + 1)C(n) + T(n 1) + O(n) Ainsi, T(n) = O(n 2 C(n)) Si la complexité de cliquesize est bornée par une fonction polynomiale alors maxclique le sera également (ce n est pas le cas!). Module d Algorithmique AvancéeAnnée 2005-2006 p. 10/15
Classes P et NP Problèmes de reconnaisance «archétypes» Arrêt : Etant donné un algorithme et son entrée, est-ce qu il s arrête? Satisfiabilité : Etant donnée une formule booléenne, est-elle satisfiable? Circuit Hamiltonien : Etant donné un graphe, existe-t-il un circuit passant exactement une fois par tous les sommets du graphe? Module d Algorithmique AvancéeAnnée 2005-2006 p. 11/15
Classes P et NP Problèmes de reconnaisance «archétypes» Arrêt : Etant donné un algorithme et son entrée, est-ce qu il s arrête? Satisfiabilité : Etant donnée une formule booléenne, est-elle satisfiable? Circuit Hamiltonien : Etant donné un graphe, existe-t-il un circuit passant exactement une fois par tous les sommets du graphe? Remarque : Tout résultat négatif concernant la complexité des problèmes de reconnaissance pourra être appliqué au problème d optimisation associé. Module d Algorithmique AvancéeAnnée 2005-2006 p. 11/15
Classes P et NP On s intéresse à la classification des problèmes de reconnaissance en fonction de leur complexité. P : problèmes résolus par des algorithmes polynomiaux, NP : Si x est une instance «vrai», il existe un certificat «concis» de x pouvant être validé en temps polynomial. Module d Algorithmique AvancéeAnnée 2005-2006 p. 12/15
Classes P et NP On s intéresse à la classification des problèmes de reconnaissance en fonction de leur complexité. P : problèmes résolus par des algorithmes polynomiaux, NP : Si x est une instance «vrai», il existe un certificat «concis» de x pouvant être validé en temps polynomial. Exemples : P : connexité d un graphe, couplage maximal, arbre couvrant de coût minimum... NP : clique maximale, PVC, Satisfiabilié... Module d Algorithmique AvancéeAnnée 2005-2006 p. 12/15
Réduction polynomiale Soient A 1 et A 2 deux problèmes de reconaissance. A 1 est réductible à A 2 en temps polynomial si et seulement si il existe un algorithme polynomial 1 pour A 1 qui utilise comme sous-programme (coût unitaire) un algorithme 2 pour A 2. Module d Algorithmique AvancéeAnnée 2005-2006 p. 13/15
Réduction polynomiale Soient A 1 et A 2 deux problèmes de reconaissance. A 1 est réductible à A 2 en temps polynomial si et seulement si il existe un algorithme polynomial 1 pour A 1 qui utilise comme sous-programme (coût unitaire) un algorithme 2 pour A 2. Propriété : Si A 1 est réductible à A 2 en temps polynomial et qu il existe un algorithme polynomial pour A 2 alors il existe un algorithme polynomial pour A 1. Module d Algorithmique AvancéeAnnée 2005-2006 p. 13/15
Problème NP-complet Définition : Un problème de reconnaissance A 1 peut être polynomialement transformé en un problème de reconnaissance A 2 si étant donnée une chaîne x on peut construire en temps polynomial une chaîne y tel que x est une instance «vrai» de A 1 si et seulement si y est une instance «vrai» de A 2. Module d Algorithmique AvancéeAnnée 2005-2006 p. 14/15
Problème NP-complet Définition : Un problème de reconnaissance A 1 peut être polynomialement transformé en un problème de reconnaissance A 2 si étant donnée une chaîne x on peut construire en temps polynomial une chaîne y tel que x est une instance «vrai» de A 1 si et seulement si y est une instance «vrai» de A 2. Un problème de reconnaisance est dit NP-complet si tous les problèmes de la classe NP lui sont polynomialement réductibles. Module d Algorithmique AvancéeAnnée 2005-2006 p. 14/15
Théorème de Cook Problèmes NP-complets : Satisfiabilité, 3-Satisfiabilité Clique Couverture de sommets Cycle hamiltonien, Voyageur de commerce Module d Algorithmique AvancéeAnnée 2005-2006 p. 15/15