Application des m´
etaheuristiques #1
Coloration de graphes
MTH6311
S. Le Digabel, ´Ecole Polytechnique de Montr´eal
H2018 (v3)
Plan
1. Introduction
2. Formulation et non-r´ealisabilit´e
3. Voisinages
1. Introduction
2. Formulation et non-r´ealisabilit´e 3. Voisinages
Objectif
D´efinir le probl`eme de coloration de graphe et passer en revue les diff´erents ´el´ements permettant de d´efinir une premi`ere
Le probl`
eme
I On consid`ere un graphe G = (V, E).
I k-COL est le probl`eme de d´ecision consistant `a d´eterminer s’il est possible de colorer les sommets de G en utilisant au plus k couleurs, de telle sorte qu’aucune arˆete n’ait ses deux
extr´emit´es de mˆeme couleur. I k-COL ∈ N P-complet pour k ≥ 3.
I COLC est le probl`eme consistant `a trouver lenombre chromatique χ(G), le plus petit nombre de couleurs permettant de colorer les sommets de G.
Exemples d’applications
I Confection d’horaires : les diff´erents items `a ins´erer dans un horaire correspondent aux sommets d’un graphe qui sont reli´es si il y a une incompatibilit´e entre eux. Les couleurs
correspondent aux p´eriodes de temps.
I Assignation de tˆaches : les sommets correspondent aux tˆaches et sont reli´es en cas d’incompatibilit´e.
Justification de l’emploi de m´
etaheuristiques
I Le probl`eme est N P-difficile.
I Les m´ethodes exactes peuvent prendre plusieurs mois `a colorer optimalement certains graphes de seulement ' 100 sommets. I Les instances r´eelles poss`edes des milliers de sommets.
1. Introduction
2. Formulation et non-r´ealisabilit´e
3. Voisinages
Le probl`
eme : formulation
I Le probl`eme COLC s’´ecrit χ(G) = min
x∈X{f (x) : x ∈ Ω}.
I X : ensemble des colorations des sommets de G. x ∈ X peut ˆ
etre non r´ealisable, et/ou incompl`ete (sommets non color´es). I Ω : ensemble des colorations r´ealisables (i.e. coloration
compl`ete et pas deux arˆetes reliant deux sommets de mˆeme couleur).
Le probl`
eme : non-r´
ealisabilit´
e
I Si x ∈ Ω, on parle d’une coloration r´ealisable, ou l´egale.
I Si x ∈ X − Ω :
I Avec une coloration incompl`ete, si toutes les arˆetes ont leurs extr´emit´es color´ees d’une couleur diff´erente, on parle d’une
coloration partielle l´egale.
I S’il existe des arˆetes avec des extr´emit´es de mˆeme couleur, ces arˆetes sont appel´ees desarˆetes conflictuelles, et leurs sommets sont appel´es dessommets conflictuels.
Le probl`
eme : non-r´
ealisabilit´
e (suite)
Plusieurs fa¸con d’exprimer f (x) quand x ∈ X − Ω : I f (x) =nombre de couleurs de la coloration x. Ne pas
consid´erer les conflits ni les sommets non-color´es.
Typiquement f (x) < χ(G). Il va falloir traiter explicitement les cas non-r´ealisables (proc´edure de r´eparation).
I P´enalit´es : f (x) =nombre de couleurs de la coloration x +α×nombre de sommets conflictuels +β×nombre de
sommets non-color´es. L’irr´ealisabilit´e est trait´ee implicitement lors de la minimisation, mais il faut choisir les poids α et β.
1. Introduction
2. Formulation et non-r´ealisabilit´e
3. Voisinages
Voisinages
On d´ecrit ici plusieurs structures de voisinage. Certaines induisent des mouvements r´ealisables, d’autres pas.
Voisinage d’ordre k
I Soit x ∈ Ω. NΩ
k(x) est l’ensemble des colorations de Ω, i.e.
r´ealisables, telles qu’exactement k sommets sont de couleur diff´erente, sans augmenter f .
I Exemple avec k = 1 :
´
Echange bichromatique
I Echange de deux couleurs d’une composante connexe induite´ par les sommets de ces deux couleurs.
Autre voisinage
I Changer la couleur d’un sommet et changer les couleurs des sommets adjacents de mˆeme couleur, en essayant de ne pas g´en´erer de conflits.
Autre voisinage
Autre voisinage
I Pour colorer des sommets non color´es sans augmenter le nombre de couleurs, mais possiblement en cr´eant des sommets conflictuels.
I Pour chaque sommet non-color´e, attribuer une couleur d´ej`a utilis´ee qui minimise le nombre de nouvelles arˆetes
Proc´
edure de r´
eparation
On doit appliquer une proc´edure de r´eparation sur les colorations compl`etes et non-l´egales, si on ne consid`ere pas de p´enalit´e dans f .
I Soit g le nombre de sommets conflictuels.
I Minimiser g avec une proc´edure de recherche locale. I On se concentre uniquement sur les sommets et arˆetes
conflictuels.
I En dernier recours, on attribue de nouvelles couleurs aux sommets conflictuels.
1. Introduction
2. Formulation et non-r´ealisabilit´e 3. Voisinages
Notre m´
etaheuristique
On choisit une m´etaheuristique VNS, car elle est le meilleur compromis entre simplicit´e et efficacit´e.
Les diff´erentes composantes `a d´efinir sont : I G´en´eration d’une coloration initiale. I M´ethode de descente.
Recherche `
a voisinages variables (VNS)
VNS
[1] Choisir un point x ∈ Ω Poser k ← 1
[2] Tant qu’aucun crit`ere d’arr^et n’est satisfait x0 ← shaking(x,k) choisir al´eatoirement un
point x0 dans Nk(x) x00← descente(x0) Si f (x00) < f (x) Poser x ← x00 Poser k ← 0 Si k < kmax Poser k ← k + 1
Coloration initiale
I Nous allons appliquer un algorithme gloutonconsistant, pour chaque sommet non color´e, `a attribuer une couleur non conflictuelle.
I Au d´ebut, on commence avec une seule couleur, puis on les augmente `a chaque fois que c’est n´ecessaire.
I Toute d´ecision est prise au hasard, ainsi on peut r´ep´eter cette proc´edure un certain nombre de fois pour ne conserver que notre meilleure essai (principe du multistart).
Principe g´
en´
eral de la descente
Descente
[1] Choisir un point x ∈ Ω [2] D´eterminer un point x0
qui minimise f dans N (x) [3] Si f (x0) < f (x)
Poser x ← x0 Aller en [2] Sinon STOP
Notre descente
I On suppose qu’on part d’un point x ∈ Ω r´ealisable, et le but est de l’am´eliorer rapidement.
I On ne consid`ere qu’un seul type de voisinages : le N1Ω r´ealisable.
I On consid`ere une couleur au hasard, et on essaie de l’´eliminer, c’est-`a-dire changer les couleurs des sommets `a cette couleur pour une autre couleur d´ej`a utilis´ee.
I On accepte le premier mouvement qui baisse f , et on recommence.
M´
ethode de perturbation
I On consid`ere successivement les voisinages r´ealisables N1Ω, N2Ω, etc.
I On essaie de ne pas augmenter f , mais on accepte de le faire si on est bloqu´e.
I Choix de kmax? En th´eorie c’est le nombre de sommets |V |,
mais on va pr´ef´erer une fraction de |V | (25%), car il faut qu’une coloration voisine reste relativement proche.
Repr´
esentation d’un graphe
I Format standard DIMACS.
Structures de donn´
ees
I Repr´esentation d’un graphe. Pour chaque sommet, avoir un acc`es `a ses voisins pour v´erifier la l´egalit´e d’une couleur. I Repr´esentation d’une coloration :
I Pour chaque sommet, m´emoriser sa couleur.
I Pour chaque couleur c, m´emoriser la liste des sommets mis `a cette couleur.
I Tout changement de couleur doit se r´epercuter sur ces structures.
I Il faut ˆetre capable de copier des colorations afin de faire des perturbations et des descentes sur des copies et revenir facilement `a la coloration non-perturb´ee. Moyen d’´eviter les copies en m´emorisant tous les changements et en les annulant ?
Classes importantes
I Graph, Vertex, Edge.
I Random Pickup : pour tous les choix au hasard.
I Coloration. Repr´esente un point (coloration). Regroupe aussi les diff´erentes m´ethodes de r´esolution (coloration initiale, descente, et VNS).