• Aucun résultat trouvé

Les graphes d’intervalles

Dans le document Représentations dynamiques de graphes (Page 111-116)

Dans cette section, le but recherch´e est celui de l’entretien dynamique d’un mod`ele d’in- tervalles minimal lors d’une modification de sommet. Nous n’´etudions pas ici ce probl`eme dans sa g´en´eralit´e, ce qui sera fait au chapitre 5, mais nous consid´erons une version res- treinte du probl`eme qui s’exprime comme suit. La donn´ee est un mod`ele d’intervalles minimal avec une modification du graphe qui peut ˆetre l’ajout ou le retrait d’un sommet et la question pos´ee est : le mod`ele d’intervalle minimal donn´e peut il ˆetre restreint ou ´etendu pour obtenir un mod`ele minimal du nouveau graphe ? Pr´ecisons ce que nous entendons par restriction et extension d’un mod`ele d’intervalles minimal.

D´efinition 3.3 Soit G = (V, E) un graphe d’intervalles et soit S ⊆ V . Soient σ un ordre cons´ecutif de K(G) et σ′ un ordre cons´ecutif de K(G[S]). On dit que σ′ est la restriction de σ `a S si σ′ s’obtient de σ en retirant les sommets de S des cliques maximales de G puis en retirant de σ les cliques qui ne sont plus maximales. R´eciproquement, on dit que σ′ est une extension de σ si σ est une restriction de σ′. Pour les mod`eles d’intervalles minimaux, le vocabulaire restriction et extension se rapporte `a ces notions pour les ordres cons´ecutifs sous-jacents.

Avec cette d´efinition on peut donner une formulation plus rigoureuse du probl`eme que l’on consid`ere ici.

Probl`eme.

Donn´ee : Un graphe d’intervalles avec un de ses mod`eles d’intervalles mi- nimaux I et une insertion ou suppression de sommet dans le graphe.

Question : Calculer, si possible, un mod`ele d’intervalles minimal du graphe modifi´e qui soit une extension ou restriction de I, renvoyer faux si cela n’est pas possible.

Il y a une dissym´etrie totale entre le cas de l’ajout et celui de la suppression d’un sommet. En effet, toute restriction d’un mod`ele d’intervalles de G `a un sous-ensemble de sommets S r´esulte en un mod`ele minimal de G[S]. En revanche, il n’est pas toujours possible lors de l’ajout d’un sommet x d’´etendre un mod`ele d’intervalles minimal donn´e pour obtenir un mod`ele d’intervalles minimal de G + x, mˆeme lorsque G + x est un graphe d’intervalles. C’est ce qui nous poussera, au chapitre 5, `a consid´erer tous les mod`eles d’intervalles minimaux possibles pour G, car il en existe toujours un que l’on peut ´etendre, lorsque G + x est un graphe d’intervalles. Cette dissym´etrie peut s’expliquer par le fait que

lorsqu’on retire un sommet, on retire une contrainte : le mod`ele pr´ec´edent qui satisfaisait plus de contraintes satisfera `a fortiori les nouvelles. Dans l’autre sens, lorsqu’on ajoute un sommet, on ajoute une contrainte que ne respectait pas forc´ement le mod`ele pr´ec´edent. Nous cherchons donc maintenant `a d´eterminer les cas dans lesquels le mod`ele minimal donn´e peut ˆetre ´etendu lors de l’ajout du sommet x.

3.2.1

Insertion d’un sommet dans un mod`ele d’intervalles

Certaines notions et notations introduites ici sont d´efinies ailleurs dans le m´emoire, au chapitre 5. Le but recherch´e est l’ind´ependance de la section courante. Que le lecteur se rassure, cela n’entraˆınera pas de conflit de vocabulaire ou de notation. Des notions ou notations identiques d´esignent bien les mˆemes concepts ou mˆemes objets tout au long du m´emoire.

D´efinition 3.4 Soit G un graphe d’intervalles, soit K ∈ K(G) et soit x un sommet `a ins´erer dans G. K est dite pleine si tous les sommets de K sont adjacents `a x.

Notation 3.2 Soit G = (V, E) un graphe d’intervalles, soit σ un ordre cons´ecutif de K(G) et x un sommet `a ins´erer dans G. On note PG l’ensemble des cliques maximales de G qui

sont pleines. Lorsque PG6= ∅, on note Fσ (resp. Lσ), si elle existe, la clique maximale de

G pr´ec´edant la premi`ere (resp. suivant la derni`ere) clique de PG dans σ. Pour un sommet

y ∈ V , on note K1

y (resp. Ky2) la premi`ere (resp. derni`ere) clique maximale de G contenant

y dans σ.

D´efinition 3.5 Soit G = (V, E) un graphe d’intervalles, soit σ un ordre cons´ecutif de K(G) et x un sommet `a ins´erer dans G. Soit K ∈ K(G), K v´erifie la propri´et´e gauche (resp. droite) si pour tout sommet y ∈ N (x), on a Ky2 ≥σ K (resp. Ky1 ≤σ K). K v´erifie

la propri´et´e gauche (resp. droite) stricte si K v´erifie la propri´et´e gauche (resp. droite) et il existe y ∈ N (x) tel que K2

y = K (resp. Ky1 = K).

Th´eor`eme 3.2 Soit G un graphe d’intervalles, soit σ un ordre cons´ecutif de K(G) et x un sommet `a ins´erer dans G. Il existe une extension de σ `a G + x ssi une des deux conditions suivantes est v´erifi´ee :

1. PG 6= ∅ est un intervalle de σ et Fσ et Lσ satisfont respectivement les propri´et´es

gauche et droite ; ou

2. PG = ∅ et il existe Kf, Kl ∈ K(G) telles que Kf est le pr´ed´ecesseur de Kl dans σ, et

Kf et Kl satisfont respectivement la propri´et´e gauche et droite et Kf ∩ Kl ⊆ N (x).

Preuve : ⇒.

Comme σ est extensible, alors σ est la restriction d’un ordre cons´ecutif σ′ de K(G + x). On

note C1

x et Cx2 respectivement la premi`ere et derni`ere clique de σ′ contenant x. σ est form´e

des cliques restant maximales apr`es retrait de x. Nous analyserons plus loin dans le docu- ment (section 5.2.5) les cons´equences du retrait d’un sommet x dans un ordre cons´ecutif.

En particulier, le lemme 5.14 page 206 montre que les deux seules cliques pouvant dis- paraˆıtre de σ′ lors de la suppression de x sont C1

x et Cx2. Par cons´equent, PG contient tous

les ´el´ements de l’ensemble {K \ {x} | C1

x <σ′ K <σ′ Cx2}, plus ´eventuellement Cx1\ {x} et

C2

x\ {x}, et ne contient aucune autre clique.

Ceci montre que si PGest non vide, PGest un intervalle de σ. On note K1le pr´ed´ecesseur

de C1

x dans σ′ et K2 le successeur de Cx2. On a alors Fσ = K1 et Lσ = K2. Comme pour tout

sommet y adjacent `a x, la derni`ere clique contenant y dans σ′ est sup´erieure ou ´egale `a C1 x,

alors la derni`ere clique E1

y contenant y dans σ est telle que Ey1 ≥σ Fσ. Par cons´equent, Fσ

v´erifie la propri´et´e gauche. Par sym´etrie, Lσ v´erifie la propri´et´e droite. Ainsi, la condition 1

est satisfaite.

Si PG est vide, on pose Kf = K1 et Kl = K2. Comme PG est vide, Cx1 et Cx2 sont

cons´ecutifs dans σ′ et K

l est le successeur de Kf dans σ. D’apr`es ce qui pr´ec`ede, Kf et Kl

satisfont respectivement la propri´et´e gauche et droite. Si ∃y ∈ K1∩ K2, alors comme σ′ est

un ordre cons´ecutif, y ∈ C1

x et donc y est adjacent `a x. Ainsi, la condition 2 est satisfaite.

⇐.

Si σ v´erifie une des deux conditions du th´eor`eme, on peut construire un ordre cons´ecutif σ′ de K(G + x) qui ´etend σ. On ´etudie les deux cas s´epar´ement.

1. Si Fσ∩ N (x) 6= ∅, pour obtenir σ′, on ajoute la clique maximale (Fσ∩ N (x)) ∪ {x}

entre Fσ et sa suivante dans σ. De mˆeme, si Lσ ∩ N (x) 6= ∅, pour obtenir σ′, on

ajoute la clique maximale (Lσ∩ N (x)) ∪ {x} entre Lσ et sa pr´ec´edente dans σ. Enfin,

on ajoute x dans toutes les cliques de PG. Il est clair qu’ainsi on obtient exactement

les cliques maximales de G + x. Il faut v´erifier que les contraintes de cons´ecutivit´e impos´ees par les sommets de Fσ\ N (x) ne sont pas viol´ees par l’insertion de la clique

(Fσ∩ N (x)) ∪ {x}. Ces contraintes sont bien respect´ees car la suivante de Fσ dans σ

appartient `a PG : elle ne contient que des sommets adjacents `a x et par cons´equent

ne contient aucun sommet de Fσ \ N (x). Pour les mˆemes raisons, les contraintes de

cons´ecutivit´e impos´ees par les sommets de Lσ\ N (x) sont respect´ees. σ′ est donc bien

un ordre cons´ecutif de K(G + x).

2. Dans ce cas, on proc`ede comme dans le cas pr´ec´edent en faisant jouer `a Kf et Kl

le rˆole de Fσ et Lσ. Il convient de nouveau de s’assurer que l’insertion de la clique

(Kf ∩ N (x)) ∪ {x} ne menace pas les contraintes de cons´ecutivit´e impos´ees par les

sommets de Kf\ N (x). Ces contraintes sont respect´ees car la suivante de Kf dans σ

est Kl. D’apr`es la condition 2 du th´eor`eme, Kf ∩ Kl ne contient aucun sommet qui

soit non adjacent `a x, et donc Kl ne contient aucun sommet de Kf \ N (x). σ′ est

donc bien un ordre cons´ecutif de K(G + x).

Dans les deux cas, il est imm´ediat de voir que la restriction de σ′ aux sommets de V

3.2.2

Algorithme et complexit´e

La difficult´e est de tester si σ v´erifie une des deux conditions du th´eor`eme 3.2 et de d´eterminer le couple (Fσ, Lσ) ou le couple (Kf, Kl) en temps O(n). Ceci fait, rajouter dans

σ les cliques n´ecessaires pour obtenir σ′ dans la mˆeme complexit´e ne pose aucun probl`eme. L’impl´ementation d’un mod`ele minimal d’intervalles utilis´ee dans cet algorithme est celle d´ecrite en section 5.3.1. Cette repr´esentation s’appuie sur une liste doublement chaˆın´ee dont chaque cellule est une clique maximale, l’ordre des cellules ´etant celui de l’ordre cons´ecutif σ choisi. Chaque cellule contient son rang dans la liste. Chaque sommet y du graphe poss`ede deux pointeurs vers les deux cellules (´eventuellement identiques), not´ees K1 y

et K2

y, qui sont respectivement la premi`ere et la derni`ere clique maximale de σ contenant

y. Lorsque y ∈ K, on dit aussi que y couvre K. La proc´edure P artN onCouv(π, I)

D´efinition 3.6 On appelle partition intervallaire d’un sous-ensemble S d’un ensemble E muni d’un ordre total, l’unique partition de S dont le nombre d’´el´ements est minimal et dont tous sont des intervalles de E.

Notation 3.3 Pour un ordre π sur un ensemble sous-jacent E, et pour un ensemble I d’intervalle de π, on note N C(π, I) = {x ∈ E | ∀I ∈ I, x 6∈ I}.

La proc´edure P artN onCouv prend deux param`etres : π qui est un ordre lin´eaire sur un ensemble fini d’´el´ements E, et I qui est un ensemble d’intervalles de π. Et elle retourne la partition intervallaire de N C(π, I).

On donne ci-dessous la description de cette proc´edure. On commence par trier les intervalles I de I par ordre de f (I) croissant. Comme les f (I) sont compris entre 1 et |E|, cela requiert un temps O(|E| + |I|). On note L l’ordre ainsi obtenu.

En parcourant les I ∈ I `a f (I) croissant, on entretient une partition intervallaire de l’ensemble des ´el´ements de E qui ne sont pr´esents dans aucun des I ∈ I examin´es jusque l`a. On note Pi cette partition apr`es examen des i premiers sommets de L.

Initialement, la partition P0 ne contient qu’un intervalle qui est π lui mˆeme. A tout

moment, Pi est stock´ee comme une liste dont les ´el´ements sont des paires de pointeurs

sur f (J) et l(J) pour chaque intervalle J de la partition. Cette liste est rang´ee par ordre croissant des f (J) (et donc des l(J) car les intervalles ne s’intersectent pas). L’algorithme de parcours s’arrˆete lorsque tous les intervalles de I ont ´et´e examin´es ou lorsque le dernier ´el´ement de π n’est plus pr´esent dans Pi. Ainsi, lorsque l’algorithme s’arˆete, Pi est la

partition intervallaire de N C(π, I). On montre ci-dessous que, lors de l’examen du i + 1`eme

intervalle I ∈ I, mettre `a jour Pi pour obtenir Pi+1 ne demande qu’un temps constant.

Ainsi, le parcours de I demande un temps total de O(|I|).

On fait usage des deux invariants imm´ediats suivants. Lors du parcours de L, juste avant d’examiner un intervalle I :

2. f (I) est strictement plus grand dans π que tous les ´el´ements des intervalles de Pi qui

ne sont pas dans le dernier intervalle de Pi.

Cette derni`ere propri´et´e vient du fait qu’on examine les intervalles I ∈ I `a f (I) croissant. Ainsi, en examinant I, on est sˆur que les seuls ´el´ements de Piqu’il contient, s’il en contient,

se trouvent dans le dernier intervalle de Pi. On peut restreindre cet intervalle aux ´el´ements

de E strictement sup´erieures `a l(I) dans π en temps constant.

Le temps total d’ex´ecution de la proc´edure P artN onCouv est donc O(|E| + |I|). Test de la condition 1 du th´eor`eme 3.2

Dans ce test, le plus difficile est de v´erifier que PG forme un intervalle de σ. Par

d´efinition, PG = {K ∈ K(G) | ∀y ∈ N (x), y 6∈ K}. Donc, en posant I = {JKy1, Ky2K | y ∈

N (x)}, on a PG = N C(σ, I). Ainsi, en utilisant la proc´edure P artN onCouv, on obtient

la partition intervallaire de PG. Si cette partition contient strictement plus d’un intervalle,

u ne v´erifie pas la condition 1. Si elle en contient exactement un, alors on d´etermine Fσ

et Lσ qui sont simplement les deux sommets pr´ec´edant et suivant cet intervalle. Il reste `a

v´erifier que Fσ et Lσ satisfont respectivement la propri´et´e gauche et droite, ce qui est tr`es

facile en examinant les pointeurs de tous les sommets de G, cela prend un temps O(n). L’ex´ecution de P artN onCouv prend un temps O(|K(G)| + |I|). Comme |K(G)| = O(n) et |I| = O(n), l’appel `a la proc´edure P artN onCouv coˆute un temps O(n).

On peut donc tester si σ satisfait la condition 1 du th´eor`eme 3.2 et d´eterminer, le cas ´ech´eant, Fσ et Lσ en temps O(n).

Test de la condition 2 du th´eor`eme 3.2

Remarquons d’abord que si une clique maximale K1 v´erifie la propri´et´e gauche, alors

∀K ∈ K(G), K ≤σ K1 ⇒ K v´erifie la propri´et´e gauche. De plus, si K1 v´erifie la propri´et´e

gauche stricte (voir d´efinition 5.9), alors ∀K ∈ K(G), K1 <σ K ⇒ K ne v´erifie pas

la propri´et´e gauche. Par sym´etrie, on a les assertions correspondantes pour la propri´et´e droite. On note Cf = min{Ky2 | y ∈ N (x)}, et Cl = max{Ky1 | y ∈ N (x)}. D’apr`es

ce qui pr´ec`ede, l’ensemble des cliques maximales de G v´erifiant la propri´et´e gauche est {K ∈ K(G) | K ≤σ Cf} et l’ensemble des cliques maximales de G v´erifiant la propri´et´e

droite est {K ∈ K(G) | Cl ≤σ K}. Trouver Cf et Cl se fait en parcourant les sommets de

G en temps O(n).

– Examinons le cas o`u Cf < Cl. Si Cf n’est pas le pr´ed´ecesseur de Cl, alors σ ne satisfait

pas la condition 2. Si au contraire Cf est le pr´ed´ecesseur de Cl, alors on teste si σ

satisfait la condition 3(c)ii en parcourant les sommets de G et en v´erifiant qu’aucun sommet de N (x) ne couvre Cf et Cl simultan´ement.

– Dans le cas o`u Cl ≤ Cf, il peut y avoir plusieurs couples de sommets successeurs

pr´etendant `a ˆetre le couple (Kf, Kl). On note k la longueur de l’intervalle JCl, CfK

et {Ki}1≤i≤k = JCl, CfK, avec Cl = K1 <σ K2 <σ · · · <σ Kk = Cf. Lorsqu’ils

possibles pour (Kf, Kl) sont donc les couples (Ki, Ki+1) pour 0 ≤ i ≤ k. σ sa-

tisfait la condition 2 ssi au moins un de ces couples n’est enti`erement couvert par aucun sommet de N (x). Ainsi, en posant I = {JK1

y, pred(Ky2)K | y ∈ N (x)}, la condi-

tion 2 est satisfaite ssi N C(JK0, KkK, I) 6= ∅. Un appel `a P artN onCouv(JK0, KkK, I)

d´etermine la partition intervallaire N C(JK0, KkK, I) en temps O(k + |I|) = O(n). Si

N C(JK0, KkK, I) = ∅, la condition 2 n’est pas satisfaite. Sinon, la condition 2 est

satisfaite et n’importe quel couple form´e d’un ´el´ement de N C(JK0, KkK, I) et de son

suivant dans σ convient pour (Kf, Kl).

En conclusion, on peut tester si σ satisfait la condition 2 et trouver un couple (Kf, Kl)

le cas ´ech´eant en temps O(n).

Dans le document Représentations dynamiques de graphes (Page 111-116)