0% ont trouvé ce document utile (0 vote)
87 vues23 pages

Application de l'algorithme Welsh-Powell

Ce projet de fin d'études explore la coloration de graphes pour résoudre le problème de répartition de poissons dans des aquariums, en tenant compte de leurs compatibilités. Les poissons sont modélisés comme des sommets d'un graphe, et des algorithmes de coloration sont appliqués pour déterminer le nombre minimal d'aquariums nécessaires. L'algorithme de Welsh-Powell est utilisé pour optimiser cette solution.

Transféré par

mezianeyasmine258
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
87 vues23 pages

Application de l'algorithme Welsh-Powell

Ce projet de fin d'études explore la coloration de graphes pour résoudre le problème de répartition de poissons dans des aquariums, en tenant compte de leurs compatibilités. Les poissons sont modélisés comme des sommets d'un graphe, et des algorithmes de coloration sont appliqués pour déterminer le nombre minimal d'aquariums nécessaires. L'algorithme de Welsh-Powell est utilisé pour optimiser cette solution.

Transféré par

mezianeyasmine258
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

République Algérienne Démocratique et Populaire

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique


Université des Sciences et de la Technologie Houari Boumediene
Faculté des Mathématiques
Département de Recherche Opérationnelle

TP Projet du module

Coloration de Graphe et Application

Réalisé par :
Présenté à :
MEZIANE Yasmine
Mme.ISSAADI Hayat
Saidani Sara
TABLE DES MATIÈRES

1 Introduction 4

2 Théorie des Graphes et Coloration 5


2.1 Introduction aux Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Définition de la Coloration de Graphes . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.1 Nombre Chromatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2.2 Problème de Coloration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 Types de Graphes et Coloration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.1 Graphes Parfaits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.2 Graphes d’Intervalles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3.3 Graphes de Comparabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4 Algorithmes de Coloration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5 Applications de la Coloration de Graphes . . . . . . . . . . . . . . . . . . . . . . . . 7

3 Modélisation du Problème 8
3.1 Modélisation du Problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1 Définition du Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.2 Construction du Graphe G . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1.3 Graphe Complémentaire G . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1.4 Objectif de la Modélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Analyse du graphe complémentaire G′ obtenu . . . . . . . . . . . . . . . . . . . . . 10
3.2.1 Classification du Graphe Complémentaire G′ . . . . . . . . . . . . . . . . . . 10

4 Les Graphes de Comparabilité 12


4.1 Définition d’un Graphe de Comparabilité . . . . . . . . . . . . . . . . . . . . . . . . 12
4.2 Propriétés Structurelles d’un Graphe de Comparabilité . . . . . . . . . . . . . . . . 12

2
TABLE DES MATIÈRES 3

4.3 Problème de Coloration des Graphes de Comparabilité . . . . . . . . . . . . . . . . 13


4.4 Propriétés Algorithmique des Graphes de Comparabilité . . . . . . . . . . . . . . . 13
4.5 Complexité Algorithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.6 Exemple d’application : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5 Application de l’Algorithme de Coloration au Problème du Nombre Minimum


d’Aquariums 15
5.1 Détermination de l’Ordre des Sommets à l’aide du Graphe d’Intervalle . . . . . . . . 15
5.2 Application de l’Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

6 Implémentation de la méthode Welsh-Powell 19


6.1 Code Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
6.2 Resultat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

7 Conclusion 23
CHAPITRE 1
INTRODUCTION

Ce projet de fin d’études aborde un problème de coloration de graphes appliqué à la


répartition de poissons dans des aquariums. Deux dentistes souhaitent installer plusieurs
aquariums dans leur salle d’attente commune, mais certaines contraintes (poissons carnivores,
besoins en eau froide) imposent de séparer les poissons incompatibles. L’objectif est donc de
déterminer le nombre minimal d’aquariums nécessaires.
Nous modéliserons ce problème sous forme de graphe, où chaque poisson est un sommet
et chaque relation de compatibilité entre poissons est une arête. Ensuite, nous utiliserons des
algorithmes de coloration de graphes pour attribuer une couleur (représentant un aquarium)
à chaque sommet, de sorte que deux sommets reliés par une arête n’aient pas la même couleur.
Ce projet permet de résoudre un problème concret, tout en illustrant l’application de concepts
de recherche opérationnelle et de théorie des graphes dans des contextes pratiques tels que
la planification et la gestion de ressources.
Les étapes du projet sont les suivantes :
— Modélisation du problème sous forme de graphe,
— Étude des propriétés du graphe,
— Application des algorithmes de coloration pour déterminer le nombre d’aquariums nécessaires,
— Implémentation de la solution en Python.
L’algorithme de Welsh-Powell sera utilisé pour minimiser le nombre de couleurs nécessaires
et répondre à la question : combien d’aquariums sont nécessaires pour garantir la cohabitation sûre
des poissons ?

4
CHAPITRE 2

THÉORIE DES GRAPHES ET COLORATION

2.1 Introduction aux Graphes


Un graphe est une structure mathématique composée de deux ensembles :
— Un ensemble V de sommet(s) (ou nœuds),
— Un ensemble E d’arête(s) qui relient les sommets.
Formellement, un graphe est défini par G = (V, E), où V est l’ensemble des sommets et E ⊆ V × V
est l’ensemble des arêtes. Les graphes sont utilisés pour modéliser des relations ou des interactions
entre objets.
Les graphes peuvent être classés en plusieurs catégories :
— Graphes simples : graphe sans boucles (arête connectant un sommet à lui-même) ni arêtes
multiples.
— Graphes orientés : les arêtes ont une direction (de u vers v).
— Graphes non orientés : les arêtes ne possèdent pas de direction.

2.2 Définition de la Coloration de Graphes


La coloration d’un graphe est une manière d’attribuer des couleurs à ses sommets de sorte
que deux sommets adjacents (reliés par une arête) n’aient pas la même couleur. Ce concept est
utilisé dans divers problèmes de planification et d’allocation de ressources.

2.2.1 Nombre Chromatique


Le nombre chromatique d’un graphe, noté χ(G), est le nombre minimum de couleurs nécessaires
pour colorer le graphe. Plus formellement, si G = (V, E) est un graphe, χ(G) est le plus petit entier

5
6 CHAPITRE 2. THÉORIE DES GRAPHES ET COLORATION

tel qu’il existe une fonction de coloration f : V → 1, 2, ..., χ(G) où f (u) ̸= f (v) pour toute arête
(u, v) ∈ E.

2.2.2 Problème de Coloration


Le problème de coloration est un problème d’optimisation combinatoire qui consiste à minimiser
le nombre de couleurs nécessaires pour colorer un graphe tout en respectant la contrainte de
voisinage. Ce problème est NP-difficile en général, mais certains types de graphes, comme les
graphes bipartis ou les arbres, sont plus faciles à colorer et ont des solutions polynomiales.
Cet algorithme ne garantit pas toujours une solution optimale, mais dans la plupart des cas, il
donne une bonne approximation du nombre chromatique.

2.3 Types de Graphes et Coloration


Certains types de graphes ont des propriétés spécifiques qui rendent le problème de la coloration
plus simple ou plus complexe.

2.3.1 Graphes Parfaits


Un graphe parfait est un graphe dans lequel, pour chaque sous-graphe induit, le nombre
chromatique est égal à la taille de la plus grande clique de ce sous-graphe. Autrement dit, un
graphe parfait ne contient pas de cycle impair sans corde (un cycle sans arête supplémentaire
reliant des sommets non consécutifs dans le cycle) parmi ses sous-graphes induits.
Les graphes parfaits sont particulièrement intéressants en théorie des graphes car ils simplifient
le problème de la coloration. Si un graphe est parfait, il est possible de déterminer une coloration
optimale en utilisant la taille de la plus grande clique comme référence pour le nombre chromatique.

2.3.2 Graphes d’Intervalles


Les graphes d’intervalles sont des graphes où chaque sommet peut être associé à un intervalle
réel et où une arête relie deux sommets si et seulement si leurs intervalles se chevauchent.

2.3.3 Graphes de Comparabilité


Un graphe simple G = (X, E) est appelé un graphe de comparabilité s’il est possible, en
orientant les arêtes, d’en faire le graphe G = (X, U ) d’une relation d’ordre, c’est-à-dire avec les
propriétés suivantes :
— Transitivité : Si (x, y) ∈ U et (y, z) ∈ U , alors (x, z) ∈ U .
— Antisymétrie : Si (x, y) ∈ U , alors (y, x) ∈ U .
2.4. ALGORITHMES DE COLORATION 7

2.4 Algorithmes de Coloration


Il existe plusieurs algorithmes pour résoudre le problème de la coloration des graphes. Parmi
eux, l’algorithme de Welsh-Powell est l’un des plus connus pour colorer efficacement un graphe
tout en minimisant le nombre de couleurs.

2.5 Applications de la Coloration de Graphes


La coloration de graphes a de nombreuses applications dans des domaines variés, tels que :
— Planification de tâches : attribuer des tâches à des ressources de manière à éviter les
conflits (par exemple, la planification d’examens où chaque couleur représente une plage
horaire).
— Gestion des fréquences radio : assigner des fréquences à des émetteurs radio pour éviter
les interférences.
— Coloration de cartes : colorier les régions d’une carte avec un minimum de couleurs, de
manière à ce que deux régions adjacentes n’aient pas la même couleur.
CHAPITRE 3

MODÉLISATION DU PROBLÈME

3.1 Modélisation du Problème


3.1.1 Définition du Contexte
Deux dentistes souhaitent installer plusieurs poissons exotiques dans la salle d’attente qu’ils
partagent. Cependant, certaines caractéristiques des poissons imposent des contraintes de cohabi-
tation : certains poissons sont carnivores et d’autres nécessitent une eau froide pour survivre. Afin
de garantir la sécurité et le bien-être de tous les poissons, il est nécessaire de déterminer le nombre
minimal d’aquariums nécessaires pour regrouper les poissons compatibles.
Les poissons sont nommés F1 , F2 , . . . , F9 , et les relations de compatibilité (possibilité de coha-
bitation dans le même aquarium) sont établies comme suit :
— F1 peut être avec : F2 , F3 , F4 , F5 , F6 , F8
— F2 peut être avec : F1 , F3 , F6 , F7
— F3 peut être avec : F1 , F2 , F6 , F7
— F4 peut être avec : F1 , F5 , F8 , F9
— F5 peut être avec : F1 , F4 , F8 , F9
— F6 peut être avec : F1 , F2 , F3 , F7
— F7 peut être avec : F2 , F3 , F6
— F8 peut être avec : F1 , F4 , F5 , F9
— F9 peut être avec : F4 , F5 , F8

3.1.2 Construction du Graphe G


Pour modéliser ce problème, nous utilisons un graphe G, où :

8
3.1. MODÉLISATION DU PROBLÈME 9

— chaque sommet représente un poisson (F1 à F9 ),

— une arête entre deux sommets indique que les poissons correspondants peuvent être placés
ensemble dans un même aquarium.

Ainsi, la structure de G montre les compatibilités entre poissons et fournit un modèle visuel de
leurs relations de cohabitation.

3.1.3 Graphe Complémentaire G′


Afin de déterminer le nombre minimum d’aquariums nécessaires, nous considérons le graphe
complémentaire G′ de G. Dans G′ :

— deux sommets sont adjacents s’ils ne peuvent pas être placés dans le même aquarium,

— la coloration des sommets de G′ correspondra au nombre minimum de groupes (aquariums)


nécessaires pour séparer les poissons incompatibles.

F3 F4 F6

F2 F5

F1

F7

F9 F8

Figure 3.1 – Graphe complémentaire G′ des relations de cohabitation entre poissons.

3.1.4 Objectif de la Modélisation


L’objectif de cette modélisation est de trouver le nombre minimum d’aquariums requis pour
contenir tous les poissons en respectant leurs contraintes de cohabitation. Ce problème revient à
déterminer le nombre chromatique du graphe complémentaire G′ , c’est-à-dire le minimum de
couleurs nécessaires pour colorier les sommets de G′ de sorte que deux sommets adjacents aient
des couleurs différentes.
10 CHAPITRE 3. MODÉLISATION DU PROBLÈME

3.2 Analyse du graphe complémentaire G′ obtenu


Après avoir représenté le graphe complémentaire G′ , nous allons l’analyser en détail. Cette
analyse jouera un rôle clé pour déterminer le nombre minimal d’aquariums nécessaires pour séparer
les poissons, en exploitant les propriétés structurelles du graphe.

3.2.1 Classification du Graphe Complémentaire G′

G′ est un graphe de comparabilité.

Preuve 1. Nous avons G comme étant un graphe d’intervalle. Par définition, un graphe d’inter-
valle est un graphe dont les arêtes peuvent être associées à des intervalles sur une droite réelle.
Autrement dit, il est possible de trouver une représentation géométrique de G dans laquelle chaque
sommet est représenté par un intervalle, et deux sommets sont adjacents si et seulement si leurs
intervalles se chevauchent. Pour cela, nous allons présenter le graphe G sous forme d’un graphe
d’intervalle.

F2 F4

F3 F1 F5

F7 F6 F8 F9

F1
F6 F4
F3 F8
F2 F5
F7 F9

1 2 3 4 5 6 7 8 9 10 11 12 13
3.2. ANALYSE DU GRAPHE COMPLÉMENTAIRE G′ OBTENU 11

Donc, on a bien conclu que G est un graphe d’intervalle. De plus, selon le théorème suivant :

Théorème 1. Le complémentaire d’un graphe d’intervalle est un graphe de comparabilité.

Ainsi, le complémentaire de G, noté G′ , est un graphe de comparabilité.

Preuve 2. Pour prouver que G′ est un graphe de comparabilité, nous montrons qu’il admet une
orientation transitive. Une orientation transitive est une orientation des arêtes de G′ telle que si
u → v et v → w, alors u → w.

F3 F4 F6

F2 F5

F1

F7

F9 F8

Figure 3.2 – Graphe complémentaire orienté G′

Ainsi, l’existence d’une orientation transitive prouve que G′ est un graphe de comparabilité,
car un graphe est un graphe de comparabilité si et seulement s’il admet une orientation transitive.
CHAPITRE 4

LES GRAPHES DE COMPARABILITÉ

Les graphes de comparabilité sont une classe particulière de graphes qui possèdent des pro-
priétés structurelles et algorithmiques intéressantes, notamment en ce qui concerne les problèmes
de coloration. Ces graphes sont associés à des relations d’ordre partiel et peuvent être utilisés dans
des domaines tels que la planification, l’ordonnancement, et la gestion de bases de données.

4.1 Définition d’un Graphe de Comparabilité


Un graphe simple G = (V, E) est un graphe de comparabilité s’il existe une orientation des
arêtes qui transforme ce graphe en un graphe d’une relation d’ordre partiel ≤, c’est-à-dire que
pour tous u, v, w ∈ V , les relations suivantes sont satisfaites :

— Transitivité : Si u ≤ v et v ≤ w, alors u ≤ w,
— Antisymétrie : Si u ≤ v et v ≤ u, alors u = v.

4.2 Propriétés Structurelles d’un Graphe de Comparabi-


lité
Les graphes de comparabilité possèdent plusieurs propriétés structurelles importantes :

— Transitivité : Si (x, y) ∈ U et (y, z) ∈ U , alors (x, z) ∈ U . Cette propriété implique qu’une


relation de comparabilité est transitive, c’est-à-dire que si x est comparable à y, et y est
comparable à z, alors x est également comparable à z.
— Antisémitrie : Si (x, y) ∈ U , alors (y, x) ∈
/ U . Cela signifie qu’aucune paire de sommets ne
peut être à la fois comparable dans les deux sens (une relation d’ordre strict).

12
4.3. PROBLÈME DE COLORATION DES GRAPHES DE COMPARABILITÉ 13

— Connexité : Un graphe de comparabilité est toujours un graphe transitif orienté, ce qui


garantit l’existence d’une relation d’ordre total sur l’ensemble des sommets, lorsqu’il est
possible de comparer tous les éléments entre eux.

4.3 Problème de Coloration des Graphes de Comparabilité


Les graphes de comparabilité, étant des graphes parfaits, peuvent être coloriés avec un nombre
chromatique égal à la taille de leur plus grande clique. Autrement dit, le nombre chromatique
d’un graphe de comparabilité est exactement la taille de la plus grande clique qu’il contient. Cette
propriété découle directement de la perfection du graphe et simplifie la résolution du problème de
coloration.
Ainsi, la structure parfaite des graphes de comparabilité permet d’affirmer qu’ils peuvent être
coloriés de manière optimale, ce qui est un avantage majeur pour leur traitement algorithmique.

4.4 Propriétés Algorithmique des Graphes de Comparabi-


lité
Étant donné qu’un graphe de comparabilité peut être ordonné de manière transitive, un algo-
rithme de coloration gloutonne peut être appliqué efficacement. L’algorithme suivant repose sur
une orientation transitive des sommets :

1. Déterminer une orientation transitive des sommets : Trouver un ordre total v1 <
v2 < · · · < vn des sommets du graphe tel que cette orientation soit transitive.
2. Coloration gloutonne : À partir de l’ordre v1 < v2 < · · · < vn , colorier les sommets en
partant de vn et en avançant vers v1 , en attribuant à chaque sommet le plus petit numéro
de couleur possible, tout en évitant les couleurs des voisins déjà colorés.

Cet algorithme est efficient pour les graphes de comparabilité, car la structure ordonnée permet
d’appliquer un algorithme glouton en temps linéaire.

4.5 Complexité Algorithmique


La coloration des graphes de comparabilité peut être réalisée en temps linéaire par rapport au
nombre de sommets, grâce à la représentation par intervalles et l’ordre transitive. Cependant, dans
le cas général de la coloration des graphes, la complexité peut être NP-difficile. Pour les graphes de
comparabilité et leurs sous-classes (comme les graphes d’intervalles), des algorithmes de coloration
efficaces existent.
14 CHAPITRE 4. LES GRAPHES DE COMPARABILITÉ

4.6 Exemple d’application :


Les graphes de comparabilité sont couramment utilisés dans des applications telles que la
gestion des tâches (ordonnancement), la planification et la classification. Ils sont également utiles
pour modéliser des relations d’équivalence dans des bases de données ou des systèmes de gestion
de connaissances.

4.7 Conclusion
Les graphes de comparabilité sont une classe de graphes très étudiée grâce à leurs propriétés
structurelles et algorithmiques. Leur capacité à être coloriés efficacement avec un algorithme glou-
ton basé sur une orientation transitive les rend utiles dans de nombreux domaines comme la gestion
de bases de données et l’ordonnancement. Leur étude continue de fournir des outils puissants pour
résoudre des problèmes complexes dans ces domaines.
CHAPITRE 5

APPLICATION DE L’ALGORITHME DE COLORATION AU


PROBLÈME DU NOMBRE MINIMUM D’AQUARIUMS

Le problème du nombre minimum d’aquariums nécessaires peut être modélisé comme un


problème de coloration de graphe. Chaque aquarium est représenté par une couleur, et chaque
poisson correspond à un sommet du graphe. L’objectif est de déterminer le nombre minimal de
couleurs nécessaires pour satisfaire les contraintes de compatibilité entre les poissons et les aqua-
riums.

Dans ce chapitre, nous appliquons l’algorithme glouton pour résoudre le problème de coloration
du graphe G. Pour ce faire, nous devons d’abord déterminer un ordre des sommets, ce qui sera fait
en utilisant le graphe d’intervalle que nous avons présenté dans les chapitres précédents.

5.1 Détermination de l’Ordre des Sommets à l’aide du


Graphe d’Intervalle

Le graphe d’intervalle G, construit dans les chapitres précédents, nous permet de déterminer un
ordre pour les sommets. En suivant les flèches de l’axe, nous obtenons l’ordre suivant des sommets :

F7 , < F2 , < F3 , < F6 , <, F1 , < F5 , < F4 < F8 <, F9

Cet ordre des sommets est crucial pour appliquer l’algorithme de manière efficace.

15
16CHAPITRE 5. APPLICATION DE L’ALGORITHME DE COLORATION AU PROBLÈME DU NOMBRE

5.2 Application de l’Algorithme


Entrée : Un ordre des sommets

F7 , < F2 , < F3 , < F6 , <, F1 , < F5 , < F4 < F8 <, F9

Sortie : Une coloration du graphe suivant l’ordre inverse des sommets.

colorier les sommets selon l’ordre inverse .en utilisant pour chaque sommet le plus petit numéro
de couleurs possible.

F3 F4

F6
iteration 1 : Nous commençons par colorier F2 F5

le sommet F7 avec la plus petite couleur dispo- F1


F7
nible = 1 (1 = rouge).

F9 F8

F3 F4

F6
iteration 2 : Nous suivons l’ordre, donc on as- F2 F5
socie la plus petite couleur disponible au som-
F1
met F8 = 1 (aucun de ses voisins n’a la couleur F7
1).

F9 F8

F3 F4

F6
F2 F5
iteration 3 : On associe la plus petite couleur
F1
disponible au sommet F4 = 1 . F7

F9 F8

F3 F4

F6
iteration 4 : On associe la plus petite couleur F2 F5

disponible au sommet F5 = 1 (aucun voisins a F1


F7
la couleur 1 ). (1=rouge)

F9 F8
5.2. APPLICATION DE L’ALGORITHME 17

F3 F4

iteration 5 : On associe la plus petite couleur F6


F2 F5
disponible au sommet F1 = 2 (aucun voisins a
F1
la couleur 2,mais il a des voisins qu’il ont la F7

couleur 1 ). (2=jaune)
F9 F8

F3 F4

F6
iteration 6 : On associe la plus petite couleur F2 F5

disponible au sommet F6 = 2 (aucun voisins a F1


F7
la couleur 2 ). (2=jaune)

F9 F8

F3 F4

F6
iteration 7 : On associe la plus petite couleur F2 F5

disponible au sommet F3 = 2 (aucun voisins a F1


F7
la couleur 2 ). (2=jaune)

F9 F8

F3 F4

F6
iteration 8 : On associe la plus petite couleur F2 F5

disponible au sommet F2 = 1 (aucun voisins a F1


F7
la couleur 1 ). (1=Rouge)

F9 F8

F3 F4

iteration 9 : On associe la plus petite cou- F6


F2 F5
leur disponible au sommet F7 = 1 (les couleurs
F1
1 et 2 sont deja utilisee dans son voisinage ). F7

(3=orange)
F9 F8

L’algorithme glouton a colorié le graphe avec 3 couleurs =⇒ Le nombre minimum d’aqua-


riums nécessaires est 3.
18CHAPITRE 5. APPLICATION DE L’ALGORITHME DE COLORATION AU PROBLÈME DU NOMBRE

Conclusion
L’algorithme glouton nous a fourni une solution : 3 couleurs suffisent pour colorier le graphe G′ .
Cela signifie que nous aurons besoin de 3 aquariums pour regrouper les poissons exotiques dans
la salle d’attente des deux dentistes. Cette solution garantit la compatibilité entre les poissons
en respectant les contraintes de cohabitation liées à leurs caractéristiques, telles que le caractère
carnivore de certains poissons ou la nécessité d’une eau froide pour d’autres.
CHAPITRE 6

IMPLÉMENTATION DE LA MÉTHODE WELSH-POWELL

Dans ce chapitre, nous allons implémenter la méthode de Welsh-Powell appliquée à un problème


de coloration de graphe. Cette méthode est une heuristique qui permet d’obtenir une solution
approchée au problème de la coloration.
L’algorithme de Welsh-Powell consiste à colorer un graphe en visitant les sommets par ordre
décroissant de leurs degrés. L’idée sous-jacente est que les sommets ayant le plus de voisins sont
généralement plus complexes à colorer et doivent être traités en priorité. Toutefois, il est important
de noter que cette méthode ne garantit pas d’utiliser le nombre minimal de couleurs (égal au nombre
chromatique).

Algorithme 1 : Algorithme Welsh-Powell


Require: Graphe G = (V, E) avec V l’ensemble des sommets et E l’ensemble des arêtes
Ensure: Une coloration des sommets du graphe
0: Trier les sommets V dans l’ordre décroissant de leurs degrés
0: Initialiser la liste des couleurs C = {} et un tableau color[v] ← −1 pour tous les sommets
v ∈ V forall v ∈ V (dans l’ordre trié) do
end
color[v] = −1
0: Ajouter une nouvelle couleur c ∈ C et définir color[v] ← c forall u ∈ V (dans l’ordre trié) do
end
color[u] = −1 et u n’est pas adjacent à un sommet déjà coloré avec c
0: color[u] ← c
0:
0:
0:
0:
0: return color =0

19
20 CHAPITRE 6. IMPLÉMENTATION DE LA MÉTHODE WELSH-POWELL

Langage utilisé
Pour cette implémentation, nous avons utilisé le langage Python, qui est bien adapté pour
manipuler des structures de données telles que les graphes

Figure 6.1 – Python

6.1 Code Python


Voici le code Python correspondant :
1 import networkx as nx
2 import matplotlib . pyplot as plt
3

4 def w e l s h _ p o w e l l _ f r o m _ a d j a c e n c y _ m a t r i x ( adj_matrix ) :
5 # Nombre de sommets
6 n = len ( adj_matrix )
7

8 # Calcul des d e g r s de chaque sommet


9 degrees = [ sum ( row ) for row in adj_matrix ]
10

11 # Trier les sommets par d e g r d c r o i s s a n t ( indices t r i s )


12 sorted_vertices = sorted ( range ( n ) , key = lambda x : degrees [ x ] , reverse = True )
13

14 # Initialiser la liste des couleurs


15 colors = [ -1] * n
16 current_color = 0
17

18 # Parcourir les sommets t r i s


19 for vertex in sorted_vertices :
20 if colors [ vertex ] == -1: # Si le sommet n ’ est pas encore c o l o r i
21 # Attribuer une nouvelle couleur
22 colors [ vertex ] = current_color
23

24 # Parcourir les autres sommets pour les colorier


25 for other_vertex in sorted_vertices :
26 if colors [ other_vertex ] == -1: # Si le sommet n ’ est pas
colori
27 # V r i f i e r qu ’ il n ’ est pas adjacent un sommet c o l o r
de la m m e couleur
6.1. CODE PYTHON 21

28 if all ( adj_matrix [ other_vertex ][ neighbor ] == 0 or


colors [ neighbor ] != current_color for neighbor in
range ( n ) ) :
29 colors [ other_vertex ] = current_color
30

31 # Passer une nouvelle couleur


32 current_color += 1
33

34 return colors , current_color


35

36 def dr aw _c ol or ed_ gr ap h ( adj_matrix , colors , labels ) :


37 # C r e r un graphe partir de la matrice d ’ adjacence
38 G = nx . Graph ()
39 n = len ( adj_matrix )
40 for i in range ( n ) :
41 for j in range ( i + 1 , n ) :
42 if adj_matrix [ i ][ j ] == 1:
43 G . add_edge ( labels [ i ] , labels [ j ]) # Utiliser les tiquettes
( F1 , F2 , ...) comme noms de sommets
44

45 # C r e r un dictionnaire pour mapper les sommets leurs couleurs


46 color_map = { labels [ i ]: colors [ i ] for i in range ( n ) }
47

48 # Attribuer une couleur unique chaque groupe de sommets c o l o r s


49 unique_colors = list ( set ( colors ) )
50 color_palette = plt . cm . get_cmap ( ’ tab10 ’ , len ( unique_colors ) )
51 node_colors = [ color_palette ( color_map [ node ]) for node in G . nodes () ]
52

53 # Dessiner le graphe
54 pos = nx . spring_layout ( G ) # Disposition des n u d s
55 nx . draw (G , pos , with_labels = True , node_color = node_colors , node_size =500 ,
font_color = ’ white ’ , font_weight = ’ bold ’)
56 plt . title ( " Graphe avec coloration ( Algorithme Welsh - Powell ) " )
57 plt . show ()
58

59 # Matrice d ’ adjacence
60 adj_matrix = [
61 [1 , 0 , 0 , 0 , 0 , 0 , 1, 0, 1] ,
62 [0 , 1 , 0 , 1 , 1 , 0 , 0, 1, 1] ,
63 [0 , 0 , 1 , 1 , 1 , 0 , 0, 1, 1] ,
64 [0 , 1 , 1 , 1 , 0 , 1 , 1, 0, 0] ,
65 [0 , 1 , 1 , 0 , 1 , 1 , 1, 0, 0] ,
66 [0 , 0 , 0 , 1 , 1 , 1 , 0, 1, 1] ,
67 [1 , 0 , 0 , 1 , 1 , 0 , 1, 1, 1] ,
68 [0 , 1 , 1 , 0 , 0 , 1 , 1, 1, 0] ,
22 CHAPITRE 6. IMPLÉMENTATION DE LA MÉTHODE WELSH-POWELL

69 [1 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 1]
70 ]
71

72 # tiquettes des sommets


73 labels = [ f " F { i +1} " for i in range ( len ( adj_matrix ) ) ]
74

75 # E x c u t i o n de l ’ algorithme
76 coloration , num_colors = w e l s h _ p o w e l l _ f r o m _ a d j a c e n c y _ m a t r i x ( adj_matrix )
77 print ( " Coloration des sommets : " , { labels [ i ]: coloration [ i ] for i in
range ( len ( labels ) ) })
78 print ( " Nombre de couleurs n c e s s a i r e s : " , num_colors )
79

80 # Visualisation du graphe
81 dr aw _c ol or ed _g ra ph ( adj_matrix , coloration , labels )

6.2 Resultat

Figure 6.2 – Graphe coloré avec l’algorithme Welsh-Powell

Conclusion
L’algorithme de Welsh-Powell a été utilisé pour colorier le graphe représentant les relations
de compatibilité entre les poissons F1 , F2 , . . . , F9 . Le résultat montre que 3 couleurs sont
nécessaires, ce qui correspond au nombre minimal d’aquariums permettant de regrouper les
poissons de manière compatible et optimale.
CHAPITRE 7
CONCLUSION

Ce TP avait pour objectif de modéliser et résoudre un problème pratique en utilisant des


concepts de coloration de graphes. En analysant le problème des deux dentistes cherchant à regrou-
per des poissons exotiques dans des aquariums tout en respectant leurs contraintes de cohabitation,
nous avons appliqué des outils théoriques et algorithmiques pour fournir une solution optimale.

— Modélisation du problème : Le problème a été représenté par un graphe où les poissons
sont les sommets et les relations de compatibilité entre les poissons forment les arêtes. Ce
graphe nous a permis de visualiser et d’analyser les contraintes de cohabitation entre les
poissons.
— Analyse structurelle : En étudiant le graphe obtenu, nous avons pu identifier la classe de
graphe correspondante et les résultats structurels associés. Nous avons également exploré les
algorithmes de coloration, en mettant l’accent sur l’algorithme de Welsh-Powell.
— Calcul du nombre d’aquariums nécessaires : Grâce à l’algorithme de Welsh-Powell,
nous avons pu déterminer le nombre minimal d’aquariums nécessaires pour regrouper les
poissons compatibles. L’algorithme a permis de colorier le graphe de manière optimale.
— Implémentation de l’algorithme Welsh-Powell : L’implémentation de cet algorithme
a montré l’efficacité de la méthode dans ce contexte pratique. Le nombre d’aquariums
nécessaires a été calculé de manière précise, fournissant ainsi une solution optimale à notre
problème.

En conclusion, ce travail a permis de comprendre et d’appliquer les principes de la théorie


des graphes dans un problème concret, en utilisant des techniques algorithmiques avancées pour
résoudre un problème de coloration et d’optimisation. La solution fournie est non seulement op-
timale mais également un excellent exemple de l’application des concepts théoriques dans des
situations réelles.

23

Vous aimerez peut-être aussi