Professional Documents
Culture Documents
de Graphes
Table des matires
1 Gnralits
1.1 Le problme dallocation de frquences . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Graphes, dfinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Le problme de coloration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
2
3
3
.
.
.
.
.
.
.
.
4
4
5
5
5
optimale
. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
6
6
6
7
4 Rsultats exprimentaux
4.1 Sur des graphes pseudo-alatoires . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Sur des graphes de DIMACS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
10
Conclusion et perspectives
12
Rfrences
12
coloration
. . . . . . .
. . . . . . .
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1.1
Gnralits
Le problme dallocation de frquences
Imaginons que lon veuille construire un rseau dantennes radios. Il faudra rserver certaines
frquences de communication, que lon attribuera nos antennes afin quelles puissent communiquer entre elles. Il faut aussi minimiser le nombre de frquences rserver, car chaque rservation
a un cot. Une premire modlisation du problme, en radio AM par exemple, montre que si deux
antennes "assez proches" gographiquement mettent dans des frquences trop voisines lune de
lautre, leur spectres en frquences se recouvrent et il devient impossible dextraire linformation
ncessaire du signal reu. On dit alors que les antennes interfrent.
On modlise ainsi le rseau dantenne par un graphe, appel graphe dinterfrences, dont les
sommets sont les antennes, et les artes relient deux antennes qui interfrent entre elles. Les frquences allouer correspondent des couleurs (reprsentes par des entiers) avec lesquelles nous
colorons les sommets du graphe. La coloration doit tre une coloration propre : deux sommets
adjacents ne peuvent recevoir la mme couleur. Le graphe sera de plus non-orient, la relation
"interfre" tant suppos symtrique.
1.2
Graphes, dfinitions
1.3
Le problme de coloration
Soit G = (V, E) un graphe simple non-orient. Une application : V N est appele une
coloration propre de G si (a, b) E, (a) 6= (b), i.e. deux sommets adjacents nont jamais la
mme couleur. Soit k = | hV i|, on dit alors que est une k-coloration propre de G, et que G est kcolorable. Le plus petit entier k pour lequel G est k-colorable est appel nombre chromatique de G,
not (G). Nous recherchons ainsi une coloration optimale de G, cest--dire une (G)-coloration
propre de G.
Allouer des frquences au rseau dantennes revient alors colorer proprement son graphe dinterfrences. Notons quen raison de contraintes gographiques, technologiques, ou autres (prsence
de montagnes, etc.), nous ne pouvons pas faire dhypothses a priori sur la structure du graphe
dinterfrences.
Nous donnerons donc un exemple de mthode employe pour colorer un graphe dune manire
plus gnrale. Trouver une coloration optimale dun graphe quelconque tant un problme NPComplet, nous exposerons tout dabord des algorithmes de coloration non-optimale dans le cas
gnral, ainsi quun algorithme optimal dans un cas particulier.
3
2.1
Une premire approche pour colorer le graphe est de prendre ses sommets les uns aprs les
autres afin de leur affecter une couleur, tout en veillant ce que deux sommets adjacents naient
jamais la mme couleur : cest lalgorithme de coloration squentielle. Nous obtenons ainsi une
coloration propre du graphe, pas forcment optimale, et qui dpend fortement de lordre de visite
des sommets.
Programme 1 Coloration squentielle
Entre : Un graphe quelconque G = (V, E), une permutation des sommets : J0; n 1K V
Sortie : Une coloration propre c : V N
1: n := |V | ;
2: Couleur := Tableau (Taille : n) (Dfaut : 1) ;
3: Pour i = 0 n-1 faire
4:
x := (i) ;
# Recherche de la plus petite couleur non utilise dans N (x) #
5:
6:
Libre := Tableau (Taille : ? ? ?) (Dfaut : vrai) ;
7:
Pour y N (x) faire
8:
Si Couleur.(y) 6= -1 alors
9:
Libre.(Couleur.(y)) faux
10:
Fin Si
11:
Fin Pour
12:
index := 0 ;
13:
Tant Que Libre.(index) = faux faire
14:
index := index + 1
15:
Fin Tant Que
# Affecter la couleur donne par index x #
16:
17:
Couleur.(x) index
18: Fin Pour
19: Renvoyer Couleur
La complexit temporelle de lalgorithme est O (n + m).
2.2
2.2.1
DSATUR
Ici, lide est que les sommets difficiles colorer sont ceux qui ont le plus de voisins de couleurs
diffrentes, puis ceux qui ont le plus de voisins tout court. Concrtement, on dfinit le degr de
saturation dun sommet a, not DSAT (a) comme suit :
Si a na aucun voisin colori alors DSAT (a) = degr de a.
Sinon, DSAT (a) = nombre de couleurs diffrentes utilises pour
colorer les voisins de a.
d (a) si hN (a)i =
Ou encore, si dsigne la fonction de coloration partielle, DSAT (a) =
| hN (a)i| sinon
Aprs initialisation de DSAT (a) d (a) pour tout a, on rpte alors les oprations suivantes :
1. Prendre un sommet non color x de DSAT maximum.
2. Colorer x avec la plus petite couleur disponible.
3. Mettre jour DSAT (y) pour y N (x).
La complexit
temporelle
de lalgorithme dpend de limplmentation effectue. Elle peut tre
O n2 ou O n2 + nm selon la structure utilise.
DSAT = 1
3
DSAT = 1
DSAT = 1 2
DSAT = 1 2
Sommet visites : 1, 6, 2
3.1
Nous allons maintenant donner un algorithme optimal qui permet de colorer une classe de
graphe bien particulire : les graphes trianguls. Nous prsentons ici les dfinitions et proprits
utiles cet algorithme.
Un graphe G = (V, E) est dit triangul sil ne contient pas de trou de longueur 4.
Un sommet a de G est simplicial si tous ses voisins sont adjacents 2 2.
Un schma (ou ordre) dlimination simplicial est une permutation : J0, n 1K V telle
que pour tout i dans J0, n 1K, (i) soit simplicial dans G [ hJ0, iKi].
On peut alors dmontrer la caractrisation suivante, sur laquelle repose lalgorithme LexBFS :
Proprit 1. G est triangul si et seulement si il admet un schma dlimination simplicial.
Lutilit dune telle caractrisation est manifeste, car on peut montrer quune coloration squentielle selon un tel ordre offre une coloration optimale. Le problme consiste donc trouver
efficacement un tel schma dans le cas des graphes trianguls, cest le but de lalgorithme LexBFS.
Graphe Triangule
xi
x2
xi
xp
x2
x1
(p 4)
xp
x1
Sommet simplicial :
Tous ses voisins sont adjacents 2 a` 2
Figure 5 Illustrations
3.2
Il se prsente comme une variante du parcours en largeur classique de graphe (dit BFS pour
"Breadth First Search"). Considrons lalphabet A = J1, nK, et munissons lensemble des mots
sur A de lordre lexicographique 4, dfini intuitivement comme tant lordre du dictionnaire. On
associe alors chaque sommet x une tiquette L (x) A , initialement gale , o dsigne le
mot vide de A .
On effectue ensuite les oprations suivantes :
Pour i variant de 0 n 1 :
1. Prendre un sommet x dtiquette maximale pour 4 parmi les sommets non visits.
2. Affecter le numro i x.
3. Effectuer la mise jour L (y) L (y) (n i) pour y N (x)
6
Nous obtenons alors un ordre : V J0, n 1K sur les sommets du graphe, appel "ordre
lexicographique", qui vrifie la proprit suivante :
Proprit 2. Si G est triangul, alors 1 (n 1) est simplicial.
Il en dcoule, en enlevant successivement le dernier sommet visit, que 1 est un schma
dlimination simplicial si G est triangul.
3.3
Affinage de partition
Outre la possibilit de colorer de manire optimale un graphe triangul, LexBFS offre aussi un
moyen de reconnaissance de graphe triangul : il suffit de tester si lordre obtenu est un schma
dlimination simplicial. Plus intressant encore : il peut simplmenter de manire avoir une
complexit linaire.
Afin de pouvoir extraire un sommet dtiquette maximale en temps constant, nous maintenons
en place une partition ordonne des sommets non visits selon leurs tiquettes. La structure utilise
est une liste doublement chane de listes doublement chanes, chaque cellule tant dote dun
pointeur vers la "cellule de tte" contenant sa partie.
Le type de donne utilis en Caml Light est le suivant :
type (a, b) partition = {
mutable debut: (a, b) cell;
mutable fin: (a, b) cell}
and (a, b) cell = Nil | Head of (a, b) header_cell
| Case of (a, b) content_cell
and (a, b) header_cell = {
mutable content: (a, b) content_cell;
mutable prev: (a, b) cell;
mutable next: (a, b) cell;
mutable flag: b}
and (a, b) content_cell = {e: a;
mutable avant: (a, b) cell;
mutable apres: (a, b) cell;
mutable classe: (a, b) header_cell}
;;
L = 54
L = 5
L = 4
4
4.1
Rsultats exprimentaux
Sur des graphes pseudo-alatoires
Les trois algorithmes prsents ont t implments de plusieurs manires en Caml Light :
usage de diffrents tris pour Welsh-Powell, diffrentes structures de donnes pour DSATUR, etc.
Dans un premier temps nous avons donc essay ces programmes sur des graphes gnrs de manire
pseudo-alatoire dordres varis, et de densit moyenne 12 . Les tableaux qui suivent prsentent les
temps dexcution obtenus.
Les tests ont t mens sur un ordinateur fonctionnant sous Windows XP SP3, quip dun
R
Intel
CoreTM 2 Duo E6400 2.13 GHz et de 2.00 Go de RAM.
Welsh-Powell (2)
Dsatur (1)
Lex_BFS
4
2
Taille du graphe
(Nombre de sommets)
Temps (s)
350
300
250
200
Dsatur (2)
150
Dsatur (3)
100
50
Taille du graphe
(Nombre de sommets)
Welsh-Powell (1)
80
Welsh-Powell (2)
60
Dsatur (1)
40
20
Taille du graphe
(Nombre de sommets)
Des problmes de dpassement de capacit de mmoire nont pas permis de mener certains
tests jusqu 10 000 sommets. Nous avons tent dadapter la structure daffinage de partition
pour Dsatur3, mais comme nous pouvons le voir le rsultat est dcevant : cette structure ne
convient manifestement pas un tel algorithme. Remarquons aussi que le tri par fusion utilis
pour Welsh-Powell1 savre plus efficace sur ces graphes que le tri par dnombrement utilis pour
Welsh-Powell2. Globalement nous voyons galement que Welsh-Powell et LexBFS sont plus rapides
que Dsatur, mme si ce dernier offre souvent de meilleurs colorations sur un graphe quelconque.
4.2
Afin de mesurer lefficacit des algorithmes en terme de nombre de couleurs utilises, nous
avons utilis des graphes publis par le centre DIMACS (pour Center for Discrete Mathematics
and Theoretical Computer Science). Lintrt est double : ces graphes fournissent un benchmark
efficace pour tester lefficacit des colorations sur des problmes concrets, et ils soulignent les
applications multiples du problme de coloration dans la vie relle : allocation de registre lors
de la compilation de code, planification dhoraire, un problme dchec, configuration de rseaux
optiques, problme des carrs latins, etc.
10
Reseaux optiques :
Combien de couleurs differentes faut-il utiliser pour que
deux faisceaux de meme couleur ne se croisent pas ?
1
5
1
0
5
3
Graphes de reines :
Etant
donne un echiquier de taille n n, peut-on placer n ensembles de n reines de
meme couleur de sorte que deux reines de meme couleur ne puissent pas se prendre ?
11
Graphe
inithx.i.1.col
mulsol.i.4.col
zeroin.i.1.col
school1_nsh.col
jean.col
queen11_11.col
myciel4.col
myciel7.col
mug100_1.col
wap05a.col
wap07a.col
qg.order40.col
qg.order100.col
Allocation de
registre
Planification
Livre
chec
Graphes de
Mycielski
Rseaux
optiques
Carrs latins
Sommets
n
864
185
211
352
80
121
23
191
100
905
1809
1600
10000
Nombre de :
Artes Coloration
m
(G)
18707
54
3946
31
4100
49
14612
???
508
10
3960
11
71
5
2360
8
166
4
43081
???
103368
???
62400
40
990000
100
Nb Couleurs
WP
Dsatur
54
31
49
34
10
17
5
8
4
51
52
64
128
54
31
49
27
10
15
5
8
4
51
46
40
100
3
0.125
0.016
0.016
0.047
0
0.015
0.016
0.015
0
0.156
0.391
0.25
4.062
Nous pouvons voir que dans la plupart des cas, WP (pour Welsh & Powell) et DSATUR
fournissent la coloration optimale du graphe considr. Cependant lorsquil y a des diffrences,
on voit que DSATUR est toujours plus performant que WP (school1_nsh.col, queen11_11.col et
wap07a.col par exemple). Lorsque le graphe prsente une structure plus "rgulire" (des symtries
par exemple pour qg.order40.col), DSATUR fournit bien une meilleure coloration que WP.
Au niveau des temps dexcution, les graphes prsents tant de faibles tailles (gnralement
moins de 100 000 artes, et presque un million pour qg.order100.col), les temps obtenus sont assez
peu levs et ne prsentent pas de grandes diffrences. Toutefois celles-ci deviennent trs marques
pour le dernier exemple ; on peut mme stonner de voir Dsatur3, qui utilise laffinage de partition,
se distinguer : sans doute les symtries que prsente qg.order100.col sont propices sont excution.
Conclusion et perspectives
Nous conclurons cette tude en insistant sur les diffrences defficacits constates, qui dpendent autant de limplmentation effectue que des heuristiques considres. La coloration de
graphe est un domaine de recherche trs actif et, comme nous avons pu le voir, ses applications
sont multiples. Certains problmes permettant parfois de faire des hypothses sur la structure
du graphe colorer, on peut envisager de dvelopper des algorithmes polynomiaux de coloration
optimale pour ces cas particuliers.
Signalons enfin que le problme de coloration simple abord nest pas exhaustif, et quil peut
stendre de multiples faons : coloration avec contraintes (nombre limit de couleurs, sommets
avec couleurs imposes), multi-coloration (allocation dune liste de couleurs aux sommets), etc.
Rfrences
1. Cours dalgorithmique des graphes du MPRI, Michel Habib, 9 janvier 2008
Chapitre 5 : Parcours en largeur lexicographique
2. Cours de luniversit Nice Sophia Antipolis, Frederic Havet, 2006
Chapitre 5 : Coloration de graphes
3. Algorithmic Aspects of Vertex Elimination on Graphs
Donald J. Rose, Robert Endre Tarjan, George S. Lueker, juin 1976
SIAM Journal on Computing, Vol. 5, No. 2, p. 266-283
4. DSATUR, page web par Philippe Rolland
http://prolland.free.fr/Cours/Cycle2/Maitrise/GraphsTheory/TP/PrgGraphDsat/dsat.html
5. DIMACS, graphes de benchmark
http://mat.gsia.cmu.edu/COLOR02/
12