Vous êtes sur la page 1sur 25

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-Boumédiène

Faculté de Mathématiques

Département de Recherche Opérationnelle

Graphes Parfaits et Applications

Problème du Reconnaissance Des Graphes Parfait

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

2 Présentation Générale des Graphes Parfaits. 12


2.1 La Classe des Graphe Parfait . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Les théorèmes des graphes parfaits . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 La Conjecture faible des graphes parfaits . . . . . . . . . . . . . . . . . . 13
2.2.2 La Conjecture forte des graphes parfaits . . . . . . . . . . . . . . . . . . 13
2.2.3 La reconnaissance en temps polynomial des graphes parfaits . . . . . . . 13

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 Concepts fondamentaux de la théorie des graphes

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.

1.1.2 Sommet adjacent

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^ete de G, alors u et v sont les extrémités de e, et e est dite incidente ‘a u et v. Deux
ar^etes sont dites incidentes si elles ont une extrémité en commun.

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

1.1.4 Complémentaire d’un graphe

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.

1.1.5 Graphes connexes

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

Une clique de G, notée K, est un ensemble de sommets adjacents deux-‘a-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)

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.

1.1.10 cord trou et anti-trou

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.

1.2 Complexité Algorithmique et les Classes des Pro-

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

1.2.2 Complexité d’un Algorithme

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.

1.2.3 Complexité d’un Problème

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

Définition Un problème A est réductible à un problème B s’il existe un algorithme


résolvant A qui utilise un algorithme résolvant B.

Définition Si l’algorithme résolvant A est polynomial, considérant les appels à l’algo-


rithme résolvant B comme de complexité constante, la réduction est dite polynomiale. On dit
que A est polynomialement réductible à B et l’on note A B.

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 (problèmes Non-déterministes Polynomiaux) est l’ensemble des problèmes qui


peuvent être résolus sur une machine non déterministe en temps polynomial en fonction de la
taille des entrées

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.

1.2.5 Problème de reconnaissance des graphes

Reconna^ıtre une classe de graphes, c’est donner un algorithme permettant de d´ecider si


un graphe appartient ou non à la classe.

11
Chapitre 2

Présentation Générale des Graphes


Parfaits.

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

2.1 La Classe des Graphe Parfait

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.

2.2 Les théorèmes des graphes parfaits

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.

2.2.2 La Conjecture forte des graphes parfaits

Théorème
G est parfait ssi ni G ni Ḡ ne contiennent de trou de longueur impair

2.2.3 La reconnaissance en temps polynomial des graphes parfaits

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

3.1.1 Sommet 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.

3.2 L’Algorithme de reconnaissance des graphes trian-

gulés

LexBFS, ou parcours en largeur lexicographique est un algorithme de théorie des graphes.


C’est un raffinement de l’algorithme de parcours en largeur (BFS pour Breadth First Search
en anglais). Ce parcours est très utile pour étudier certaines classes de graphes et pour obtenir
des algorithmes de reconnaissance rapides de ces classes.
ce algorithme permet de trouver efficacement un ordre d’élimination simplicial d’un graphe tri-
angulé, 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.

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

3.3.1 Langage utilisé

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

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

Figure 3.2 – L’ordre des sommets de G

19
Chapitre 4

graphe sans patte (Paw-free graphs)

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.

4.1 Graphe 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.

Algorithm 2 Reconnissace des graphes multiparti-complet


Donnée : Un graphe G = (V, E) à n sommets.
Résultat : L’une des possibilités suivantes : a- G n’est pas multiparti-complet.
b- Une partition minimale de G en stables S1, S2, ..., Sω (une ω-coloration deG).
(1) (Initialisation) S := V ; i := 1 ;
(2) Tant que S ̸= ∅faire
(2.1) Choisir un sommet v ∈ S ;
(2.2) Si := {v} ;
(2.3) Pour tout sommet w de S non adjacent à v faire Si v et w ont le même
voisinage dans S alors Si := Si ∪ w ;
Sinon retourner « G n’est pas multiparti-complet » ;
(2.4) S := S Si ;
(2.5) i := i + 1 ;

4.1.1 L’Algorithme de reconnaissance des graphes Sans Patte

Il est facile de décrire un algorithme polynomial de reconnaissance des graphes de Berge


sans patte.

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

4.2.1 programme de reconnaissance des graphes sans tringule

22
4.2.2 programme de reconnaissance des graphes multipartie-complet

4.2.3 programme de reconnaissance des graphes sans patte

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

[1] Algorithmique de graphes, Graphes triangulés, Fabien de Montgolfier

[2] Site ISGC : https ://www.graphclasses.org/.

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

[5] Graphes parfaits : Structure et algorithmes, Nicolas Trotignon.

[6] Quelques m´ethodes de r´esolutions en optimisation combinatoire, Kherbouche Lynda,


Oubahri Zohra.

25

Vous aimerez peut-être aussi