PC7

publicité
École polytechnique
Promotion 2011
Majeure informatique
Cours conception et analyse d'algorithmes
TD 7 Algorithmes d'approximation
13 novembre 2013
1. Voyageur de commerce avec inégalité triangulaire
n sommets numérotés de 1 à n
n(n − 1)/2 arêtes) ; à chaque arête est associée une distance. Le voyageur de commerce part du
sommet 1 du graphe, et passe une fois et une seule par chacun des autres sommets du graphe avant de
nalement revenir en 1, et ce en parcourant la distance minimale. La version décision" de ce problème
est un problème N P -complet.
On suppose que la distance vérie l'inégalité triangulaire : pour tous sommets u, v et w , d(u, v) ≤
d(u, w) + d(w, v). On considère l'algorithme suivant :
• calculer un arbre couvrant minimal T enraciné en 1.
• renvoyer le tour H obtenu en parcourant les sommets dans l'ordre préxe associé à l'arbre T .
Ce problème consiste en la donnée d'un graphe complet non-orienté à
(et donc
i.
Quelle est la complexité de cet algorithme ?
ii.
H∗
H ∗.
Soit
totale de
iii.
2c(T ).
iv.
une tournée optimale. Montrer que le poids
c(T )
de
En utilisant l'inégalité triangulaire, montrer que la longueur
T
est inférieur ou égal à la longueur
c(H)
de
H
est inférieure ou égale à
En déduire un algorithme d'approximation à un facteur 2.
Montrer qu'il existe des cas où l'algorithme construit un tour de coût supérieur à
(2 − )c(H ∗ ),
et donc que l'analyse ne peut pas être améliorée.
2. Séparation complète (Pâle 2013)
G = (V, E), muni d'une fonction de coût c(e) ≥ 0 pour chaque
e ∈ E , et k sommets v1 , . . . , vk . Un séparateur complet des {v1 , . . . , vk } dans G est un ensemble
d'arêtes F tel que pour tout i 6= j dans {1, . . . , k}, il n'y a pas de chemin de vi à vj dans G \ F . Le coût
d'un séparateur F est la somme des coûts des arêtes qui le compose. Le problème de séparation complète
∗
optimale est de trouver un séparateur complet F de coût minimal parmi tous les séparateurs complets.
On se donne un graphe non orienté
arête
F , on note Gi [F ] l'ensemble des sommets accessibles depuis
G \ F et Fi le sous-ensemble de F constitué des arêtes ayant exactement une
extrémité dans Gi [F ]. Montrer que Fi sépare vi des autres vj , j 6= i, i.e. qu'il n'y a pas de chemin
de vi à un vj avec j 6= i dans G \ Fi .
Soit Ei un ensemble d'arêtes qui sépare vi des autres vj et de coût minimum parmi les ensembles
de ce type. Montrer qu'on peut calculer un Ei en temps polynomial. Quelle est la complexité de
1. Étant donné un séparateur complet
le sommet
2.
vi
dans
votre algorithme.
3. Déduire des questions précédentes un algorithme d'approximation à un facteur 2 pour le problème
de la séparation complète des sommets
{v1 , . . . , vk }.
3. Algorithme approché pour un recouvrement minimal
E , une famille
Si un poids w(Si ) qui est un entier positif. Il
s'agit de déterminer un ensemble d'indices J ⊆ {1, . . . , m} tel que l'union des sous-ensembles ∪j∈J Sj
P
soit E et que la somme des poids
j∈J w(Sj ) soit minimale. On admet, car ce n'est pas l'objet de la
PC du jour, que Recouvrement d'ensemble est N P -complet (mais à la pale on aurait demandé de
Le problème Recouvrement d'ensemble prend comme donnée un ensemble ni
S = {Si }1≤i≤m
de sous-ensembles de
E
et pour chaque
le démontrer !).
On considère l'algorithme glouton suivant qui calcule un recouvrement
X
est noté
|X|
et
X \Y
désigne l'ensemble des éléments de
1
X
J
(le cardinal d'un ensemble
qui ne sont pas dans
Y ).
F ← ∅, J ← ∅.
F 6= E , faire :
Calculer les valeur c(Si ) = w(Si )/|Si \ F | pour tout i = 1, . . . , m.
Trouver i tel que c(Si ) soit minimal.
Mettre à jour F ← F ∪ Si , et J ← J ∪ {i}.
Retourner l'ensemble J .
Soit (Ti )1≤i≤k les ensembles du recouvrement ordonnés dans l'ordre dans
Initialiser
Tant que
lequel ils sont ajoutés par
l'algorithme glouton.
1.
Soit
W0
la somme des poids des sous-ensembles
Montrer qu'au moins un de ces sous ensembles
x1 , . . . , x n
Soient
2.
les éléments de
E
Si
qui gurent dans la solution optimale.
satisfait
w(Si )
|Si |
≤
Ti
contenant
xj
à l'étape où il entre dans
≤
W0
n
F.
F
satisfait lors de cette
c(Ti ) ≤ W0 /(n − j + 1).
3.
En déduire que l'algorithme glouton est approché à un facteur
4.
Soit les
ε > 0.
et soit
w(T1 )
W0
n . En déduire que |T1 |
dans l'ordre dans lequel ils sont ajoutés dans
Montrer que le sous-ensemble
étape :
Si
n+1
sous-ensembles suivants de
Hn , où Hn = 1 + 1/2 + . . . + 1/n.
E = {1, 2, . . . , n}, Si = {i} pour 1 ≤ i ≤ n et Sn+1 = E
Donner des poids à ces sous-ensembles pour que le résultat de l'algorithme glouton dière
de l'optimum d'un facteur
Hn /(1 + ε).
4. Problèmes de placement de dépôts (pale 2012)
Nous allons travailler sur des problèmes d'optimisation de placement de dépôts pour une entreprise
de transport qui dessert
Données :
n
destinations. Considérons le problème de décision
(k, D)-Dépots
déni par :
X = {x1 , . . . , xn }, une matrice d(xi , xj ) de distance entre ces points,
D.
Question : Existe-t-il un sous-ensemble Y de k points de X tels que pour tout xi il existe un xj dans
Y tel que d(xi , xj ) ≤ D
On supposera dans toute la suite que les d(xi , xj ) sont bien des distances, i.e., satisfont l'inégalité
triangulaire : d(xi , xj ) ≤ d(xi , x` ) + d(x` , xj ) pour tout i, j, `.
Un ensemble de points
un entier positif
k
et un réel positif
D est xé
(k ∗ , D)-Dépôts, et
On commence par une variante "optimisation" du problème appelée NombreDépots :
et on cherche à déterminer le
Y
un ensemble
k∗
minimal tel qu'il existe une solution au problème
réalisant une telle solution. On considère dans un premier temps l'algorithme glouton
consistant à mettre un premier point
D
de
xi
xi
arbitraire dans
Y,
supprimer tous les points à distance au plus
et recommencer avec les points restants.
1. Donner un exemple pour lequel cette approche construit un ensemble de dépôts plus grand que
nécessaire.
On modie maintenant l'algorithme glouton pour qu'il retire les points à distance
2D
du point choisi à
chaque étape.
2. Montrer que lorsque ce nouvel algorithme glouton s'arrête au plus
k
∗
k∗
dépôts ont été sélectionnés, où
est l'optimum du problème. A-t-on obtenu une solution optimale au problème NombreDépôts ?
On se tourne maintenant vers une autre variante d'optimisation du problème appelée
fois-ci
k
est xé et on cherche le
D∗
k -Dépôts : cette
(k, D∗ )-Dépôts
minimal tel qu'il existe une solution au problème
(on cherche également à calculer une telle solution
Y ).
3. Montrer comment adapter le second algorithme glouton pour qu'il trouve en temps polynomial une
solution approchée à un facteur 2 au problème
k -Dépôts
et préciser la complexité de l'algorithme
obtenu.
On rappelle que le problème SetCover (ou Recouvrement d'ensembles) suivant est NP-complet :
Données :
entier
Un ensemble
Problème :
4.
Z = {z1 , . . . , zn },
une famille
S = {s1 , . . . , sm }
de sous-ensembles de
Z,
et un
k.
Z?
Montrer que s'il existe un algorithme approché à un facteur α < 2 pour le problème d'optimisation
k -Dépôts, alors P=NP.
Indication : On pourra montrer que le cas particulier du problème (k, D)-Dépôts avec D = 1 et
Existe-t-il
k
sous-ensembles dans
S
dont la réunion soit
des matrices de distances ne comportant que des 1 et des 2 est NP-complet.
2
Téléchargement