WSPD & Spanners
INFO-F-420 G´eom´etrie Algorithmique
Gabriel CORVALAN CORNEJO and Yassin JDAOUDI
INFO5S-M
Mai 2012
Table des mati`eres
1 Introduction................................... 2
2 SplitTree .................................... 2
2.1 Un peu de th´eorie... . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Un peu de pratique... . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Est-cecomplexe?............................ 4
3 Well Separated Pair Decomposition . . . . . . . . . . . . . . . . . . . . . . 5
3.1 Un peu de th´eorie... . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Un peu de pratique... . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Est-cecomplexe?............................ 8
4 Spanners..................................... 8
4.1 Un peu de th´eorie... . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.2 Un peu de pratique... . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.3 Est-cecomplexe?............................ 10
4.4 T-spanner&WSPD .......................... 11
5 Θ-Graphe .................................... 11
5.1 Unpeudeth´eorie ........................... 11
5.2 Unpeudepratique........................... 13
5.3 Est-cecomplexe?............................ 13
6 Applications................................... 14
1
1 Introduction
Les graphes sont des constructions math´ematiques compos´es de sommets et d’arˆetes.
De nombreux probl`emes peuvent se r´eduire `a un probl`eme de graphe et donc, de g´eom´etrie
algorithmique. Les probl`emes abord´es ici sont les t-spanners et la d´ecomposition en paires
bien s´epar´ees (ou ”Well Separated Pair Decomposition” ou W SP D). Le but de cette
recherche est d’introduire ces concepts sur le plan th´eorique pour ensuite donner des
solutions algorithmiques et enfin, fournir une analyse de la complexit´e de ces solutions.
Celles-ci ont ´et´e impl´ement´ees, de fa¸con `a illustrer cette recherche, sous forme interac-
tive. L’accent sera mis sur l’aspect didactique des concepts afin de permettre au lecteur
de comprendre et visualiser les algorithmes.
Une structure de donn´ee importante est d’abord abord´ee en section 2 : le Split Tree.
Celle-ci permet de diviser l’espace de points de fa¸con dichotomique afin d’en avoir une
repr´esentation succincte et structur´ee. Cette structure est ensuite utilis´ee en section 3
pour la d´ecomposition en paires bien s´epar´ees. Cette d´ecomposition permet de segmenter
un ensemble de points en des sous-ensembles poss´edant des propri´et´es spatiales similaires.
La section 4 introduit un second concept : les t-spanners. Ceux-ci sont des graphes
permettant de borner la longueur du chemin maximum entre 2 points. Un aper¸cu du
lien entre les t-spanners et les WSPD est fourni au lecteur. En section 5, les Θ-Graphes
sont pr´esent´es. Ceux-ci permettent de calculer une sorte de t-spanner. Enfin, une liste
des applications non-exhaustive est pr´esent´ee en section 6.
2 Split Tree
Soit Sun ensemble de npoints dans Rdet soit s > 0 un nombre r´eel. L’algorithme pour
calculer le WSPD (”Well Separated Pair Decomposition”), en fonction de s, s’effectue
en 2 phases :
Un arbre binaire, le SplitT ree, est construit. Cet arbre est ind´ependant de s.
Le SplitT ree est utilis´e pour ´etablir le W SP D.
Cette section introduit le concept de SplitT ree et fournit une proc´edure afin de
construire ceux-ci.
2.1 Un peu de th´eorie...
Un hyper-rectangle de dimensions dest le produit cart´esien de dintervalles ferm´es.
Ainsi, un hyper-rectangle est d´efini par :
R= [l1, r1]×[l2, r2]×... ×[ld, rd]
O`u liet risont des nombres r´eels tel que liri,1id. La longueur de Rle long
d’une dimension est not´e Li(R) := (rili).Lmax(R) et Lmin(R) sont, respectivement,
les longueurs maximum et minimum de Rsur toutes les dimensions. Soit jl’indice tel
que Lmax(R) = Lj(R). Le centre de l’intervalle le plus long de Rest h(R) := (lj+rj)/2.
2
Rappelons que R(S) est la boˆıte englobante de l’ensemble S. Le SplitT ree est un arbre
binaire contenant les points de Sdans ses feuilles. Ainsi, Si Sest form´e d’un unique
point alors le SplitT ree est form´e d’un seul noeud contenant ce point. Supposons que
|S|>2, l’algorithme d´ecompose R(S) en deux hyper-rectangles en coupant l’intervalle
le plus long en deux parts ´egales (voir figure 1). Soit S1et S2deux sous-ensembles de S
contenus dans ces deux nouveaux hyper-rectangles. Le SplitT ree de Sest d´efini par une
racine ayant deux sous-arbres qui sont `a nouveau r´ecursivement d´efini pour S1et S2.
Figure 1 – L’algorithme SplitT ree pour un ensemble de points. Le boˆıte englobante
R(u) a ´et´e coup´e verticalement (en x1=h(R(u)) en 2 boˆıtes ´egales car le cot´e le plus
long est horizontal. Les 2 sous-rectangles R0(v) et R0(w) sont cr´e´es par cette coupure.
Le SplitT ree contiendra ainsi une racine uposs´edant vet wcomme sous-arbre gauche
et droit respectivement.source : [5]
3
2.2 Un peu de pratique...
Dans chaque noeud de l’arbre ´etabli par l’algorithme SplitT ree(S, R), les informations
suivantes sont disponibles :
La boˆıte englobante R(u) des points contenu dans le sous-arbre de u.
Un hyper-rectangle R0(u) contenant R(u).
Si uest une feuille, alors ucontient ´egalement un point de S.
Algorithme SplitTree (S,R)
Cet algorithme prend en param`etre l’ensemble Sde npoints dans Rdet
un hyper-rectangle Rcontenant la boˆıte englobante de R(S). La racine du SplitT ree
pour Sest renvoy´ee.
if |S|= 1 then
Cr´eer un nouveau noeud u;
R(u) := R(S) ;
R0(u) := R;
Sauver dans ul’unique point de S,R(u), R0(u) et assigner les 2 enfants de u`a
NULL ;
return Noeud u
else
Calculer les boˆıtes englobantes R(S) de S;
Soit Hla droite d’´equation xi=h(R(S)) ;
En se basant sur H, couper Ren 2 hyper-rectangles R1et R2;
S1:= SR1;
S2:= S\S1;
v:= SplitT ree(S1, R1);
w:= SplitT ree(S2, R2);
Cr´eer un nouveau noeud u;
R(u) := R(S) ;
R0(u) := R;
Sauver dans u,R(u), R0(u) et assigner `a u,vet wcomme fils gauche et droit
respectivement ;
return Noeud u
end if
2.3 Est-ce complexe ?
En termes de complexit´e, chaque noeud interne du SplitT ree poss`ede exactement
deux fils. L’arbre poss`ede, quant `a lui, nfeuilles et est donc compos´e de 2n1 noeuds.
La hauteur du SplitT ree, qui va jouer un rˆole crucial dans le coˆut de l’algorithme, est,
4
1 / 16 100%