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

Univ. Bordeaux
Approximation et Big Data
TD 3 : Approximation, algorithmes
gloutons
2016-2017
Master Maths applis
Parcours ROAD
1 Bin Covering
On considère le problème d’optimisation suivant, appelé BinCovering :
Instances Un entier T
nentiers aiTpour 1in, avec Pn
i=1 aiT
Solutions valides Une partition de [1, n]en kensembles Xjtels que
j, PiXjaiT
Objectif Maximiser le nombre d’ensembles k
Description “É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 ainon affecté faire
Placer aidans le premier groupe qui ne dépasse pas le seuil T;
fin
Si le dernier groupe Xkn’est pas plein, le fusionner avec Xk1;
3. Montrer que cet algorithme est une 1
2-approximation pour BinCovering.
4. (Bonus) Peut-on améliorer le ratio d’approximation de FirstFit en triant les objets en fonc-
tion de leur taille ?
2 Voyageur de commerce
Il existe un algorithme pour TriangleTsp avec un meilleur ratio d’approximation que Ap-
proxTsp. 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 V0Vun sous-ensemble de sommets
de cardinal pair, et soit G0la restriction de GàV0. Montrer que tout couplage parfait Mde
poids minimal de G0vérifie
w(M)1
2OptTsp(G)
L’algorithme (dit de Christophides) est le suivant :
Algorithme 1 : Algorithme de Christophides pour un graphe complet pondéré G
Calculer un arbre couvrant Tde poids minimum pour G;
Soit V0l’ensemble des sommets de Gqui on un degré impair dans T;
Calculer un couplage parfait Mde poids minimum dans G0;
Soit Hle graphe obtenu en ajoutant les arêtes de Mà celles de T;
Calculer un circuit Eulérien Cde 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 Met le circuit Eulérien
Cexistent.
4. Montrer que la longueur ldu circuit renvoyé par cet algorithme vérifie l3
2OptTsp(G).
2
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !