TD3 : Algorithmes d`approximation

publicité
MIT 1re année - 2010/11
Module Algo2
TD3 : Algorithmes d’approximation
1. Couverture de sommets minimale
On rappelle que le problème de décision Vertex Cover (VC) est NP-C. Dans cet exercice,
on s’intéresse au problème d’optimisation (minimisation) associé :
MVC
Entrée – Un graphe G = (V, E)
Sortie – Une couverture V 0 , i.e. V 0 ⊆ V , avec |V 0 | tq ∀{u, v} ∈ E, u ∈ V 0 ∨ v ∈ V 0
Coût
– Cardinalité, i.e. |V 0 |
Le problème MVC est NP-Hard. Pour proposer un algorithme d’approximation, on se
ramène au problème de couplage maximal dans un graphe.
Définition 1 (Couplage de graphe)
Soit G = (V, E) un graphe. Un couplage M ⊆ E de G est un sous-ensemble d’arêtes deux
à deux non-adjacentes.
Définition 2 (Couplage maximal (MM))
Soit G = (V, E) un graphe et M un couplage de G. M est maximal au sens de l’inclusion :
pour toute arête e 6∈ M , {e} ∪ M n’est pas un couplage.
1.1 Donner un algorithme polynomial qui calcule un couplage maximal d’un graphe.
1.2 Soit G un graphe, M ⊆ E un couplage quelconque et S ⊆ V un ensemble de sommets
couvrant G. Montrer que |M | ≤ |S|. En déduire un algorithme d’approximation de facteur
2 pour le problème MVC.
1.3 Peut-on améliorer le facteur d’approximation de cet algorithme ? Prouvez-le.
2. Ordonnancement
On s’intéresse ici au problème d’ordonnancement (minimisation) :
OTMIN
Entrées – Entiers n ≥ 1, m ≥ 1 et pi ≥ 0 avec 1 ≤ i ≤ n
Sortie
– Une affectation de n travaux indépendents de durées respectives pi
sur m machines fonctionnant indépendamment
Coût
– Le temps de fonctionnement des machines
2.1 Formuler le problème comme la minimisation d’une fonction {0, 1}nm → N, en posant
des contraintes sur les nm variables. Indication : la fonction de coût utilisée correspond au
temps de fonctionnement de la machine qui fonctionne le plus longtemps.
P
2.2 On note T ∗ le coût d’un ordonnancement optimal. Montrer que mT ∗ ≥ ni=1 pi .
1
MIT 1re année - 2010/11
Module Algo2
On considère l’algorithme d’approximation qui affecte les travaux (donnés dans un ordre
quelconque) à la première machine disponible.
2.3 Ecrire le pseudo-code correspondant et montrer que l’algorithme est polynomial.
2.4 Soit Ak le travail qui se termine en dernier dans la solution
P fournie par l’algorithme
1
d’approximation, et tk sa date de début. Montrer que tk ≤ m i6=k pi .
En déduire une majoration du coût Tg de la solution de l’algorithme d’approximation.
2.5 En déduire que le facteur d’approximation de l’algorithme est
2m−1
.
m
3. Bin-packing
On considère le problème de minimisation suivant
BINP
Entrée – C ∈ N
une collection infinie de boı̂tes de capacité fixée C
suite d’objets o1 , o2 . . . on de tailles respectives t1 , t2 . . . tn
pour tout 1 ≤ i ≤ n, on a ti ≤ C
Sortie – Un rangement des n objets dans les boı̂tes
Coût
– Le nombre de boı̂tes utilisées
3.1 Soit ε ∈ Q∗ et k ∈ N∗ . Le problème (ε, k)-BINP est BINP restreint aux instances où :
– tous les objets sont de taille supérieure ou égale à εC et
– il y a au plus k tailles distinctes.
Montrer qu’il existe un algorithme polynomial pour résoudre (ε, k)-BINP. Indication : on
rappelle
que le nombre de combinaisons avec répétition de k objets parmi n est Γkn =
k+n−1
.
k
Si on relâche la contrainte k dans (ε, k)-BINP, on obtient le problème ε-BINP, pour lequel
on peut montrer qu’il existe un algorithme A+
ε d’approximation de facteur 1 + ε.
On suppose maintenant que 0 < ε ≤ 12 . Soit Aε l’algorithme :
– Construire S− = {oi | ti < εC} et S+ = {oi | ti ≥ εC}.
– Utiliser A+
ε pour ranger les objets de S+ .
– Compléter ce rangement en y rangeant les objets de S− (dans leur ordre de départ)
avec une stratégie First-fit (les objets sont rangés dans la première boı̂te qui les peut les
contenir ; si besoin, ouvrir une nouvelle boı̂te).
3.2 Montrer que Aε calcule une solution admissible pour BINP.
3.3 Montrer que le nombre de boı̂tes utilisées est au plus (1 + 2ε)B ∗ (X) + 1 où B ∗ (X) est
le nombre de boı̂tes optimal pour une instance donnée X.
3.4 Quel est la particularité du facteur de ce schéma d’approximation ?
2
Téléchargement