• Aucun résultat trouvé

#7 Applications #1

N/A
N/A
Protected

Academic year: 2021

Partager "#7 Applications #1"

Copied!
29
0
0

Texte intégral

(1)

Application des m´

etaheuristiques #1

Coloration de graphes

MTH6311

S. Le Digabel, ´Ecole Polytechnique de Montr´eal

H2018 (v3)

(2)

Plan

1. Introduction

2. Formulation et non-r´ealisabilit´e

3. Voisinages

(3)

1. Introduction

2. Formulation et non-r´ealisabilit´e 3. Voisinages

(4)

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

(5)

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.

(6)

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.

(7)

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.

(8)

1. Introduction

2. Formulation et non-r´ealisabilit´e

3. Voisinages

(9)

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).

(10)

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.

(11)

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 β.

(12)

1. Introduction

2. Formulation et non-r´ealisabilit´e

3. Voisinages

(13)

Voisinages

On d´ecrit ici plusieurs structures de voisinage. Certaines induisent des mouvements r´ealisables, d’autres pas.

(14)

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 :

(15)

´

Echange bichromatique

I Echange de deux couleurs d’une composante connexe induite´ par les sommets de ces deux couleurs.

(16)

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.

(17)

Autre voisinage

(18)

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

(19)

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.

(20)

1. Introduction

2. Formulation et non-r´ealisabilit´e 3. Voisinages

(21)

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.

(22)

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

(23)

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).

(24)

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

(25)

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.

(26)

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.

(27)

Repr´

esentation d’un graphe

I Format standard DIMACS.

(28)

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 ?

(29)

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).

Références

Documents relatifs

Ségolène Royal et Nicolas Sarkozy, eux, se retrouvent déjà dans notre liste des 100 au simple titre, certainement injuste au regard de l'histoire, et peut-être risqué au vu

[r]

exacte, du cas où N est impair pour lequel le point central sera la moyenne. de

Quelle est la probabilité d'obtenir au moins trois fois (( face

Déterminer le nombre de solution de chaque système sans le résoudre.. Déterminer le nombre de solution de chaque système sans le

Caractère étudié : nombre de jetons de couleur rouge dans un carton de 500 jetons.. Type :

[r]

Mais on a aussi Im (ab) = a(textImb) , d'où l'on déduit rg(ab) ≤ rg(b) , car une application linéaire n'augmente pas la dimension des espaces vectoriels (cela résulte du théorème