Algorithmes gloutons
Principe g´en´eral
Probl`emes d’optimisation, ndonn´ees.
Construit la solution de fa¸con s´equentielle, en faisant `a
chaque ´etape le meilleur choix local.
Pas de retour en arri`ere : directement vers une solution.
Progression : choix selon premi`ere donn´ee, puis r´esolution
d’un probl`eme plus petit.
Bernard Girau
Algorithmes gloutons
Exemple
Location d’un camion
On veut offrir un unique v´ehicule `a la location.
On veut maximiser le nombre de clients satisfaits.
Soit El’ensemble des demandes. Pour eE, on note d(e) et
f(e) pour la date de d´ebut et fin de la demande.
Les demandes e1et e2sont compatibles si
[d(e1),f(e1)[[d(e2),f(e2)[= .
On cherche un sous-ensemble de Ede demandes deux-`a-deux
compatibles de cardinal maximal.
Bernard Girau
Algorithmes gloutons
Exemple
Algorithme
LOCATION(E)
Trier les ´el´ements de Epar date de fin croissante
f(e1)f(e2)≤ · · · ≤ f(en).
s1:= e1
k:= 1
Pour i:= 2 `a n
si d(ei)f(sk) alors
sk+1 := ei
k:= k+ 1
Retourner {s1,...,sk}.
Bernard Girau
Algorithmes gloutons
Exemple
Th´eor`eme : l’algorithme donne bien un r´esultat optimal.
Complexit´e : O(nlog n).
Remarques :
1ne permet pas de maximiser le temps total de location ;
2id´ee : trier par dur´ees d´ecroissantes.
Bernard Girau
Algorithmes gloutons
Exemple
Algorithme 2
LOCATION DUREE(E)
Trier les ´el´ements de Epar dur´ee d´ecroissante
f(e1)d(e1)f(e2)d(e2)≥ · · · ≥ f(en)d(en).
s1:= e1
k:= 1
Pour i:= 2 `a n
compatible :=vrai
Pour j:= 1 `a k
si (d(ei)<f(sj)et d(sj)<f(ei)) alors
compatible :=faux
Si (compatible) alors
sk+1 := ei
k:= k+ 1
Retourner {s1,...,sk}.
Bernard Girau
1 / 23 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 !