UPMC M1 Informatique UE COMPLEX (4I900) 2014-2015 Examen Réparti 1 Novembre 2014 Durée : 2 heures Seuls les documents de cours et de TD/TME sont autorisés. Le barème est donné à titre indicatif et peut donc être sujet à modifications. Toute réponse devra être correctement justifiée. Exercice 1 (4 points) Question 1 (2/4) — On considère la machine de Turing suivante, où q0 est l’état initial, qa l’état d’acceptation et qr l’état de rejet. Quel est le langage reconnu (l’alphabet étant {a, b} pour les mots) ? Une justification rapide suffit. →D qa q0 a, b → D a, b → D q2 a, b → D q1 →D →D qr Figure 1 – Machine de Turing 1 Question 2 (2/4) — Dire pour chacune des deux affirmations suivantes si elles sont vraies ou fausses : les réponses devront être justifiées. 1. Soient A et B deux problèmes NP-complets. Il existe nécessairement une réduction polynomiale de A à B, et une réduction polynomiale de B à A. 2. Soient A et B deux problèmes appartenant à la classe P (problèmes polynomiaux). Il existe nécessairement une réduction polynomiale de A à B, et une réduction polynomiale de B à A. 2 Exercice 2 (10 points) Etant donné un graphe non orienté G = (V, E), une couverture de ce graphe est un sous-ensemble de sommets V ′ tel que toute arête a au moins une extrémité dans V ′ : ∀(i, j) ∈ E, i ∈ V ′ ou j ∈ V ′ Par exemple, sur le graphe de la figure 2, V ′ = {1, 3, 4, 6} est une couverture, mais V ′′ = {3, 6, 7} n’en est pas une car l’arête (4, 5) n’est pas couverte. 1 2 3 5 4 7 6 Figure 2 – Exemple On considère alors le problème suivant : étant donné un graphe G = (V, E), trouver une couverture de G de taille minimale. Question 1 (1/10) — Donner une solution optimale sur le graphe de la figure 2 (on ne demande pas de justification). 3 Question 2 (1/10) — De manière générale, dans un graphe à n sommets, donner un majorant du nombre de solutions réalisables. Question 3 (1.5/10) — Montrer que le problème de décision associé (étant donnés un graphe G et un entier k, déterminer s’il existe une couverture de taille au plus k) est NP-complet. On suppose que l’on sait que le problème STABLE est NP-complet. 4 On considère l’algorithme AP P ROXV C suivant : ———— AP P ROXV C ———————————————————– C←∅ Tant qu’il existe dans G une arête e = (i, j) non couverte par C, faire : C ← C ∪ {i, j} Fin Tant Que Renvoyer C ——————————————————————————————– Question 4 (1.5/10) — Appliquer l’algorithme sur le graphe de la figure 2. On donnera simplement à chaque étape l’arête dont les deux extrémités sont ajoutées, ainsi que la solution renvoyée. Question 5 (0.5/10) — De manière générale, soit (i1 , j1 ), (i2 , j2 ), . . . , (ik , jk ) les arêtes dont les deux extrémités sont ajoutées à chaque étape. Exprimer |C| en fonction de k. Question 6 (1.5/10) — Minorer la valeur optimale OP T (G) en fonction de k, et en déduire que l’algorithme AP P ROXV C est 2-approché. 5 Question 7 (0.5/10) — Trouver un graphe G et une exécution de AP P ROXV C où la solution renvoyée C est telle que |C| = 2OP T (G). Question 8 (1/10) — On considère maintenant le problème de la couverturePpondérée où chaque sommet v a un poids w(v), et l’on cherche une couverture V ′ de poids total v∈V ′ w(v) minimal. AP P ROXV C est-il toujours 2-approché pour le problème de la couverture pondérée ? (si oui le prouver, si non donner un contre-exemple). 6 Question 9 (1.5/10) — On considère le problème du stable maximum et l’on propose l’algorithme AP P ROXStable consistant à renvoyer V \ AP P ROXV C (G). Cet algorithme renvoie-t-il toujours une solution réalisable ? Est-il 1/2-approché ? (si oui le prouver, si non donner un contre-exemple). Exercice 3 (7 points) On s’intéresse à la résolution d’un problème de partition équitable de coût minimal d’un graphe non orienté connexe G = (V, E) à n sommets et m arêtes dans lequel chaque arête {x, y} ∈ E possède une valuation c(x, y). Il s’agit de diviser V en deux sous-ensembles V1 et V2 de cardinalités P respectives |V | = n et |V | = n tels que |n − n | ≤ 1 et que c(x, y) soit minimale. La 1 1 2 2 1 2 x∈V1 ,y∈V2 P valeur x∈V1 ,y∈V2 c(x, y) représentera le coût de la partition. Question 1 (1/7) — La partition (V1 = {1, 2, 3}, V2 = {4, 5, 6, 7}) du graphe G1 est-elle équitable ? Calculer son coût. 7 3 7 1 2 6 1 10 4 1 1 4 5 5 1 4 6 6 7 3 Figure 3 – Graphe G1 Question 2 (1/7) — Dans le cas général, on associe à chaque sommet i de V , une variable binaire xi qui indique dans quel sous-ensemble est placé le sommet i. Exprimer à l’aide de ces variables, la contrainte de partition équitable ainsi que la fonction à optimiser. On s’intéresse à la résolution de ce problème (difficile) par une méthode arborescente exacte. Question 3 (1/7) — On considère l’algorithme suivant dans lequel V1 est un sous-ensemble de sommets initialement vide : 8 1. Choisir un sommet v1 de V et le placer dans V1 . 2. Pour i = 2, · · · , ⌈ n2 ⌉ ; Choisir le sommet y ∈ V \V1 et y adjacent à un des sommets de V1 dont la somme des coûts aux éléments de V1 est maximale. Ajouter y à V1 . Que permet de calculer cet algorithme ? Quelle est sa complexité ? Question 4 (1/7) — Donner la valeur de V1 obtenue pour le graphe G1 en prenant v1 = 1. Question 5 (2/7) — Etant donnés deux sous-ensembles de sommets V1 de cardinalité p < n2 et V2 de cardinalité q < n2 , définir un minorant de la valeur de toute solution construite à partir de V1 et V2 . Indication : Si l’on note V̄ = V \{V1 ∪ V2 }, il faudra pour ce faire, évaluer les coûts des arêtes : – entre V1 et V2 , – entre V1 et V̄ , 9 – entre V2 et V̄ , – entre des sommets de V̄ . Question 6 (1/7) — A partir des questions précédentes, décrire un algorithme exact de branchand-bound permettant de résoudre le problème de partition équitable de coût minimal en indiquant votre schéma de branchement ainsi que vos fonctions d’évaluation (par excès et par défaut) de la fonction à optimiser. 10