Théorie des graphes et applications
Théorie des graphes et applications
PLAN
1 Généralités et définitions
2 Problèmes et complexité
3 Sous-graphes particuliers
4 Arbres et arbre couvrant
5 Centre , diamètre
6 Couplages
GÉNÉRALITÉS
ET
DÉFINITIONS
2
GRAPHES ORIENTÉS
a f
b e
c d
U1 X1xX1
EXEMPLE G1 = (X1 , U1)
X1 = {sommets} = {a,b,c,d,e,f}
U1 = {arcs} =
{(a,b),(b,a),(b,c),(c,a),(c,d),(a,f),(e,f),(d,e),(e,d)} 3
G : X P(X)
x G(x) ou G+(x) = {successeurs de x}
G-(x) = {prédécesseurs de x}
EXEMPLE G1(b)={a,c} G1(f)={Ø}
G-1(b)={a} G-1(d)={c,e}
• Résolution de problèmes
Exemple: plus court chemin, ordonnancement, flots, ...
• Outils
Exemple: structures de données,..
• ...
8
Sens Int erdit
G
H
E D
A
B C
F
G H D
B
C
A
G
F 9
Amélie et
Jules
10
Critère 1: le temps
Critère 2 : le coût
Calcul du chemin de
temps (ou coût)
minimal
11
Optimum
trouvé
facilement
par un
algorithme
de
graphe
12
M. Crochemore
13
Olivier Nocent
Domaines d'applications
• Cartographie
Réseau routier, réseau internet, …
• Économie – Gestion
Planning de livraisons, gestion de flots, ordonnancement...
• Chimie – Biologie
Modélisation de molécules, ADN, …
• Sciences Sociales
Généalogie, phénomènes de masse, conflits, …
• Linguistique
Grammaire, Compilation, …
• ..... 14
M. Crochemore
i 0 ; S 0
S S+A[i]
i n Arrêt
Réseau
i i+1 Lille
Paris
Brest
Nantes Lyon
Nice
Toulouse
15
QUELQUES DEFINITIONS
circuit : chemin dont le premier sommet
coïncide avec le dernier
a f
EXEMPLE
b e
(a,b,c,a)
circuit de G1
c d
G1 16
chemin hamiltonien :
chemin qui passe une
fois et une seule par
chaque sommet
a f
Existe-t-il un chemin
hamiltonien ? b e
c d
G1
17
chemin hamiltonien :
chemin qui passe une
fois et une seule par
chaque sommet
a f
OUI (suite)
(a,b,c,d,e,f) b e
c d
G1
18
Exemple d’application
Exemple:
TACGA, ACCC, CTAAAG, GACA
19
cycle : chaîne dont les deux extrémités
coïncident (et qui ne passe pas
2 fois par la même arête)
a e G3
b A3={[a,e],
EXEMPLE [b,f],
f [e,f], [d,f],...}
c
chaîne de a à d
g d cycle de G3:
[a,e],[e,f],[f,d]
[aefba]
20
Récapitulatif du vocabulaire
Correspondances orienté - non orienté
chaine chemin
cycle circuit
connexité forte-connexité
21
chaîne et cycle sont définis aussi dans un
graphe orienté (on ne tient plus compte de
l'orientation)
a f
EXEMPLE
un cycle b e
de G1:
(afedca) c d
G1
22
connexité : un graphe est
connexe si toute paire de
sommet est reliée par
une chaîne b
h
a
c
EXEMPLE
G1 et G3 connexes d
G2 non connexe e
g f
G2
23
24
Olivier Nocent
Un peu d’Histoire…
La ville de Koeninsberg est traversée par la
Pregel, qui coule de part et d’autre de l’île
de Kneiphof, et possède sept ponts.
25
Euler (1736) : Peut-on se promener
dans la ville en traversant chaque
pont une et une seule fois ?
b c
d
26
1-graphe ou graphe simple:
une arête au plus entre 2 sommets
multigraphe ou k-graphe:
k arêtes au plus entre 2 sommets
chaîne eulérienne : chaîne qui passe une
fois et une seule par chaque arête
Théorème d'Euler
Un multigraphe connexe admet une chaîne
eulérienne si et seulement si le nombre de
sommets de degré impair est 0 ou 2
27
Peut-on se promener dans la ville en traversant
chaque pont une et une seule fois ?
NON !
3
a
3 b c3
d
5
28
En ajoutant un pont:
OUI !
4
a 4
1 5
3 b 2 c4
Départ 3
8
6
7
d
5 arrivée
29
Théorème d'Euler
Un multigraphe connexe admet une chaîne
eulérienne si et seulement si le nombre de
sommets de degré impair est 0 ou 2
Sinon, retirons cette chaîne. Tous les sommets sont alors de degré pair.
Soit C1,…,Ck les composantes connexes du graphe obtenu après retrait.
C1,…,Ck ont moins de m arêtes donc par récurrence il existe cycle eulérien
dans chacune.
Finalement, en faisant l’union de tous ces cycles eulériens et de la
chaîne initiale de a à b, on obtient une chaîne eulérienne d’extrémités a et b.
C1 C2 Ck
a b
31
Un algorithme de recherche de chaine eulérienne
G’=G
Partir d’un sommet de degré impair
Tant qu’il y a des arêtes dans G’
[Link] une arête e qui n’est pas un isthme pour G’
sauf si on est sur un sommet de degré 1 dans G’
2.G’=G’\{e}
32
Exemple
3 1 6
5 2 4
On part de 1
On ne va pas en 2 car on traverse l’isthme rouge et dG’(1)1
On va en 3
3 1 6
5 2 4
On retire e=[1,3]
33
3 1 6
5 2 4
On va en 5 On retire e=[3,5]
3 1 6
5 2 4
On va en 1 On retire e=[5,1]
3 1 6
5 2 4
a g
d
e
f b
j k
l
c
i h
m
35
CONNEXITE ET FORTE CONNEXITE
a b d
c e
40
1 -a 2
a b d
41
1 -a 2
a b d
-b 3 c e -c 4
f
-c 5
e a pour voisin b qui est déjà classé donc on revient sur c (backtrack)
Et on explore le voisin f de c
42
1 -a 2 -b 6
a b d
-b 3 c e -c 4
f
-c 5
a g
d
e
n
f b
j k
l
c
i h
m
44
Forte connexité : un graphe orienté est
f-connexe si tout couple de sommet est
relié par un chemin
EXEMPLE b
G4 non f-connexe h
a
c
Mais si on d
ajoute
e
(c,d) et (c,h)
G4 devient G4 g f
f-connexe 45
Composante fortement-connexe de G:
sous-graphe de G f-connexe maximal
EXEMPLE
{a,b,d} défini un G4 b
h
sous-graphe a
f-connexe c
mais non d
maximal donc
e
ne définit pas
une g f
composante 46
Composante f-connexe de G: sous-
graphe de G f-connexe maximal
C3
G4 b
h
a
c
EXEMPLE d
G4 a 3
composantes e
f-connexes g f
C1 C2
47
Algorithme de recherche des
composantes fortement connexes d'un
graphe
b c d e
50
On part de a par exemple
+ a- f
b c d e
51
On propage le + et le -
+ a- f
+b c- +d e
52
On propage le + et le –
+ a- f Le – ne se propage plus
On a une cfc {a , b , c}
+b- +c - +d +e
53
Trouver les cfc de ce graphe
1
9
10
7 2
3
8
6
4 11
5
54
C3
G4 b
h
a
c
d
e
Graphe réduit
g f
C1 C2 G4R
C1
Procédure Tri_topologique
début
Y X; N 1;
tant que Y non vide faire
mettre sur le niveau N tous les sommets de Y n'ayant
aucun prédécesseur dans Y;
soit XN l'ensemble des sommets de niveau N;
Y Y - XN;
N N+1;
fait;
fin;
57
Appliquons l’algorithme
1
a b
Y=a,b,c,d
N=1 a n’a aucun prédécesseur
c d
58
Appliquons l’algorithme
1
a b
Y=a,b,c,d
N=1 a n’a aucun prédécesseur
c d
1 2
a b
N=2 Y=b,c,d
b et c n’ont aucun prédécesseur dans Y
c d
2
59
Appliquons l’algorithme
1
a b
Y=a,b,c,d
N=1 a n’a aucun prédécesseur
c d
1 2
a b
N=2 Y=b,c,d
b et c n’ont aucun prédécesseur dans Y
c d
2
1 2
a b
N=3 Y=d
d n’a aucun prédécesseur dans Y
c d
2 3
60
Tri topologique ou mise en ordre d'un graphe
Mettre en niveaux ce graphe
2 7
10 8
3
6 1
9
5 0 4
61
Exploration en profondeur d'un graphe
Procédure Num_en_profondeur
Tant que tous les sommets n'ont pas été numérotés
faire
Choisir un sommet de départ S non numéroté;
Numéroter S;
Tant que S non fini faire
Tant que c'est possible faire
S un successeur de S non numéroté;
Numéroter S;
Fin tant que;
Marquer S par fini;
S sommet qui a permis de numéroter S si S
n'est pas le sommet de départ;
Fin tant que;
Fin tant que;
Fin;
62
Matrice booléenne associée à un graphe
b a b c d e
a a 0 1 0 0 0
c b 0 0 1 0 0
e c 0 0 0 1 0
d 0 0 0 0 0
d e 1 0 1 0 0
Soit G=(X,U)
(x,y) t(U)
il existe un chemin de x à y dans G
64
Graphe partiel
U’U , G’=(X,U’)
Question:
B C
D E
66
Peut-on retirer des arcs à G sans altérer sa fermeture transitive ?
B C B C
A A
D E D E
67
Peut-on retirer des arcs à G sans altérer sa fermeture transitive ?
B C B C
A A
D E D E
B C
D E
68
Peut-on retirer des arcs à G sans altérer sa fermeture transitive ?
B C B C
A A
G
D E D E
B C
On ne peut plus retirer d’arcs
sinon la fermeture transitive change
A
G’
G’ est t -minimal t -équivalent à G
D E
69
Fermeture transitive d ’un graphe
t-minimalité
Deux graphes G et G ’ sont t -équivalents
t(G) = t(G ’)
Théorème
70
Fermeture transitive d ’un graphe
Algorithme de Roy-Warshall
Procédure fermeture_transitive
Principe
t(G) = graphe donné
72
2
PROBLEMES
ET
COMPLEXITE
48
Des problèmes qui se ressemblent
et pourtant...
un problème "facile"
existe t'il une chaîne eulérienne dans G ?
et
un problème "difficile"
existe t'il un chemin hamiltonien dans G ?
74
Mais que veut dire "complexité" ?
Attention!
Nous donnons ici une
réponse INTUITIVE
Problème de Décision:
Réponse par OUI ou NON
75
Classe NP
76
Exemple si Carlos sait qu'il existe un cycle
hamiltonien dans un graphe donné, il peut
facilement vous en convaincre
Mais si le graphe
est grand,
Carlos ne pourra
pas savoir si ce
cycle existe
77
Classe P
Un problème de NP est "facile"
(polynomial) si on peut le résoudre par
un algorithme "efficace"
(temps polynomial en fonction de la
taille de l’instance)
Exemple
L'existence d'un cycle eulérien dans un
graphe
78
Un problème est "difficile" si les seules
méthodes connues pour le résoudre
exigent un temps de calcul exponentiel
en fonction de la taille de l’instance
Exemple
L'existence d'un cycle hamiltonien dans
un graphe
79
Classe NP-C
80
NP
? ?
?
?
NP-C P
82
Pour montrer qu'un problème P est
NP-complet, on choisit un problème déjà
connu pour être NP-complet, soit Pnc , et on
montre que Pnc peut se "transformer" en P.
? ?
?
?
Pnc
P
NP-C P
Si on savait résoudre facilement P on saurait résoudre
aussi Pnc; or on ne sait pas résoudre Pnc
P est donc sûrement difficile à résoudre 84
Les problèmes sont classés de façon
incrémentale: la classe d'un nouveau
problème est déduite de la classe d'un ancien
problème.
85
Le problème SAT
"satisfiabilité" d'une expression logique
Exemple
(xVyVz) (xVyVt) (yVzVt) (xVzVt)
Stephen Cook
a classé le
problème SAT
comme NP-complet
87
Voulez-vous gagner 1 000 000 $ ?
Prix Clay
? ? NP
?
?
?
P
?
NP-C ?
?
fa
NP-Difficiles cil
Problèmes es
?
d'optimisation 89
Les problèmes d’optimisation sont plus difficiles
que les problèmes de décision.
Problème de décision :
existe-t-il un stable de taille au moins k
90
Tous ces problèmes
(de décision ou d'optimisation)
présentent des enjeux industriels et
économiques très importants:
production, cryptographie,
écologie...
GRAPHES ET SOUS-GRAPHES
PARTICULIERS
Théorème :
95
Graphe complet
1 2
1 2 1 2
3 3
K2 5
K3 4
K5
Définition :
97
Partition des sommets en cliques
P={C1, C2, … Ck}
C1, C2, …,Ck cliques de G tel que X(Ci) X(Cj)=
X(C1)X(C2)…X(Ck)=X(G)=sommets de G
Théorème:
soit un stable S de G et P une partition en cliques des
sommets de G, alors |S||P|.
Si |S|=|P| alors
S est un stable maximum et P une partition minimum
nombre d ’absorption :
b(G) = cardinal du plus petit ensemble absorbant
99
6
7
1 4 5
Est-il minimum ?
100
6
7
1 4 5
b(G) = 3
101
Noyau
102
Noyau
a b
Graphe a 2 noyaux
d c
a b
Graphe sans noyau
c
103
Fonction de Grundy
successeurs de x
104
Fonction de Grundy
105
Cycles
106
Cocycles
A ensemble de sommets
+(A)=arcs sortant de A
-(A)=arcs entrant dans A
(A)= +(A) -(A)
107
1
3 2
5 4
6
Cocycle
A={1,6,4} , +(A)={ (1,2) , (1,3) } , -(A)={ (5,1) , (5,6) , (7,4) }
(A) = +(A) -(A)
5 1 6 A’={1,2}
(A’) =(5,1),(5,2),(4,2),(1,6)
(A)
2 (A’) minimal
3
7
4
109
Vecteur caractéristique
de cycle
110
Vecteur caractéristique
de cocycle
111
Propriété: vecteurs de cocycles et de cycles sont
112
Propriété: vecteurs de cocycles et de cycles sont
1 2 =1+2
113
Propriété: vecteurs de cocycles et de cycles sont
v v
Dans le cycle les arcs sont comptés +1 Dans le cocycle w(v) les arcs sont comptés +1
Dans le cocycle w(v) l’un est compté -1 l’autre +1 Dans le cycle l’un est compté -1 l’autre +1
Dans le produit scalaire -11+11=0 Dans le produit scalaire -11+11=0
114
Cycles et cocycles
115
Planarité
2 3 2 3
4 4
G4 est planaire 116
Planarité
2 3 2 3
4 4
G4 est planaire 117
Ce graphe est-il planaire ?
118
Ce graphe est planaire
119
Frontière et contour
4
Graphe planaire topologique
7
1 est une représentation
3
f2 planaire d’un graphe planaire
2
f1 6
5
Contour de f1 = 1-4-7-6-5-1
Frontière de f1=1-3-2-1-5-6-7-4-1
1 1
Si le graphe n’est pas orienté
on oriente arbitrairement les arêtes
2 3 2 3
4 4
121
G4 est planaire
face: région du plan limitée par des
arêtes (+ face infinie)
formule d'Euler: Dans un graphe
planaire de n sommets, m arêtes et f
faces, on a
n-m+f = 2
1 1
2
Exemple 3 2 3
nombre de faces
f = m-n+2 =46-4+2 =4 4
122
G4 est planaire
Graphe dual d’un graphe planaire topologique
f0
G G* f0
f1 f1
f2
f2
G* est planaire
123
Graphe biparti
G ( X , Y , U ) tel que
"( x, y ) U
x X et y Y
a e Y
X b
f
c
d g
124
Graphe face-arêtes associé à un
graphe planaire G:
125
graphe face-arêtes associé à un graphe planaire G
126
Théorème:
Si G est un graphe simple planaire
connexe contenant au moins 1 face
finie alors m < 3n-5
Théorème:
Dans un graphe simple planaire
connexe contenant au moins 1 face
finie il existe au moins un sommet x
de degré d(x) < 6
127
Le graphe 1
complet de
5 sommets 2 3 5
n'est
pas planaire 4
128
Une subdivision d’un graphe est obtenue en rajoutant (éventuellement)
des sommets sur les arêtes (ou les arcs) du graphe
129
Coloration
b
h
a
c
Une couleur
= d
un stable e
G g f
130
Coloration
nombre chromatique: g(G)
plus petit nombre de couleurs
nécessaires pour colorier les sommets
de G sans que 2 voisins aient la même
couleur b
h
a
Trouver g(G) est c
un problème
d
"difficile" G
e
Exemple
g f
g(G) = 4 131
théorème des 4 couleurs:
Si G est un graphe planaire alors
g(G) ≤ 4
Cette carte
peut être
coloriée avec
seulement
4 couleurs ou
moins.
Graphe associé
un pays = un sommet
une frontière=une arête
132
N
B D
L
F S O
N D clique de 4
B
sommets
L g(G) •4
O
S
F
graphe
planaire
g(G) Š 4
I 133
théorème des 4 couleurs:
Si G est un graphe planaire alors
g(G) ≤ 4
8 4
7 6 5
F. Gardi 135
c'est un problème de coloration
lorsque toutes les tâches ont le même temps d’exécution
1 2 3
M1 1 2
M2 3 5 4 8 4
M3 6 7 8
t 7 6 5
F. Gardi 136
un algorithme « glouton » de coloration
Welsh-Powell
Début
•Soit G’ = G
•numéroter les sommets par ordre de degrés
décroissants: x1,x2,…,xn
•tant que G’ n’est pas vide faire
Sélectionner dans l’ordre de la liste tout
sommet non voisin (dans G’) d’un sommet
déjà sélectionné;
Colorier de la même couleur tout les sommets
sélectionnés;
Retirer tous les sommets sélectionnés de G’;
fait;
Fin;
Heuristique rapide mais non nécessairement optimale
137
Borne supérieure
1
5 2
4 3
3
reliement 2 contraction
1 2 1-2
Graphe complet Graphe complet
K3 3 couleurs K2 2 couleurs
3 3
140
Coloration des arêtes
b
h
a
d c
e
H g f
141
Coloration des arêtes
Indice chromatique:
Nombre minimal de couleurs pour les arêtes
Exemple: b
h
indice chromatique a
g(H) =4
d c
il y a un sommet
e
De degré 4
H g f
142
Allocation de fréquences
Réseau de capteurs
• Les capteurs pas trop éloignés communiquent 2 à 2
• A chaque paire de capteurs pas trop éloignés est alloué une fréquence
sur laquelle ils communiquent
• Il faut des fréquences différentes pour éviter les interférences
24 34
4
1 12
2 3 13 14
24 34
4
145
Coloration des arêtes
146
Couplage d’un graphe G
sous ensemble d’arêtes de G tq. 2 arêtes quelconques sont
non adjacentes
2 couplages maximum
147
Coloration des arêtes et couplages
4 couleurs
4 couplages
148
4
ARBRES
(Algorithmes gloutons)
149
Arbres
b
h
a
c
d
e
H g f
150
arbre: définitions équivalentes
H=(X,U), n sommets (n≥2)
(1) H connexe et sans cycle
(2) H sans cycle et n-1 arêtes
(3) H connexe et n-1 arêtes
(4) H sans cycle et en ajoutant une arête on crée
un et un seul cycle
(5) H connexe et si on supprime une arête , il n'est
plus connexe
(6) une chaîne et une seule entre toute paire de
sommets 151
Démonstration
Rappel
nombre cyclomatique : n(G) = m - n + p
153
Démonstration (fin)
56 H connexe et si on supprime une
arête , il n'est plus connexe
une chaîne et une seule
entre toute paire de
sommets
61 une chaîne et une seule entre toute
paire de sommets
H connexe et sans cycle
154
Propriétés d'un arbre H
de m arêtes et n sommets
•H sans cycle
•H est connexe
•H a m=n-1 arêtes
•En ajoutant une arête à H on crée un et
un seul cycle
•Si on supprime une arête de H, H n'est
plus connexe
•Il y a dans H une chaîne et une seule
entre toute paire de sommets
155
Théorème
Un graphe G admet un graphe partiel qui
est un arbre si et seulement si il est
connexe
COUVRANT MINIMAL
157
Comment relier des objets avec un
nombre minimal de liens (choisis dans un
ensemble de liens donnés)?
b
h b
a h
c a
d c
d
e
e
g f
g f
G:graphe des liens
possibles H: arbre couvrant de158G
PROBLEMES D ’OPTIMISATION
2 solutions optimales:
1.A + 2.B + 1.C v = 40 (p=17)
4.B v = 40 (p=16)
161
E3) voyageur de commerce
B 3
2 4
problème difficile 2 1
A 2 D 5 C
1 3
E 4
ici, 2 solutions optimales
ACBDEA et ACEBDA v = 12
x1 x2 x3
facile à concevoir
166
ARBRE COUVRANT MINIMAL
LE PROBLÈME
entrée: G = (X,U,P)
n sommets, m arêtes
169
procedure kruskal (in G: graphe; out A: arbre):
var k: entier :=0; V: {arêtes} :=;
début
trier les arêtes de G par ordre de poids croissant ;
tant que k < n-1 faire
parcourir la liste triée ;
sélectionner la première arête qui ne forme pas de
cycle avec les précédentes, w ;
k := k+1 ;
V := V U {w} ;
fait ;
A := graphe (X,V) ;
fin ; 170
--------------------------------------------------------------
3 2
b c d
EXEMPLE 2 2 3 2 1 1
a 1 h 1 i 1 e
4 3 4 3
1
liste triée: g f
ah de di ei hi fg ab bh ci cd bc ch ef gh ag ge
1 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4
G=(X,U) le graphe
A=(X,V) l'arbre couvrant obtenu
p(u) : poids de l'arête u
propriété 1
soit w U -V, w=[x,y] et
cw : chaîne de x à y dans A;
cw
alors, x
p(w) maxucw p(u) w
y
173
A': arbre optimal de poids p(A')
montrons que p(A) = p(A')
soit u A'-A
x x
x x x C1 x x x
b b
u v
a x a x
x x C2 x x
x x x x
A'=(X,V') A=(X,V)
u V'-V relie C1 et C2 dans A'
v cu relie C1 et C2 dans A
174
propriété 1 p(u) p(v) et
A' minimal p(v) ≥ p(u)
p(u) = p(v)
A"optimal et v A"
• implémentation
PREUVE DE L ’OPTIMALITE…
176
graphes orientés
177
arborescence: définitions équivalentes
H=(X,U) n sommets (n ≥ 2)
(1) H arbre avec une racine r
(2) H arbre et $ r X, relié à tout x X
par un chemin unique
(3) H connexe et
$ r X t.q. d-(r)=0 et
d-(x)=1 pour tout x ≠ r
178
(4) H sans cycle et $ un sommet r X t. q. d-
(r)=0 et d-(x)=1 pour tout x ≠ r
c f
a r
g
d e
b
H, une arborescence
179
arborescence =
"arbre enraciné" (rooted tree)
= "arbre" en informatique
180
arborescence binaire:
A racine
sens
a b
implicite
c d e f
g h i
181
5
Centre
Diamètre
182
Centre , diamètre
• La distance d(x,y) entre 2 sommets x,y d’un graphe est
le nombre minimum d’arcs pour aller de x à y.
• L’écartement e(x) du sommet x est la distance max entre
x et les autres sommets du graphe
• Le (ou les) centre du graphe est le (ou les) sommet
d’écartement min
• Le rayon (G) d’un graphe G est l’écartement d’un
centre
• Le diamètre (G) est la distance max entre deux
sommets du graphe
183
graphe G B C
A D E
e(A)=2
A est le centre de G
e(B)=4
(G)=2
e(C)=4
(G)=4
e(D)=3
e(E)=4
184
• Rayon fini si G admet une racine (un
sommet x0 t.q. il existe un chemin de x0
vers chacun des autres sommets
185
• Intérêt d’un centre
– placer un équipement dans un réseau qui
soit le plus « proche » des autres sommets
186
d+(x) = demi-degré extérieur de x = nombre d’arcs sortant de x
(G)Log(1-(1-p)n) / Log(p) - 1
Exemple:
p=2, n=5 (G)Log(6) / Log(2) - 1 =1,58 =2
187
Théorème 2: Soit G(X,U), X=n, U=m
G fortement connexe
Exemple:
n=5, m=7 (G)4 / 3 =1,33 =2
188
x
Rosace
x x
c c centre
(G) = 4
x x
x x
190
a b
c d g
e f h
d(x,y) a b c d e f g h e(x)
a 1 1 2 2 2 3 3 3
Centre =c,d,f,e
b 1 1 1 2 2 2 3 3
Rayon =2
c 1 1 1 1 1 2 2 2 Diamètre =3
d 2 1 1 2 1 1 2 2
e 2 2 1 2 1 2 2 2
f 2 2 1 1 1 1 1 2
g 3 2 2 1 2 1 2 3
h 3 3 2 2 2 1 2 3 191
6
COUPLAGES
192
• On doit former des équipes de 2 personnes
• L’ensemble des personnes A,B,C,D,E,F
• Compatibilités entre les personnes
Former un maximum d’équipes
compati A B C D E F
bilité
A - + +
B - - + +
C - - - +
D - - - - +
E - - - - - +
F - - - - - -
193
Graphe des compatibilités
A
C B
E F
D
3 équipes
A
C B
E F
D
194
Couplage d’un graphe G
sous ensemble d’arêtes de G tq. 2 arêtes quelconques sont
non adjacentes
Exemples de couplages
195
Couplage maximal = maximal pour l’inclusion d’arêtes
A
C B
E F
D
couplages maximum
197
Sommet saturé par un couplage
1 2 1 2
5 5
3 4 3 4
X1 X2 X3 X4
Le couplage (rouge) est parfait
Tous les sommets saturés
X5 X6 X7 X8
199
Théorème.
Le cardinal d’un couplage maximal vaut au moins la moitié
du cardinal d’un couplage maximum
K0 K1
G’=(X,A)
201
Rappel
Une chaine élémentaire est une chaine qui ne repasse pas deux fois
par le même sommet
Cycle élémentaire idem
K un couplage de G
203
Théorème: Un couplage K est maximum si et seulement si
il n’existe pas de chaine alternée ayant ses 2 extrémités
non saturées par K.
un couplage K de G
un couplage K de G
un couplage K de G
plus grand de taille 4.
On remplace les noires
par les rouges dans la chaine alternée 205
Recherche d’un couplage maximum
4 8
1 5
(-6) 2 6 (+3)
marquage chaine augmentante trouvée
(-7) 3 7 (+4)
(+) 4 8 (+2)
1 5
(-6) 2 6 (+3)
transfert 4 arêtes rouges
(-7) 3 7 (+4)