É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