1 Voyageur de commerce

publicité
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
Téléchargement