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 ai≤Tpour 1≤i≤n, avec Pn
i=1 ai≥T
Solutions valides Une partition de [1, n]en kensembles Xjtels que
∀j, Pi∈Xjai≥T
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 Xk−1;
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