Exemples de problèmes N P-complets MTH6311 S. Le Digabel, École Polytechnique de Montréal H2014 (v2) MTH6311: Exemples de problèmes NP-complets 1/22
Plan 1. Rappels essentiels 2. Problème SAT 3. Autres problèmes MTH6311: Exemples de problèmes NP-complets 2/22
1. Rappels essentiels 2. Problème SAT 3. Autres problèmes MTH6311: Exemples de problèmes NP-complets 3/22
Rappels essentiels N P-complet est l ensemble de tous les problèmes de décision P N P tels que P P pour tout P N P. Théorème 1 : Pour montrer qu un problème P est N P-complet, il faut d abord s assurer que P N P et ensuite déterminer un problème P N P-complet tel que P P. La tâche délicate est de trouver un premier problème N P-complet [Cook 1971]. MTH6311: Exemples de problèmes NP-complets 4/22
1. Rappels essentiels 2. Problème SAT 3. Autres problèmes MTH6311: Exemples de problèmes NP-complets 5/22
Problème SAT Un littéral est une variable booléenne p ou sa négation p. Disjonction : p q (p OU q). Conjonction : p q (p ET q). Une formule booléenne est dite satisfaisable s il existe au moins une affectation de valeurs à ses variables de telle sorte que cette formule soit vraie. Exemple 1 : f(p, q) = (p q) (p q) est une formule booléenne satisfaisable car elle est vraie si on donne la valeur VRAI à p et à q : f(vrai, VRAI) = VRAI. Par contre f(p, q) = p (p q) q n est pas satisfaisable. MTH6311: Exemples de problèmes NP-complets 6/22
Problème SAT (suite) On note SAT le problème consistant à déterminer si une formule booléenne donnée est satisfaisable. Une clause est un littéral ou une disjonction de littéraux. Une formule booléenne est sous forme normale conjonctive (CNF) si elle est une clause ou une conjonction de clauses. Par exemple (x 1 x 2 x 3 ) (x 1 x 3 ) (x 1 ). Le problème SAT-CNF est la restriction de SAT aux formules booléennes données sous forme normale conjonctive. Le problème k-sat-cnf est la restriction de SAT-CNF au cas où toutes les clauses ont au plus k littéraux. MTH6311: Exemples de problèmes NP-complets 7/22
Problème SAT (suite) Théorème 2 [Cook 1971] : SAT-CNF N P-complet. Preuve non basée sur le Théorème 1. En utilisant le Théorème 1, il est maintenant plus facile de déterminer d autres problèmes N P-complets. Théorème 3 : SAT N P-complet. Preuve : Il est facile de vérifier que SAT N P. La propriété découle alors du fait que SAT-CNF SAT. Théorème 4 : 3-SAT-CNF N P-complet. Exemple 2 : Preuve du Théorème 4. MTH6311: Exemples de problèmes NP-complets 8/22
Optimisation linéaire en nombres entiers Le problème ILNE consiste à déterminer si un système d inéquations linéaires a au moins une solution entière. Exemple 3 : Montrer que ILNE N P-complet. L optimisation linéaire en nombres entiers (OLNE), qui est un problème d optimisation associé, est N P-dur. MTH6311: Exemples de problèmes NP-complets 9/22
1. Rappels essentiels 2. Problème SAT 3. Autres problèmes MTH6311: Exemples de problèmes NP-complets 10/22
Problème k-col Définition : k-col est le problème de décision consistant à déterminer s il est possible de colorer les sommets d un graphe en utilisant au plus k couleurs, de telle sorte qu aucune arête n ait ses deux extrémités de même couleur. Théorème 5 : k-col N P-complet pour tout k 3. Exemple 4 : Preuve du Théorème 5. MTH6311: Exemples de problèmes NP-complets 11/22
Problèmes COLO et COLC Soit COLO le problème consistant à déterminer le plus petit nombre de couleurs nécessaires pour colorer les sommets d un graphe de telle sorte qu aucune arête n ait ses deux extrémités de la même couleur. Soit COLC le problème consistant à exhiber une telle coloration minimale. On a bien évidemment 3-COL p COLO p COLC. COLO et COLC sont donc N P-durs. MTH6311: Exemples de problèmes NP-complets 12/22
Problème k-cole Soit k-cole le problème de décision consistant à déterminer si étant donné un graphe G et un nombre k, il est vrai que G peut être coloré avec k couleurs, mais pas avec k 1. On a 3-COL p k-cole puisque la réponse à 3-COL est OUI si et seulement si elle est OUI pour k-cole avec k {1, 2, 3}. Donc k-cole est N P-dur alors qu on ne sait pas si k-cole N P car il n est pas facile de donner une preuve vérifiable en temps polynomial qu un graphe G n est pas colorable en k 1 couleurs. MTH6311: Exemples de problèmes NP-complets 13/22
Exemple 5 Soient p 1, p 2,..., p n des points dans le plan, chaque point p i correspondant à un client C i et chaque couple de clients (C i, C j ) est séparé par une distance d ij. On désire construire k entrepôts sans limiter leur capacité, et affecter chaque client à exactement un de ces entrepôts. Pour un nombre L donné, on aimerait savoir s il existe une affectation telle que pour chaque entrepôt, il n existe pas de paire de clients à distance > L (à vol d oiseau) l un de l autre. Montrer que ce problème est N P-complet. MTH6311: Exemples de problèmes NP-complets 14/22
Exemple 6 Soit G = (V, E) un graphe. Une liste L(v) d entiers est associée à chaque sommet v V. On veut savoir s il est possible de choisir exactement un entier c(v) dans chaque ensemble L(v) de telle sorte que c(v) c(w) / { 1, 0, 1} pour toute arête {v, w} E. Montrer que ce problème est N P-complet. MTH6311: Exemples de problèmes NP-complets 15/22
Problème k-stable Définition : k-stable est le problème de décision consistant à déterminer si un graphe donné contient k sommets 2 à 2 non-adjacents. Théorème 6 : k-stable N P-complet pour tout k. Exemple 7 : Preuve du Théorème 6. MTH6311: Exemples de problèmes NP-complets 16/22
Exemple 8 Soit G = (V, E) un graphe et k un entier positif. On veut savoir s il existe un transversal de taille k dans G, i.e. un ensemble W V contenant exactement k sommets et tel que chaque arête de E a au moins une extrémité dans W. Montrer que ce problème est N P-complet. MTH6311: Exemples de problèmes NP-complets 17/22
Problème PARTITION Définition : Soient n entiers v 1, v 2,..., v n. Le problème PARTITION consiste à déterminer s il existe S {1, 2,..., n} tel que v i = n v i = L = 1 2 v i. i S i/ S i=1 Théorème 7 : PARTITION N P-complet. MTH6311: Exemples de problèmes NP-complets 18/22
Exemple 9 Soient p 1, p 2,..., p n des points dans le plan, chaque point p i correspondant à un client C i ayant une demande d i. On désire construire des entrepôts ayant tous une capacité D et affecter chaque client à exactement un de ces entrepôts, de telle sorte que la somme des demandes des clients affectés à chaque entrepôt n excède pas D. On se demande quel est le plus petit nombre d entrepôts nécessaires. Montrer que ce problème est N P-dur. MTH6311: Exemples de problèmes NP-complets 19/22
Exemple 10 Soient p 1, p 2,..., p n des points dans le plan, chaque point p i correspondant à un client C i ayant une demande d i. On désire construire k entrepôts ayant tous une capacité D et affecter chaque client à exactement un de ces entrepôts, de telle sorte que la somme des demandes des clients affectés à chaque entrepôt n excède pas D. Pour un nombre L donné, on aimerait savoir s il existe une affectation telle que pour chaque entrepôt, la somme des distances (à vol d oiseau) des clients affectés à cet entrepôt soit inférieure ou égale à L. Montrer que ce problème est N P-complet. MTH6311: Exemples de problèmes NP-complets 20/22
Problème KPLS (kst Largest Subset) Définition : Soient n entiers v 1, v 2,..., v n ainsi que deux entiers k et L. Le problème du kème plus lourd sous-ensemble (KPLS) consiste à déterminer s il existe k sous-ensembles S 1, S 2,..., S k de {1, 2,..., n} tels que i S j v i L pour tout j {1, 2,..., k}. Théorème 8 : PARTITION KPLS et KPLS est N P-dur. Exemple 11 : Preuve du Théorème 8. Remarque : Nul ne sait si KPLS N P car k peut être aussi grand que 2 n. On ne peut donc pas déduire des Théorèmes 7 et 8 que KPLS N P-complet. MTH6311: Exemples de problèmes NP-complets 21/22
Liens Le problème du voyageur de commerce (TSP) : voir liens sur le site web du cours. Liste de Karp de 21 problèmes N P-complets : Wikipedia. Liste de problèmes N P-complets et N P-durs : Wikipedia. MTH6311: Exemples de problèmes NP-complets 22/22