DUT Informatique
semestre 2
Th´eorie des Graphes
Coloriage d’un graphe
Math´ematiques
TP n◦4
Exercice 3
Algorithme de coloriage de Welsh-Powell
L’algorithme de Welsh-Powell est un algorithme de coloriage beaucoup plus rapide que
l’algorithme de base mais qui ne trouve pas toujours le nombre minimal de couleurs, mais
un nombre assez proche de γ(G). L’algorithme est le suivant :
✬
✫
✩
✪
fonction G=Welsh(G)
L= liste des sommets class´es dans l’ordre d´ecroissant de leur degr´e
couleur courante = 0
tant que L6=∅faire
incr´ementer la couleur courante
Colorier sle premier sommet de Lavec la couleur courante
´eliminer sde L
V= liste des voisins de s
pour tout xdans Lfaire
si x /∈Valors colorier xavec la couleur courante
ajouter les voisins de x`a V
fin
fin faire
´eliminer les sommets colori´es de L
fin faire
1. Colorier le graphe Gci-dessous (exo394G.graph) avec l’algorithme de Welsh-
Powell :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2. Impl´ementer l’algorithme de Welsh/Powell en scilab et tester sur le graphe pr´ec´edent.
Indication : utiliser [degre,sommets]=gsort(degre) pour trier les sommets
dans l’ordre d´ecroissant de leur degr´e
3. Le coloriage trouv´e est il optimal ?
4. Charger le graphe paris.graph dans scilab
(a) Colorier les sommets du graphe paris.graph avec les fonctions coloriage et
Welsh, comparer les temps d’ex´ecution et le nombre de couleurs obtenues :
-->P=load_graph(’paris.graph’);
-->tic();P1=coloriage(P);toc()
-->tic();P2=Welsh(P);toc()
(b) De mˆeme colorier les arˆetes de paris.graph en utilisant coloriage et Welsh
3