Vous êtes sur la page 1sur 35

République Algérienne Démocratique et Populaire

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

Faculté de Mathématiques
Département de Recherche Opérationnelle

Colorations de Graphes et Applications

Problème de reconnaissance, classes des graphes et problème de


coloration

Travail présenté à Mme ISSAADI Hayat

Réalisé par:
KAOUANE Mohamed El Amine TIFAOUI Sarra Soumeya
16 16 31 06 43 27 17 17 31 07 31 01

M2 RO-2MIR

Janvier 2022
Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Contents

I Vocabulaires et concepts fondamentaux de la théorie des graphes 5

1 Notions de la théorie des graphes 5

1.1 Graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Sous-graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.3 Sous-graphe induit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.4 Sommets adjacents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.5 Voisinage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.6 Degré d’un sommet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.7 Graphe complémentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.8 Cycle, trou et corde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.9 Chaı̂ne minimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.10 Graphe simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.11 Connexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.12 Composante connexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.13 Clique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.14 Stable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.15 Sommets spéciaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.16 Graphe complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

II Problèmes de graphes 8

2 Algorithmes et notion de complexité 8

2.1 Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3 Les Classes de Complexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.1 La Classe P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

2.3.2 La classe NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.3 La classe NP-complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.3.4 La classe NP-difficile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.4 Paramètres classiques d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

KAOUANE Mohamed El Amine 1 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

3 Graphes et classes de graphes 10

3.1 Quelques classes de graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1.1 La classe des graphes parfaits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.1.2 Sous-classes particulières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.1.3 Quelques relations d’inclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

III Problèmes de reconnaissance 14

4 Reconnaissance des graphes de Berge 14

5 Graphe triangulé 14

5.1 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5.1.1 Ordre d’Elimination Simplicial PEO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.1.2 L’Algorithme de l’ordre d’elimination simplicial . . . . . . . . . . . . . . . . . . . . . . 15

5.1.3 Reconnaissance des graphes triangulés . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

IV Problème de coloration 17
5.2 Histoire du problème de la coloration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5.3 Coloration des sommets d’un graphe et nombre chromatique . . . . . . . . . . . . . . . . . . . 17

5.3.1 Algorithme Glouton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.4 Algorithme LexCOLOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.5 Algorithme avec échange Bichromatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.6 Algorithme avec échange Trichromatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.7 Coloration par contraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.8 Coloration des classes de graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.8.1 Graphes bipartis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

5.8.2 Graphes de comparabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5.9 Coloration propre d’arêtes et indice chromatique . . . . . . . . . . . . . . . . . . . . . . . . . 21

V Application 22
5.10 Langage utilisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

5.11 Reconnaissance des graphes triangulés en Python . . . . . . . . . . . . . . . . . . . . . . . . . 22

KAOUANE Mohamed El Amine 2 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

5.12 Application réelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.12.1 Minimiser le nombre de phases (périodes) des feux de circulation . . . . . . . . . . . . 26

5.12.2 Planification d’une formation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.12.3 Qui a tué le Duc de Densmore ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

VI Conclusion 32

KAOUANE Mohamed El Amine 3 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Introduction

Sans que l’on en soit toujours conscient, la Théorie des Graphes est aujourd’hui très présente dans notre
société moderne. Cette branche des mathématiques, qui est traditionnellement considéree comme née sous
la plume du mathématicien suisse Leonhard Euler en 1736, a connu une croissance exponentielle au cours
des cinquante dernières années, notamment grâce aux travaux de Claude Berge qui a grandement participé
à sa diffusion.

Pendant plus d’un siècle, le développements des plus spectaculaires de la théorie des graphes a été largement
inspiré et guidé par la Conjecture des Quatre Couleurs1 , le résultat fut conjecturé en 1852 par Francis
Guthrie, intéressé par la coloration de la carte des régions d’Angleterre, mais ne fût démontré qu’en 1976
par deux Américains Kenneth Appel et Wolfgang Haken. Ce fut la première fois que l’utilisation d’un
ordinateur a permis de conclure leur démonstration en étudiant les 1478 cas particulier auxquels ils ont ra-
mené le problème, bien que ce problème ait été résolu, il attire toujours de nombreux chercheurs, qui tentent
de le résoudre sans l’aide d’ordinateurs.
S’appuyant sur les fondations laissées par Claude Berge, Paul Erdos, Bill Tutte, et d’autres, une nou-
velle génération de théoriciens des graphes a enrichi et transformé le sujet en développant des nouvelles
techniques puissantes, beaucoup étant empruntées à d’autres domaines des mathématiques. Celles-ci ont
conduit, en particulier, à la résolution de plusieurs anciennes conjectures, notamment la Conjecture Forte
des Graphes Parfaits de Berge (devenue maintenant un théorème) et la Conjecture de Kneser, toutes deux
sur les colorations.
De nombreux problèmes peuvent être modélisés sous forme de problème de coloration. L’utilité pratique de
ce problème, ne cesse d’augmenter et d’avoir des extensions pratiques; notamment les problèmes industriels
et autres. Ainsi, la résolution des problèmes approchés par le biais de la coloration des sommets d’un graphe
passe par l’étude des sous ensembles remarquables de sommets, ou les arêtes.
L’étude des graphes se réalise sous deux points de vues complémentaire: l’étude de propriétés structurelles
des graphes étudié ou de familles de graphes et l’étude algorithmique de certaines propriétés.
Il devrait être évident au vu des points ci-dessus que la théorie des graphes est une discipline en plein essor.
Elle contient un ensemble de théorèmes beaux et puissants qui s’appliquent largement, et plus encore, grâce
aux propriétés structurelles des graphes.
Le présent projet a commencé avec pour intention de présenter la classe des graphes triangulés, par la suite
notre attention s’est portée sur le problème de coloration.

Dans un premier temps, nous allons introduire quelques terminologies utilisées dans l’ensemble de ce docu-
ment ainsi des notions de graphes utiles pour définir les graphes triangulés. Nous allons par la suite définir
la classe des graphes triangulés, et aborder le problème de reconnaissance.
Dans le deuxième chapitre.
Nous traitons dans le chapitre 3 le problème de coloration d’un aspect génèral, par la suite nous nous con-
centrons sur une classe particulière de graphes, qui est la classe des triangulés.
Quant au quatrième chapitre, il se focalise autour de la résolution du problème de coloration. Enfin, nous al-
lons résoudre par le biais d’un programme implémenter sous le langage de programmation python l’algorithme
de reconnaissance des graphes triangulés ainsi que l’algorithme de coloration sur cette classe.

1 Ce problème est considéré comme l’un des problèmes les plus célèbres en théorie des graphes.

KAOUANE Mohamed El Amine 4 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Chapitre 1

Part I

Vocabulaires et concepts fondamentaux de la


théorie des graphes
1 Notions de la théorie des graphes

Dans ce chapitre, nous introduisons les notions et terminologies utilisées dans l’ensemble de ce document.
Dans la première partie, nous rappelons quelques définitions de base de la théorie des graphes.

1.1 Graphe

Un graphe G = (V, E) est constitué d’un ensemble non vide fini V = {v1 , . . . , vn } appelé ensemble des
sommets et d’un ensemble d’arêtes E = {e1 , . . . , en }, une arête est déterminée par une paire de sommets
non-ordonnée, le graphe dans ce cas est dit non orienté.
On nomme ordre de G le nombre de sommets qu’il contient, noté |V | = n, ainsi le nombre des arêtes de G
est appelé sa taille, noté |E| = m.

1.2 Sous-graphe

Dans un graphe G = (V, E), considérons deux sous-ensembles V ′ ⊂ V et E ′ ⊂ E, on dit que H = (V ′ , E ′ )


est un sous-graphe de G si pour tout arc e de E ′ , les extrémités de e sont dans V.

1.3 Sous-graphe induit

H est un sous-graphe induit de G si l’ensemble des arcs de H est formé de l’ensemble des arcs de G ayant
leurs extrémités dans l’ensemble des sommets de H.

1.4 Sommets adjacents

Soient u, v deux sommets de G. Si uv ∈ E alors u et v sont dits adjacents ou voisins.


Réciproquement, si uv ∈ / E alors u et v sont dits non-adjacents ou non-voisins.
Si e = uv est une arête de G, alors u et v sont les extrémités de e, et e est dite incidente à u et v. Deux
arêtes sont dites incidentes si elles ont une extrémité en commun.

KAOUANE Mohamed El Amine 5 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

1.5 Voisinage

Le voisinage d’un sommet v est l’ensemble des sommets adjacents à v, noté N (v).

1.6 Degré d’un sommet

Le degré d’un sommet u dans un graphe G, noté dG (u), est le nombre d’arêtes incidentes à u, et donc
dG (u) = |NG (u)|. Le degré maximum (respectivement minimum) d’un graphe G est noté (G) (respectivement
δ(G)) et défini comme le maximum (respectivement minimum) des degrés des sommets de G.

1.7 Graphe complémentaire

Le graphe complémentaire d’un graphe G = (V, E) est le graphe, noté Ḡ, ayant pour ensemble de sommets
V et dans lequel deux sommets sont adjacents si et seulement s’ils ne le sont pas dans G.

1.8 Cycle, trou et corde

Un cycle est une suite d’arêtes consécutives C = (e1 , e2 , . . . , ek ), k ≥ 3 (chaine simple) dont les deux sommets
extrémités sont identiques. La longueur d’un cycle est le nombre de ses arêtes.
Une corde est un arc raliant deux sommets non-consécutifs d’un cycle.
Un trou tout graphe ayant au moins quatre sommets et dont les sommets peuvent être ordonnés de manière
à former un cycle sans corde . Un anti2 trou est le graphe complémentaire d’un trou.

1.9 Chaı̂ne minimale

Une chaı̂ne minimale de longueur k est une séquence {v0 , v1 , . . . , vk } de sommets distincts tels que vi est
adjacent à vi+1 ∀i = 0,¯k sans corde et vo , vk représentent les deux extrémités de la chaı̂ne, une telle chaı̂ne
est notée par Pk .

1.10 Graphe simple

Un graphe est dit simple lorsque, pour l’ensemble des sommets du graphe, il y a au plus une arête entre
deux sommets et pas de boucle (arc partant d’un sommet allant vers lui même).

1.11 Connexité

Soit G = (V, E) un graphe simple et connexe, i.e qu’il est possible, à partir de n’importe quel sommet, de
rejoindre tous les autres sommets. Il est bien connu que pour tout graphe G, l’un de G ou G est connexe.

1.12 Composante connexe

Une composante connexe d’un graphe G est un sous-graphe connexe maximal de G.


2 Le préfixe “anti” désigne une propriété ou une structure du complémentaire.

KAOUANE Mohamed El Amine 6 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

1.13 Clique

Une clique de G, notée K, est un ensemble de sommets adjacents deux-à-deux. La taille d’une clique est
égale au nombre de ses sommets. Une clique de G est maximum si elle est de taille maximale dans G. la
cardinalité maximale d’une clique de G est notée par le nombre ω(G):
ω(G) = max{ |K| : K est une clique de G}.

1.14 Stable

Un stable S dans un graphe G est un sous-ensemble de sommets de G tel que G[S] est un graphe sans arêtes.
Le nombre de stabilité α(G) de G est le cardinal maximal d’un stable dans G :
α(G) = max{ |S| : S est un stable de G}.

1.15 Sommets spéciaux

Un sommet est dit simplicial si son voisinage induit une clique.

1.16 Graphe complet

Un graphe G est dit complet si tous ses sommets sont adjacents deux-à-deux, autrement dit, si V (G) est une
clique. Un graphe complet d’ordre n est note Kn .
Dans ce qui suit, nous rappelons quelques définitions importantes relatives aux problèmes classiques de la
théorie des graphes.

KAOUANE Mohamed El Amine 7 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Chapitre 2

Part II

Problèmes de graphes
Beaucoup de problèmes qui se modélisent et se posent sur les graphes sont parfois simples à résoudre et
parfois plus difficiles. Le temps d’exécution d’un algorithme est un facteur important dans l’évaluation de
son efficacité, c’est pourquoi l’algorithmique des graphes occupe aujourd’hui une place importante en infor-
matique fondamentale et appliquée.
Dans cette section, nous s’attachons à rappeler quelques définitions et notions fondamentales relatives aux
algorithmes, à la complexité, aux graphes et aux problèmes auxquels nous nous intéresserons dans la suite.
Enfin, nous donnons quelques éléments de combinatoire qui serviront à établir et à analyser quelques algo-
rithmes présentés.

2 Algorithmes et notion de complexité

2.1 Instance

On appelle instance d’un problème, un cas de celui-ci pour lequel tous les paramètres décrivant et car-
actérisant le problème sont instanciés.

2.2 Algorithme

Un algorithme est une séquence fini d’étapes élémentaires, complémentaires, logiques et chronologiques
transformant une chaine de caractères représentant les données d’une instance d’un problème en une chaine
de caractères représentant les résultats3 .
Un algorithme est dit efficace s’il est en temps polynomial.

2.3 Les Classes de Complexité

Nous allons nous intéresser a l’étude de la difficulté intrinséque des problémes de décision, ce que l’on appelle
complexité des problèmes, ceux ci sont classé selon la complexité des algorithmes les résolvant.

2.3.1 La Classe P

Les problèmes de la classe P4 sont dits faciles. Ce sont ceux que l’on sait résoudre efficacement.
3 [Yagouni]
4 Polynomial time.

KAOUANE Mohamed El Amine 8 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

2.3.2 La classe NP

La classe des problèmes NP5 est la classe des problèmes pour lesquels on peut vérifier si la solution est celle
d’un problème est facile.
Il est à noter qu’un problème de reconnaissance est dans la classe NP si pour toute instance de ce problème,
on peut vérifier, en un temps polynomial par rapport à la taille de l’instance, qu’une solution proposée ou
devinée permet d’affirmer que la réponse est ”OUI” pour cette instance.

2.3.3 La classe NP-complet

Un problème NP-complet possède la propriété que tout problème dans NP peut être transformé en celui-ci
en temps polynomial.

2.3.4 La classe NP-difficile

Ce sont lesproblèmes d’optimisation dont le problème de décision approprié est NP-complet. Il est conjecturé
qu’il n’existe pas d’algorithme polynomial pour les problèmes d’optimisation NP-difficiles. Les méthodes de
résolution exactes ou approchées proposées au cours de ces dernieres années sont nombreuses, elles sont le
reflet de l’´eventail de méthodes dont on dispose pour traiter les problemes d’optimisation combinatoire.

2.4 Paramètres classiques d’optimisation

Pour tout graphe G, quatre paramètres classiques d’optimisation ont été définis :
- Le nombre de stabilité de G, noté α(G), est la taille d’un stable maximum de G.
- Le nombre de clique de G, noté ω(G), est la taille d’une clique maximum de G.
- Le nombre chromatique, noté χ(G), est la taille minimale d’une partition de V (G) en stables.
- Le nombre de couverture par des cliques, noté θ(G), est la taille minimale d’une partition de V (G) en cliques.

Tout graphe G satisfait :


ω(G) ≤ χ(G) et α(G) ≤ θ(G)
ω(G) = α(G) et χ(G) = θ(G)

Les paramètres ω(G), χ(G), α(G) et θ(G) ont fait l’objet de très nombreuses études, et les problèmes de
décision liés à ces quatre paramètres font partie des problèmes NP-complets sur les graphes.

5 Not Deterministe Plynomial Time.

KAOUANE Mohamed El Amine 9 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

3 Graphes et classes de graphes

Lorsqu’un problème est observé ou bien compris d’être un problème reconnu, les algorithmes de résolutions,
les heuristiques, les méta-heuristiques, et les caractéristiques de ce problème se trouvent prêtes à être ex-
ploiter dans le but voulu. Ayant une situation précise, qui se modélise par un graphe simple, connaı̂tre les
spécification de ce graphe donnera un plus à cette modélisation, de ce fait connaitre la classe du graphe
rendra les informations plus utiles sur la situation ce qui aidera dans l’optimisation, ou bien dans la prise de
décision.

3.1 Quelques classes de graphes

Un ensemble de graphes peut être regroupé en familles; on parle alors de classe de graphes. Bien souvent,
ces classes contiennent des graphes ayant des propriétés communes.
Une classe de graphes est dite héréditaire si pour chaque graphe de la classe, tous ses sous-graphes induits
appartiennent aussi à la classe.
Un grand nombre de classes a été défini. De façon exhaustive, le site internet [ISGCI6 ] en liste une très
grande collection. Nous listons et définissons ci-après quelques classes de graphes citées dans ce travail.

3.1.1 La classe des graphes parfaits

En 1960, l’historique des graphes parfaits a commencé, a son origine les travaux de C.E. SHANNON7
en théorie de l’information , et plus précisément, sur les codages optimaux et la capacité d’un canal de
communication.
Nous présentons dans cette partie un bref aperçu sur l’étude des graphes parfaits, des conjectures de Berge
jusqu’au théorème fort des graphes parfaits.

Graphes parfaits et fortement parfaits


Au début des années soixante, Berge a introduit la notion de graphe parfait.
Un graphe est dit parfait si pour tout sous-graphe induit, son nombre chromatique est égal à la taille de sa
plus grande clique, ie χ(H) = ω(H).
Un graphe parfait ne contient ni les trous impairs ni leurs complémentaires.
Un graphe G est dit de Berge s’il ne contient ni trou impair ni anti-trou impair comme sous-graphe induit.
Berge avait également remarqué que plusieurs classes de graphes classiques ainsi que leurs complémentaires
sont parfaits, comme par exemple, les graphes bipartis, les graphes triangulés et les graphes de comparabilité.
De ces observations, Berge a posé deux célèbres conjectures en 1961. La première, énoncée comme la
conjecture faible des graphes parfaits, a été démontrée par Lovasz8 en 1971, et est devenue depuis le théorème
des graphes parfaits:

Théorème 1 (Théorème des Graphes Parfaits). Un graphe est parfait si et seulement si son complémentaire
est parfait.
6 Information System on Graph Classes and their Inclusions
7 Claude Shannon est un ingénieur en génie électrique et mathématicien américain. Il est l’un des pères, de la théorie de
l’information.
8 Lovász est un mathématicien hongrois connu pour ses travaux en combinatoire, notamment en théorie des graphes, et

informatique théorique. Il est lauréat du prix Abel 2021.

KAOUANE Mohamed El Amine 10 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

La deuxième conjecture, plus forte que la première, a été pendant quarante ans l’un des plus grands problèmes
ouverts en théorie des graphes. C’est la Conjecture Forte des Graphes Parfaits (en anglais: Strong Perfect
Graph Conjecture, notée SPGC):
Conjecture 1. Un graphe est parfait si et seulement s’il est de Berge.

En 2002, Chudnovsky, Robertson, Seymour et Thomas annoncent qu’ils ont résolu la SPGC, devenue depuis
le Théorème Fort des Graphes Parfaits (SPGT):
Théorème 2 (Théorème Fort des Graphes Parfaits). Un graphe est parfait si et seulement s’il est de
Berge.

Il est aujourd’hui bien connu que le complémentaire d’un graphe parfait est parfait.

Un des aspects intéressants des graphes parfaits est qu’ils contiennent plusieurs classes fondamentales de
graphes, telles que les graphes bipartis, les graphes triangulés, les graphes d’intervalles et les graphes de
comparabilité.
Dans ce qui va suivre nous allons voir les sous-classes particulières de la classe des graphes parfaits.

3.1.2 Sous-classes particulières

De nombreuses autres classes appartenant à la grande classe des graphes parfaits ont été définies dans le
cadre de l’étude de la SPGC, nous mentionnons ici quelques classes connues ou auxquelles nous faisons
référence dans ce travail.

Graphes bipartis G est dit biparti si l’ensemble V des sommets peut être partitionner en deux sous-
ensembles non vides V1 et V2 c’est-a-dire V = V1 ∪ V2 et toute arête admet une seule extrémité dans le même
ensemble, on écrit alors G = (V1 ∪ V2 , E).
La perfection des graphes bipartis est triviale puisque ce sont les graphes dont le nombre chromatique est
au plus deux.

Graphes triangulés cette importante classe de graphes a été introduite par Hajnal et Suranyi. Un graphe
G est dit triangulé s’il ne contient pas de trou comme sous-graphe induit.
La perfection des graphes triangulés est une conséquence d’un résultat de Hajnal et Suranyi.
Nous verrons par la suite la classe des graphes triangulés en détails.

Graphes faiblement triangulés introduite par Hayward, cette classe de graphes généralise celle des
graphes triangulés. Un graphe est dit faiblement triangulé s’il ne contient pas de trou de longueur au moins
cinq ou son complémentaire.

Graphes Hypertriangulés Un graphe G = (V, E) est hypotriangulé si pour toute paire de sommets
a, b ∈ V telle que ayb est un P3 , alors ab ∈ E ou il existe z ̸= y tel que azb est un P3 .

Graphes de Meyniel un graphe G est dit de Meyniel si tout cycle impair de G possède deux cordes. La
perfection de cette classe fut établie par Meyniel en utilisant l’échange bi-chromatique. Une caractérerisation,
ainsi qu’un algorithme de reconnaissance, reviennent à Burlet et à Fonlupt. Le problème de la coloration est
également résolu pour ces graphes.

KAOUANE Mohamed El Amine 11 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Graphes d’intervalles un graphe G est appelé graphe d’intervalles si chaque sommet de G représente un
intervalle sur la droite réelle, de sorte que deux sommets sont adjacents si et seulement si leurs intervalles
correspondants s’intersectent.
Tout graphe d’intervalles est triangulé et donc parfait.
Quelques caractéristiques des graphes d’intervalles:
• Un graphe est d’intervalles si et seulement si, il possède un schéma d’élimination parfait.
• Si G est un graphe d’intervalles alors il n’existe pas de cycle avec plus de 3 arêtes et sans raccourci.
• Un graphe d’intervalles est le graphe complémentaire d’un graphe de comparabilité.
• Un graphe G est d’intervalles si et seulement si Ḡ est de comparabilité et G ne contient aucun C4
comme sous-graphe induit. (Un C4 est un cycle de longueur 4 sans corde, c’est-à-dire un carré.)

Graphes de comparabilité un graphe est de comparabilité si on peut orienter ses arêtes de façon transi-
tive, c’est-à-dire de telle sorte que s’il existe un arc de i vers j et un arc de j vers k, alors il existe également
un arc de i vers k.
Les graphes de comparabilité ont les caractéristiques suivantes:
• Les graphes de comparabilité sont parfaits.
• Les graphes de comparabilités sont parfaitement ordonnables.
• Le théorème de Dilworth nous dit que θ(G)= α(G).

Graphes scindés un graphe G est dit scindé si l’ensemble de ses sommets V (G) peut être partitionné en
une clique K et un stable S.
Foldes et Hammer ont montré que tout graphe scindé et son complémentaire sont triangulés donc parfaits.

Graphes parfaitement ordonnables cette classe de graphes a été introduite par Chvatal. Un graphe
est dit parfaitement ordonnable si et seulement s’il admet un ordre < sur l’ensemble de ses sommets tel qu’il
n’existe pas de P4 induit de G, noté a − b − c − d, avec a < b et d < c. Un tel ordre est dit ordre parfait.
Les graphes parfaitement ordonnables sont parfaits.

Graphes planaires un graphe est planaire s’il existe un plongement de celui-ci dans le plan tel qu’aucune
arête ne se croise.
Tucker a montré que tout graphe planaire sans trou impair est parfait.
Nous citons quelques caractéristiques des graphes planaires ci-dessous:
• Dans un graphe planaire le nombre de faces est égal à |E|-|V | +2.
• Dans tout graphe planaire G, il existe un sommet de degré ≤ 5.
• Si G est planaire alors χ(G) ≤ 4.
• Un graphe est planaire si et seulement si il ne contient aucune subdivision de K5 ou de K3,3 comme
sous-graphe partiel.

Graphes de permutation Un graphe G est de permutation s’il existe une permutation π des sommets
telle que x est adjacent à y dans G si et seulement si:
x < y et π(y) < π(x) ou bien y < x et π(x) < π(y).
Quelques caractéristiques des graphes de permutation:
• Les graphes de permutation sont de comparabilité.
• Un graphe G est de permutation si et seulement si G et Ḡ sont de comparabilité.

KAOUANE Mohamed El Amine 12 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

3.1.3 Quelques relations d’inclusion

Nous donnons ici quelques relations d’inclusion entre des classes de graphes usuelles. En particulier, on a les
inclusions fondamentales suivantes :
Graphe biparti ⊂ graphe de comparabilité.
Graphe fortement parfait ⊂ graphe parfait.
Graphe triangulé ⊂ graphe parfait.
Graphe faiblement triangulé ⊂ graphe parfait.
Graphe d’intervalle ⊂ graphe triangulé.
Graphe scindé ⊂ graphe triangulé.

La figure suivante montre quelques relations d’inclusion entre des classes de graphes usuelles.

Figure 1: Quelques relations d’inclusion de classes de graphes.

KAOUANE Mohamed El Amine 13 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Chapitre 3

Part III

Problèmes de reconnaissance
Reconnaı̂tre une classe de graphes, c’est donner un algorithme permettant de décider si un graphe appartient
ou non à la classe.
Dans ce qui va suivre nous allons nous intéressser à la classe des graphes triangulés, une classe qui a su
trouver une place importante dans la pratique, en particulier dans les problèmes d’allocation.
Nous définissons cette classe, tout en donnant des généralités ainsi que l’algorithme de reconnaissance de
cette classe de graphe.

4 Reconnaissance des graphes de Berge

Comme nous l’avons cité haut, le problème de la reconnaissance des graphes parfaits est resté ouvert jusqu’en
2002. Puis, Chudnovsky, Seymour, et al. ont simultanément proposé deux algorithmes de reconnaissance
des graphes de Berge en temps polynomial.

5 Graphe triangulé

5.1 Préliminaires

Définition 1. Un graphe est triangulé s’il ne contient pas de trou.

Autrement dit, dans un graphe triangulé tout cycle de longueur au moins 4 contient une corde (une arête
joignant deux sommets non consécutifs du cycle), i.e. les seuls cycles induits sont des triangles.

Figure 2: Graphe triangulé

KAOUANE Mohamed El Amine 14 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

La figure 2 présente deux graphes: dans le graphe de la figure (a), le cycle (a, b, e, d) est un trou donc ce
graphe n’est pas triangulé. Par contre les cycles élémentaire du graphe de la figure (c) sont tous des triangles,
donc ce graphe est triangulé.

Remarque 1. Il est évident que si tous les cycles d’un graphe G sont des triangles, alors les cycles de
tout sous graphe induit de G sont aussi des triangles. Ainsi la propriéte d’être un graphe triangulé est une
propriété héréditaire, c’est-à-dire tout sous graphe induit d’un graphe triangulé est triangulé.

Proposition 1. Les graphes triangulés sont parfaits.

Définition 2. Un sommet v est dit simplicial si son voisinage N(v) est une clique.

Un célèbre théorème de Dirac affirme qu’on peut toujours trouver un sommet simplicial dans un graphe
triangulé.

Théorème 3 (Dirac). Tout graphe triangulé G autre qu’une clique contient au moins deux sommets sim-
pliciaux non adjacents.

Fulkerson et Gross ont donné la caractérisation suivante des graphes triangulés:

Théorème 4 (Fulkerson et Gross (1965) ). Un graphe est triangulé si et seulement s’il admet un ordre
d’élimination simplicial.

Ce dernier théorème a pour conséquence immédiate la reconnaissance des graphes triangulés.

5.1.1 Ordre d’Elimination Simplicial PEO

Définition 3. Un graphe G à n sommets a un ordre d’élimination simplicial (PEO9 ) si et seulement s’il y


a un ordre {v1 , . . . , vn } des sommets de G, de sorte que chaque vi est simplicial dans le graphe induit par
les sommets {v1 , . . . , vn }.

Proposition 2. Si G admet un ordre d’élimination simplicial, donc tous ses sous graphes induits admettent
eux aussi un ordre d’élimination simplicial.

Proposition 3. Si G admet un ordre d’élimination simplicial, alors G est parfait.

5.1.2 L’Algorithme de l’ordre d’elimination simplicial

Rose, Tarjan et Lueker ont introduit en 1976 un algorithme appelé parcours en largeur lexicographique 10 (ou
Lex-BFS pour Lexicographic Breadth-First Search) qui permet de trouver efficacement un ordre d’élimination
simplicial d’un graphe triangulé, et qui permet par conséquent de déterminer si un graphe est triangulé ou
non.
Plusieurs algorithmes de reconnaissance de graphes triangulés sont basés sur cette idée.

Proposition 2. Pour un parcours Lex-BFS, si G est triangulé, le dernier sommet visité est simplicial.
9 Perfect Elimination Ordering
10 Le parcours d’un graphe est un procédé déterministe qui permet de choisir, à partir des sommets visités, le sommet suivant
à visiter. Le problème de parcours consiste à déterminer un ordre sur les visites des sommets à partir d’un sommet de départ,
fixé à l’avance.

KAOUANE Mohamed El Amine 15 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Algorithm 1: Algorithme lex-BFS


Result: : Un ordre σ des sommets de G.
initialisation: Un graphe G = (V, E) et un sommet de source s;
Pour chaque sommet x ∈ V faire :
marque (x) ← Ø
fin pour
Pour i = n a 1 faire :
Choisir un sommet x non numéroté de marque maximum dans l’ordre lexicographique ;
σ(i) ← x
Pour chaque voisin non numéroté y de x faire :
marque(y) ← marque(y) ∪ i // Concaténation de i à la fin de la marque y
fin pour
fin pour
Retourner Un ordre σ de V ;

Lex-BFS calcul un ordre d’élimination simplicial pour un graphe triangulé avec une complexité temporelle
O(|E| + |V |)11 .

Théorème 5 (Caractérisation de Lex-BFS). Un graphe G est triangulé si et seulement si tout ordre


Lex-BFS de G est simplicial.

5.1.3 Reconnaissance des graphes triangulés

Pour reconnaitre donc si un graphe est triangulé, il suffit de vérifier si l’ordre d’élimination simplicial obtenu
par lex-BFS est parfait.
Nous obtenons alors un ordre σ : V → [0, n − 1] sur les sommets du graphe, qui vérifie la propriété suivante :
Propriété 2. Si G est triangulé, alors σ −1 ∗ (n − 1) est simplicial.

Principe de l’algorithme
L’algorithme Lex-BFS a été le premier algorithme linéaire de reconnaissance des graphes triangulés.
Ces dernières années, il a été utilisé dans plusieurs applications. Il est à la base de la simplification du
premier algorithme linéaire de reconnaissance des graphes d’intervalles.
L’algorithme permet de d’ordonner un graphe G suivant l’ordre lexicographique avec la création d’un ordre
entre les voisins d’un sommet sélectionné en utilisant l’étiquetage lexicographique des sommets à travers la
recherche de telle sorte qu’un sommet non numéroté reçoit une étiquette.
Afin d’avoir une idée du fonctionnement de l’algorithme, nous détaillons son principe:
L’algorithme procède en deux étapes : construction d’un ordre d’élimination simplicial si et seulement si le
graphe est triangulé puis vérification.
La première étape, consiste à initialiser chaque sommet du graphe à un ensemble vide.
La deuxième étape, consiste à créer un ordre σ de sommets de V, d’une manière suivante :
choisir un sommet de départ s et l’initialiser à n, qui devient le plus grand suivant l’ordre lexicographique.
pour chaque sommet i de n à 1 on choisit un sommet non numéroté x d’étiquette maximum, et σ(i) := x
pour chaque voisin non numéroté y de x on ajoute (i) à tous les sommets y.

11 Un algorithme ayant une telle complexité est dit en temps linéaire ou optimal.

KAOUANE Mohamed El Amine 16 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Chapitre 5

Part IV

Problème de coloration
Bien que la coloration de graphe est l’un des 21 problèmes montrés NP-complet dans le célèbre papier de
Karp (Karp, 1972 ), la classe des graphes parfaits demeure une importante classe pour lesquels le problème
de coloration peut être résolu en un temps polynomial.
Dans cette partie, nous nous intéressons au problème de coloration dans les graphes de manière générale, et
plus particulièrement dans les graphes parfaits.

5.2 Histoire du problème de la coloration

De nombreux problèmes peuvent être modélisés sous forme de problème de coloration de graphes, et ce
dans divers domaines, mais au-delà du large éventail d’applications pratiques que ce problème permet de
modéliser, sa complexité combinatoire rend difficile sa résolution exacte des lors que la taille des problèmes
à traiter est conséquente.
L’une des premières sources d’inspiration de la coloration de graphes a été le célèbre problème des 4 couleurs
(the fourth map coloration), qui est resté ouvert pendant presque un siècle.
Francis Guthrie12 remarqua que quatre couleur suffisent pour colorier la carte d’Angleterre, il posa alors
la question de savoir si 4 couleurs sont suffisantes pour colorier une carte géographique quelconque de telle
sorte que deux pays voisins aient des couleurs distinctes?
Malgré un énoncé simple, ce problème s’est révélé très difficile et a suscité un très grand intérêt de la part des
chercheurs, de nombreux travaux sont publiés dans la littérature avec de pertinents résultats mathématiques.

5.3 Coloration des sommets d’un graphe et nombre chromatique

Une coloration des sommets d’un graphe G est une fonction, notée habituellement π, de V(G) dans N ∗ telle
que pour toute paire de sommets adjacents {u, v}, on a π(u) ̸= π(v).
Le nombre chromatique d’un graphe G, noté χ(G), est le nombre minimum de couleurs à affecter aux som-
mets de G, de telle sorte que les sommets adjacents soient de couleurs différentes.
En d’autres termes, il s’agit de trouver le nombre minimum tel qu’il existe une application:

c : V → {1, 2, . . . , χ} avec (v1 , v2 ) ∈ E 7−→ c(v1 ) ̸= c(v2 ).

Dans le cas général, déterminer le nombre chromatique χ(G) d’un graphe quelconque est un problème
NP-difficile. Pour cette raison, plusieurs travaux de la littérature se sont intéressés à déterminer χ pour
des classes particulières de graphes, ou bien à proposer des bornes (inférieures ou supérieures) en fonction
12 Cartographe anglais

KAOUANE Mohamed El Amine 17 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

d’autres paramètres de graphes.


Parmi les bornes supérieures proposées dans la littérature, nous citons celle de Brooks (1941) qui établit une
relation entre le nombre chromatique d’un graphe non orienté et son degré maximum:
Théorème 6 (Brooks, 1941). Pour tout graphe G, χ(G) ≤ ∆(G) + 1. De plus, χ(G) = ∆ + 1 si et
seulement si, ∆(G) ̸= 2 et l’une des composantes connexes de G est un graphe complet d’ordre ∆(G) + 1, ou
bien ∆(G) = 2 et l’une des composantes connexes de G est un cycle impair.

Un autre résultat trivial bien connu est que la taille d’une clique d’un graphe G constitue une borne inférieure
pour le nombre chromatique χ. En effet, si un graphe G contient une clique de taille ω, alors il faut au moins
ω couleurs pour le colorer. Ainsi, tout graphe G vérifie la relation: ω(G) ≤ χ(G).
Parmi les nombreux résultats relatifs au nombre chromatique nous pouvons citer le célèbre résultat de Appel
et Haken.
Théorème 7 (Appel and Haken, 1976). Tous graphe planaire est 4-coloriable.

Comme citer ci-haut, décider si un graphe possède une coloration en k couleurs est un problème NP-complet.
Il n’existe jusqu’a présent pas d’algorithme polynomial permettant de colorier tous les graphes de manière
optimale.
Pour certaines classes de graphes parfaits, des algorithmes existants dans la littérature peuvent être efficaces
opérant en temps polynomiaux ont été élaborés pour le problème de la coloration.
Dans ce qui suit nous allons présentés quelques algorithmes de coloration.

5.3.1 Algorithme Glouton

L’algorithme glouton de coloration considère les sommets selon un ordre < et donne à chaque sommet la plus
petite couleur non encore attribuée à l’un de ses voisins. Un graphe est parfaitement ordonnée avec l’ordre
< si et seulement si l’algorithme glouton appliqué à chaque sous-graphe induit utilisant l’ordre < colorie le
sous-graphe avec un nombre minimum de couleurs.

Algorithm 2: Algorithme séquentiel de coloration


Result: : Une k-coloration.
initialisation: Un graphe G = (V, E) et un ordre v1 < · · · < vn des sommets du graphe G. ;
DÉBUT
Donner la couleur 1 au sommet v1 ;
Pour i= 2 à n
si une couleur déjà utilisée n’apparaı̂t pas dans aucun voisin vj de vi avec j < i, alors donnons à
vi n’importe qu’elle couleur de l’ensemble des couleurs déjà utilisées.
Sinon attribuons à vi la couleur 1+Max Ci .
FinPour
FIN.
Notons que, le nombre de couleurs utilisées pour colorier un graphe grâce à cette heuristique gloutonne
dépend de l’ordre des sommets (il y en a n possibilités pour un tel ordre); d’oú la difficulté de savoir à
l’avance lequel de ces ordres produira une coloration optimale.

5.4 Algorithme LexCOLOR

Nous allons nous intéresser dans cette partie à la coloration des graphes triangulés. Nous allons tout d’abord
présenter un algorithme qui nous sera utile pour la coloration des graphes triangulés : il s’agit de l’algorithme

KAOUANE Mohamed El Amine 18 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

COLOR, un algorithme de coloration séquentielle.


L’algorithme de coloration séquentielle est l’algorithme le plus naturel permettant de colorier les sommets
d’un graphe. Etant donné un graphe G, cet algorithme parcourt les sommet selon un ordre et donne à chaque
sommet la plus petite couleur non attribuée à ses voisins, tout en veillant à ce que deux sommets adjacents
n’aient jamais la même couleur.

Algorithm 3: Algorithme COLOR


Result: : Une k-coloration.
initialisation: Un graphe G = (V, E) et un ordre σ sur ses sommets. ;
DÉBUT
Pour i de 0 à n1, faire x = σ(i);
Pour y ∈ N (x), faire
Si couleur(y) ̸= 1 alors
Libre.(Couleur(y)) ← f aux ;
Fin si
Fin pour index=0;
Tant que Libre.(index) = faux, faire
index = index + 1 ;
Fin tant que Couleur(x) ← index ;
Fin pour
FIN.

Algorithm 4: Algorithme LexBFS-COLOR


SetAlgoLined Result: : Une k-coloration.
initialisation: Un graphe G = (V, E) ;
DÉBUT
exécuterLex-BFS(G,n);
σ1 ordre inverse de l’ordre obtenu par Lex-BFS exécuter COLOR(G,σ1);
FIN.

5.5 Algorithme avec échange Bichromatique

5.6 Algorithme avec échange Trichromatique

5.7 Coloration par contraction

5.8 Coloration des classes de graphes

Nous présentons dans ce qui suit quelques méthodes de coloration des sommets d’un graphe pour certaines
classes des graphes parfaits.

5.8.1 Graphes bipartis

Les graphes bipartis constituent l’une des classes les plus anciennes et les plus connues en Théorie des
Graphes.
La reconnaissance des graphes bipartis est possible en Ο(n+m), en appliquant l’algorithme suivant, qui con-
siste à trouver une 2-coloration d’un graphe donné si elle existe.

KAOUANE Mohamed El Amine 19 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Nous supposons que le graphe G est connexe (sinon il suffit d’appliquer l’algorithme sur chacune des com-
posantes connexes de G, celles-ci pouvant être déterminées en O(m).

Algorithm 5: Algorithme de coloration d’un graphe biparti


Result: : L’une des possibilités suivantes:
a- G n’est pas biparti.
b- Une 2-coloration de G.
initialisation: Un graphe connexe G = (V, E) ;
DÉBUT
(1.1) Pour un certain sommet v ∈ V faire c(v) := 1 //attribuer à v le numéro 1;
(1.2) S := V ;
(2) Tant que S ̸= ∅ faire
(2.1) Choisir un sommet coloré (numéroté) v ∈ S ;
(2.2) Pour tout sommet w ∈ N (v) ∩ S faire
(2.2.1) Si w n’est pas coloré alors c(w):= {1, 2}- c(v) ;
(2.2.2) Sinon si c(w)=c(v) alors retourner ≪ G n’est pas biparti ≫ ;
(2.3) S := S -{v} ;
FIN.

5.8.2 Graphes de comparabilité

Algorithm 6: Algorithme de coloration d’un graphe de comparabilité


Result: : Une k-coloration.
initialisation: Un graphe G = (V, E) ;
DÉBUT
- Déterminer une orientation transitive de G; i ← 1 ;
Tantque ∃v ∈ V tel que v n’est pas colorié Faire
- Affecter la couleur à toutes les sources; i ← i + 1 ;
Fin tantque
FIN.

Graphes d’intervalles
Une méthode de coloration de cette classe de graphes est donnée par l’algorithme 5.

Algorithm 7: Algorithme de coloration d’un graphe d’intervalles


Result: : Une k-coloration.
initialisation: Un graphe G = (V, E) ;
DÉBUT
- Déterminer un schéma d’élimination parfait des sommets de G, soit v1 , v2 , . . . , vn ;
- Colorier les sommets vn , vn−1 , . . . , v1 en choisissant toujours la première couleur disponible.
FIN.

Problème de la clique
Plusieurs problèmes réputés NP-complets tels que la recherche de coloration minimum, clique maximum, ou
stable maximum se résolvent en temps polynomial pour des classes de graphes parfaits.
La recherche de la plus grande clique ou sa cardinalité dans un graphe est un problème difficile de la théorie
des graphes, avec de nombreux domaines d’applications. Les algorithmes existants dans la littérature peu-
vent être efficaces pour certaines classes de graphes ou pour des graphes de taille moindre.

KAOUANE Mohamed El Amine 20 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Ci-dessous une heuristique qui tente à déterminer la plus grande clique dans un graphe.

Algorithm 8: Heuristique pour le problème de la clique


Result: : C.
initialisation: Un graphe G = (V, E) ;
DÉBUT
S←V;C←∅;
Tantque S ̸= ∅ Faire
- Choisir un sommet v ∈ S de degré maximum dans G ;
- C ← C ∪ {v} ;
- S ← S ∩ NG (v) ;
Fin tantque
FIN.

5.9 Coloration propre d’arêtes et indice chromatique

Une coloration propre d’arêtes d’un graphe G est une fonction π de E(G) dans Ntelle que pour toute paire
′ ′
d’arêtes adjacentes (e,e ), on a π(e) ̸= π(e ).
L’indice chromatique d’un graphe G, noté γ(G), est le nombre minimum de couleurs à affecter aux arêtes
de G, de telle sorte que les arêtes adjacentes soient de couleurs différentes.

KAOUANE Mohamed El Amine 21 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Chapitre 4

Part V

Application
Dans cette partie, nous nous intéressons à programmer l’algorithme lex-BFS. en utilisant comme outil le
langage python.

5.10 Langage utilisé

Python est un langage de programmation open source créé par le programmeur Guido van Rossum en 1991.
Il tire son nom de l’émission Monty Python’s Flying Circus.
Il s’agit d’un langage de programmation interprété, qui ne nécessite donc pas d’être compilé pour fonctionner.
Un programme ” interpréteur ” permet d’exécuter le code Python sur n’importe quel ordinateur.
Le langage Python doit sa popularité à plusieurs avantages dont sa facilité et sa convivialité.

5.11 Reconnaissance des graphes triangulés en Python

Nous allons programmer l’algorithme de reconnaissance des graphes triangulés. Le code source est le suivant:

class Maillon:

def __init__(self, valeur, precedent=None, suivant=None):


self.valeur = valeur
self.precedent = precedent
self.suivant = suivant

class File:

def __init__(self):
self.longueur = 0
self.debut = None
self.fin = None

def enfiler(self, valeur):


if self.longueur == 0:
self.debut = self.fin = Maillon(valeur)
else:
self.fin = Maillon(valeur, self.fin)
self.fin.precedent.suivant = self.fin
self.longueur += 1

KAOUANE Mohamed El Amine 22 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

def defiler(self):
if self.longueur > 0:
valeur = self.debut.valeur
if self.longueur > 1:
self.debut = self.debut.suivant
self.debut.precedent = None
else:
self.debut = self.fin = None
self.longueur -= 1
return valeur

def estVide(self):
return self.longueur == 0

def bfs(G,s) :
P = {s :None}
Q = File()
Q.enfiler(s)
while not(Q.estVide()) :
u = Q.defiler()
for v in G[u] :
if v in P : continue
P[v]=u
Q.enfiler(v)
return P

G = dict()
G['a'] = ['b','c']
G['b'] = ['a','d','e']
G['c'] = ['a','d']
G['d'] = ['b','c','e']
G['e'] = ['b','d','f','g']
G['f'] = ['e','g']
G['g'] = ['e','f','h']
G['h'] = ['g']

P = bfs(G,'b')
print(P)

Le programme nous donne en sortie si le graphe est triangulé ou non.


LexCOLOR:

from json import loads

def getDegree(D):
degree = {}
sorted_degree = {}

KAOUANE Mohamed El Amine 23 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

for k in Sommets(D):
if k in D.keys(): degree[k] = len(D[k])
else: degree[k] = 0
for key in sorted(degree, key=lambda x: -degree[x]):
sorted_degree[key] = degree[key]
return sorted_degree

def Sommets(D):
s=[]
for k in D:
if k not in s: s.append(k)
for i in D[k]:
if i not in s: s.append(i)
return s

def FullGraph(G):
fg = {}
for sommet in G:
fg[sommet] = G[sommet]
for succ in G[sommet]:
if succ not in fg:
if succ not in G:
fg[succ] = []
else:
fg[succ] = G[succ]
return fg

def ordre_pgsg_complet(D):
graphes_complets = []
for sommet in getDegree(D):
sommets = [sommet]
updated = True
for pt in D:
if sommet in D[pt]: sommets.append(pt)
while len(sommets) > 2 and updated:
for s in sommets:
updated = False
for j in sommets[:sommets.index(s)]+sommets[sommets.index(s)+1:]:
if s not in D[j]:
sommets.remove(s)
updated = True
break
graphes_complets.append(sommets)
pgsg = max(graphes_complets, key=lambda x:len(x))
return len(pgsg) if len(pgsg) > 2 else False

def Coloration(D):
deg = getDegree(D)

KAOUANE Mohamed El Amine 24 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

s = Sommets(D)
Colors = {}
current_color = 1
for sommet in deg:
if sommet not in Colors: Colors[sommet] = "Couleur"+str(current_color)
for sommet2 in s:
if sommet in D and sommet2 not in D[sommet] and sommet2 not in Colors:
Colors[sommet2] = "Couleur"+str(current_color)
if "Couleur"+str(current_color) in Colors.values(): current_color +=1
return Colors

def nombre_chromatique(D):
col = len(set(Coloration(D).values()))
max_len_graphe_complet = ordre_pgsg_complet(FullGraph(D))
if col == max_len_graphe_complet or max_len_graphe_complet == False: return "le nombre chromatique e
else: return "La coloration realiser n'est pas optimale"

# Entree le graphe de cette maniere: {"a": ["c"], "b":


["c","d"], "c": ["a", "b", "d"], "d": ["c", "b", "e"], "e":
["d"]}
x=input('Entrer un graphe')
G = loads(x.replace("'", '"'))
print('Coloration trouvée:',Coloration(G))
print(nombre_chromatique(G))

KAOUANE Mohamed El Amine 25 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

5.12 Application réelle

5.12.1 Minimiser le nombre de phases (périodes) des feux de circulation

Enoncé
La figure ci-dessous montre huit voies de circulation L1 , L2 , . . . , L8 à l’intersection de deux rues. Un feu de
circulation est situé à l’intersection. Au cours de chaque phase (ou période) du feu de circulation, les voitures
dans les voies pour lesquelles le feu est vert peuvent circuler en toute sécurité à travers l’intersection dans
certaines voies autorisées.
Quel est le nombre minimum des phases (ou périodes) nécessaires pour le feu de circulation afin que
(éventuellement) toutes les voitures puissent passer le carrefour?

Figure 3: Les voies de circulation.

Nous souhaitons régler les feux de circulation à l’intersection de deux rues de telle façon que nous puissons
répartir les flux de circulation en groupes en partageant dans le temps l’utilisation d’une meme rue entre des
flus conflictuels.
Les flux du même groupe auront la meme couleur de feu simultanément (ce qui veut dire que les voitures ne
peuvent pas s’intersecter). Pendant cette période (durée durant laquelle un feu a une couleur donné), tous
les autres flux auront un feu différent.
Nous pouvons observer ce problème de deux ongles differents:
Chercher qui sont les groupes affecter à chaque période, ie. un feu à chaque groupe, pour la résolution: Nous
pouvons le résoudre par le biais:
*D’un programme linéaire en consédérant le problème comme um problème d’affectation sous contraintes.
*D’un programme linéaire d’un stable maximum et puis nous affectons les feux à chaque période aux groupes.
*D’un problème de coloration de graphe pour avoir les groupes à affecter aux feux à chaque période.
Nous tenterons de résoudre l’instance de la figure 3 par la coloration (3eme approche), nous modélisons dans
ce qui suit le problème par un graphe.
Le graphe G modélisant ce problème (la figure 3) est obtenu en considérant les sommets comme étant le
passage d’un sens à un autre (on peut aller de L1 à L3 donc ce sont des sommets de G) et deux sommets
sont adjacents dans G si les deux passages leurs correspondants se croisent (le passage de L1 à L3 se croise,

KAOUANE Mohamed El Amine 26 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

nous obtenons ainsi le graphe G de la Figure ci-dessous ayant 8 sommets notés comme suit: {L1 , L2 , . . . , L8 }.

Figure 4: Le graphe modélisant le problème.

Dans ce problème, la résolution revient à colorier les sommets de façon à attribuer des couleurs différentes
aux sommets adjacents en utilisant un nombre minimum de couleurs.
De ce qui précède une solution, qui utilise 3 couleurs est obtenue, nous remarquons que le graphe G possède
un sommet qui n’est pas en relation avec les autres sommets.
De cette solution, on déduit les flux de voitures suivants:
Premier bloc de couleur: {L5 , L7 , L8 }
Deuxième bloc de couleur: {L1 , L2 , L6 }
Troisième bloc de couleur: {L3 }
De plus le sommet L4 n’ayant pas de sommet adjacents, le flux de circulation de cette voie peut circuler
instantanément avec les autres voies de circulation, ie. couleur verte à chaque phase.
Cette solution est optimale. En fait, il suffit de regarder le sous-graphe de G.

Figure 5: Le graphe modélisant le problème.

KAOUANE Mohamed El Amine 27 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

La solution en utilise exactement trois, il s’agit donc d’une solution optimale.


Le feu de circulation est composé de trois couleurs principales. La couleur rouge indique l’obligation d’arrêt
aux véhicules. La couleur orange qui ne dure que quelques secondes signale le passage du rouge au vert. La
couleur verte indique aux véhicules qu’ils ont la priorité exclusive pour passer.

Donc en attribuant l’une des 3 couleurs: vert, rouge et orange à chaque bloc nous obtenons le planning de
circulation.
Pour faire passer le flux de circulation sur les huits voies à l’intersection de deux rues, nous proposons le
plan de circulation suivant:
Au cours de la première phase (période) du feu de circulation, Ainsi les voitures dans les voies L1 , L2 et L6
peuvent circuler à travers l’intersection dans les voies autorisées (couleur verte).
Au cours de la deuxième phase (période) du feu de circulation, les voitures dans les voies L5 , L7 et L8 peuvent
circuler à travers l’intersection dans les voies autorisées (couleur verte).
Au cours de la troisième phase (période) du feu de circulation, les voitures dans la voie L3 peuvent circuler
à travers l’intersection dans les voies autorisées (couleur verte).
Sans oublier le fait que les voitures dans la voie L4 peuvent circuler en toute sécurité à travers l’intersection
dans les voies autorisées et cela tout au long des 3 phases.
Nous résumons le plan de circulation dans le tableau suivant:

Figure 6: Plan de circulation.

KAOUANE Mohamed El Amine 28 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

5.12.2 Planification d’une formation

Une entreprise composée de neuf salariés : Ali, Lila, Amel, Omar, Sara, Samir, Adam, Karim et Amina.
Le chef de cette entreprise décide de faire subir a ses salaries des formations dans des différentes spécialités:
comptabilité, informatique, Droit, théorie des graphes, Marketing et Anglais. Le plan de formation est donné
par le tableau suivant :

Figure 7: Le plan de formation.

Nous supposons que chaque cours dure une heure et que les salariés n’ont pas les mêmes connaissances
préalables. Le symbole ”x” indique les formation dont le salarié a besoin. L’objectif est d’organiser une
session de formation qui dure le moins longtemps possible de façons à ce que tout salarié suit les formations
indiquées.
La solution la plus évidente pour planifier tout ça est de programmer les cours l’un après l’autre. Ainsi la
session de formation durera six heures (six cours d’une heure). La question est: peut-on faire mieux en tenant
compte du fait que les formations dont un même candidat est concernées ne peuvent pas être programmées
à la même heure. Nous associons le graphe G = (V, E) tel que les sommets représentent les cours et deux
sommet sont reliés par une arête si et seulement si les deux cours ne peuvent pas avoir lieu au même temps.
Le graphe suivant donne une modélisation de ce plan formation :

Figure 8: Modélisation de la formation.

D’après ce graphe, on voit bien que le cours d’informatique et celui du droit peuvent être programmes en
même temps car ils sont pas adjacents dans G. Ainsi il est naturel de penser qu’une partition minimale en
stable donne un planning optimale pour le dérou- lement de cette formation, i.e. ce planning sera donné par
le nombre chromatique de G. Commençons par l’application de l’algorithme Lex-BFS sur G.

KAOUANE Mohamed El Amine 29 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Figure 9: L’ordre des sommets de G

L’ordre des sommets obtenu est : σ = {I, A, D, T, M, C}. L’exécution de l’algorithme Lex-BFS sur ce graphe
vérifie que cet ordre est un ordre d’élimination parfait, et donc le graphe est triangulé.
Le planning optimal est le suivant: à la première heure, on programme le cours de comptabilité et anglais,
à la deuxième heure marketing qui intéresse tout le monde, à l’heure suivante le cours de la Théorie des
Graphe qui intéresse aussi tout le monde et enfin le cours d’informatique et celui de droit.
Une partition minimale en stable donne un planning optimale pour le déroulement de cette formation, i.e.
ce planning sera donné par le nombre chromatique de G.
L’application de l’algorithme Lex-COLOR donne une coloration optimale pour les sommets de G comme le
montre la figure suivante:

Figure 10: La coloration optimale.

5.12.3 Qui a tué le Duc de Densmore ?

A l’époque, le duc de Densmore avait été tué par l’explosion d’une bombe, qui avait également détruit son
chateau. Les journaux d’alors relataient que le testament, détruit aussi par l’explosion, avait tout pour
déplaire à l’une de ses sept ex-femmes. Or, avant de mourir, le duc les avait toutes invitées à passer quelques
jours. Sherlock Holmes a enquêté sur le meurtre commis, il interrogea les sept ex-femmes sur qui elles y ont
rencontrées :
Ann a rencontré Betty, Charlotte, Félicia, Georgia
Betty a rencontré Ann, Charlotte, Edith, Felicia , Helen.
Charlotte a rencontré Ann, Betty, Edith.
Edith a rencontré Betty, Charlotte, Felicia.
Felicia a rencontré Ann, Betty, Edith, Helen.
Georgia a rencontré Ann, Helen.
Helen a rencontré Betty, Felicia , Georgia.

KAOUANE Mohamed El Amine 30 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Figure 11: Le graphe G représentant la relation “a rencontré”.

Ce graphe n’est pas triangulé car les cycles A-B-H-G et A-C-H-G sont sans corde. Donc quelqu’un a menti,
d’autre part le cycle A-B-C-D-E-F posséde des cordes (le sous-graphe induit est effectivement triangulé).
La personne commune aux 3 cycles posant problème est A, donc la coupable est Ann.

KAOUANE Mohamed El Amine 31 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Part VI

Conclusion
Ce travail fait l’objet d’une étude sur une classe de graphe, qui est les graphes triangulés et leurs propriétés
et généralisations apres avoir rappelé les notions de base de la théorie des graphes, en particulier certaines
classes de graphes classiques, nous avons mentionné quelques théorèmes et sur les graphes triangulés.
L’objectif de cette étude est de faire connaitre d’une manière générale le concept des classes de graphes avec
leurs différentes variantes tout en mettant en évidence le principal avantage de la reconnaissance des graphes
notamment en pratique.
Notre travail a également fait l’objet d’une étude sur le probleme de coloration, notament sur la classe des
graphes triangulés.
En présentant une application des graphes triangulés, et avons programmé l’algorithme de reconnaissance
de la classe des graphes triangulés ainsi que l’algorithme de coloration de cette classe avec le langage de
programmation Python.

KAOUANE Mohamed El Amine 32 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Annexe

Dans cette annexe nous allons proposer une application qui résout le problème de coloration pour un graphe
quelconque.
Il suffit d’introduire la matrice d’adjacence de du graphe que nous souhaitons colorer ainsi choisir la taille
de la matrice dans la barre.
Pour en finir lancer l’algorithme de coloration glouton en cliquant sur le bouton ’Lancer l’algorithme’.

Figure 12: Application qui résout le problème de coloration.

Dans le panel s’affichera notre graphe introduit ainsi que la coloration des sommets de ce dernier.
Nous allons tester notre application sur le problème des feux de circulation.

Figure 13: Résolution du problème des feux de circulation.

KAOUANE Mohamed El Amine 33 TIFAOUI Sarra Soumeya


Projet Problème de reconnaissance, classes des graphes et problème de coloration CGA

Bibliographie

Classes de graphes.
Les graphes d’intervalles, Complément au chapitre 3 ≪ Vol aux archives cantonales ≫ .
Algorithmique de graphes, Graphes triangulés, Fabien de Montgolfier
Etude d’une nouvelle classe de graphes : les graphes hypotriangulés, Hélène Topart.
Stabilité et coloration des graphes sans P5, Grégory Morel.
Site ISGC: https://www.graphclasses.org/.
Quelques méthodes de résolutions en optimisation combinatoire, Kherbouche Lynda, Oubahri Zohra.
Graphes parfaits : Structure et algorithmes, Nicolas Trotignon.
Cours Professeur Ait Haddaden, Master 1 RO2MIR 2020/2021.

KAOUANE Mohamed El Amine 34 TIFAOUI Sarra Soumeya

Vous aimerez peut-être aussi