• Aucun résultat trouvé

Les cographes

Dans le document Représentations dynamiques de graphes (Page 121-126)

Les cographes sont les graphes enti`erement d´ecomposables par la d´ecomposition modu- laire.

D´efinition 4.1 Un graphe G est un cographe ssi tout sous-graphe induit de G ayant au moins trois sommets admet un module non-trivial.

De cette d´efinition, on d´eduit le th´eor`eme de caract´erisation des cographes le plus connu. Th´eor`eme 4.1 [CLSB81] Un graphe G est un cographe ssi G ne contient pas de P4 induit.

Preuve : De la d´efinition 4.1, il d´ecoule que les cographes sont les graphes n’ayant au- cun sous-graphe induit premier. Or, d’apr`es le Th´eor`eme 1.4 page 40, tout graphe premier contient un P4. Comme le P4 est un graphe premier, il vient qu’un graphe G ne poss`ede

aucun sous-graphe induit premier ssi G ne poss`ede aucun P4 induit. 

La classe est aussi caract´eris´ee par le fait que les cographes sont les graphes sans noeud premier dans leur arbre de d´ecomposition modulaire. Ce r´esultat appartient au folklore. Th´eor`eme 4.2 Un graphe G est un cographe ssi son arbre de d´ecomposition modulaire ne comporte pas de noeud premier.

4.2.1

Performance du coarbre

Le fait que les cographes se comportent si bien vis `a vis de la d´ecomposition mo- dulaire leur conf`ere des propri´et´es remarquables. Au niveau repr´esentation, l’arbre de d´ecomposition modulaire d’un cographe G, souvent appel´e coarbre [CLSB81], est une repr´esentation compl`ete du graphe qui prends un espace O(n). Cette repr´esentation se comporte `a peu pr`es comme les listes d’adjacences au regard des requˆetes de voisinage et d’adjacence.

L’adjacence entre deux sommets x et y peut ˆetre d´etermin´ee en trouvant ppca(x, y) dans l’arbre, ce qui peut ˆetre fait en suivant les chemins depuis les feuilles x et y vers la racine de l’arbre en temps O(M ax{d(x), d(y)}). En effet, le chemin d’une feuille correspondant au sommet z `a la racine de l’arbre a une longueur en O(d(z)). Cela vient du fait que sur ce chemin, les noeuds s´eries et parall`eles alternent et que le nombre de noeuds s´eries est O(d(z)).

Les cographes peuvent ´egalement ˆetre repr´esent´es plus efficacement vis `a vis des requˆetes d’adjacence. Ce sont en effet des graphes de permutation. Par cons´equent, un r´ealiseur donne l’adjacence en temps constant et requiert un espace O(n) (voir section 1.3.2).

Pour lister tous les voisins d’un sommet donn´e x, on peut remonter le chemin C depuis la feuille de x jusqu’`a la racine de l’arbre. A chaque noeud s´erie rencontr´e sur ce chemin, pour chacun de ses fils f , hormis celui qui est sur le chemin C, on liste toutes les feuilles du

S S S // // // // S S // // // // S // // S

sous-arbre enracin´e en f . Comme tout sous-arbre a un nombre de noeuds qui est domin´e par son nombre de feuilles, lister toutes les feuilles de tous les sous-arbres rencontr´es le long du chemin C prends un temps O(d(x)). Quant au chemin lui-mˆeme, il est de longueur O(d(x)). En effet, comme l’arbre de d´ecomposition ne contient pas de noeud premier, les noeuds s´eries et parall`eles alternent sur tout chemin depuis une feuille `a la racine. Et comme `a chaque noeud s´erie sur le chemin C peut ˆetre associ´e un voisin de x diff´erent, la longueur du chemin de la feuille de x `a la racine de l’arbre est O(d(x)). Au bout du compte, les voisins d’un sommet x quelconque peuvent ˆetre ´enum´er´es en temps O(d(x)).

Les cographes admettent donc des repr´esentations efficaces pour les crit`eres d’espace et de temps de traitement des requˆetes d’adjacence et de voisinage. Ces repr´esentations ont, de plus, de bonnes propri´et´es dynamiques. C’est particuli`erement vrai pour le coarbre. Pour preuve, le premier algorithme de reconnaissance en complexit´e lin´eaire (O(n + m)) des cographes est incr´emental. Il est dˆu `a Corneil, Perl et Stewart en 1985, [CPS85]. Leur algorithme consid`ere les sommets du graphe G donn´e un apr`es l’autre, dans n’importe quel ordre x1, . . . , xi, . . . , xn. Il construit `a chaque ´etape le coarbre de G[{x1, . . . , xi} si celui-ci

est un cographe ou retourne f aux sinon, dans un temps O(d(xi)) `a l’´etape num´ero i. Ainsi,

cet algorithme constitue la clef de voˆute d’un algorithme de reconnaissance enti`erement dynamique de la classe des cographes. Ce dernier travail a ´et´e r´ealis´e par Shamir et Sha- ran [SS04], qui traitent la suppression de sommet, en temps O(d(x)), ainsi que la suppres- sion et l’ajout d’arˆete en temps O(1).

Comme nous le verrons en section 4.5, le meilleur algorithme connu pour l’entretient dyna- mique du r´ealiseur d’un graphe de permutation fonctionne en temps O(n) par modification. Ce qui laisse la question suivante pour les cographes.

Question ouverte 4.1 Existe-t-il, pour les cographes, une structure de donn´ee permettant de r´epondre au test d’adjacence en temps constant et dont l’entretien dynamique ne coˆute que O(d) par modification ´el´ementaire (ajout ou suppression d’arˆete ou de sommet), o`u d est le nombre d’arˆetes impliqu´ees dans l’op´eration ?

4.2.2

Entretien dynamique

Nous pr´esentons de mani`ere synth´etique les id´ees majeures des algorithmes de [CPS85] et [SS04]. Une ´etude d´etaill´ee, qui g´en´eralise ces r´esultats au cas des cographes orient´es, est donn´ee dans la section 4.3 et a ´et´e publi´ee dans [CP06].

Remarque importante : Contrairement au reste du m´emoire, nous faisons, dans cette section et dans la suivante, l’hypoth`ese que les sommets du graphe nous sont donn´es non pas par leur identifiant mais par un pointeur sur leur feuille correspondante dans le coarbre. Se basant sur le caract`ere h´er´editaire de la famille des cographes, [CPS85] se ram`ene `a consid´erer le probl`eme suivant : ´etant donn´e un cographe G = (V, E) et son coarbre Tm,

ainsi qu’un sommet x 6∈ V et son voisinage N (x) ∈ V , le graphe G + x est-il un cographe ? si oui, en donner son coarbre.

Ainsi, en partant du graphe `a un sommet qui est un cographe et dont on connaˆıt le coarbre, on reconnaˆıt incr´ementalement la famille des cographes. On ajoute les sommets du graphe donn´e un apr`es l’autre et on d´etermine si le nouveau sous-graphe obtenu est un cographe. S’il ne l’est pas, par la propri´et´e d’h´er´edit´e, le graphe entier lui-mˆeme ne l’est pas. Si la r´eponse est positive, l’algorithme continue en ajoutant un nouveau sommet. L’algorithme s’arˆete soit lorsqu’il obtient une r´eponse n´egative sur un sous-graphe, soit lorsqu’il obtient une r´eponse positive pour le graphe entier.

La clef de l’algorithme de [CPS85] est la proc´edure M ark. Nous nous servirons de variantes de cette proc´edure pour les cographes orient´es, les graphes de permutation et les graphes d’intervalles. Cette proc´edure marque et d´emarque, au plus une fois, certains noeuds de Tm.

Proc´edure M ark

– La proc´edure commence par marquer les feuilles de Tm correspondant aux voisins de

x, puis les d´emarque.

– Lorsqu’un noeud de Tm (feuille ou noeud interne) est d´emarqu´e, il propage l’infor-

mation `a son p`ere qui devient alors marqu´e, ou le reste s’il l’´etait d´ej`a.

– Lorsqu’un noeud interne a tous ses fils qui ont ´et´e d´emarqu´es, il est lui mˆeme d´emarqu´e.

– Le processus prend fin lorsqu’aucun sommet ne reste `a ˆetre d´emarqu´e.

D´efinition 4.2 A la fin de la proc´edure M ark, on qualifie de non marqu´es `a la fois les noeuds qui ont ´et´e marqu´es puis d´emarqu´es et les noeuds qui n’ont jamais ´et´e marqu´es.

L’examen des noeuds de Tm qui sont marqu´es et de ceux qui sont non marqu´es suffit

`a d´eterminer si G + x est un cographe. Remarquons que le nombres de noeuds d´emarqu´es au cours du processus est O(d(x)) car le sous-arbre enracin´e en un noeud d´emarqu´e ne contient que des feuilles voisines de x. Les noeuds restant marqu´es apr`es M ark sont aussi en nombre O(d(x)) car ils ont au moins un fils d´emarqu´e. Cette propri´et´e num´eraire est essentielle `a la complexit´e de l’algorithme entier.

D´efinition 4.3 Un noeud s´erie de Tm qui reste marqu´e apr`es M ark est dit correctement

marqu´e si tous ses fils sauf un ont ´et´e d´emarqu´es.

D´efinition 4.4 Un chemin d’un coarbre marqu´e est appel´e chemin altern´e l´egitime s’il est constitu´e de noeuds s´erie correctement marqu´es et de noeuds parall`ele non marqu´es qui alternent le long du chemin (voir figure 4.3 tir´ee de [CPS85]).

Soit α un noeud marqu´e de niveau minimal (le plus bas) dans l’arbre. La propri´et´e fondamentale, dont nous retrouveront le pendant dans le cas orient´e, est que si G + x est un cographe, les noeuds restants marqu´es ne peuvent pas ˆetre diss´emin´es partout dans l’arbre.

// // S S a c e b f r p q (*) (*)d (*) (*) (*) * *

Fig. 4.3 – Exemple de coarbre marqu´e. ∗ symbolise les noeuds marqu´es et (∗) ceux qui ont ´et´e d´emarqu´es. La racine r est un noeud correctement marqu´e. Le chemin rpq est un chemin altern´e l´egitime.

Th´eor`eme 4.3 [CPS85] Si G + x est un cographe, alors les noeuds marqu´es priv´es de α sont exactement les noeuds s´eries d’un chemin altern´e l´egitime ayant la racine pour extr´emit´e.

[CPS85] fournit mˆeme une condition n´ecessaire et suffisante, en termes de noeuds marqu´es et d´emarqu´es, pour que G + x soit un cographe. [CPS85] montre comment v´erifier cette condition et comment construire le nouveau coarbre si la r´eponse est positive, en temps O(d(x)).

Dans l’optique d’un algorithme enti`erement dynamique de reconnaissance des cographes, l’algorithme de [CPS85] couvre exactement le cas de l’ajout de sommet. [SS04] compl`ete l’approche en envisageant la suppression de sommet ainsi que l’ajout et la suppression d’arˆete. La suppression de sommet ne pose que peu de probl`emes. Comme la famille des cographes est h´er´editaire, si G est un cographe, le graphe G − x en est toujours un. Son coarbre est obtenu comme expliqu´e plus haut et illustr´e sur la figure 4.2. La seule difficult´e se pr´esente lorsque le sommet `a supprimer x a un unique fr`ere p dans Tm et que ce dernier

a la mˆeme ´etiquette que le grand-p`ere de x dans Tm (voir figure 4.4). Pour obtenir la complexit´e O(d(x)) souhait´ee Il faut alors prendre garde en construisant le nouvel arbre `a ne manipuler que des noeuds dont le sous-arbre contient des voisins de x.

En ce qui concerne les modifications d’arˆete, [SS04] fait remarquer que si on sait traiter soit l’ajout, soit la suppression d’arˆete en utilisant seulement le coarbre, alors on sait faire l’autre op´eration dans la mˆeme complexit´e. En effet, enlever une arˆete de G revient `a en ajouter une dans G. Or le coarbre du compl´ementaire d’un cographe s’obtient `a partir de celui du graphe lui-mˆeme en inversant les noeuds s´eries et parall`eles. Pour manipuler le coarbre de G sans avoir `a le calculer, il suffit d’interpr´eter les noeuds s´eries de Tm comme

des noeuds parall`eles, et vice versa.

Consid´erons par exemple le cas de l’insertion d’une arˆete uv dans le cographe G. Le graphe r´esultant de la modification est rarement un cographe, au sens o`u la condition pour qu’il le soit est tr`es contraignante. En particulier, [SS04] montre qu’il faut (mais ce n’est pas suffisant) que le ppca de u et v dans Tm soit `a distance au plus deux des

// q q p x S // // S p q p x S // S

Fig. 4.4 – Cas d´elicats de la suppression de x.

deux feuilles u et v. Cela permet de le trouver en temps constant. Le reste de la condition n´ecessaire et suffisante de [SS04] se v´erifie ais´ement en temps constant. Si le graphe modifi´e est un cographe, la modification du coarbre `a accomplir est locale et ne bouleverse pas sa structure : elle peut aussi ˆetre accomplie en temps constant. Ce qui donne un algorithme optimal pour le retrait et l’ajout d’arˆete.

Th´eor`eme 4.4 [SS04] Il existe un algorithme enti`erement dynamique sur les arˆetes de complexit´e optimale pour reconnaˆıtre les cographes et maintenir leur arbre de d´ecomposition modulaire, qui traite les modifications d’arˆete en temps constant.

L’algorithme de [CPS85] pour l’ajout de sommet est aussi optimal. Seule l’optimalit´e de la complexit´e de la suppression de sommet peut ˆetre remise en cause : la donn´ee est de taille constante (identifiant du sommet `a supprimer) et l’algorithme la traite en temps O(d(x)).

Dans le document Représentations dynamiques de graphes (Page 121-126)