Académique Documents
Professionnel Documents
Culture Documents
Projet GPA
Projet GPA
Faculté de Mathématiques
présenté par :
BOULHRAM Lysa
M1-RO2MIR
lysaboulhram@gmail.com
Juin 2021
Table des matières
1 Présentatio générale 6
1.1 Concepts fondamentaux de la théorie des graphes . . . . . . . . . . . . . . . . . 6
1.1.1 Graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.2 Sommet adjacent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3 Sous-graphes et sous-graphes induits . . . . . . . . . . . . . . . . . . . . 7
1.1.4 Complémentaire d’un graphe . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.5 Graphes connexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.6 Stable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.7 Clique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.8 chaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.9 cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.10 cord trou et anti-trou . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.1.11 Graphe Complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.12 Arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Complexité Algorithmique et les Classes des Problème . . . . . . . . . . . . . . 9
1.2.1 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.2 Complexité d’un Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.3 Complexité d’un Problème . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2.4 Classes de problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.5 Problème de reconnaissance des graphes . . . . . . . . . . . . . . . . . . 11
3 Graphe triangulé 14
3.1 Ordre d’élimination simplicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.1.1 Sommet simplicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 L’Algorithme de reconnaissance des graphes triangulés . . . . . . . . . . . . . . 15
3.3 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.1 Langage utilisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3.2 programme de reconnaissance des graphes triangulés . . . . . . . . . . . 18
3.3.3 Application sur un Example . . . . . . . . . . . . . . . . . . . . . . . . . 19
2
4 graphe sans patte (Paw-free graphs) 20
4.1 Graphe multiparti-complet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.1.1 L’Algorithme de reconnaissance des graphes Sans Patte . . . . . . . . . . 21
4.2 Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2.1 programme de reconnaissance des graphes sans tringule . . . . . . . . . 22
4.2.2 programme de reconnaissance des graphes multipartie-complet . . . . . 23
4.2.3 programme de reconnaissance des graphes sans patte . . . . . . . . . . . 23
3
Introduction
La théorie des graphes est un domaine très vaste. On l’utilise souvent comme outil de modé-
lisation des problèmes pratiques. En effet, la résolution d’un problème modélisé par un graphe
revient en général à chercher certaines caractéristique du graphe ou à le colorer ou bien encore
à tester son appartenance à l’une des classes de graphes connues. Ce test qu’on effectue pour
décider de l’appartenance ou non d’un graphe à une classe donné de graphe est connu sous le
nom de la «reconnaissance des graphes». Il existe plusieurs classes de graphes dans la littéra-
ture. Leur importance réside dans leur utilité dans la pratiques et les diverses situations qui
peuvent être modélisées par des graphes appartenant à ces classes.
Dans la premier chapitre, nous allons introduire quelques terminologies utilisées dans l’en-
semble de ce document 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 re-
connaissance. Dans le troisième chapitre.
Dans le deuxième chapitre,nous allons parler sur La classe des graphes parfaits qui été définie
par Berge au début des années 1960. Peu à peu plusieurs résultats ont montré que cette classe
possédait de nombreuses bonnes propriétés, et qu’elle contenait un grand nombre de classes
déjà existantes
Dans le troisième chapitre on donne les caractéristiques des graphes triangulés, leurs algorithmes
de reconnaissance et de colo- ration. On trouve aussi le parcours en largeur lexicographique
LexBFS qui est un outil de reconnaissance des graphes chordal. Enfin, nous allons résoudre par
le biais d’un programme implémenter sous le langage de programmation python l’algorithme
de reconnaissance des graphes de cette classe
4
Dans le quatrème chapitre, on parle des graphes Sns patte. Un aperçu sera donné sur les
propriétés les plus importantes de cette classe de graphe . On donnera aussi les différents outils
et notions utilisés pour la reconnaissance Enfin, nous allons résoudre par le biais d’un pro-
gramme implémenter sous le langage de programmation python l’algorithme de reconnaissance
des graphes de cette classe
5
Chapitre 1
Présentatio générale
1.1.1 Graphe
Un graphe fini G = (V, E) est défini par l’ensemble fini V = v1 , v2 , ..., vn dont les éléments
sont appelés sommets , et par l’ensemble fini E = e1 , e2 , ..., em dont les éléments sont appelés
arêtes . Une arête e de l’ensemble E est définie par une paire non ordonnée de sommets, appelés
les extrémités de e. Si l’arête e relie les sommets a et b, on dira que ces sommets sont adjacents,
ou incidents avec e, ou bien que l’arête e est incidente avec les sommets a et b.
. Le voisinage d’un sommet v est l’ensemble des sommets adjacents ‘a v, noté N (v).
6
1.1.3 Sous-graphes et sous-graphes induits
Soit G = (V, E) un graphe simple. un graphe simple H est dit sous-graphe de G = (V, E) si
V (H) ⊆ V et E(H) ⊆ E
Un sous-graphe H de G est dit graphe induit de G si les sommets de H qui sont adjacents dans
G ils le sont dans H.
Soit X un ensemble de sommet du graphe G = (V, E). On appelle graphe induit par X le
graphe G(X) = (X, EX ) défini par X et toutes les are*tes de E ayant ses extrémités dans
X.En particulier si G′ = (V ′ , E ′ ) est un sous-graphe induit de G = (V, E) alors G′ = G(V ′ )
. Ilest clair que le graphe induit par X est le plus grand sous-graphe de G = (V, E) contenant X.
le graphe complémentaire ou graphe inversé d’un graphe simple G est un graphe simple
Ḡ ayant les mêmes sommets et tel que deux sommets distincts de Ḡ soient adjacents si et
seulement s’ils ne sont pas adjacents dans G.
Définition : On définit une relation noté entre les sommets d’un graphe G = (V, E) s’ils
sont liés par un chemin. On vérifie que est une relation d’équivalence. Une classe d’équivalence
pour est appelée composante connexe de G. On dit que G est connexe s’il possède une seule
composante connexe. Autrement dit, un graphe G est connexe si pour tous x,y de V, il existe
un chemin dans G les reliant.
Définition : Soit G = (V, E) un graphe connexe (d’ordre ≥ 2). Un sommet v de G est un
point d’articulation de G si G − v est non connexe. Une arête e de G est un pont de G si Ge
est non connexe.
7
1.1.6 Stable
Dans un graphe G = (X, E) le sous ensemble des sommets S ⊂ X ; S ̸= ∅ est dit stable s’il
est constitué de sommet deux à deux non adjacent .
autrement dit le sous graphe engendré par S ne contient aucune arète.
Le nombre de stabilité dans un graphe ,noté α(G),est le cardinal d’un stable maximum
1.1.7 Clique
1.1.8 chaine
Une chaîne de G est une liste ordonnée de sommets telle que chaque sommet de la liste soit
adjacent au suivant
1.1.9 cycle
Un cycle est une chaîne fermée dont toutes les arêtes sont distinctes.
La longueur d’une chaîne ou d’un cycle est le nombre d’arêtes qui la composent.
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 ^etre ordonnés
de manière à former un cycle sans corde .
Un anti- trou est le graphe complémentaire d’un trou.
8
1.1.11 Graphe Complet
Un graphe est complet si tous les sommets sont adjacents les uns avec les autres,Un graphe
complet d’ordre n est note Kn .
1.1.12 Arbres
On appelle arbre tout graphe simple connexe sans cycle. On appelle forêt tout graphe simple
sans cycle.
blème
1.2.1 Algorithme
procédure de calcul bien définie qui prend en entrée une valeur, ou un ensemble de valeurs,
et qui donne en sortie une valeur, ou un ensemble de valeurs. Un algorithme est donc une
séquence d’étapes de calcul qui transforment l’entrée en sortie
La complexité d’un algorithme est une prédiction ou une garantie que l’algorithme ne pren-
dra jamais plus qu’un certain nombre d’étapes ou opérations, qui dépend souvent de la taille
des données qu’il manipule. On note en général n cette taille et on cherche « formule(n) » qui
représente le nombre maximum d’opérations et dépend de l’algorithme.
la complexité des algorithmes a abouti à une classification des problèmes en fonction des
performances des meilleurs algorithmes connus qui les résolvent.
La complexité d’un problème A est la complexité du meilleur algorithme qui résout A .https ://fr.overleaf.com
9
1.2.4 Classes de problèmes
La classe P
l’ensemble P est l’ensemble des problèmes pour lesquels il existe un algorithme de résolution
en temps polynomial en fonction de la taille des entrées. Les algorithmes des problèmes de P
sont dits efficaces , Mais il existe des problèmes pour lesquels on ne connaît aucune solution
efficace
La classe NP
La classe NP-Complet
Un problème NP-complet possède la propriété que tout problème dans NP peut ^etre trans-
formè en celui-ci en temps polynomial
La classe NP-Difficile
Ce sont les problè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
10
dernieres années sont nombreuses, elles sont le reflet de l’éventail de méthodes dont on dispose
pour traiter les problemes d’optimisation combinatoire.
11
Chapitre 2
La classe des graphes parfaits a été définie par Berge au début des années 1960. Peu à peu
plusieurs résultats ont montré que cette classe possédait de nombreuses bonnes propriétés, et
qu’elle contenait un grand nombre de classes déjà existantes
Définition : On définit la classe des graphes parfaits comme la classe des graphes G tels
que pour tout H sous-graphe de G, alors ω(H) = χ(H)
Un graphe G est dit de Berge s’il ne contient ni trou impair ni anti-trou impair comme sous-
graphe induit.
Les graphes parfaits, outre leur utilité indéniable dans le monde de l’algorithmique, sont
connus pour les 3 théorèmes suivants, qui furent pendant longtemps des conjectures. Chacun
d’eux est aujourd’hui résolu :
12
2.2.1 La Conjecture faible des graphes parfaits
Théorème
Soit G un graphe parfait. Alors Ḡ le complémentaire de G est également parfait
Ce théorème a été énoncé par Berge et résolu 12 ans plus tard en 1972 par Laslo Lovasz.
Théorème
G est parfait ssi ni G ni Ḡ ne contiennent de trou de longueur impair
Théorème
Il existe un algorithme terminant en temps polynomial déterminant si un graphe simple G est
parfait ou non.
La conjecture forte des graphes parfaits et le problème de l’existence d’un algorithme de recon-
naissance ont tous deux été résolus en 2002 par Seymour et Al.
13
Chapitre 3
Graphe triangulé
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 nous intéressser à la classe des graphes triangulés, une classe
qui a sutrouver une place importante dans la pratique, en particulier dans les problèmes d’al-
location. Nous définissons cette classe, tout en donnant des généralités ainsi que l’algorithme
de reconnaissance de cette classe de graphe.
Définition
Un graphe est triangulé si tout cycle de longueur ≥ 4 contient une corde (i.e, le graphe est sans
Ck pour k ≥ 4) ; ( i.e. les seuls cycles induits sont des triangles.).
Exemple
Figure 3.1 – -a- Le graphe triangulé -b- Le graphe n’est pas triangulé car il contient un cycle
de longueur 4.
14
3.1 Ordre d’élimination simplicial
Définition
Un sommet x d’un graphe G est dit simplicial si son voisinage NG(x) est une clique.
Définition
Un graphe G à n sommets a un ordre d’élimination simplicial (PEO ) 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 }
Théorème (fulkerson et Gross)
Un graphe est triangulé si et seulement s’il possède un ordre d’élimination simplicial.
gulés
15
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) ∪ i // Concaténation de i à la fin de la marque y
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 com-
plexité temporelle O(E + V ).
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.
principe de l’algorithme
Le principe est grossièrement de faire un parcours en largeur en privilégiant les nœuds qui
sont les moins « récemment vus ».
Un pseudo code est le suivant, pour un graphe de n nœuds : Initialement chaque nœud a
une étiquette vide et n’a pas de numéro. pour i allant de n à 1 :
Choisir un sommet v n’ayant pas de numéro, et ayant la plus grande étiquette en ordre lexico-
graphique.
Associer le numéro i à v.
Pour tout sommet adjacent à v n’ayant pas de numéro, concaténer i à l’étiquette.
16
3.3 Application
Python est un langage de programmation de haut niveau à usage général largement utilisé.
Il a été créé par Guido van Rossum en 1991 et développé par la Python Software Foundation. Il
a été conçu en mettant l’accent sur la lisibilité du code, et sa syntaxe permet aux programmeurs
d’exprimer leurs concepts en moins de lignes de code.
17
3.3.2 programme de reconnaissance des graphes triangulés
18
3.3.3 Application sur un Example
19
Chapitre 4
Théorème d’Olariu
Un graphe G est sans patte si et seulement si toute composante connexe est soit sans triangle,
soit multiparti-complet.
Corolaire
Soit G un graphe connexe de Berge. G est paw-free si et seulement si G est soit biparti, soit
multiparti-complet.
Cette classe de graphes, généralisant les graphes bipartis-complets, est définie comme suit :
Un graphe G = (V, E) est dit multiparti-complet si V admet une partition en p stables
S1, S2, ..., Sp , telle que pour i = 1, 2, ..., p, tout sommet de Si est adjacent à tout sommet
de Sj , pour tout j ̸= i.
Les graphes multipartis-complets sont exactement les graphes sans F, où F est le sous-graphe
engendré par les sommets a, b, c et l’arête ab.
Remarque : La reconnaissance et la coloration optimale des graphes multipartis-complets
sont possibles en temps polynomial en appliquant un algorithme simple qui consiste à partition-
ner le graphe considéré en stables, tout en vérifiant que les sommets appartenant à un même
20
stable ont le même voisinage.
21
Algorithm 3 reconnaissance des graphes sans patte
Donnée : Un graphe G = (V, E) à n sommets.
Résultat : G est sans patte ou pas
si G ne ne contien pas un triangle
alors le graphe G est sans patte
sinon si G est multipartie-complet
alors G est sans patte
fin si
fin algorithme
4.2 Application
22
4.2.2 programme de reconnaissance des graphes multipartie-complet
23
Conclusion
Ce travail fait l’objet d’une étude sur les classe des graphes parfait,plus précisament les
graphes triangulés et les grqphes sans patte 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 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. 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 reconnaissace des graphes sans patte ces progrmme sont
programmés en Python.
24
Bibliographie
[3] Peter. Bartlett. Undirected Graphical Models : Chordal Graphs, Decom- posable Graphs,
Junction Trees, and Factorizations. October 2003.
[4] M. Chudnovsky and P.D. Seymour, Recognition algorithm for Berge graphs, preprint, 2003.
25