Coloration online dans les graphes de co-comparabilité
Coloration online dans les graphes de co-comparabilité
Coloration online dans les graphes de co-comparabilité
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ÉCOLE POLYTECHNIQUE<br />
FÉDÉRALE DE LAUSANNE<br />
<strong>Coloration</strong> <strong>online</strong><br />
<strong>dans</strong> <strong>les</strong> <strong>graphes</strong> <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité<br />
4<br />
Samuel Bian<strong>co</strong><br />
Semestre d’automne 2007<br />
6<br />
5<br />
Assistant responsable : Benjamin Leroy-Beaulieu<br />
Professeur : Dominique <strong>de</strong> Werra<br />
1<br />
2<br />
3
Table <strong>de</strong>s matières<br />
1 Introduction 3<br />
2 Définitions et exemple fil rouge 4<br />
2.1 Définitions <strong>de</strong> base . . . . . . . . . . . . . . . . . . . . . . . . 4<br />
2.2 Exemple et modélisation . . . . . . . . . . . . . . . . . . . . . 6<br />
3 <strong>Coloration</strong> offline 9<br />
3.1 Graphes parfaits . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />
4 <strong>Coloration</strong> <strong>online</strong> 10<br />
4.1 <strong>Coloration</strong> <strong>online</strong> d’un graphe <strong>de</strong> <strong>co</strong>mparabilité . . . . . . . . 10<br />
4.2 <strong>Coloration</strong> <strong>online</strong> d’un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité . . . . . . . 12<br />
4.3 <strong>Coloration</strong> par l’algorithme First Fit . . . . . . . . . . . . . . 16<br />
5 Conclusion 21<br />
2
1 Introduction<br />
Dans l’industrie <strong>de</strong> l’acier, <strong>de</strong>s feuil<strong>les</strong> <strong>de</strong> métal <strong>de</strong> taille aléatoire sont<br />
fabriquées. Après la fonte, <strong>les</strong> plaques sont déposées sur <strong>de</strong>s chariots afin<br />
d’être entreposées. Les <strong>co</strong>ûts <strong>de</strong> stockage étant élevés, on souhaite minimiser<br />
le nombre <strong>de</strong> chariots à utiliser, pour gagner un maximum <strong>de</strong> place au sol<br />
et donc d’argent. Notons que le nombre <strong>de</strong> plaques fabriquées est <strong>co</strong>nnu à<br />
l’avance. Pour <strong>de</strong>s raisons <strong>de</strong> stabilité, une plaque ne peut être déposée sur<br />
une autre que si elle est plus petite que l’autre. En effet, la pile serait vacillante<br />
si cette <strong>co</strong>ndition n’était pas respectée; et, suite à une étu<strong>de</strong> poussée,<br />
il s’est avéré que l’é<strong>co</strong>nomie sur <strong>les</strong> chariots ne <strong>co</strong>mpense pas la perte en cas<br />
<strong>de</strong> chute <strong>de</strong> la pile. Ajoutons en<strong>co</strong>re qu’il n’est pas possible <strong>de</strong> soulever une<br />
plaque pour en glisser une autre au-<strong>de</strong>ssous.<br />
Nous <strong>co</strong>mmencerons par donner <strong>les</strong> définitions principa<strong>les</strong> et modéliser<br />
le problème sous forme <strong>de</strong> graphe. Ensuite, nous allons voir <strong>de</strong>ux types <strong>de</strong><br />
résolution. Nous nous intéresserons en premier lieu à la résolution dite « offline<br />
», c’est-à-dire que nous attendrons que toutes <strong>les</strong> plaques soient sorties<br />
<strong>de</strong> la presse pour déci<strong>de</strong>r sur quel chariot <strong>les</strong> placer. Nous supposerons ensuite<br />
que dès qu’une plaque sort <strong>de</strong> la presse, il faut absolument la placer sur<br />
un chariot. C’est la résolution « <strong>online</strong> ». Dans cette partie, nous étudierons<br />
<strong>de</strong>ux algorithmes : OcCC et First Fit. Nous terminerons par une synthèse<br />
<strong>de</strong>s différents résultats.<br />
3
2 Définitions et exemple fil rouge<br />
2.1 Définitions <strong>de</strong> base<br />
Dans cette section, nous donnons <strong>les</strong> définitions <strong>de</strong> <strong>co</strong>ncepts nécessaires<br />
à la <strong>co</strong>mpréhension <strong>de</strong> ce travail. Les <strong>de</strong>ux notions suivantes sont tirées <strong>de</strong><br />
l’article Online algorithms : A survey [1].<br />
Un problème dont <strong>les</strong> données ne sont pas <strong>co</strong>mplètes avant <strong>de</strong> <strong>co</strong>mmencer<br />
sa résolution est dit <strong>online</strong>. Par opposition, un problème dont toutes <strong>les</strong><br />
données sont <strong>co</strong>nnues au début du processus <strong>de</strong> résolution est dit offline.<br />
Les définitions qui suivent sont <strong>de</strong>s définitions classiques <strong>de</strong> la théorie <strong>de</strong>s<br />
<strong>graphes</strong>. El<strong>les</strong> sont tirées <strong>de</strong> Algorithmic graph theory and perfect graphs [2].<br />
Définition 1. Un graphe G = (V, E) est le <strong>co</strong>uple <strong>co</strong>nstitué :<br />
1. d’un ensemble V = {v1, . . .,vn};<br />
2. d’une famille E = {(a, b) | a ∈ V, b ∈ V }.<br />
On appelle V l’ensemble <strong>de</strong>s sommets et E l’ensemble <strong>de</strong>s arêtes.<br />
Si un graphe est orienté (c’est-à-dire (a, b) = (b, a)), alors on parle <strong>de</strong><br />
digraphe (<strong>de</strong> l’anglais directed graph).<br />
Définition 2. Un graphe sera appelé graphe simple si l’on a <strong>les</strong> <strong>de</strong>ux <strong>co</strong>nditions<br />
suivantes :<br />
1. ∀ (x, y) ∈ E, x = y ;<br />
2. ∀ x = (x1, x2) ∈ E, ∀ y = (y1, y2) ∈ E, si x = y, alors x1 = y1 ou<br />
x2 = y2.<br />
Un graphe qui n’est pas simple est appelé multigraphe.<br />
Dans cet article, sauf mention du <strong>co</strong>ntraire, le terme « graphe » désigne<br />
toujours un graphe simple. Ces définitions basiques nous permettent d’introduire<br />
<strong>les</strong> termes utilisés abondamment <strong>dans</strong> ce travail. Les définitions<br />
qui suivent peuvent être retrouvées <strong>dans</strong> Online Coloring of Comparability<br />
Graphs : some results [3] et <strong>dans</strong> Algorithmic Graph Theory and Perfect<br />
Graphs [2].<br />
Définition 3. Un ensemble C ⊂ V est appelé clique (ou <strong>co</strong>mplet) si <strong>de</strong>ux<br />
sommets distincts sont toujours adjacents, i.e. il y a un arc entre chaque paire<br />
<strong>de</strong> sommets.<br />
Définition 4. Un ensemble S ⊂ V est dit stable si <strong>de</strong>ux sommets distincts<br />
<strong>de</strong> S ne sont jamais adjacents.<br />
4
Définition 5. Une <strong>co</strong>loration admissible, parfois appelée simplement <strong>co</strong>loration,<br />
est une partition <strong>de</strong> l’ensemble <strong>de</strong>s sommets V en ensemb<strong>les</strong> stab<strong>les</strong>.<br />
Une k-<strong>co</strong>loration d’un graphe G est une <strong>co</strong>loration qui utilise au plus k ensemb<strong>les</strong><br />
stab<strong>les</strong>. Ajoutons en<strong>co</strong>re que le nombre chromatique d’un graphe G,<br />
noté χ(G), est le plus petit nombre k tel que G admette une k-<strong>co</strong>loration.<br />
Définition 6. Soit A un algorithme <strong>de</strong> <strong>co</strong>loration <strong>online</strong> d’un graphe G. Soit<br />
χA(G) le nombre maximum <strong>de</strong> <strong>co</strong>uleurs utilisées par A pour <strong>co</strong>lorer G sous<br />
toutes <strong>les</strong> présentations <strong>online</strong>s possib<strong>les</strong> <strong>de</strong> G. Un algorithme <strong>online</strong> garantit<br />
un rapport <strong>de</strong> <strong>co</strong>mpétitivité <strong>de</strong> ρ(G) si, pour tout graphe G,<br />
ρ(G) ≥ χA(G)<br />
χ(G) .<br />
Cela revient en fait à trouver la <strong>co</strong>nfiguration qui donne le plus grand écart<br />
entre la solution <strong>online</strong> donnée par l’algorithme A et la solution optimale<br />
offline.<br />
Cet article traite <strong>de</strong> <strong>de</strong>ux types <strong>de</strong> <strong>graphes</strong> bien particuliers. Il s’agit <strong>de</strong>s<br />
<strong>graphes</strong> <strong>de</strong> <strong>co</strong>mparabilité et <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité. Avant <strong>de</strong> pouvoir <strong>les</strong> définir,<br />
nous avons en<strong>co</strong>re besoin <strong>de</strong>s notions qui suivent.<br />
Définition 7. On dit qu’un graphe orienté G = (V, E) respecte la propriété<br />
d’orientation transitive si la <strong>co</strong>ndition suivante est respectée :<br />
(a, b) ∈ E et (b, c) ∈ E ⇒ (a, c) ∈ E, ∀ a, b, c ∈ V.<br />
Définition 8. Soit G = (V, E) un graphe (orienté ou non). Le <strong>co</strong>mplément<br />
<strong>de</strong> G est le graphe G = (V, E), où<br />
E = {(a, b) ∈ V × V | a = b et (a, b) /∈ E}.<br />
Maintenant, nous pouvons passer aux <strong>de</strong>ux <strong>de</strong>rnières définitions <strong>de</strong> cette<br />
section.<br />
Définition 9. Un graphe G non-orienté qui admet une orientation transitive<br />
est appelé graphe <strong>de</strong> <strong>co</strong>mparabilité.<br />
Définition 10. Si G est un graphe <strong>de</strong> <strong>co</strong>mparabilité, alors son <strong>co</strong>mplément<br />
est appelé graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
Un exemple <strong>de</strong> graphe <strong>de</strong> <strong>co</strong>mparabilité et <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité se trouve<br />
<strong>dans</strong> la partie ci-après (Fig. 3 et Fig. 4 respectivement, page 8).<br />
5
2.2 Exemple et modélisation<br />
Nous allons maintenant pouvoir modéliser le problème initial. Nous nous<br />
appuierons sur un exemple que nous gar<strong>de</strong>rons tout au long <strong>de</strong> cet article.<br />
Nous l’appelons exemple fil rouge.<br />
Modélisation du problème<br />
Le problème qui suit a motivé ce travail. C’est un exemple <strong>co</strong>ncret <strong>dans</strong><br />
lequel la théorie développée <strong>dans</strong> le reste <strong>de</strong> cet article s’applique.<br />
Dans une usine, on doit transporter <strong>de</strong>s plaques <strong>de</strong> métal sur <strong>de</strong>s chariots.<br />
Pour <strong>de</strong>s raisons <strong>de</strong> stabilité, chaque plaque déposée au sommet <strong>de</strong> la pile ne<br />
doit pas dépasser <strong>de</strong> celle du <strong>de</strong>ssous. En d’autres termes, la plaque A peut<br />
être posée sur la plaque B si et seulement si<br />
⎧<br />
⎨<br />
⎩<br />
Ax ≤ Bx<br />
Ay ≤ By<br />
A est arrivée après B<br />
où Ax, Ay et Bx, By sont <strong>les</strong> dimensions <strong>de</strong> la plaque A et B respectivement.<br />
Ce problème peut être présenté sous forme <strong>de</strong> graphe. L’arc reliant A à B<br />
(A → B) signifie que « A peut être posé sur B ». Il est clair que si la plaque<br />
A peut être posée sur la plaque B et que la plaque B peut être posée sur<br />
la plaque C, alors la plaque A pourrait aussi être posée sur la plaque C. Ce<br />
sera donc un graphe <strong>de</strong> <strong>co</strong>mparabilité.<br />
Nous pouvons maintenant <strong>co</strong>mmencer à penser à la résolution <strong>de</strong> ce<br />
problème. Nous cherchons à <strong>co</strong>uvrir le graphe <strong>de</strong> <strong>co</strong>mparabilité par <strong>de</strong>s cliques.<br />
Chaque clique représentera un chariot différent. En effet, tous <strong>les</strong> éléments<br />
d’une clique sont, par définition, reliés entre eux. En terme <strong>de</strong> « plaque »,<br />
cela signifie que <strong>les</strong> plaques <strong>de</strong> la même <strong>co</strong>uleur seront placées <strong>les</strong> une sur <strong>les</strong><br />
autres et formeront donc un chariot.<br />
Cependant, nous n’allons pas tenter <strong>de</strong> <strong>co</strong>uvrir le graphe <strong>de</strong> <strong>co</strong>mparabilité<br />
par <strong>de</strong>s cliques directement, nous allons résoudre un problème similaire. Nous<br />
allons <strong>co</strong>lorer (i.e. <strong>co</strong>uvrir par <strong>de</strong>s stab<strong>les</strong>) son graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
C’est une tâche équivalente, car <strong>co</strong>uvrir un graphe par <strong>de</strong>s cliques revient<br />
à <strong>co</strong>uvrir son <strong>co</strong>mplément par <strong>de</strong>s stab<strong>les</strong>. L’exemple ci-<strong>de</strong>ssous (Fig. 1) le<br />
montre très bien.<br />
Exemple fil rouge<br />
Dans cet exemple fil rouge, nous nous restreindrons à la production <strong>de</strong><br />
six plaques <strong>de</strong> métal. La figure 2 (page 7) montre la dimension <strong>de</strong>s plaques<br />
ainsi que l’ordre d’arrivée <strong>de</strong> cel<strong>les</strong>-ci.<br />
6
Couvert par <strong>de</strong>s cliques Couvert par <strong>de</strong>s stab<strong>les</strong><br />
Fig. 1 – Couverture par <strong>de</strong>s stab<strong>les</strong> et <strong>de</strong>s cliques.<br />
5<br />
4<br />
3<br />
1<br />
3<br />
5<br />
Fig. 2 – Dimensions et ordre d’arrivée <strong>de</strong>s six plaques.<br />
7<br />
1<br />
2<br />
1<br />
5<br />
5<br />
4<br />
1<br />
3<br />
2<br />
6<br />
3<br />
2
En observant la figure 2, nous remarquons que nous pouvons relier le<br />
sommet 5 au sommet 4 (5 → 4), vu que la plaque 5 est plus petite que la<br />
plaque 4 et qu’elle est arrivée après. En revanche, il n’est pas possible <strong>de</strong><br />
placer la plaque 1 sur la 5, vu qu’elle est arrivée avant. En procédant <strong>de</strong><br />
cette manière pour chaque plaque, nous trouvons le graphe <strong>de</strong> <strong>co</strong>mparabilité<br />
<strong>de</strong> l’exemple fil rouge (Fig. 3).<br />
4<br />
6<br />
5<br />
Fig. 3 – Problème mis sous forme <strong>de</strong> graphe <strong>de</strong> <strong>co</strong>mparabilité.<br />
En appliquant la définition 8, nous trouvons son graphe <strong>co</strong>mplémentaire.<br />
C’est donc un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité (Fig. 4).<br />
4<br />
6<br />
5<br />
Fig. 4 – Problème mis sous forme <strong>de</strong> graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
Pour illustrer <strong>les</strong> différents algorithmes proposés <strong>dans</strong> <strong>les</strong> parties qui<br />
suivent, nous nous servirons en premier lieu <strong>de</strong> cet exemple fil rouge.<br />
8<br />
1<br />
2<br />
1<br />
2<br />
3<br />
3
3 <strong>Coloration</strong> offline<br />
3.1 Graphes parfaits<br />
Nous n’avons pas trouvé trace <strong>dans</strong> la littérature qu’un graphe <strong>de</strong> <strong>co</strong><strong>co</strong>mparabilité<br />
est parfait. Nous allons le montrer brièvement. Nous nous appuyons<br />
sur un <strong>co</strong>rollaire et un théorème tirés <strong>de</strong> Algorithmic Graph Theory<br />
and Perfect Graphs [2].<br />
Corollaire 1. Un graphe G est <strong>co</strong>mplet si et seulement si son <strong>co</strong>mplémentaire<br />
G est parfait.<br />
Théorème 1. Tout graphe <strong>de</strong> <strong>co</strong>mparabilité est un graphe parfait.<br />
Nous en déduisons que tout graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité est un graphe parfait.<br />
Vu qu’il existe un algorithme pour <strong>co</strong>lorer <strong>les</strong> <strong>graphes</strong> parfaits donnés offline,<br />
nous pouvons donc affirmer qu’un tel algorithme existe pour <strong>les</strong> <strong>graphes</strong><br />
<strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
Ainsi, il existe une <strong>co</strong>uverture par clique optimale pour tout graphe <strong>de</strong><br />
<strong>co</strong>mparabilité présenté offline.<br />
9
4 <strong>Coloration</strong> <strong>online</strong><br />
Dans cette section, nous allons <strong>co</strong>mparer <strong>de</strong>ux algorithmes, à savoir OcCC<br />
et First Fit. Ce <strong>de</strong>rnier est un algorithme classique utilisé <strong>dans</strong> la théorie <strong>de</strong>s<br />
<strong>graphes</strong>. L’algorithme OcCC est un dérivé d’un algorithme <strong>de</strong> <strong>co</strong>loration <strong>de</strong>s<br />
<strong>graphes</strong> <strong>de</strong> <strong>co</strong>mparabilité.<br />
4.1 <strong>Coloration</strong> <strong>online</strong> d’un graphe <strong>de</strong> <strong>co</strong>mparabilité<br />
L’algorithme OCC (<strong>de</strong> l’anglais : <strong>online</strong> <strong>co</strong>mparability graph <strong>co</strong>loring) est<br />
tiré <strong>de</strong> Online Coloring of Comparability Graphs : some results [3]. Il sert à<br />
<strong>co</strong>lorer un graphe <strong>de</strong> <strong>co</strong>mparabilité, dont <strong>les</strong> sommets sont délivrés <strong>online</strong>.<br />
Toujours <strong>dans</strong> ce même article, nous trouvons le théorème ci-<strong>de</strong>ssous.<br />
Théorème 2. Il existe un algorithme pour <strong>co</strong>lorer <strong>les</strong> <strong>graphes</strong> <strong>de</strong> <strong>co</strong>mparabilité<br />
(présentés <strong>online</strong> et avec une orientation transitive) garantissant un<br />
rapport <strong>de</strong> <strong>co</strong>mpétitivité <strong>de</strong> χ+1<br />
2 .<br />
Dans la preuve <strong>de</strong> ce théorème, <strong>les</strong> auteurs montrent que cet algorithme<br />
est OCC. Le principe <strong>de</strong> cet algorithme est le suivant.<br />
Il va assigner à chaque sommet une <strong>co</strong>uleur, sous forme <strong>de</strong> suite croissante<br />
<strong>de</strong> nombres entiers. A chaque étape, nous notons C(v) la <strong>co</strong>uleur du sommet<br />
v. Les nombres Cl(v) et Cr(v) désignent <strong>les</strong> nombres situés à l’extrême gauche<br />
(respectivement droite) <strong>de</strong> la <strong>co</strong>uleur <strong>de</strong> v. Par exemple, si C(v) = 234, alors<br />
Cl(v) = 2 et Cr(v) = 4. Remarquons en<strong>co</strong>re que s’il n’y a pas d’ambiguïté<br />
sur le sommet désigné, on notera seulement C, Cl et Cr. Dès qu’un sommet<br />
apparaît, disons le sommet v ∗ , l’algorithme va lui assigner une <strong>co</strong>uleur. Il va<br />
d’abord tenter <strong>de</strong> lui donner une <strong>co</strong>uleur déjà présente <strong>dans</strong> le graphe. S’il ne<br />
peut pas, il va augmenter la <strong>co</strong>uleur (donc la suite) <strong>de</strong> tous <strong>les</strong> autres sommets<br />
du graphe déjà présentés d’une unité et assigner au sommet fraîchement<br />
ajouté une nouvelle <strong>co</strong>uleur. Celle-ci est en rapport avec le rang <strong>de</strong> v ∗ <strong>dans</strong><br />
le plus long chemin du graphe le <strong>co</strong>ntenant. L’algorithme OCC (Alg. 1) est<br />
présenté ci-après.<br />
<strong>Coloration</strong> <strong>de</strong> l’exemple fil rouge<br />
En appliquant l’algorithme OCC à l’exemple fil rouge, nous obtenons une<br />
2-<strong>co</strong>loration <strong>de</strong> ce graphe <strong>de</strong> <strong>co</strong>mparabilité (Fig. 5).<br />
Notons que, <strong>dans</strong> ce cas très précis, la <strong>co</strong>loration donnée est l’optimum,<br />
i.e. la <strong>co</strong>loration optimale si ce graphe avait été donné offline. Cependant, ce<br />
n’est pas toujours le cas.<br />
10
Algorithme 1 : <strong>Coloration</strong> <strong>online</strong> d’un graphe <strong>de</strong> <strong>co</strong>mparabilité (OCC)<br />
Données : Un graphe <strong>de</strong> <strong>co</strong>mparabilité G délivré <strong>online</strong>, sommet par<br />
sommet<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
Résultat : Une χ(χ+1)<br />
2 -<strong>co</strong>loration <strong>de</strong> G, où χ est le nombre<br />
chromatique <strong>de</strong> G. χ n’est pas <strong>co</strong>nnu avant la fin <strong>de</strong><br />
l’algorithme.<br />
tant que G n’est pas <strong>co</strong>mplètement présenté faire<br />
Soit G ′ le sous-graphe <strong>de</strong> G induit par <strong>les</strong> sommets déjà présentés.<br />
Définir k := χ(G ′ ) et accepter un nouveau sommet v∗ ;<br />
Dans le graphe défini par G ′ ∪ {v∗ }, <strong>co</strong>nsidérer le plus long chemin<br />
K <strong>co</strong>ntenant v∗ . Soit l := |K|;<br />
si l > k alors<br />
Renommer <strong>les</strong> <strong>co</strong>uleurs déjà attribuées <strong>de</strong> la manière suivante :<br />
Pour chaque sommet v, renommer sa <strong>co</strong>uleur en <strong>co</strong>ncaténant le<br />
nom <strong>de</strong> sa <strong>co</strong>uleur C(v) avec Cr(v) + 1 sur la droite.<br />
Incrémenter k <strong>de</strong> 1;<br />
Soit p le rang <strong>de</strong> v ∗ <strong>dans</strong> K. Attribuer à v ∗ la <strong>co</strong>uleur<br />
p . . .(k − l + p);<br />
fin<br />
4<br />
12<br />
1<br />
1<br />
6<br />
5<br />
Fig. 5 – <strong>Coloration</strong> <strong>de</strong> l’exemple fil rouge par l’algorithme OCC.<br />
11<br />
1<br />
12<br />
12<br />
2<br />
1<br />
3
4.2 <strong>Coloration</strong> <strong>online</strong> d’un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité<br />
Le but <strong>de</strong> ce projet est <strong>de</strong> <strong>co</strong>lorer un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité, afin <strong>de</strong><br />
pouvoir résoudre le problème <strong>de</strong>s plaques <strong>de</strong> métal. L’algorithme OcCC (<strong>de</strong><br />
l’anglais : <strong>online</strong> <strong>co</strong>-<strong>co</strong>mparability graph <strong>co</strong>loring) présenté ci-<strong>de</strong>ssous (Alg. 2)<br />
est un moyen <strong>de</strong> <strong>co</strong>lorer un tel graphe. Il est fortement inspiré <strong>de</strong> l’algorithme<br />
OCC.<br />
Un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité est, par définition, non-orienté. Il est donc<br />
impossible <strong>de</strong> pouvoir appliquer l’algorithme OCC tel quel. C’est pourquoi,<br />
l’algorithme OcCC <strong>co</strong>mprend une phase d’orientation <strong>de</strong>s arêtes. Il oriente<br />
<strong>les</strong> arêtes <strong>de</strong> manière à ce que la flèche aille du somment le plus ancien au<br />
sommet le plus récent (selon l’ordre d’arrivée).<br />
Pourquoi avoir choisi cette orientation précise? Il s’agit <strong>de</strong> l’orientation<br />
la plus intuitive. Nous aurions aussi pu orienter <strong>les</strong> arcs <strong>de</strong> manière à ce que<br />
<strong>les</strong> flèches aillent du sommet <strong>les</strong> plus récents au plus anciens. Cela aurait<br />
aussi été intuitif, mais l’algorithme OcCC ne fonctionnait pas avec cette<br />
orientation.<br />
Ainsi, nous pouvons appliquer l’algorithme OCC au graphe fraîchement<br />
orienté. L’algorithme OcCC (Alg. 2) est présenté ci-après.<br />
Algorithme 2 : <strong>Coloration</strong> <strong>online</strong> d’un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité<br />
(OcCC)<br />
Données : Un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité G délivré <strong>online</strong>, sommet<br />
par sommet<br />
Résultat : Une <strong>co</strong>loration <strong>de</strong> G<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
tant que G n’est pas <strong>co</strong>mplètement présenté faire<br />
Soit G ′ le sous-graphe <strong>de</strong> G induit par <strong>les</strong> sommets déjà présentés.<br />
Définir k := χ(G ′ ) et accepter un nouveau sommet v∗ ;<br />
Pour tous sommets a, b ∈ G ′ ∪ {v∗ }, si (a, b) ∈ G ′ ∪ {v∗ }, orienter<br />
l’arc (a, b) <strong>de</strong> telle sorte que l’arc aille du sommet le plus ancien au<br />
plus récent;<br />
Dans le graphe orienté défini par G ′ ∪ {v ∗ }, <strong>co</strong>nsidérer le plus long<br />
chemin K <strong>co</strong>ntenant v∗ . Définir l := |K|;<br />
si l > k alors<br />
Pour chaque sommet v, renommer sa <strong>co</strong>uleur en <strong>co</strong>ncaténant<br />
Cr(v) + 1 à sa <strong>co</strong>uleur C(v). Poser k := k + 1;<br />
Soit p le rang <strong>de</strong> v ∗ <strong>dans</strong> K. Attribuer à v ∗ la <strong>co</strong>uleur<br />
p · · ·(k − l + p);<br />
fin<br />
12
Comme expliqué <strong>dans</strong> la section précé<strong>de</strong>nte, l’algorithme OCC est valable<br />
<strong>dans</strong> <strong>les</strong> <strong>graphes</strong> <strong>de</strong> <strong>co</strong>mparabilité. Est-ce que la <strong>co</strong>loration reste admissible<br />
lorsque l’on applique cet algorithme à la version orientée d’un graphe <strong>de</strong><br />
<strong>co</strong>-<strong>co</strong>mparabilité? La réponse est oui. Le théorème qui suit nous l’assure.<br />
Théorème 3. L’algorithme OcCC <strong>co</strong>lore <strong>de</strong> manière admissible <strong>les</strong> <strong>graphes</strong><br />
<strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité. Son rapport <strong>de</strong> <strong>co</strong>mpétitivité ρ est n,<br />
où n est le nombre<br />
2<br />
<strong>de</strong> sommets du graphe.<br />
Démonstration. Elle se base sur quatre affirmations. Notons que l’on dit que<br />
<strong>de</strong>ux sommets v et v ∗ sont sur le même chemin pour dire qu’ils sont liés, i.e.<br />
qu’il existe un chemin allant <strong>de</strong> v à v ∗ ou l’inverse.<br />
Affirmation 1. Si un sommet v du graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité orienté appartient<br />
à <strong>de</strong>ux chemins, tous <strong>de</strong>ux <strong>de</strong> longueur maximale, alors v sera <strong>de</strong><br />
même rang <strong>dans</strong> chaque chemin.<br />
Démonstration. Supposons, par l’absur<strong>de</strong>, que v n’ait pas le même rang <strong>dans</strong><br />
chaque chemin. Soit K1 le chemin <strong>dans</strong> lequel le rang <strong>de</strong> v est le plus petit<br />
et K2 celui <strong>dans</strong> lequel il est le plus grand. On crée un nouveau chemin en<br />
<strong>co</strong>ncaténant <strong>les</strong> éléments <strong>de</strong> K2 qui précè<strong>de</strong>nt v, le sommet v et <strong>les</strong> éléments<br />
<strong>de</strong> K1 qui suivent v. Ce chemin sera alors plus long que K1 et K2, ce qui<br />
<strong>co</strong>ntredit l’hypothèse.<br />
Affirmation 2. Pour tout sommet v <strong>de</strong> <strong>co</strong>uleur C, il existe un chemin <strong>de</strong><br />
longueur χ(G ′ ) + Cl − Cr, où v est <strong>de</strong> rang Cl.<br />
Démonstration. Ceci est trivial lorsque l’on assigne une <strong>co</strong>uleur à v. Ensuite,<br />
chaque fois que χ(G ′ ) augmente <strong>de</strong> 1, Cr augmente aussi <strong>de</strong> 1, par la partie<br />
l > k <strong>de</strong> l’algorithme OcCC. Ceci nous assure la validité <strong>de</strong> l’affirmation<br />
2.<br />
Affirmation 3. L’algorithme OcCC donne une <strong>co</strong>loration admissible du<br />
graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité G.<br />
Démonstration. Soit v ∗ le <strong>de</strong>rnier sommet introduit. Soit v un sommet <strong>de</strong> la<br />
même <strong>co</strong>uleur que v ∗ . Il faut montrer que v et v ∗ ne sont pas sur le même<br />
chemin.<br />
Par l’absur<strong>de</strong>, supposons que v soit avant v ∗ sur un chemin K. Par l’affirmation<br />
2, le sommet v appartient à un chemin Kv. Toujours par cette<br />
affirmation, le sommet v∗ appartient à un chemin Kv∗ <strong>de</strong> longueur χ(G′ ) +<br />
Cl(v∗ ) − Cr(v∗ ) et v∗ est <strong>de</strong> rang Cl(v∗ ) <strong>dans</strong> Kv∗. De plus, Kv∗ est <strong>de</strong> longueur<br />
maximale.<br />
Comme <strong>dans</strong> la preuve <strong>de</strong> l’affirmation 1, on définit un nouveau chemin en<br />
13
<strong>co</strong>ncaténant <strong>les</strong> éléments <strong>de</strong> Kv précédant v, <strong>les</strong> sommets v et v∗ , ainsi que <strong>les</strong><br />
sommets <strong>de</strong> Kv∗ suivant v∗ . Ce chemin sera alors plus long que Kv∗, d’où la<br />
<strong>co</strong>ntradiction. Ainsi, v et v ∗ ne sont pas sur le même chemin et la <strong>co</strong>loration<br />
est admissible.<br />
Le cas v ∗ précédant v se traite <strong>de</strong> manière similaire.<br />
Les affirmations 1 à 3 nous assurent une <strong>co</strong>loration admissible du graphe<br />
<strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité. Il faut en<strong>co</strong>re voir que ρ = n<br />
2 .<br />
Affirmation 4. Toute chaîne <strong>de</strong> n sommets est le <strong>co</strong>mplément d’un graphe<br />
<strong>de</strong> <strong>co</strong>mparabilité.<br />
Démonstration. Soit une chaîne <strong>de</strong> n sommets. Prenons son graphe <strong>co</strong>mplémentaire<br />
(non-orienté, pour l’instant). On remarque que :<br />
– le sommet {1} est relié à n − 2 autres sommets (tous sauf le {2} et<br />
lui-même);<br />
– <strong>les</strong> sommets {k} avec k ∈ {2, . . ., n − 1} sont reliés à n − 3 autres<br />
sommets (tous sauf {k − 1}, {k + 1} et lui-même);<br />
– le sommet {n} est relié à n − 2 autres sommets (tous sauf {n − 1} et<br />
lui-même).<br />
Nous orientons le graphe <strong>de</strong> la manière suivante :<br />
∀ (a, b) ∈ E,<br />
si a < b, alors orienter l’arête <strong>de</strong> la sorte : a → b<br />
si a > b, alors orienter l’arête <strong>de</strong> la sorte : b → a<br />
Montrons que ce graphe fraîchement orienté forme un graphe <strong>de</strong> <strong>co</strong>mparabilité.<br />
Pour ce faire, nous allons montrer que si l’arc (a, b) et l’arc (b, c) sont<br />
<strong>dans</strong> le graphe, alors l’arc (a, c) y est aussi.<br />
Soient {k}, {i}, {j} trois sommets tels que k, i, j ∈ {1, . . .,n} et k <<br />
i < j. Supposons en<strong>co</strong>re que (k, i) et (i, j) sont <strong>dans</strong> le graphe. Le sommet<br />
{k} est, grâce à l’orientation, relié à tous <strong>les</strong> sommets α tels que α > k + 1.<br />
Donc i > k + 1. Par le même argument, j > i + 1. Nous en tirons donc que<br />
j > i + 1 > k + 2 > k + 1. Donc (k, j) est <strong>dans</strong> le graphe.<br />
Comme k, i, j étaient arbitraires, tout triplet <strong>de</strong> sommets du graphe vérifie<br />
la propriété d’orientation transitive. C’est un graphe <strong>de</strong> <strong>co</strong>mparabilité.<br />
Si on donne à OcCC une chaîne <strong>de</strong> longueur n (qui est un graphe <strong>de</strong><br />
<strong>co</strong>-<strong>co</strong>mparabilité, d’après l’affirmation 4), il va nous donner n <strong>co</strong>uleurs. L’op-<br />
timum serait <strong>de</strong>ux <strong>co</strong>uleurs (alterner <strong>les</strong> <strong>co</strong>uleurs 1 et 2). Donc ρ ≥ n<br />
2 .<br />
S’il y a n sommets isolés, l’algorithme OcCC va utiliser une seule <strong>co</strong>uleur<br />
(ce qui est l’optimum). Au maximum, OcCC peut donner n <strong>co</strong>uleurs (une<br />
différente pour chaque sommet). De plus, dès qu’il y a un arc <strong>dans</strong> le graphe,<br />
l’optimum est au moins à <strong>de</strong>ux <strong>co</strong>uleurs. Donc ρ ≤ n<br />
2 .<br />
et le théorème est démontré.<br />
Finalement, ρ = n<br />
2<br />
14
Illustration<br />
Nous donnons ici une instance pour laquelle OcCC atteint sa borne. L’algorithme<br />
va trouver 4 <strong>co</strong>uleurs pour le graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité, alors que<br />
l’optimum est 2.<br />
1<br />
4<br />
12<br />
1<br />
2<br />
12<br />
3<br />
1<br />
4<br />
1234<br />
1<br />
2<br />
234<br />
Graphe <strong>de</strong> <strong>co</strong>mparabilité Graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité<br />
Fig. 6 – Présentation du plus mauvais cas pour l’algorithme OcCC.<br />
Remarque 1. L’algorithme OcCC atteint sa borne pour n’importe quelle<br />
chaîne <strong>de</strong> longueur n.<br />
<strong>Coloration</strong> <strong>de</strong> l’exemple fil rouge<br />
Nous allons appliquer l’algorithme OcCC à l’exemple fil rouge. La figure<br />
ci-après (Fig. 7) montre le résultat du passage <strong>de</strong> l’exemple fil rouge <strong>dans</strong><br />
l’algorithme OcCC. Il en ressort une 3-<strong>co</strong>loration du graphe.<br />
3<br />
4<br />
3<br />
6<br />
5<br />
23<br />
4<br />
123<br />
1<br />
2<br />
23<br />
3<br />
3<br />
123<br />
Fig. 7 – <strong>Coloration</strong> <strong>de</strong> l’exemple fil rouge par l’algorithme OcCC.<br />
15<br />
34
4.3 <strong>Coloration</strong> par l’algorithme First Fit<br />
L’algorithme First Fit est un algorithme basique <strong>dans</strong> <strong>les</strong> problèmes <strong>de</strong><br />
<strong>co</strong>loration <strong>online</strong>. Son principe est simple : dès qu’un sommet arrive, il lui<br />
attribue la <strong>co</strong>uleur la plus petite possible. Nous allons restreindre notre étu<strong>de</strong><br />
aux <strong>graphes</strong> <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité bipartis.<br />
Rapport <strong>de</strong> <strong>co</strong>mpétitivité <strong>de</strong> First Fit<br />
Théorème 4. Soit n le nombre <strong>de</strong> sommets d’un graphe G.<br />
Dans <strong>les</strong> <strong>graphes</strong> <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité bipartis, First Fit a un rapport <strong>de</strong><br />
<strong>co</strong>mpétitivité <strong>de</strong> O( √ n).<br />
Démonstration. Par Online Coloring of Comparability Graphs : some results<br />
[3], nous savons que <strong>dans</strong> <strong>les</strong> <strong>graphes</strong> <strong>de</strong> permutation bipartis, First<br />
Fit a un rapport <strong>de</strong> <strong>co</strong>mpétitivité <strong>de</strong> O( √ n). Comme un graphe <strong>de</strong> permutation<br />
est un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité, nous en déduisons que le rapport<br />
<strong>de</strong> <strong>co</strong>mpétitivité <strong>de</strong> First Fit <strong>dans</strong> <strong>les</strong> <strong>graphes</strong> <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité bipartis,<br />
ρFF, est plus grand que O( √ n). De plus, nous savons que <strong>dans</strong> <strong>les</strong> <strong>graphes</strong><br />
généraux, First Fit a un rapport <strong>de</strong> n 1<br />
+ . Ainsi, nous pouvons donner <strong>de</strong>ux<br />
4 2<br />
bornes pour le rapport <strong>de</strong> <strong>co</strong>mpétitivité <strong>de</strong> First Fit <strong>dans</strong> <strong>les</strong> <strong>graphes</strong> <strong>de</strong><br />
<strong>co</strong>-<strong>co</strong>mparabilité :<br />
O √ n ≤ ρFF ≤ n 1<br />
+ (1)<br />
4 2<br />
Nous allons maintenant essayer <strong>de</strong> restreindre cet intervalle. Nous allons<br />
abaisser la borne supérieure. Pour ce faire, nous <strong>de</strong>vons trouver le nombre<br />
minimum <strong>de</strong> sommets n qu’il faut pour forcer la ke <strong>co</strong>uleur.<br />
Remarquons que le graphe <strong>de</strong> la figure 8 (page 17) est un sous-graphe<br />
interdit. En effet, le <strong>co</strong>mplément <strong>de</strong> ce graphe n’est pas un graphe <strong>de</strong> <strong>co</strong>mparabilité.<br />
Il faudrait ajouter <strong>les</strong> arcs qui sont en traitillés. Nous pouvons en<br />
déduire que si un graphe <strong>co</strong>ntient ce sous-graphe interdit, il ne sera pas un<br />
graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
Nous cherchons à remédier à ce problème. Nous allons ajouter un sommet<br />
<strong>de</strong> <strong>co</strong>uleur 1 (Fig. 9). Le <strong>co</strong>mplément du graphe <strong>de</strong>vient un graphe <strong>de</strong><br />
<strong>co</strong>mparabilité et donc le graphe un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
Nous déduisons <strong>de</strong> ceci que pour forcer First Fit à ajouter la <strong>co</strong>uleur<br />
3 et que le graphe reste un graphe <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité, il faut ajouter un<br />
sommet <strong>de</strong> <strong>co</strong>uleur 1. Remarquons que l’on pourrait aussi ajouter un sommet<br />
<strong>de</strong> <strong>co</strong>uleur 2, cela reviendrait au même. Forçons maintenant l’algorithme à<br />
ajouter la <strong>co</strong>uleur 4. En regardant <strong>les</strong> <strong>co</strong>uleurs 4-3-2, on remarque qu’il y a un<br />
sous-graphe interdit (Fig. 10). Il faudra donc ajouter un troisième sommet<br />
<strong>de</strong> <strong>co</strong>uleur 2.<br />
16
3<br />
2<br />
1<br />
Ce n’est pas un graphe<br />
<strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
3<br />
2<br />
1<br />
3<br />
2<br />
1<br />
Fig. 8 – Sous-graphe interdit<br />
3<br />
2<br />
1<br />
1<br />
C’est un graphe<br />
<strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité.<br />
3<br />
2<br />
1<br />
Ce n’est pas un graphe<br />
<strong>de</strong> <strong>co</strong>mparabilité.<br />
3<br />
2<br />
1<br />
3<br />
2<br />
1<br />
3<br />
2<br />
1<br />
1<br />
C’est un graphe<br />
<strong>de</strong> <strong>co</strong>mparabilité.<br />
Fig. 9 – Solution pour avoir un graphe <strong>de</strong> <strong>co</strong>mparabilité<br />
17
4<br />
3<br />
2<br />
1<br />
4<br />
3<br />
2<br />
1<br />
1<br />
En noir, le<br />
sous-graphe interdit.<br />
4<br />
3<br />
2<br />
1<br />
Solution pour éviter<br />
ce sous-graphe interdit.<br />
Fig. 10 – Solution pour éviter le premier sous-graphe interdit.<br />
18<br />
4<br />
3<br />
2<br />
1<br />
1<br />
2
Cependant, l’ajout <strong>de</strong> ce sommet entraîne la formation d’un nouveau<br />
sous-graphe interdit, et il faut y remédier en ajoutant un sommet <strong>de</strong> <strong>co</strong>uleur<br />
1 (Fig. 11). Ainsi, pour forcer la <strong>co</strong>uleur 4, nous avons dû ajouter un sommet<br />
<strong>de</strong> <strong>co</strong>uleur 1 et un <strong>de</strong> <strong>co</strong>uleur 2.<br />
4<br />
3<br />
2<br />
1<br />
4<br />
3<br />
2<br />
1<br />
1<br />
2<br />
En noir, le<br />
sous-graphe interdit.<br />
4<br />
3<br />
2<br />
1<br />
1<br />
Solution pour éviter<br />
ce sous-graphe interdit.<br />
Fig. 11 – Solution pour éviter le <strong>de</strong>uxième sous-graphe interdit.<br />
Plus généralement, pour forcer First Fit à ajouter la <strong>co</strong>uleur k et que le<br />
graphe ne présente pas <strong>de</strong> sous-graphe interdit, il faut ajouter un sommet <strong>de</strong><br />
<strong>co</strong>uleur k − 2. De même, pour forcer la <strong>co</strong>uleur k − 1, il faudra ajouter un<br />
sommet <strong>de</strong> <strong>co</strong>uleur k −3; pour forcer la (k −2) e <strong>co</strong>uleur, ajouter un sommet<br />
<strong>de</strong> <strong>co</strong>uleur k−4; et ainsi <strong>de</strong> suite. Ensuite, <strong>co</strong>mme nous l’avons vu pour le cas<br />
k = 4, cela reforme <strong>de</strong>s sous-<strong>graphes</strong> interdits. Ainsi, pour chaque sommet<br />
ajouté, il faudra aussi ajouter <strong>de</strong>s sommets <strong>de</strong> <strong>co</strong>uleurs moindres.<br />
Nous aurons donc beau<strong>co</strong>up <strong>de</strong> sommets <strong>de</strong> <strong>co</strong>uleurs « petites » et peu<br />
<strong>de</strong> « gran<strong>de</strong>s » <strong>co</strong>uleurs. En fait, le nombre <strong>de</strong> sommet sera <strong>de</strong> l’ordre <strong>de</strong> k 2 .<br />
19<br />
4<br />
3<br />
2<br />
1<br />
1<br />
2
Ainsi, le nombre <strong>de</strong> <strong>co</strong>uleur est <strong>de</strong> l’ordre <strong>de</strong> √ n. D’où<br />
Finalement, <strong>de</strong> (1) et (2), nous déduisons que<br />
et la preuve est terminée.<br />
ρFF < O( √ n). (2)<br />
ρFF ∼ O( √ n)<br />
Comparaison avec l’algorithme OcCC<br />
Soit n le nombre <strong>de</strong> sommets d’un graphe G. Comme nous venons <strong>de</strong> le<br />
voir, l’algorithme First Fit a un rapport <strong>de</strong> <strong>co</strong>mpétitivité <strong>dans</strong> <strong>les</strong> <strong>graphes</strong><br />
<strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité <strong>de</strong> l’ordre <strong>de</strong> √ n. Le théorème 3 donne le rapport <strong>de</strong><br />
). Nous remarquons donc que<br />
<strong>co</strong>mpétitivité <strong>de</strong> OcCC (ρOcCC = n<br />
2<br />
ρFF ≤ ρOcCC pour n ≥ 2.<br />
Le but premier du rapport <strong>de</strong> <strong>co</strong>mpétitivité est <strong>de</strong> mesurer la performance<br />
<strong>de</strong>s algorithmes afin <strong>de</strong> <strong>les</strong> <strong>co</strong>mparer. Vu que le rapport <strong>de</strong> <strong>co</strong>mpétitivité <strong>de</strong><br />
First Fit est plus petit que celui <strong>de</strong> l’algorithme OcCC, nous pouvons affirmer<br />
que First Fit est meilleur qu’OcCC pour la <strong>co</strong>loration <strong>online</strong> <strong>de</strong> graphe <strong>de</strong><br />
<strong>co</strong>-<strong>co</strong>mparabilité bipartis.<br />
20
5 Conclusion<br />
Nous avons vu <strong>de</strong>ux métho<strong>de</strong>s différentes pour résoudre ce problème.<br />
L’algorithme OcCC n’est pas toujours efficace, puisque nous avons vu que<br />
lorsque <strong>les</strong> sommets arrivent sous forme <strong>de</strong> chaîne (ou qu’un sous-graphe du<br />
graphe à traiter est une chaîne). Nous trouvons un rapport <strong>de</strong> <strong>co</strong>mpétitivité<br />
<strong>de</strong> n,<br />
ce qui n’est pas bon du tout. Nous nous sommes ensuite intéressés<br />
2<br />
à un autre algorithme, First Fit. Cet algorithme est bien <strong>co</strong>nnu, car il est<br />
simple donc souvent utilisé. Cependant, cet algorithme n’est pas toujours<br />
excellent. Nous avons appliqué First Fit uniquement aux <strong>graphes</strong> <strong>de</strong> <strong>co</strong><strong>co</strong>mparabilité<br />
bipartis et trouvé un rapport <strong>de</strong> <strong>co</strong>mpétitivité bien meilleur<br />
que celui d’OcCC, <strong>de</strong> l’ordre <strong>de</strong> √ n. Nous en avons déduit que <strong>dans</strong> <strong>les</strong><br />
<strong>graphes</strong> <strong>de</strong> <strong>co</strong>-<strong>co</strong>mparabilité bipartis, OcCC était moins bon que First Fit.<br />
Le problème initial est donc partiellement résolu, puisque nous avons<br />
trouvé un moyen pour répartir <strong>les</strong> plaques sur nos chariots. Cependant, l’optimum<br />
n’est pas atteint. Il serait donc intéressant <strong>de</strong> poursuivre ce travail et<br />
trouver d’autres algorithmes qui permettent une <strong>co</strong>uverture par clique d’un<br />
graphe <strong>de</strong> <strong>co</strong>mparabilité (ou <strong>de</strong> manière équivalente une <strong>co</strong>uverture par stable<br />
<strong>de</strong> son <strong>co</strong>mplément), <strong>de</strong> calculer leur rapport <strong>de</strong> <strong>co</strong>mpétitivité et <strong>de</strong> <strong>les</strong> <strong>co</strong>mparer<br />
à First Fit, afin <strong>de</strong> trouver une meilleure solution et donc d’abaisser<br />
en<strong>co</strong>re plus <strong>les</strong> <strong>co</strong>ûts <strong>de</strong> production <strong>de</strong> ces plaques ou <strong>de</strong> montrer que <strong>dans</strong><br />
ce cas particulier First Fit est le meilleur.<br />
21
Références<br />
[1] Susanne Albers. Online Algorithms : A Survey. Mathematical Programming,<br />
2003.<br />
[2] Martin Char<strong>les</strong> Golumbic. Algorithmic Graph Theory and Perfect<br />
Graphs. North Holland (Amsterdam), 2004.<br />
[3] Marc Demange & Benjamin Leroy-Beaulieu. Online <strong>co</strong>loring of <strong>co</strong>mparability<br />
graphs : some results. April 2007.<br />
22