L3: cours Graphes I6S3 Partie II: coloration de graphe
Aspects algorithmiques
Heuristiques
Algorithme Glouton (s´equentiel, Welsh & Powell)
1. Ordonner les sommets suivant un ordre d´ecroissant de leur
degr´es. Soit x1,x2, . . . , xncet ordre.
2. Pour ide 1 `a n, faire colorier xiavec la plus petite couleur
non utilis´ee par un de ses voisins d´ej`a colori´e.
Base de nombreuses am´eliorations :
DSAT : recalcul de l’ordre des sommets `a chaque it´eration
9 de 24
L3: cours Graphes I6S3 Partie II: coloration de graphe
Aspects algorithmiques
Heuristiques
Algorithme DSATUR (Daniel Br`elaz, 1979)
Degr´e de saturation : Si aucun voisin de vn’est colori´e alors
DSAT(v) = degr´e(v)
sinon DSAT(v) = le nombre de couleurs diff´erentes utilis´ees par le
voisinage de v
1. Ordonner les sommets par ordre d´ecroissant de degr´es.
2. Colorier un sommet de degr´e maximum avec la couleur 1.
3. Choisir un sommet non encore colori´e avec DSAT maximum.
Si conflit choisir celui de degr´e maximum.
4. Colorier ce sommet par la plus petite couleur possible
5. Si tous les sommets sont colori´es alors stop. Sinon aller en 3.
10 de 24
L3: cours Graphes I6S3 Partie II: coloration de graphe
Aspects algorithmiques
Algorithmes exacts
Algorithme exact basique
colore(sommet i, entier k)
{
si i=n alors { afficher(couleur); stop;}
pour c de 1 `a k faire
si convient(i,c) alors
{//couleur c non utilis´ee par les voisins de i
couleur[i]=c;
colore(i+1,k);
}
}
11 de 24
L3: cours Graphes I6S3 Partie II: coloration de graphe
Aspects algorithmiques
Algorithmes exacts
Algorithme BSC (Backtracking Sequential Coloring)
BSC= DSATUR + retours arri`ere
BSC(k) donne une coloration en au plus kcouleurs (si possible,
sinon indique impossibilit´e)
1. Ordonner les sommets par ordre d´ecroissant de degr´es.
2. Colorier un sommet de degr´e maximum avec la couleur 1.
3. Choisir un sommet xnon encore colori´e avec DSAT
maximum. Si conflit choisir celui de degr´e maximum.
4. Soit FREE(x)⊂ {1,2, . . . k}l’ensemble des couleurs non
utilis´ees par les voisins de x.
Si FREE(x) non vide, colorier le sommet xpar la plus petite
couleur de FREE(x) ; sinon retour arri`ere.
5. Si tous les sommets sont colori´es alors stop. Sinon aller en 3.
12 de 24