Vous êtes sur la page 1sur 63

Algorithmique de graphes

Algorithmique de graphes
Graphes triangulés

Fabien de Montgolfier

Université Paris 7 - LIAFA

MPRI 23 sept 2008


Algorithmique de graphes
Graphes triangulés
Graphes triangulés

Graphes : rappels

Graphes
I G (V , E )
I V ensemble quelconque fini de sommets
I E ⊂ 2(V ) ensemble de paires d’éléments de V : arêtes
I → Définit des graphes simples non-orientés : (pas de boucles,
ni multi-arêtes, ni orientation)

Sous-graphe
I G 0 = (V 0 , E 0 ) sous-graphe de G si V 0 ⊂ V et E 0 ⊂ E
I sous-graphe induit par V 0 : G = (V 0 , E ∩ 2(V 0 ))
Algorithmique de graphes
Graphes triangulés
Graphes triangulés

Graphes : rappels

Cycle
I cycle : suite (x0 ...xk−1 ) de k sommets avec
{xi , xi+1 mod k } ∈ E
I cycle induit : suite (x0 ...xk−1 ) de k sommets tel que
{xi , xj } ∈ E ⇐⇒ |i − j mod k| = 1
I en d’autres termes, un cycle induit est un ensemble de
sommets induisant un graphe “circulaire”
Algorithmique de graphes
Graphes triangulés
Graphes triangulés

Graphes triangulés

Définition
G est un graphe triangulé ssi tout cycle induit de G est de taille
≤ 3 (arêtes et triangles seulement)

Définition équivalente
G est un graphe triangulé ssi tout cycle de G de taille > 3 possède
une corde
→ anglais : chordal graph
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Lemme de Dirac (1961)

Clique (ou simplexe) : définition


Ensemble V 0 de sommets induisant un graphe complet (V 0 , 2(V 0 ))

Sommet simpliciel : définition


Sommet dont les voisins forment une clique

Lemme [Dirac,1961]
Un graphe triangulé possède un sommet simpliciel

La preuve peut être lue dans les notes de cours de Philippe


Gambette :
http://philippe.gambette.free.fr/SCOL/Graphes.pdf p 22
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Classe de graphes

Classe de graphes
Ensemble (qui peut être infini) de graphes (finis) défini par une
propriété caractéristique. Exemple : arbres, graphes triangulés,
graphes bipartis...

Classe héréditaire C
Si G ∈ C et G 0 sous-graphe induit de G , alors G 0 ∈ C

Exemples : graphes bipartis, forêts... Mais pas arbres !


Proposition
Les graphes triangulés sont une classe de graphes héréditaire
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

Définition
(v1 ...vn ) est un ordre d’élimination simpliciel ssi vi est un sommet
simpliciel dans le graphe induit par {vi+1 , ...vn }.

Théorème [Fulkerson & Gross, 1965]


Un graphe est triangulé si et seulement si il admet un ordre
d’élimination simpliciel
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

j e k l
i
h
f
d
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

j e k l
i
h
f
d

Ordre simplicial: h
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

j e k l
i

f
d

Ordre simplicial: h
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

j e k l
i

f
d

Ordre simplicial: h j
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

e k l
i

f
d

Ordre simplicial: h j
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

e k l

f
d

Ordre simplicial: h j i
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

e k l

Ordre simplicial: h j i f
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

g a c

e k

Ordre simplicial: h j i f l
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

a c

e k

Ordre simplicial: h j i f l g
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

a c

e k

Ordre simplicial: h j i f l g b
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

a c

Ordre simplicial: h j i f l g b k
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

Ordre simplicial: h j i f l g b k c a d e
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Ordre d’élimination simpliciel

Démonstration : triangulé =⇒ élimination simplicielle


I G triangulé =⇒ G possède un sommet simpliciel v1 (Dirac)
I classe héréditaire → G − v − 1 triangulé → possède un
sommet simpliciel v2
I récurrence sur une sous-suite décroissante de graphes
triangulés

Démonstration : élimination simplicielle =⇒ triangulé


I Ajouter un sommet simpliciel à un graphe ne crée pas de cycle
induit de longueur > 3
I Donc récurrence sur la suite
G [{vn }], G [{vn−1 , vn }], ...G [{v1 , ...vn }] = G
Algorithmique de graphes
Graphes triangulés
Élimination simplicielle

Algorithme : LexBFS

Au prochain cours : LexBFS, algorithme calculant un ordre


d’élimination simpliciel
donc un algorithme (en temps linéaire) de reconaissance d’un
graphe triangulé.
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Modèle d’intersection

I Un modèle d’intersection est la donnée de


I une classe d’objets
I une règle d’intersection entre ces objets
I Une instance du modèle d’intersection est un ensemble V
d’objets du modèle
I Le graphe d’intersection de l’instance V est G = (V , E ) où
E est calculé suivant la règle d’intersection du modèle
I Enfin un modèle d’intersection M définit une classe de
graphes CM , constituée de tous les graphes d’intersection de
toutes les instances du modèle.
Notez que la classe peut être l’ensemble de tous les graphes... ou
pas !
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 1 : les graphes d’intersection de disques unitaires


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 1 : les graphes d’intersection de disques unitaires


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 1 : les graphes d’intersection de disques unitaires


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 2 : les graphes d’intervalles

Modèle
I les objets sont des intervalles bornés de la droite réelle
I règle : [a, b] intersecte [c, d] si ∃x ∈ [a, b] et x ∈ [c, d]

Graphe d’intervalles
Graphe d’intersection d’un ensemble d’intervalles réels

R
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 2 : les graphes d’intervalles

Modèle
I les objets sont des intervalles bornés de la droite réelle
I règle : [a, b] intersecte [c, d] si ∃x ∈ [a, b] et x ∈ [c, d]

Graphe d’intervalles
Graphe d’intersection d’un ensemble d’intervalles réels

R
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 2 : les graphes d’intervalles

Modèle
I les objets sont des intervalles bornés de la droite réelle
I règle : [a, b] intersecte [c, d] si ∃x ∈ [a, b] et x ∈ [c, d]

Graphe d’intervalles
Graphe d’intersection d’un ensemble d’intervalles réels

R
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 2 : les graphes d’intervalles

Modèle
I les objets sont des intervalles bornés de la droite réelle
I règle : [a, b] intersecte [c, d] si ∃x ∈ [a, b] et x ∈ [c, d]

Graphe d’intervalles
Graphe d’intersection d’un ensemble d’intervalles réels
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Un théorème sur les graphes d’intersection

Théorème
Toute classe d’intersection est une classe héréditaire
Démonstration immédiate : si G = (V , E ) est un graphe de la
classe, V est un modèle. Pour V 0 ⊂ V , le graphe induit par V 0 est
le graphe correspondant au modèle V 0 donc d’arêtes E ∩ 2(V 0 ).
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 2 : les graphes d’intervalles

Remarque
Tout graphe n’est pas un graphe d’intervalles

Exercice
Trouver un graphe qui n’est pas d’intervalles
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 2 : les graphes d’intervalles

Proposition
Les graphes d’intervalles sont des graphes triangulés

C’est-à-dire : inclusion stricte de la classe des graphes d’intervalles


dans la classe des graphes triangulés
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre

Modèle
I les objets sont des sous-arbres d’un même arbre
I règle d’intersection usuelle : T1 intersecte T2 s’ils ont un
sommet en commun

Instance
Une instance du problème est la donnée d’un arbre T et d’une
collection V = {T1 ...Tn } de sous-arbres de T

Graphe de sous-arbres d’un arbre


Graphe d’intersection d’un modèle ci-dessus
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Exemple 3 : les graphes de sous-arbres d’un arbre


Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Inclusion de classes

Triangulés Sous−arbres d’un arbre

Arbres Intervalles
Algorithmique de graphes
Graphes triangulés
Graphes d’intersection

Inclusion de classes

Triangulés Sous−arbres d’un arbre

Arbres Intervalles
Algorithmique de graphes
Graphes triangulés
Propriétés des graphes triangulés

théorème [Gavril 1974]

Théorème de Gavril
Un graphe est triangulé si et seulement si il est graphe
d’intersection de sous-arbres d’un arbre.

Démonstration : sous-arbres d’un arbre =⇒ triangulé


On considère un arbre de base T . Soit un cycle induit t1 ...tk .
ti ∩ ti+1 6= ∅ =⇒ ∃xi sommet de T commun aux deux. ti
contient un chemin de xi−1 à xi . Si k > 3 ti n’intersecte pas tj dès
que |i − j| > 1. On a alors un cycle dans T , contradiction.

Démonstration : triangulé =⇒ sous-arbres d’un arbre


Preuve donnée après (on construit l’arbre des cliques max)
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Définitions

Clique maximale
Ensemble K de sommets induisant un graphe complet (K , 2(K )) et
tel que si K ⊂ X alors X n’est pas une clique

Séparateur (d’un graphe connexe)


Ensemble S de sommets tel que G − S (c’est-à-dire
(V \ S, E ∩ 2(V \ S) ) n’est pas connexe (ou est vide)

Séparateur minimal (d’un graphe connexe)


Séparateur S tel que pour tout X ⊂ S, X n’est pas un séparateur
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Combien de cliques maximales ?


Dans un graphe quelconque : beaucoup !
Le graphe de sommets V = {a1 ...an , b1 , ...bn } et d’arêtes
2(V ) \ {{a1 , b1 }, {a2 , b2 }....{an , bn }} possède 2n cliques maximales
à n sommets. Pour tout i, on prend soit ai soit bi .

Dans un graphe triangulé : peu !


Si x est simpliciel, x et son voisinage forment une clique maximale.
Réciproquement soit K une clique maximale de G et (v1 , ...vn ) un
ordre d’élinimation simpliciel de G . Soit vi le premier sommet de
K dans cet ordre. Alors K est l’union de vi et de son voisinage
dans G [vi , ...vn ].
Il y a donc au plus n cliques maximales dans un graphe triangulé à
n sommets.
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Combien de séparateur minimaux ?

Dans un graphe quelconque : beaucoup !


Le graphe de sommets V = {s, a1 ...an , b1 , ...bn , p} et d’arêtes
{s, ai }, {ai , bi }, {bi , p} pour tout i. Il possède au moins 2n
séparateurs minimaux : pour tout i, on prend soit ai soit bi pour
séparer s de p.

Dans un graphe triangulé : peu !


Là aussi moins de n (preuve plus loin)
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Le graphe des cliques max

NB : on considère un graphe triangulé connexes G . On va


construire un graphe K (G ).
sommets
l’ensemble K des ≤ n cliques max de G

arêtes
une arête entre K et K 0 , étiquetée par S = K ∩ K 0 ,ssi S est un
séparateur du graphe qui sépare K de K 0 .
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Le graphe des cliques max

une arête entre K et K 0 , étiquetée par S = K ∩ K 0 ,ssi S est un


séparateur du graphe qui sépare K de K 0 .
b
g a c

j e k

h
f
d
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Le graphe des cliques max

une arête entre K et K 0 , étiquetée par S = K ∩ K 0 ,ssi S est un


séparateur du graphe qui sépare K de K 0 .
b
g a c

j e k

h
f
d
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Le graphe des cliques max

une arête entre K et K 0 , étiquetée par S = K ∩ K 0 ,ssi S est un


séparateur du graphe qui sépare K de K 0 .
ab a
b a a a ac
g a c egi a
ge
j e k adek
ae
aeg
h e
f e de
d e
eh e def
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

L’arbre des cliques max


Il s’agit d’un
arbre couvrant de poids maximum du graphe des cliques max de G
ab a
b a a a ac
g a c egi a
ge
j e k adek
ae
aeg
h e
f e de
d e
eh e def
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

L’arbre des cliques max


Il s’agit d’un
arbre couvrant de poids maximum du graphe des cliques max de G
ab a
b a a a ac
g a c egi a
ge
j e k adek
ae
aeg
h e
f e de
d e
eh e def
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

L’arbre des cliques max


Il s’agit d’un
arbre couvrant de poids maximum du graphe des cliques max de G
ab a
b a a a ac
g a c egi a
ge
j e k adek
ae
aeg
h e
f e de
d e
eh e def
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

L’arbre des cliques max


Il s’agit d’un arbre couvrant de poids maximum du graphe des
cliques max de G
ab a
b
a ac
g a c egi
ge
j e k adek
ae
aeg
h
f e de
d
eh def
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

L’arbre des cliques max


Il s’agit d’un arbre couvrant de poids maximum du graphe des
cliques max de G
b a
b
a
g c
a c
i
j e k g a k
e
h d
f
d
f
h

Théorème [Bernstein Goodman 1981]


Un arbre des cliques max de G est un réaliseur de G
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Preuve du théorème de Bernstein et Goodman

On prend, pour chaque sommet x, les étiquettes de x dans l’arbre.


Il faut montrer
1. x forme un sous-arbre
preuve ensuite

2. {x, y } arête ssi les sous-arbres ont un sommet commun


{x, y } arête de G ⇐⇒ {x, y } appartient à une clique max K
⇐⇒ ils apparaissent dans un sommet du graphe des cliques (donc
de l’arbre)
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

preuve de Bernstein et Goodman (fin)

Soit x un sommet. Supposons x pas connexe dans l’arbre de poids


max T .
I Il existe deux cliques K1 3 x et Ka 3 x non reliées par x.
I Soit K1 , K2 ...Ka le chemin entre elles dans T
I Soit Si = Ki ∩ Ki+1 et S = K1 ∩ Ka (existe car contient x)
des separateurs min.
I Comme |Si | ≥ |S| (hypothese : arbre de poids max) il existe
si ∈ Si − S
I Or S séparateur. Les cliques max Si et Si+1 sont du même
côté dans G − S
I Finalement S ne peut séparer K1 et Ka , contradiction
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Autre construction de l’arbre des cliques

Soit S le plus gros (en cardinal) séparateur minimal de G

lemme (preuve immédiate)


S sépare les cliques max K1 ...Ka contenant S en a composantes
connexes distinctes C1 ...Ca .

On peut donc décomposer récursivement les graphes C1 ∪ S...


Ca ∪ S
On construit un arbre formé d’un chemin reliant ces a cliques et
étiqueté par les sommets de S.
Ensuite on identifie chaque Ki de ce chemin avec Ki de la
décomposition de Ci ∪ S. Cela donne un arbre des cliques.
Algorithmique de graphes
Graphes triangulés
Cliques maximales et séparateurs minimaux

Et les séparateurs minimaux dans tout ça ?

Proposition
Chaque séparateur minimal de G apparaı̂t (au moins) une fois
comme arête d’un arbre de cliques de G .

Cela implique qu’il y en a au plus n − 1.


En effet tout séparateur minimal
I est une clique
I est l’intersection de deux cliques max
Donc apparaı̂t dans le graphe des cliques max. De plus tout
séparateur va devenir le plus gros dans la construction précédente.
Algorithmique de graphes
Graphes triangulés
Intérêt des graphes triangulés

Intérêt des graphes triangulés

Le problème de la clique maximum


Donnée : un graphe
Résultat : une clique du graphe de cardinalité maximum
I NP-complet en général (donc infaisable en pratique)
I Mais polynomial (et même : en temps linéaire) sur les graphes
triangulés !
Juste avec l’arbre des cliques max ! Or LexBFS construit celui-ci
(cf cours suivant)
Algorithmique de graphes
Graphes triangulés
Intérêt des graphes triangulés

Intérêt des graphes triangulés


Le problème du stable maximum
Donnée : un graphe
Résultat : un stable (un ensemble de sommets non reliés) du
graphe de cardinalité maximum
I NP-complet en général (donc infaisable en pratique)
I Mais polynomial (linéaire) sur les graphes triangulés !

Comment ?
I On sait résoudre sur les arbres
I Idée : “un graphe triangulé, c’est un arbre avec des cliques au
lieu des sommets”
I Un sommet par clique max, une clique max sur deux dans
l’arbre
Algorithmique de graphes
Graphes triangulés
Intérêt des graphes triangulés

La décomposition en arbre (tree-decomposition)

On sait résoudre des problèmes NP-complets facilement sur les


graphes triangulés
La décomposition en arbre consiste à plonger le graphe dans un
graphe triangulé (en lui rajoutant des arêtes)
Ainsi on sait résoudre le problème de départ !...
Algorithmique de graphes
Graphes triangulés
Intérêt des graphes triangulés

La décomposition en arbre (tree-decomposition)

On sait résoudre des problèmes NP-complets facilement sur les


graphes triangulés
La décomposition en arbre consiste à plonger le graphe dans un
graphe triangulé (en lui rajoutant des arêtes)
Ainsi on sait résoudre le problème de départ !...
...Pour peu que l’on sache calculer la décomposition bien sûr !
Le temps dépend d’un paramètre, la largeur d’arbre (tree-width)
→ suite du cours

Vous aimerez peut-être aussi