Cours Conception et analyse d`algorithmes

publicité
École polytechnique
Promotion 2012
Majeure informatique
Cours Conception et analyse d'algorithmes
TD 5 Complexité paramétrique (suite)
15 octobre 2014
1. 3-coloriage et hamiltonien sont FPT pour la treewidth
Le problème 3-coloriage est le suivant : étant donné un graphe, est-il possible de colorier ses sommets
en 3 couleurs de sorte que toute arête relie deux sommets de couleurs diérentes ?
Montrer, en utilisant une approche par programmation dynamique à largeur arborescente xée, que le
problème 3-coloriage est FPT pour la treewidth. Pour cela, en supposant qu'un arbre de décomposition
sympathique de largeur k est donné en entrée de l'algorithme, montrer que l'on peut calculer une 3-coloration
(ou s'assurer qu'il n'en existe pas) avec une complexité O(m·k·3k ), où m est la taille de cet arbre. On prendra
soin d'énoncer clairement le sous-problème à traiter associé à chaque n÷ud de l'arbre de décomposition, et
on se demandera quelle est la taille de la table booléenne associée.
Faire de même pour le problème du cycle hamiltonien. (on fera attention à bien choisir le sous-problème
associé à chaque n÷ud de l'arbre de décomposition, de manière à pouvoir recoller les solutions partielles).
2. Noyau quadratique pour MaxSat
Donnée : une formule SAT en CNF avec m clauses
Question : existe-t-il une aectation satisfaisant au moins k clauses ?
1. montrer que si k < dm/2e on répond facilement à la question
2. Soit L le nombre de clauses longues de la formule, ie les clauses avec plus de k litéraux. Que dire si
L ≥ k?
3. Trouver un noyau quadratique pour MaxSat paramétré par k.
3. Color coding for
k -path
On considère un graphe G = (V, E) et un paramètre k. On veut décider s'il existe un chemin simple
formé de k sommets dans G (simple = ne passant pas 2 fois par le même sommet).
1. Donner un algorithme d'exploration naïf pour déterminer s'il existe un chemin simple de longueur k
dans G : quelle est sa complexité ? permet il par exemple de tester l'existence d'un chemin de longueur
log n dans un graphe à n sommets en temps polynomial ?
2. On considère un coloriage C : V → {1, . . . , k} des sommets du graphe en k couleurs. Un chemin est
totalement multicolore s'il n'utilise pas deux sommets de même couleur.
Montrer qu'on peut déterminer par programmation dynamique s'il existe un chemin totalement multicolore de longueur k issu du sommet s en temps O(2k · n2 ).
3. Déduire du résultat précédent un algorithme probabiliste pour déterminer s'il existe un chemin simple
de longueur k dans G.
4. En déduire un algorithme probabiliste ecace pour déterminer s'il existe un chemin de longueur log n
dans un graphe à n sommets.
1
4. Plongement de
k
triangles
Donnée : un graphe G et un entier k
Question : existe-t-il k triangles disjoints dans G.
1. Donner un algorithme polynomial pour construire dans G un ensemble maximal T = (T1 , . . . , Tr ) de r
triangles disjoints (maximal 6= maximum...)
2. Montrer que tout triangle de G intersecte T et que si T ? = (T1? , . . . , Tk? ) est une conguration ayant
un nombre maximum de triangles, chaque Ti? a au moins un sommet appartenant à ∪Ti .
3. Utiliser les remarques précédentes pour proposer une stratégie d'exploration bornée et montrer que le
pb est FPT.
2
Téléchargement