Chapitre 8
Algorithmes onlines
8.1 Algorithmes online et algorithmes offline
8.1.1 Online contre offline
Les algorithmes offline sont ceux utilisés dans les problèmes dont toutes les données sont
disponibles dès le début. Si les données sont disponibles au cours d’application l’algorithme, on
parle des algorithmes online. Il faut décider donc au fur et à mesure de l’arrivée des données.
Par exemple : Bin-packing avec les objets au fur et à mesure. Chaque fois qu’un objet arrive,
il faut décider où le mettre. Il n’y a pas assez d’information pour traiter les objets.
8.1.2 Compétivité
Définition 8.1. Un algorithme online est dit α-compétitif si pour toute entrée x, il donne le
résultat onl(x)α.OPT(x) + cte.
Exemple Louer un vélo pour un jour coûte 1 euro. Acheter un vélo coûte neuros. Com-
ment ne pas trop dépenser, sachant qu’un jour on est obligé d’arrêter le vélo.
Algorithme On loue le vélo nfois et puis l’acheter. Cet algorithme est 2-compétitif. En
fait,
Si après < n jours, on arrêtera le vélo, alors l’algorithme donne le même résultat d’OPT.
Si après njours, on arrêtera le vélo, alors l’algorithme donne 2n, alors l’OPT donne
250.
On a toujours onl(n)2.OPT.
Problème 8.1. Vendre un portefeuille d’actions au cours d’une période fixe, sachant que les
prix flucturont entre un prix plancher pet un prix plafond P.
Algorithme 1. (Palier) On fixe un prix palier qet vendre dès qu’on atteint ce prix,
sinon on vend au prix final, au moins p.
Analyse Si le prix max est m<q, l’algorithme optimal donne m, l’algorithme online
donne au moins p, le coefficient est au plus q
p.
Sinon, le prix max est mq, l’algorithme optimal donne m, l’online donne q, le coefficient
est au plus P
q, le coefficient est au plus P
q.
Donc, dans tout cas, cmax{q
p,P
q}, donc c= inf max{q
p,P
q}=qP
p. L’algorithme 1 est de
compétitivité pP/p
39
40 CHAPITRE 8. ALGORITHMES ONLINES
Algorithme 2. (Palier par fraction) Supposons p.2k1P < p.2k, on vend 1
kdes
actions quand on atteint p2iavec i= 1, . . . , k 1.
Analyse L’algorithme est k-compétitif. En fait, si mest entre p2jet p2j+1, l’optimal
donne au plus p2j, l’online donne 1
kpPj
i=0 2i.
8.1.3 Méthode du potentiel
Pour déterminer le facteur de compétitivité d’un algorithme online A, une méthode sou-
vent utilisée est la méthode du potentiel. L’idée est de construire une fonction φmesurant la
différence entre les configurations par Aet par OP T .
On note φile potentiel après l’étape i,Aile coût de l’étape ipar l’algorithme A. Donc, le
coût amortie d’une étape est ai=Ai+φiφi1.
Proposition 8.1. Si le coût amorti aic.OPTi, et si le potentiel final est positif, alors Aest
c-compétitif.
Preuve On a :
AX
i
Ai=φ0φk+X
i
aiφ0+X
i
c.OPTi=φ0+c.OPT.
8.2 Algorithme online pour BIN-PACKING
Retournons au problème BIN-PACKING énoncé dans le chapitre 7., à savoir, étant donné
nobjets de poids pimi = 1, . . . , n et des boites identiques. Il faut mettre les objets dans un
minimum de boites. Dans le chapitre précédent, on a trouvé que l’algorithme glouton approché
à un facteur 3
2.
Considérons maintenant l’algorithme online qui traite le cas où les objets arrivent au fur et
à mesure. Les boites sont déjà préparées.
Algorithme online On place des objets dans l’ordre où ils arrivent dans la première boite
possible.
Analyse Si l’algorithme online donne à chaque boite un objet de poids >P
2, il est optimal.
Sinon, considérons la dernière boite ouverte qui n’ait pas d’objet de ce type. L’objet pour lequel
elle a été ouverte n’a pas pu entrer dans n’importe quelle boite avant, ces dernières sont au
moins 1
2-pleine. Par conséquent, Onl 2.OPT + 1.
8.3 Algorithmes online pour Cache-Paging
Problème 8.2. Cache-Paging
Etant donnée une mémoire centrale organisée en pages, mémoire cache de kpages ; le char-
gement d’une page coûte 1 (et on sort une des pages du cache). Le problème est de trouver un
algorithme α-compétitif pour toute séquence de consultations de pages.
Il n’est pas trop difficile de montrer l’observation suivante.
Proposition 8.2. L’algorithme offline qui supprime à chaque fois la page qui sera redemandée
la plus tard donne la solution optimale.
8.4. ACCÈS SÉQUENCIELS DANS UNE LISTE 41
Quelques algorithmes online déterministes
FIFO (First in, First out) : La première page chargée est la première supprimée.
LFU (Least frequently used) : Calcul la fréquence des pages, supprimer celle de préquence
la plus petite.
LRU (Least recently accessed) : Même que LFU mais récemment.
Proposition 8.3. Tout algorithme online déterministe est au mieux k-compétitif.
Preuve Pour tout algorithme online k-page déterministe, on peut construire des séquence
dont la prochaine page est exactement celle que veut supprimer l’algorithme. Alors, pour chaque
consultation, il faut faire entrer une nouvelle page. Cependant, l’algorithme optimal offline voit
exactement la dernière pas qui sera consultée, donc il n’aura pas besoin de faire entrer d’autre
page avant de k-tours. L’online est donc au mieux k-compétitif.
La stratégie de construire les séquences qui "font mal" les algorithmes online s’appelle
l’adversaire. On verra dans les exercices que LFU n’est pas compétitif,
Proposition 8.4. LRU et FIFO sont kcompétitifs.
La proposition est évidente car si on paie kpour les deux cas, c’est-à-dire kpages différentes
sont entrées. donc OP T paie au moins 1.
8.4 Accès séquenciels dans une liste
Problème 8.3. Soit Lune liste (simplement) chainée. Minimiser le coût pour traiter une suite
d’accès, sachant qu’on peut réorganiser L.
Analyse L’accès à la clé en position icoûte iopérations. Un échange de clé voisines coûte
1 et l’amène la clé en tête de liste coûte 0.
Théorème 8.1. La recherche de la séquence d’opérations optimale offline est N P-dure.
Algorithmes Il existe quelques algorithmes online :
Transpose : Chaque fois qu’une clé est demandée, on l’avance d’une place.
Compteur : Après qu’une clé est demandée, on classe les clés par nombre d’accès dé-
croissants.
Move-to-front : Chaque fois qu’une clé est demandée, on le met en tête de liste.
En fait, Transpose et Compteur sont non compétitifs.
Proposition 8.5. Move-to-Front est 2-compétitif.
Preuve On considère la fonction potentiel φle nombre d’inversions entre la liste de MTF
et celle d’OPT.
Posons :
OPTik+ 1
Ai=k+m+ 1
avec Eile nombre d’échanges effectués par OPT, kle nombre d’éléments devant ri(l’élément
demandé) dans les 2 listes, let msont ceux qui sont devant ridans l’une mais pas dans l’autre.
Quand Move-To-Front sert rialors minversions a détruit et au plus kinversions construit.
42 CHAPITRE 8. ALGORITHMES ONLINES
On a donc
ai=Ai+φiφi1= 2k+ 1 2.OP Ti
(Chaque échange par OPT augmente le potentiel par 1, mais OPT paie aussi 1.)
Par la proposition 8.1, l’algorithme online est 2-compétitif.
8.5 Problème des k-serveurs
Problème 8.4. Soit Eun espace métrique et kserveurs dans E. Soit v1v2. . . une suite de
points. Pour chaque vi, déplace un ou plusieurs serveurs de manière à en mettre un en vi, en
minimisant la somme de déplacements.
Analyse On considère le cas kserveurs x1, . . . , xkpour k+ 1 points qui démarre avec ses
serveurs en x1, . . . , xk, et qui doit répondre à la requête calamiteuse lui demandant toujours
le point vide. On construit kautres algorithmes Ai, le i-ème initialisé avec xivide. Lorsque A
déplace un serveur de xiàxj, l’unique autre algorithme ayant xilibre déplace son serveur de
xjen xi(après avoir traité j). Les points libres des k+ 1 algos sont ainsi toujours distincts. On
a donc :
A(v1v2. . .) =
k
X
i=1
Ai(v1v2. . .)k. min
iAi(v1v2. . .)
On considère le problème dans le cas Eest simple.
Problème 8.5. Le problème des k-serveurs quand Eest la droite réelle R.
Figure 8.1 – Le cas réel : k= 2
Considérons le cas comme dans la figure avec la requête bababab . . ..
Algorithme naif On déplace le serveur le plus proche à chaque demande.
On voit que l’algorithme est arbitraiment mauvais.
Algorithme double service Si xet entre xiet xi+1, approcher xiet xi+1 à même vitesse
jusqu’à ce que l’un des deux atteigne x.
Proposition 8.6. Double service est k-compétitif.
Preuve. Soit φ=kψ +θavec ψla somme des distances entre les i-ème serveurs de OPT
et de Ade gauche à droite et θla somme des distances des serveurs de A. On a : φkx pour
OPT et φ≤ −xpour A.
8.6 Robots et exploration
Chapitre 9
Recherche locale
43
1 / 5 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 !