Majeure Informatique Promotion 2003 Cours de Conception et analyse d'algorithmes Examen du mercredi 29 mars 2006. 2 heures Documents autorisés : poly, transparents du cours, énoncés de PC Le barême est indicatif. On demande aux étudiants d'accorder une attention particulière à une rédaction soignée, claire et détaillée, qui sera un critère important dans l'évaluation. I. Arbres recouvrants (7 points). Soit un graphe G non orienté dont l'ensemble de sommets est 1, 2, . . . , n et dont l'ensemble des arêtes est colorié en n − 1 couleurs ; ceci signie que l'on a une partition E = E1 ∪ E2 ∪ . . . ∪ En−1 telle que Ei ∩ Ej = ∅ si i 6= j . Le problème consiste à chercher un sous-ensemble T de E de taille maximale satisfaisant les deux conditions suivantes : (T 1) T ne contient pas de cycle (T 2) Toutes les arêtes de T sont de couleurs diérentes On voit que la taille de l'optimum est au plus de n − 1 ; si elle est atteinte, T est alors un arbre recouvrant dont les arêtes sont toutes de couleurs diérentes. Pour résoudre le problème, on se propose dans un premier temps d'utiliser l'algorithme glouton suivant : 1. T = ∅ 2. Tant qu'il existe une arête e de couleur diérente des arêtes de T et ne formant pas de cycle avec T faire T := T ∪ {e}. 1. Montrer sur l'exemple ci-dessous, dans lequel les colorations des arêtes sont : E1 = {e1 , e5 }, E2 = {e2 , e4 }, E3 = {e3 } que l'algorithme glouton ne donne pas toujours l'optimum. 1 e1 2 e e4 3 e 3 e 2 4 5 Dans les questions qui suivent, on suppose que l'algorithme glouton termine avec un sousensemble T , contenant k < n − 1 arêtes, et satisfaisant (T 1) et (T 2). On construit alors 1 un graphe orienté biparti GT = (X ∪ Y, A), dont l'ensemble des sommets est l'ensemble des arêtes E = {e1 , . . . , em } de G ; X est constitué des ei qui ne sont pas dans T et Y des ej qui sont dans T ; les arcs A de GT sont de deux types : Pour x ∈ X et y ∈ Y , (x, y) ∈ A si x est de même couleur que y ou si x a une couleur diérente de toutes celles des arêtes de T . Pour x ∈ X et y ∈ Y , (y, x) ∈ A si T − y + x n'a pas de cycle. Construire le graphe GT correspondant à l'exemple que vous avez donné comme réponse à la Question 1. 2. On note X1 le sous-ensemble de X constitué des arêtes qui ont une couleur diérente de celles de T et X2 le sous-ensemble de X constitué des arêtes qui ne forment pas de cycle avec T . Que peut-on dire de X1 ∩ X2 si T est obtenu par l'algorithme glouton ? A-t-on toujours X = X1 ∪ X2 ? 3. Pour l'exemple considéré montrer que certains chemins dans le graphe GT permettent de construire un ensemble T 0 satisfaisant (T1 ), (T2 ) et de taille supérieure à celle de T . 4. Les sous-ensembles satisfaisant (T1 ), (T2 ) forment-ils un matroïde, l'intersection de deux matroïdes ? Justiez votre réponse. 5. II. Problèmes NP-complets et algorithmes d'approximation (7 points). L'objet de ce problème est d'étudier un problème de placement optimal de ressources : on souhaite placer k supermarchés dans n villes de façon à minimiser la distance maximale des villes au supermarché le plus proche. Soit G = (X, E) un graphe non orienté, où X est l'ensemble des sommets et E est l'ensemble des arêtes. Un ensemble dominant de G est un sous-ensemble S ⊂ X tel que tout sommet de X \ S est voisin d'un sommet de S . Donner une version décision du problème Dominant suivant : étant donné un graphe G, trouver la cardinalité minimale d'un ensemble dominant de G. 1. Montrer que la version décision de Dominant est un problème NP-complet. Vous attacherez un grand soin dans la réponse à cette question. (Indication : Utiliser recouvrement par sommets qui consiste à chercher un ensemble de sommets S 0 tel que toute arête a une extrémité dans S 0 .) 2. On suppose donnée une table des distances d(x, y) entre n villes satisfaisant l'inégalité triangulaire : d(x, y) ≤ d(x, z) + d(z, y) pour tout triplet (x, y, z) de villes. Le problème k -centres consiste à trouver, dans un graphe complet à n sommets dont les arêtes sont valuées par une fonction d satisfaisant l'inégalité triangulaire, un sous-ensemble S de k sommets minimisant la quantité φ(S) = max min d(x, y). x∈S y ∈S / On note φ∗ le minimum minS⊂V φ(S). 2 Étant donné un graphe non orienté G = (X, E), on considère le graphe complet KX sur X et une valuation des arêtes dénie par ( d(x, y) = 1 si {x, y} ∈ E, 2 sinon. Utiliser cette construction et le problème Dominant pour montrer que la version décision du problème k -centres est NP-complète. 3. En déduire que s'il existe un algorithme polynomial qui trouve, étant donné un entier k et une valuation d du graphe complet à n sommets, un ensemble S de taille k tel que φ(S) < 2φ∗ alors P = NP. 4. III. Programmation linéaire, algorithmes probabilistes (6 points). On considère le problème set-cover pour lequel la donnée est un ensemble E = {1, 2, . . . , n} et une famille F de sous-ensembles F1 , F2 , . . . , Fm de E dont l'union est égale à E . On suppose de plus que chaque élément i est contenu dans exactement k sousensembles Fi . Il s'agit de trouver un nombre minimum de sous-ensembles Fi , i ∈ I tels S que i∈I Fi = E . On se propose ici d'utiliser la programmation linéaire et un algorithme probabiliste pour résoudre ce problème. Pour cela on associe à chaque Fi une variable xi qui prendra des valeurs comprises entre 0 et 1. Exprimer le problème sous forme d'un programme linéaire en nombres entiers comportants n contraintes (en plus de 0 ≤ xi ≤ 1) et une fonction à minimiser. Ecrire ces contraintes pour l'exemple suivant E = {1, 2, 3, 4, 5} et F1 = {1, 3, 5}, F2 = {2, 3, 4}, F3 = {1, 2}, F4 = {4, 5}, F5 = {1, 2, 4}, F6 = {3, 5}. 1. Soit x̂1 , x̂2 , . . . , x̂m la solution au problème lorsqu'on relache la condition nombres entiers pour autoriser des rationnels. Donner une borne inférieure pour l'optimum du cas entier en fonction de la solution x̂1 , x̂2 , . . . , x̂m . 2. On applique la méthode suivante pour résoudre notre problème à partir de la solution en nombres rationnels x̂1 , x̂2 , . . . , x̂m : choisir si i ∈ I avec probabilité x̂i . Cette méthode est-elle de type Monte-Carlo ou Las Vegas ? Quelle est en fonction des x̂1 , x̂2 , . . . , x̂m la probabilité pour qu'un élément j donné appartenant à Fj1 , Fj2 , . . . , Fjk n'appartienne à aucun des Fi pour i ∈ I ? 3. 4. Montrer que la probabilité que j soit dans un des Fi , i ∈ I est minorée par 1 − 1e . Donner un algorithme qui après avoir résolu le problème linéaire en nombres rationnels eectue m log(n) tirages aléatoires pour donner une solution O(log n)- approchée et ceci avec probabilité supérieure ou égale à 12 . 5. 3