Master Recherche Informatique 2 Complexité Devoir à rendre le 19 Octobre 2012 Max-Cut On admettra dans cet exercice que le problème NTE défini comme suit est NP-complet : la donnée consiste en un ensemble de triplets de variables et la question est de savoir s’il existe une distribution de vérité telle que toutes les variables d’un même triplet ne soient pas affectées à la même valeur. Une coupe pour un graphe non orienté G = (V, E) est la partition de ses sommets V en deux ensembles disjoints S et T . La taille de la coupe est le nombre d’arêtes ayant une extrémité dans S et une dans T . On s’intéresse ici au problème Max-Cut : la donnée est un graphe G = (V, E) et un entier k, la question est de savoir s’il existe une coupe de taille au moins k. 1. Montrer que Max-Cut est dans NP. 2. Montrer que le problème NTE se réduit en temps polynomial à Max-Cut . Partant d’une donnée de p triplets formés sur n variables du problème NTE , on construira l’instance suivante de Max-Cut : A chaque variable x associer 3p sommets étiquetés x et 3p sommets étiquetés x̄. Tous les sommets étiquetés x sont reliés à tous les sommets étiquetés x̄. A chaque triplet Ci = (xi , yi , zi ) associer un triangle. Relier ensuite ces graphes entre eux en reliant chaque littéral des graphes issus de la première étape aux sommets des graphes issus de la seconde représentant le littéral opposé. Le graphe ainsi construit a n(3p)2 + 3p + (3p)2 arêtes. Conclure que Max-Cut est NP-complet. 3. Que peut-on en conclure quant à la complexité du problème Max-2-Sat ? Enumération Definition 0.1 Un problème d’énumération E est donné par un couple E = (I, Sol) où I est un ensemble d’instances et Sol est une fonction I −→ P(Σ∗ ). Un algorithme d’énumération A sur E, produit pour toute instance x, toutes les solutions de Sol(x) les unes après les autres sans répétition et se termine en un nombre fini d’étapes. Definition 0.2 Enum-NP est la classe des problèmes d’énumération E = (I, Sol) pour lesquels pour tout x et tout y : – si y ∈ Sol(x) la taille de y est polynomialement bornée en celle de x ; – on peut vérifier en temps polynomial si y ∈ Sol(x). 1 La complexité d’un algorithme d’énumération se mesure par le délai nécessaire entre la production de deux solutions consécutives. On appelle le ieme délai, le temps qui s’écoule entre la production de la ieme solution et de la (i + 1)eme . Il faut également prendre en compte le délai entre le début de l’algorithme et la production de la 1ere solution et le délai entre la dernière solution et l’arrêt de l’algorithme. Definition 0.3 Soit E = (I, Sol) un problème d’énumération dans Enum-NP, x ∈ I, avec n = #Sol(x), – on dit que E ∈ OutputP s’il existe un algorithme d’énumération A dont le temps total est polynomial en |x| et n, c’est-à-dire polynomial en la taille de l’entrée et le nombre de solutions ; – E ∈ IncP si pour tout i ∈ {0, . . . , n}, le ieme délai de A(x) est borné par p(|x|, i) où p est un polynôme ; – E ∈ DelayP si pour tout i, le ieme délai de A(x) est borné par p(|x|) où p est un polynôme. 1. Expliquer pourquoi il n’est pas raisonnable de s’intéresser à la sousclasse de Enum-NP formée des problèmes pour lesquels il existe un algorithme d’énumération dont le temps d’exécution est polynomialement borné en fonction de la taille de l’entrée. 2. Montrer les inclusions suivantes : DelayP ⊆ IncP ( OutputP. 3. Montrer que sous l’hypothèse P 6= NP l’énumération des modèles d’une formule en 3-CNF n’est ni dans DelayP ni dans IncP. 4. Montrer que sous l’hypothèse P 6= NP l’énumération des modèles d’une formule en 3-CNF n’est ni dans DelayP ni dans IncP. 5. On considère ici le problème pNTE (Presque Non Tous Egaux). La donnée est un ensemble C de quadruplets de variables (et non de littéraux) : C = {C1 , . . . , CP } où Ci = (wi , xi , yi , zi ) pour i = 1, . . . , p. La question est de déterminer une distribution de vérité I : V −→ {0, 1}, où V est l’ensemble des variables apparaissant dans C, telle pour tout i = 1, . . . , p : – ou bien I(wi ) = I(xi ) = I(yi ) = I(zi ) = 0 – ou bien I(wi ) = 1 et I(xi ), I(yi ) et I(zi ) ne sont pas tous les trois égaux. Quelle est la complexité de ce problème ? Montrer qu’il n’admet pas d’algorithme d’énumération à délai polynomial à moins que P = NP. (On pourra utiliser le problème mentionné au début de l’exercice précédent). 2