Approximation Techniques Avanc´ees d’IA – Oct-D´ec.. 2014
On ne connait pas d’algorithme polynomiaux pour r´
esoudre les probl`
emes d’optimisation NP-complets, mais pour
certains on connaˆ
ıt des algorithmes efficaces qui retournent une “bonne” solution. Encore faut-il savoir ce qu’on
entend par “bonne”.
Probl`
eme d’optimisation P, ensemble d’instance I: soit vla valeur d’une solution optimale pour une instance
I∈ I.
Algorithme Adonn´
e : retourne une valeur v(A, I)
´
ecart entre v(I)et v(A, I)?
On note α(A) = max
I∈I v(A, I)/v(I)
α(A)1si Pest un probl`
eme de minimisation (et v(I)>0)
pour toute instance I:v(A, I)α(A)v(I)
Plus alpha est petit (proche de 1), meilleure est la garantie sur la qualit´
e de la solution retourn´
ee par A.
Le voyageur de commerce avec in´
egalit´
e triangulaire
Un ensemble Vde nsommets / villes, une fonction de coˆ
ut c:V × V N∪ {+∞}. On cherche un cycle qui passe
par toutes les villes de coˆ
ut minimal.
Algorithme approch´
e
1. calculer un arbre couvrant Ade coˆ
ut minimal v; //algorithme de Kruskal
2. sun sommet de V;
3. Cla liste des sommets rencontr´
es lors d’un parcours “pr´
efixe” de A;
4. C0la liste obtenue `
a partir de Cen ne gardant que la premi`
ere occurrence de chaque sommet ;
5. C0C0·s;
On montre que α(A)2.
Autrement dit : si on trouve, avec A, un circuit de coˆ
ut w, alors le coˆ
ut d’un circuit optimal est vw/2.
Remarque : un autre algorithme a un α= 1,5. (Nicos Christofides, 1976)
Le voyageur de commerce SANS in´
egalit´
e triangulaire Pas d’algorithme polynomial ayant α < +!!
Ensemble couvrant minimal
Ensemble de villes V=v1, . . . , vn
Pour chaque ville v:Couv(v)V
On cherche SVtel que SvSCouv(v) = V
Optimisation : on veut |S|minimal
Algorithme glouton
1. S← {} ;U← {}
2. Tant que U6=Vfaire :
(a) vvVSqui maximise |Couv(v)U|
(b) SS+v;UU+Couv(v)
3. Retourner S
Propri´
et´
eLe coefficient d’approximation de cet algorithme est en Ω(log(n)).
Remarque Pas tr`
es bon, si 100 villes, log(100) = 4,6...
On montre que, quelque soit  > 0, il ne peut y avoir d’algorithme ayant un α(1 ) log(n).
Exercice 1 Etant donn´
e un graphe G= (S, A), o`
uSest l’ensemble des sommets et Al’ensemble des arˆ
etes, le
probl`
eme de couverture de sommets consiste `
a trouver un sous-ensemble S0de S, le plus petit possible, tel que
toute arˆ
ete (x, y)de Aait au moins un sommet dans S0.
Question 1.1 Montrez le d´
eroulement de l’algorithme
sur le graphe en exemple de l’algorithme de Kruskal.
Question 1.2 En consid´
erant l’algorithme ci-contre,
donnez un kle meilleur possible tel que si Sest une
solution optimale, et S0une solution retourn´
ee par
l’algorithme ci-dessus, alors |S0| ≤ k|S|(en justifiant
ce r´
esultat !).
1. S0← {}.
2. Tant que A6={} faire :
(a) choisir une arˆ
ete {x, y} ∈ A;
(b) S0S0∪ {x, y};
(c) AA(les arˆ
etes dont un som-
met au moins est xou y)
3. retourner S0.
M1 IA&RF – Univ. Paul Sabatier J´erˆome Mengin – optim_approx – 18 Novembre 2014
1 / 1 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 !