Approximation et Big Data 2016-2017 Univ. Bordeaux Master Maths applis

publicité
Approximation et Big Data
Univ. Bordeaux
1
TD 3 : Approximation, algorithmes
gloutons
2016-2017
Master Maths applis
Parcours ROAD
Bin Covering
On considère le problème d’optimisation suivant, appelé BinCovering :
Instances
Solutions valides
Objectif
Description
Un entier T
P
n entiers ai ≤ T pour 1 ≤ i ≤ n, avec ni=1 ai ≥ T
UnePpartition de [1, n] en k ensembles Xj tels que
∀j, i∈Xj ai ≥ T
Maximiser le nombre d’ensembles k
“Étant donnés des objets de tailles ai , comment les arranger en
un nombre maximum de groupes suffisamment grands (≥ T ) ?”
1. Quel est le problème de décision associé à BinCovering ?
2. Montrer que ce problème de décision est NP-complet.
On s’intéresse à une adaptation de l’algorithme FirstFit pour ce problème :
tant que il existe un objet ai non affecté faire
Placer ai dans le premier groupe qui ne dépasse pas le seuil T ;
fin
Si le dernier groupe Xk n’est pas plein, le fusionner avec Xk−1 ;
3. Montrer que cet algorithme est une 12 -approximation pour BinCovering.
4. (Bonus) Peut-on améliorer le ratio d’approximation de FirstFit en triant les objets en fonction de leur taille ?
2
Voyageur de commerce
Il existe un algorithme pour TriangleTsp avec un meilleur ratio d’approximation que ApproxTsp. Pour simplifier les notations, on va considérer qu’une instance de TriangleTsp est un
graphe complet pondéré G = (V, E, w) où le poids w(e) de l’arête e = (u, v) est la distance d(u, v).
L’algorithme se base sur les circuits Eulériens, qui sont des cycles dans un graphe qui passent
une fois et une seule par chaque arête. Voici deux résultats intéressants sur les circuits Eulériens :
Théorème 2.1 Un graphe possède un circuit Eulérien si et seulement si tous ses nœuds sont de
degré pair.
Théorème 2.2 Il existe un algorithme qui construit un circuit Eulérien d’un graphe (s’il en existe
un), en temps linéaire.
1
Un autre ingrédient de cet algorithme est le couplage parfait. Un couplage d’un graphe est un
sous-ensemble de ses arêtes qui ne partagent aucun sommet. Un couplage est parfait s’il touche
tous les sommets. Un graphe complet avec un nombre pair de sommets admet toujours un couplage
parfait.
1. Étant donné un graphe complet pondéré, proposer un algorithme qui calcule un couplage
parfait de poids minimal.
2. Soit G = (V, E, w) une instance de TriangleTsp, soit V 0 ⊂ V un sous-ensemble de sommets
de cardinal pair, et soit G0 la restriction de G à V 0 . Montrer que tout couplage parfait M de
poids minimal de G0 vérifie
1
w(M ) ≤ OptTsp (G)
2
L’algorithme (dit de Christophides) est le suivant :
Algorithme 1 : Algorithme de Christophides pour un graphe complet pondéré G
Calculer un arbre couvrant T de poids minimum pour G;
Soit V 0 l’ensemble des sommets de G qui on un degré impair dans T ;
Calculer un couplage parfait M de poids minimum dans G0 ;
Soit H le graphe obtenu en ajoutant les arêtes de M à celles de T ;
Calculer un circuit Eulérien C de H;
Pour chaque nœud qui apparaît plusieurs fois dans V , ne garder qu’une seule occurence;
retourner C ;
3. Montrer que l’algorithme est correct, c’est-à-dire que le couplage parfait M et le circuit Eulérien
C existent.
4. Montrer que la longueur l du circuit renvoyé par cet algorithme vérifie l ≤ 23 OptTsp (G).
2
Téléchargement