• Aucun résultat trouvé

au nombre de sites inachev1es

2

LE PARADIGME DIVIDE AND CONQUER

Le paradigme Divide and Conquer est tr+es utilis.e en G.eom.etrie Algorithmique 5en-

veloppe convexe, triangulation de Delaunay, diagramme de Voronoi, la paire la plus proche...? et m^eme en algorithmique en g.en.eral. Il permet de traiter eBcacement des ensembles de donn.ees tr+es vastes avec une complexit.e raisonnable. Cette approche consiste +a diviser r.ecursivement un probl+eme en plusieurs sous-probl+emes de plus pe- tite taille, +a r.esoudre les sous-probl+emes et +a les combiner pour obtenir la solution du probl+eme initial. Cette m.ethode pr.esente aussi d'autres avantages: elle se pr^ete naturellement aux algorithmes parall+eles, ainsi qu'+a ceux qui utilisent une m.emoire externeG quand le Divide and Conquer est randomis.e, on peut le d.erandomiser

1 et

obtenir un algorithme d.eterministe avec une complexit.e dans le pire des cas .egale +a la complexit.e en moyenne de son homologue randomis.e.

4.1 Description

Le sch.ema g.en.eral est le suivant:

Fonction Traiter5Ensemble? Si CasTrivial5Ensemble?alors Renvoyer5TraitementCasTrivial5Ensemble?? Sinon 5EnsembleA 1,Ensemble A 2,...,Ensemble A k? = Partition5Ensemble? 1La th$eorie de la d$erandomisation .60 fait appel 3a des notions math$ematiques extr^emement sophis- tiqu$ees 9m$ethode des probabilit$es conditionnelles, -nets et -approximations, dimension de Vapnik- Chervonenkis, cuttings...C. Elle a, 3a ce jour, un int$er^et essentiellement th$eorique, il n'existe pas d'utilisation pratique. Cette th$eorie est nouvelle et constitue un important sujet de recherche 9voir l'excellent Gsurvol" de J. MatouKsek .1410, int$egr$e dans l'ouvrageHandbook on Computational Geometry

ResultatA 1 = Traiter+Ensemble A 10 ResultatA 2 = Traiter+Ensemble A 20 ... ... ResultatA k = Traiter+Ensemble A k0 Renvoyer+Fusion+ResultatA 1,Resultat A 2,...,Resultat A k00

CasTrivial

: cas o9u l'ensemblese r;eduit 9a un nombre maximumdonn;e +petit0 d';el;ements. Le

TraitementCasTrivial

s'en d;eduit ais;ement.

Partition

: coupe l'ensemble en plusieurs sous-ensembles +en g;en;eral 20 de tailles sensiblement ;equivalentes.

Fusion

: r;eunit les r;esultats de plusieurs traitements s;epar;es +en g;en;eral 20 en un seul r;esultat global. C'est parfois cette op;eration qui supporte la plupart des op;erations du traitement, et qui est la plus complexe 9a r;ealiser, par exemple dans le cas de la triangulation de Delaunay +voir chapitre 30.

On distingue trois phases: diviser le probl9eme en sous-probl9emes, traiter les sous- probl9emes et combiner les r;esultats des sous-probl9emes.

4.2 Exemple

Consid;erons le probl9eme du tri de la liste de nombres 3, 8, 1, 7, 4, 2, 9, 6, 5, 0 avec un algorithme du type Divide and Conquer. Il y a au moins deux approches diS;erentes possibles T168U:

A.

diviser la liste en deux listes 3, 8, 1, 7, 4 et 2, 9, 6, 5, 0V trier r;ecursivement chaque liste pour obtenir 1, 3, 4, 7, 8 et 0, 2, 5, 6, 9V puis fusionner ces listes pour obtenir la liste tri;ee Wnale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

B.

trouver une bonne partition de la liste en deux listes 9a peu pr9es de la m^eme taille et telles que tous les ;el;ements de la premi9ere liste soient plus petits que les ;el;ements de la seconde, soit 3, 1, 4, 2, 0 et 8, 7, 9, 6, 5V trier r;ecursivement chaque liste pour obtenir 0, 1, 2, 3, 4 et 5, 6, 7, 8, 9V puis fusionner ces listes pour obtenir la liste tri;ee Wnale 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Les deux principales caract;eristiques de ces approches sont: +10 chacune des sous-listes est plus petite que la liste originale +avec un certain facteur, 1Y2 dans l'exemple0 et +20 la somme des tailles des sous-listes est ;egale 9a la taille de la liste originale. Dans l'approche A, l';etape de division est facile mais l';etape de fusion est di[cile. Au contraire, dans l'approche B, l';etape de division est di[cile mais l';etape de fusion est

triviale. On aura reconnu dans la m0ethode A le classique tri par fusion 6mergesort7 et dans la m0ethode B le tri rapide 6quicksort7. C'est la m0ethode B qui se g0en0eralise <a beaucoup de probl<emes g0eom0etriques2, par exemple triangulation de Delaunay 6voir

chapitre 37, enveloppe convexe...Souvent, la condition 627 se change en une borne fonction de la taille du probl<eme original et on peut aussi proc0eder de faEcon plus g0en0erale <a des k-divisions plut^ot qu'<a de simples divisions par deux.

4.3 Notations asymptotiques

Pour mesurer l'eIcacit0e d'un algorithme, on 0evalue l'ordre de grandeur du nombre d'op0erations qu'il eJectue lorsque la taille du probl<eme qu'il r0esout augmente. On mesure ainsi une eIcacit0e asymptotique 6on a vu dans l'Introduction pourquoi cette m0ethode doit ^etre utilis0ee avec discernement7. On obtient ainsi une fonction que l'on appelle complexit0e de l'algorithme. Les notations de Landau 6avec quelques abus d'0ecriture7 sont un moyen pratique d'exprimer cet ordre de grandeur. Par commodit0e, on 0ecrit f 2 O6x

27 si

f 2 O6g7 et g :x 7;! x

2. Par convention, on 0ecrit

f = O6x 27

si f 2O6x

27. Etant donn0e que l'on 0evalue des complexit0es d'algorithmes, les compa-

raisons de fonction se font au voisinage de +1.

La notation O67 repr0esente un majorant 6par exemple, le tri par fusion est

dans O6n

47 mais aussi dans

O6nlogn77. La notation R67 repr0esente un minorant 6par

exemple, le tri par fusion est dans R6n7 mais aussi dans R6nlogn77. La notation S67

repr0esente une valeur exacte, c'est <a la fois un majorant et un minorant 6par exemple, le tri par fusion est dans S6nlogn77. Il existe deux autres notations qui sont moins

utilis0ees: la notationo67 repr0esente un majorant jamais atteint 6par exemple, le tri par

fusion est danso6n

47, mais pas dans

o6nlogn77T la notation!67 repr0esente un minorant

jamais atteint 6par exemple, le tri par fusion est dans!6n7, mais pas dans!6nlogn77.

Ces deux symboles servent <a comparer des majorants ou minorants.

On trouve des d0eveloppements plus math0ematiques sur ces notations asympto- tiques et leurs propri0et0es dans l'ouvrage de Cormen, Leiserson et Rivest V57Y et aussi dans celui de Beauquier, Berstel et Chr0etienne V13Y 6ainsi d'ailleurs que dans tout bon livre d'algorithmique7.

Lors de l'analyse d'un algorithme, on d0etermine sa complexit0e dans le pire des cas, soit son comportementdans le cas le plus d0efavorable. Pour certains algorithmes, le cas le plus d0efavorable a une probabilit0e d'apparition presque nulle 6complexit0e dans le pire des cas duquicksortdansO6n

27 par exemple7. Ils sont ainsi fortement p0enalis0es par

ce type d'analyse. Souvent, on pr0ef<ere calculer une complexit0e en moyenne qui re[<ete

2Dans les algorithmes g-eom-etriques, on divise g-en-eralement les donn-ees selon une relation d'ordre, en deux parties de m^eme taille, mais l'-etape de fusion est souvent beaucoup plus complexe que dans l'exemple du quicksort ;triangulation de Delaunay par exemple= o>u il su?t de concat-ener deux listes!

mieux le comportement r,eel de l'algorithme 2complexit,e en moyenne duquicksort dans O2nlogn55. Dans certaines analyses en moyenne, on fait m^eme en plus des hypoth;eses

sur la distribution des donn,ees. Ainsi, il existe des algorithmes de tri lin,eaires en moyenne >57A.

4.4 Analyse de la complexit1e

L'analyse de la complexit,e d'un algorithme du type Divideand Conquer se ram;ene en

g,en,eral ;a la r,esolution d',equations de r,ecurrence de la forme suivante:

t2n 05 = d t2n5 = at2 n b5 + f2n5 n&n 0

On suppose que l'on remplace un probl;eme de taille n par a sous-probl;emes, chacun

de taille n b. Si

t2n5 est le co^ut de l'algorithme pour la taille n, il se compose donc de at2

n

b5 plus le temps

f2n5 pour recombiner les solutions des probl;emes partiels en une

solution du probl;eme total. d est le co^ut pour un probl;eme ,el,ementaire de petite taille n

0, pour lequel la r,ecursion s'arr^ete. En g,en,eral, les ,equations ci-dessus sont en fait

des in,equations. Le co^ut '2n5 de l'algorithme v,eriLe:

'2n5 d n n 0 '2n5 a'2 n b5 + f2n5 n&n 0

Il en r,esulte que'2n5 t2n5 pour toutn. La fonctiontconstitue donc une majoration

du co^ut de l'algorithme.

Th0eor4eme 4.4.1

0133 Soit t:N ;! R +

unefonction croissante ausens large 8apartir d'un certain rang, telle qu'il existe des entiers n

0

# 1, b # 2 et des r=eels a & 0, et d&0 et une fonction f :N ;!R

+ pour lesquels t2n 05 = d t2n5 = at2 n b5 + f2n5 n&n 0 ) n n 0 une puissance de b Supposons de plus que f2n =cn

k "log

b n

q pour des r'eels

c" 0, k 0 et q. Alors t"n = 8 ! ! ! ! " ! ! ! ! : & "n k si a(b k et q=0 & "n k "log b n 1+q si a=b k et q";1 & "n k "loglog b n si a=b k et q=;1 & "n log b a si a=b k et q(;1 & "n log b a si a"b k D'em: voir +13-. 3

Remarque: on trouve dans l'ouvrage de Beauquier, Berstel et Chr<etienne +13- davantage de r<esultats.