• Aucun résultat trouvé

Trouver une bonne d´ecomposition k-ascendante

Dans le document TH`ESE PR´ESENT´EE `A (Page 114-117)

5.4 Sch´ema k-relationnel

5.4.2 Trouver une bonne d´ecomposition k-ascendante

Lemme 18. Chaque arbre enracin´e T de n sommets admet une d´ecomposition k-ascendante telle que les parts `a une profondeur h ont au plus(k+ 1)⌊log(2n/(k+ 1))−h⌋ sommets de V(T). De plus cette d´ecomposition se calcule en temps O(nlogn) pour k fix´e.

On dit que deux sommetsuetv sontk-reli´es s’il sont li´es (l’un des sommets est ancˆetre de l’autre) et que la distance entre les deux sommets est inf´erieure ou ´egale `a k. L’id´ee de base de la preuve est de ramener le probl`eme `a un calcul de bid´ecomposition d’une (k, k+1)-triangulation. Pour cela, on construit une k-augmentation de T, obtenue en ajoutant une arˆete entre toutes les paires de sommets distincts k-reli´es. On montre tout d’abord que le graphe obtenu est une (k, k+ 1)-triangulation.

Propri´et´e 5. Soit G une k-augmentation de d’un arbre enracin´e T. Alors G est une (k, k+ 1)-triangulation.

D´emonstration. Il suffit de prouver que G est k+ 1-s´eparable et k-clique orientable. Une k-clique orientation simple consiste `a orienter les arˆetes des sommets vers leurs ancˆetres.

5.4. Sch´ema k-relationnel 103

Figure 35 – Un exemple d’une d´ecompositionk-ascendante d’un arbreT o`u lak-ascendance Au (l’ensemble des cinq sommets color´es) sont sur la branche ”010” de B.

Les voisins sortants de chaque sommet sont dans ce cas sesk ancˆetres les plus proches. Ces k sommets sont clairement deux-`a-deux k-reli´es et donc forment une clique dans G.

Il est connu [51] que chaque graphe triangul´e G est k-s´eparable o`u k est sa taille de clique maximale. Afin de prouver que G est k+ 1-s´eparable, il suffit donc de prouver que G ne contient pas de clique de taille k+ 2 et de cycle induit de taille sup´erieur `a 3. Les sommets reli´es par une arˆete dans G sont des sommets k-reli´es dans T. Une clique K de G correspond donc `a un ensemble de sommets deux `a deux k-reli´es dans T. Les sommets de K sont donc dans une mˆeme branche et donc un chemin dans T. De plus, ils sont `a distance au plusk. Par cons´equent, la cliqueK correspond `a un chemin de longueurkdans T et contient donc au plusk+ 1 sommets.

Il reste `a prouver que G est triangul´e. On suppose maintenant par l’absurde que G a un cycle induit C de taille sup´erieure `a 3. Soit u, v, w trois sommets de C tel que u est un ancˆetre de v, et w est un ancˆetre de v. De tels sommets existent car sinon C serait un chemin. Soit w est un ancˆetre de u soit u est un ancˆetre de w. Dans les deux cas, u et w sont li´es et `a distance au plus k dans l’arbre et donc sont adjacents dans G. On obtient une contradiction est donc G est bien triangul´e.

D´emonstration du lemme 18. Soit T un arbre enracin´e de n sommets. On construit G la k-augmentation de T. Puisque G est une (k, k+ 1)-triangulation, on peut calculer une bid´ecomposition B de G dont les parts `a une profondeur h ont au plus s⌊log(2n/s)−h⌋ sommets deV(G). Cette bid´ecomposition B est une d´ecompositionk-ascendante deT. En

effet, les sommets k-reli´es dans T sont reli´es par une arˆete dans G et sont donc dans une mˆeme branche de B. Par cons´equent, les sommets d’une mˆeme k-ascendance de T sont bien dans les parts d’une seule branche deB. Le temps de calcul deB est deO(nlogn) car un demi-s´eparateur d’un sous-grapheH deGse calcule en tempsO(|V(H)|) pourkfix´e.

5.4.3 Les ´ etiquettes du sch´ ema

On r´eutilise dans le codage les mˆemes notions d’apex, de codage de branche, de position et de rang que la section 5.2.3. La seule diff´erence se situant dans le fait que l’on consid`ere les k-ascendances des sommets au lieu de consid´erer leurs k-complexes. Les notions sont en effet les mˆemes car tout comme les sommets d’un k-complexe, les sommets d’une k-ascendance sont dans une mˆeme branche dans la d´ecomposition consid´er´ee.

On consid`ere T un arbre enracin´e de n sommets et B sa d´ecomposition k-ascendante.

Soituun sommet deT,Au sak-ascendance,au l’apex deAu, etBau la part deBcontenant au. L’´etiquette de u est d´efinie comme ´etant le quadruplet suivant :

ℓ(u) = (chemin(Bau),rang(au), dau, Pu) o`u :

– dau est la distance deT de u`a au; et – Pu ={pos(v)|v ∈Au, v 6=au}.

Afin d’optimiser la complexit´e du temps de r´eponse des requˆetes, on suppose que Pu est stock´e sous forme d’un tableau dont les ´el´ements sont ordonn´es selon l’ordre croissant des distances `audansT des sommets correspondants. Concr`etement, l’´etiquetteude l’exemple de la figure 35 est3 :

ℓ(u) = (”010”,0,2,{(1,5),(2,0),(1,3),(0,9)}).

Lemme 19. Les ´etiquettes ont logn+O(klog (klog(n/k))) bits. Pour k = 1, leurs lon-gueurs sont de logn+ 2 log logn+O(1).

D´emonstration. On consid`ere un sommet u avec h la profondeur de sa part dans Bau. Le mot binaire chemin(Bau) est de longueur ´egale `ah. SoitM =⌊(k+ 1) log(2n/(k+ 1))⌋. On a rang(au)∈[0, M), et donc logM+O(1) bits suffisent car d’apr`es le lemme 18, les parts de B ont au plus M sommets. On a dau ∈ [0, k], et donc O(logk) bits suffisent. Chaque position (h, r) ∈ Pu peut ˆetre stock´ee avec logh+ logM +O(1) bits puisque h 6 h et r < M. De plus, |Pu|=k, donck·(logh+ logM) +O(k) bits suffisent pour Pu.

Au final, pour un h donn´e, la longueur de ℓ(u) est d’au plus :

|ℓ(u)| 6 h+ logM +k·(logh+ logM) +O(k) .

3. la position est cod´ee sous forme du couple (profondeur,rang) et le rang des sommets est ordonn´e par lignes de gauche `a droite puis de bas en haut

5.4. Sch´ema k-relationnel 105

On va maintenant majorer la longueur de chaque terme par une fonction d´ependant uniquement des param`etres du probl`eme (ici n et k) et non de valeurs sp´ecifiques au sommet, comme h. Ceci va nous permettre d´ecouper le mot binaire afin d’extraire ses diff´erents champs sans ajouter d’information suppl´ementaire.

D’apr`es la preuve du lemme 14 un arbre de bid´ecomposition d’une (k, k + 1)-triangulation a une profondeur au plus klog(n/k+ 1). Par cons´equent B a une profondeur au plus h0 6log(n/(k+ 1))<log(n/k). En majorant h par h0, on obtient :

|ℓ(u)| 6 h0+ logM +k·(logh0+ logM) +O(k) (4)

6 h0+klogh0+ (k+ 1) logM+O(k) (5)

6 log(n/k) +klog log(n/k) + (k+ 1) log((k+ 1) log(2n/(k+ 1))) +O(k) (6)

6 log(n/k) + (2k+ 1) log log(n/k) +O(klogk) (7)

6 log(n/k) +O(k)·(log log(n/k) + logk) (8)

6 logn+O(klog(klog(n/k))). (9)

Pour k = 1, cette formule donne logn+ 3 log logn +O(1) d’apr`es l’´equation (7). On peut l´eg`erement am´eliorer cette analyse en observant que les deux premiers champs de ℓ(u) : chemin(Bau) et rang(au) peuvent ˆetre encod´es logn+O(1) au lieu de h0+ logM ∼ log(n/k) + log log(n/k).

Pour k= 1, la k-augmentationGdeT est T lui-mˆeme. Par cons´equent, la taille de son demi-s´eparateur de 1 plutˆot que 2. En effet, il est connu que pour chaque forˆet contient un sommet dont la suppression la d´ecoupe en composantes connexes de taille moiti´e moins grande que le graphe de d´epart. Il en suit que les parts `a profondeurhcontiennent au plus α = logn −h +O(1) sommets au lieu de (k+ 1)(log(2n/(k + 1))−h) = 2(logn −h).

Une cons´equence directe est que les deux premiers champs de ℓ(u) peuvent ˆetre encod´es conjointement en un seul mot W de logn+O(1) bits :

W = chemin(Bau)◦code0(rang(au))

Au final, on obtient que |W| = h+ 1 +α = logn +O(1). Les deux champs peuvent ˆetre extraits en temps constant puisque rang(au) est cod´e grˆace `a un code suffixe. Les deux autres champs restants ont une longueur born´ee par 2klog log(n/k)+O(klogk). On obtient donc bien une longueur totale de logn+O(klog (klog(n/k))) bits pour les ´etiquettes. Pour le cas k = 1, on peut mˆeme affiner ce majorant de mani`ere `a avoir des ´etiquettes d’au plus logn+ 2 log logn+ 2 pour tout n >16.

Dans le document TH`ESE PR´ESENT´EE `A (Page 114-117)