Complexité TD10 [email protected] [email protected] 1 Voyageur de commerce Le problème du voyageur de commerce consiste à trouver le temps minimum qu'il lui faut pour faire la tournée des villes. On note ce problème MinTSP (TSP comme Traveling Salesperson Problem). Montrer que si P 6= NP, il n'existe pas d'algorithme polynomial qui résoud MinTSP. Q 1) Soit α > 1. Montrer que si P 6= NP, il n'existe pas d'algorithme polynomial qui fournit une solution au problème du voyageur de commerce à un facteur α de l'optimal. (ni même à un facteur polynomial de l'optimal) Q 2) Le problème du voyageur de commerce métrique est le cas particulier du voyageur du commerce lorsque la matrice des temps vérie l'inégalité triangulaire T [i, j] ≤ T [i, k] + T [k, j] et est symétrique T [i, j] = T [j, i] On appelle MinTSPm le problème correspondant. Q 3) Montrer que si P 6= NP, il n'existe pas d'algorithme polynomial qui résoud MinTSPm. Un arbre couvrant d'un graphe est un arbre formé en utilisant certaines des arêtes du graphe et qui contient tous les sommets. Le poids d'un graphe est la somme du poids (ici, le temps) des arêtes. Il existe un algorithme polynomial qui calcule un arbre couvrant de poids minimal Justier que le poids d'un arbre couvrant de poids minimal est inférieur au temps optimal du voyageur de commerce. Q 4) Pour résoudre le problème, on utilise la méthode suivante : On commence par calculer un arbre couvrant de poids minimum On dédouble chaque arête pour la transformer en deux arêtes, une dans chaque sens. On calcule un cycle eulérien de ce graphe (cycle qui passe par toutes les arêtes) On transforme ce cycle en un cycle hamiltonien en éliminant les sommets apparaissant plus d'une fois. 1 Exécuter l'algorithme sur le graphe suivant. Les sommets du graphe sont placés sur une grille. Le poids entre deux sommets est égal à la distance de Manhattan (somme de la distance horizontale et de la distance verticale) entre les deux sommets Q 5) Sommet A B C D E F G Position (1,2) (2,1) (2,2) (2,4) (4,3) (3,5) (5,5) Quel est le poids du cycle eulérien ? En déduire que le poids du cycle hamiltonien est inférieur à deux fois le poids d'un arbre couvrant de poids minimum. Q 6) En déduire que l'algorithme produit une approximation à un facteur 2 du problème du voyageur de commerce. Q 7) 2 Satisabilité Le problème MAX-3SAT-OPT est le suivant : Etant donné une formule avec 3 littéraux par clause, déterminer le nombre maximum de clauses simultanément satisfaisables Montrer que si P 6= N P , alors il n'existe pas d'algorithme polynomial pour résoudre MAX-3SAT-OPT. Q 1) Montrer qu'en essayant uniquement les deux instanciations où toutes les variables sont vraies et où toutes les variables sont fausses, on obtient un algorithme polynomial qui approche l'optimal à un facteur 2. Q 2) Soit φ une formule avec 3 littéraux par clause, et avec m clauses. On note Ci ses clauses, n le nombre de variables. Si Y est un choix d'instanciation (par exemple Y = {x1 = 1, x2 = 0, x3 = 1 . . . xn = 1}), on note φ[Y ] le nombre de clauses de φ qui sont satisfaites par Y . On note S l'ensemble des instanciations possibles. Q 3) Quel est le cardinal de S ? P P 1 Calculer |S| Y ∈S φ[Y ]. (On pourra remarquer que φ[Y ] = i Ci [Y ] où Ci [Y ] = 1 si Ci est satisfaite, 0 sinon) Q 4) 2 Q 5) En déduire que pour toute formule φ, on peut réaliser au moins les 7 huitièmes de ses littéraux. Soit Y 0 un choix partiel d'instanciation, c'est à dire un choix d'instanciation pour les k premières variables. On note Y 0 ⊂ Y pour dire que Y est une instanciation compatible (en accord) avec Y . Q 6) Expliquer pourquoi on sait calculer (en temps polynomial) P Y 0 ⊂Y φ[Y ] Donner un algorithme polynomial qui permet d'approcher le nombre maximum à un facteur 7/8. Remarque : On ne peut pas approcher MAX-3SAT-OPT à plus de 7/8. Ce résultat est fondamental en complexité, et vraiment pas trivial. Q 7) Le problème MAX-2SAT-OPT est le suivant : Etant donné une formule avec 2 littéraux par clause, déterminer le nombre maximum de clauses simultanément satisfaisables. Le problème de décision associé consiste, étant donné une formule φ avec 2 littéraux par clause, et un entier k à savoir si on peut satisfaire simultanément plus de k clauses. On considère la formule suivante, qui contient 18 clauses : 4 clauses x ∨ yi pour 1 ≤ i ≤ 4 4 clauses x ∨ ¬yi pour 1 ≤ i ≤ 4 Les clauses a ∨ ¬x, b ∨ ¬x, c ∨ ¬x , w ∨ ¬x Les clauses ¬a ∨ ¬b, ¬b ∨ ¬c, ¬a ∨ ¬c Les clauses a ∨ ¬w, b ∨ ¬w, c ∨ ¬w Montrer qu'on peut satisfaire simultanément au moins 15 clauses et que dans ce cas on a nécessairement a ∨ b ∨ c = 1 (Commencer par montrer qu'on a nécessairement x = 1) Q 8) Q 9) Montrer que MAX-2SAT est NP-complet. Donner un algorithme polynomial qui permet d'approcher le nombre maximum à un facteur 3/4. Q 10) 3