Vous êtes sur la page 1sur 77

Chap 2 Graphes Orientés

INF 1211 Algorithmique des Graphes


Unité de Formation et Recherche Sciences et Technologie
Université de Thies

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 1 / 77 / 77
Graphes orientés Introduction

Introduction
Beaucoup de situations réelles et pratiques requièrent des graphes
dans laquelle l’orientation des arêtes est importante.
C’est le cas de cartes routières d’une ville où des rues ont un sens
unique de parcours, des réseaux électriques, de flots sur des réseaux
de pipelines.
Il est aussi nécessaire d’orienter les arêtes dans la représentation
abstraite de programmes informatiques où les sommets représentent
les instructions des programmes tandis que les arêtes spécifient leurs
séquences d’exécution.
Les graphes orientés constituent un outil de grande valeur dans l’étude
de machines séquentielles.
La grande majorité des concepts étudiés dans le chapitre sur les
graphes non orientés sont toujours valides pour les graphes orientés.
C’est pourquoi souvent l’orientation des arêtes d’un graphe orienté
n’est pas considérée.
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 2 / 77 / 77
Graphes orientés Introduction

Définition 1
Nous passons d’un graphe non orienté à un graphe orienté en
affectant un sens aux arêtes du graphe non orienté.
Un graphe orienté (ou digraphe) G = (V , E), est défini par l’ensemble
fini V = {v1 , v2 , .., vn } dont les éléments sont appelés sommets
(vertices en anglais) et par l’ensemble fini E = {e1 , e2 , .., em } dont les
éléments sont appelés arcs.
Un arc e de l’ensemble E est défini par une paire ordonnée de
sommets.
Si e = (u, v ), on dit que l’arc e va de l’extrémité initiale u (noeud initial)
à l’extrémité finale v (noeud terminal).
Tout arc dont le noeud initial et le noeud terminal sont identiques est
appelé boucle.
Précision : Le mot digraphe pro vient de la contraction de l’expression
anglaise "directed graph".

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 3 / 77 / 77
Graphes orientés Introduction

Exercice 1

Construire un graphe orienté dont les sommets sont les entiers


compris entre 1 et 12 et dont les arcs représentent la relation " être
diviseur de ".

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 4 / 77 / 77
Graphes orientés Introduction

Définition 2 (degré d’un sommet d’un digraphe)

Soit v un sommet d’un graphe orienté. On appelle et on note d + (v ) le


degré extérieur (ou demi-degré extérieur) du sommet v, le nombre
d’arcs ayant v comme extrémité initiale.
On appelle et on note d − (v ) le degré intérieur (ou demi-degré
intérieur) du sommet v, le nombre d’arcs ayant v comme extrémité
finale.
On définit d(v ) le degré de v par d(v ) = d + (v ) + d − (v )
Un sommet isolé est un sommet dont le degré extérieur et le degré
intérieur sont tous les deux nuls.
Un sommet est dit pendant si son degré vaut 1 c-à-d
d + (v ) + d − (v ) = 1
Deux arêtes orientées sont dits parallèles si elles ont la même
extrémité initiale et la même extrémité finale.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 5 / 77 / 77
Graphes orientés Introduction

Définition 3

Le graphe non orienté obtenu en ignorant l’orientation des arcs d’un


digraphe G = (V , E) est appelé graphe non orienté correspondant à G.
Aussi, étant donné un graphe non orienté H, le graphe orienté obtenu
en assignant une direction à chaque arc de H est appelé orientation de
H (ou graphe orienté associé à H).
Il convient de noter que si tout graphe orienté admet un unique graphe
non orienté correspondant (à un isomorphisme près), alors tout
digraphe peut avoir plusieurs orientations possibles.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 6 / 77 / 77
Graphes orientés Introduction

Définition 4 (Isomorphisme de digraphes)

Les graphes isomorphes sont définis de telle sorte qu’ils ont le même
comportement du point de vue des propriétés des graphes. Autrement
dit, si leurs attributs sont effacés, on ne peut pas faire la différence
entre deux graphes isomorphes.
Deux graphes orientés sont dits isomorphes si :
1. Leurs graphes non orientés correspondants sont isomorphes ;
2. La direction de leurs arêtes correspondantes doivent être
conforme.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 7 / 77 / 77
Graphes orientés Quelques types de graphes orientés

Quelques types de graphes orientés


1. Graphe orienté simple : c’est un digraphe sans boucles ni arcs
parallèles
2. Graphe orienté asymétrique (ou antisymétrique) : digraphe ayant
au plus un arc entre deux sommets et à qui il est permis d’avoir
des boucles
3. Graphe orienté symétrique : digraphe pour lequel pour tout arc
(a, b), il existe l’arc (b, a)
4. Digraphe complet : Il convient de rappeler qu’un graphe non
orienté complet a été défini comme un graphe simple dans lequel
chaque sommet est lié à tout autre sommet par exactement une
arête. Toutefois, pour les graphes orientés, nous avons deux types
de graphes complets. Un digraphe est dit symétrique complet si
c’est un graphe simple dans lequel chaque sommet est orienté
vers tout autre sommet. Un digraphe antisymétrique complet est
un graphe orienté antisymétrique dans lequel il y a exactement un
arc liant chaque paire de sommets.
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 8 / 77 / 77
Graphes orientés Quelques types de graphes orientés

Propriétés de quelques types de graphes orientés

1. Tout digraphe complet asymétrique de n sommets contient


n(n − 1)/2 arêtes. Ce type de graphe est appelé tournoi ou
tournoi complet
2. Tout digraphe complet symétrique de n sommets contient n(n − 1)
arêtes
3. Un graphe orienté est dit équilibré (ou pseudo-symétrique ou
isographe) si, pour chaque sommet, le degré extérieur est égal au
degré intérieur d + (v ) = d − (v )
4. Un digraphe équilibré est dit régulier si pour chaque sommet, son
degré intérieur est égal à son degré extérieur et ce nombre est le
même pour chaque autre sommet.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 9 / 77 / 77
Graphes orientés Chemins et circuits

Définition 5 (Chemins)
Un chemin conduisant du sommet a au sommet b est une suite ayant
alternativement des sommets et des arcs, commençant et se
terminant par un sommet, et telle que chaque arc est encadré à
gauche par son sommet initial et à droite par son sommet final. On ne
peut pas prendre les arcs à rebours (c-à-d dans un sens contraire à
l’orientation de l’arc).
Il est évident qu’une arête ne pourrait apparaitre plus qu’une fois dans
un chemin. Toutefois un sommet peut apparaitre plus qu’une fois
comme dans les graphes non orientés.
Une semi-chaine dans un digraphe est la chaine correspondante dans
le graphe non orienté mais qui n’est pas un chemin.
Par convention, tout chemin comporte au moins un arc.
On appelle distance entre deux sommets d’un digraphe la longueur du
plus petit chemin les reliant.
S’il n’existe pas de chemin entre les sommets x et y, on pose
d(x, y ) = ∞
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 10 / 77 / 77
Graphes orientés Chemins et circuits

Définition 6 (Circuit)

Un circuit est un chemin dont les sommets de départ et de fin sont les
mêmes.
Les notions de chemins et de circuits sont analogues à celles des
chaines et cycles pour les graphes non orientés.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 11 / 77 / 77
Graphes orientés Chemins et circuits

Exercice 2

On souhaite prélever 4 litres de liquide dans un tonneau. Pour cela,


nous avons à notre disposition deux récipients (non gradués !), l’un de
5 litres, l’autre de 3 litres.
Comment doit-on procéder ?

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 12 / 77 / 77
Graphes orientés Digraphes et connexité

Forte connexité et faible connexité

I Un digraphe est fortement connexe s’il y a au moins un chemin


entre toute paire de sommets.
I Un digraphe est faiblement connexe si son graphe non orienté
correspondant est connexe sans que lui-même soit fortement
connexe. Un digraphe est dit connexe si en fait, son graphe non
orienté correspondant est connexe. Ainsi, déclarer qu’un digraphe
est connexe ne veut pas dire qu’il est fortement ou faiblement
connexe.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 13 / 77 / 77
Graphes orientés Digraphes et connexité

Forte connexité et faible connexité


Puisqu’il existe deux types de connexité pour les digraphes, nous
dirons aussi deux types composantes.
I Un sous graphe maximal (fortement ou faiblement) connexe sera
appelée composante du graphe G. A l’intérieur de chaque
composante de G, le sous graphe maximal fortement connexe est
appelé fragment ou fragment fortement connexe de G ;
I La condensation d’un digraphe G est un digraphe dans lequel
chaque fragment fortement connexe est remplacé par un sommet
et toutes les arêtes orientées d’une composante fortement
connexe à un autre sont remplacées par une seule arête orientée
dans lequel.
Remarques :
1. La condensation d’un digraphe fortement connexe est simplement
un sommet ;
2. La condensation d’un digraphe ne possède pas de circuit orienté.
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 14 / 77 / 77
Graphes orientés Digraphes et connexité

Accessibilité

I Dans un digraphe, un sommet b est dit accessible ou atteignable


à partir d’un sommet a s’il existe un chemin de a vers b ;
I Un digraphe est fortement connexe si et seulement chaque
sommet dans G est accessible à partir de n’importe quel autre
sommet.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 15 / 77 / 77
Graphes orientés Digraphes et connexité

Exercice 3

Donnez un algorithme permettant de calculer la distance entre deux


sommets x et y d’un digraphe connexe.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 16 / 77 / 77
Graphes orientés Digraphes et connexité

Exercice 4

Proposez un algorithme qui détermine si un graphe est fortement


connexe ou non.
Indication : utilisez un système de marquage des sommets.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 17 / 77 / 77
Graphes orientés Digraphes et connexité

Digraphes eulériens

La notion de graphe eulérien peut être étendue aux digraphes aussi.


I Dans un digraphe, un chemin est dit eulérien s’il est fermé (il
commence et se termine par le même noeud) et traverse chaque
arc exactement une seule fois ;
I Un digraphe contenant un chemin eulérien est appelé graphe
eulérien.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 18 / 77 / 77
Graphes orientés Digraphes et connexité

Théorème 1

Un digraphe G est un digraphe eulérien si et seulement si G est


connexe et est équilibré (i.e, d + (v ) = d − (v ) pour chaque sommet v de
G) .

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 19 / 77 / 77
Graphes orientés Arbres et digraphes

Rappel sur la notion d’Arbre

Pour les graphes non orientés, un arbre a été défini comme un graphe
connexe sans circuit. Le concept de base reste le même pour les
graphes orientés.
Un arbre dans ce cas est un digraphe connexe sans circuit c-à-d sans
circuit orienté ni semi-circuit.
Un arbre de n sommets contient n - 1 arcs et possède des propriétés
similaires à ceux avec des arêtes.
Les arbres dans les graphes orientés ont une grande importance dans
beaucoup d’applications comme l’analyse des réseaux électriques, la
théorie des jeux, la théorie des langages, la programmation
informatique, les problèmes de dénombrements etc..
En outre, du fait de l’orientation des arêtes, les arbres dans les
digraphes possèdent des propriétés supplémentaires.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 20 / 77 / 77
Graphes orientés Arbres et digraphes

Arbres couvrants
Un arbre est appelé arbre couvrant (aussi appelé arbre maximal et
spanning tree en anglais) d’un graphe connexe G s’il est un sous
graphe de G et s’il contient tous les sommets de G.
Remarques :
I Le terme maximal fait référence au nombre d’arêtes. S un graphe
connexe ne possède pas de circuit, il est son propre arbre
couvrant ;
I Un arbre couvrant est défini seulement pour un graphe connexe
car un arbre est toujours connexe. Dans un graphe disconnecté
avec n sommets, nous ne pouvons pas trouver de sous graphe
avec n sommets ;
I Une collection d’arbres est appelée forêt. Un graphe disconnecté
avec k composantes connexes possède toutefois une forêt
couvrante consistant en k arbres couvrants.
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 21 / 77 / 77
Graphes orientés Arbres et digraphes

Cordes

Les arêtes d’un digraphe non incluses dans un arbre couvrant


spécifique sont appelées cordes.
Chaque corde, lorsque ajoutée à l’arbre couvrant produit un circuit
fondamental.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 22 / 77 / 77
Graphes orientés Arbres et digraphes

Arbre couvrant de poids minimum

Soit le graphe G = (V , E) avec un poids associé à chacune de ses


arêtes.
On veut trouver, dans G, un arbre maximal A = (V , F ) de poids total
minimum.
Algorithme de Kruskal (1956)
Données :
I Graphe G = (V , E)(|V | = n, |E| = m)
I Pour chaque arête e de E , son poids c(e).
Résultat : Arbre ou forêt maximale A = (V , F ) de poids minimum.
Trier et renuméroter les arêtes de G dans l’ordre croissant de leur
poids :
c(e1 ) ≤ c(e2 ) ≤ .. ≤ c(em ).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 23 / 77 / 77
Graphes orientés Arbres et digraphes

Algorithme de Kruskal

Poser F := ∅, k := 0
Tant que k < m et |F | < n − 1 faire
Début S
si ek +1 ne forme pas de cycle avec F alors F := F {ek +1 }
k := k + 1
Fin

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 24 / 77 / 77
Graphes orientés Arbres et digraphes

Application de l’algorithme de Kruskal

5 5
2 3
1

2 4
3 1
2

4 5 6
1 3

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 25 / 77 / 77
Graphes orientés Arbres et digraphes

Arborescence

Il existe un type d’arbre particulièrement utile appelé arborescence.


Un digraphe G est appelé arborescence si :
I G ne possède pas de circuit (ni orienté ni de semi-circuit) ;
I Dans G, il existe exactement un sommet v avec un demi-degré
intérieur nul. Ce sommet est appelé racine de l’arborescence.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 26 / 77 / 77
Graphes orientés Arbres et digraphes

Théorème 2

Un arborescence est un arbre dans lequel chaque sommet autre que


la racine a un demi-degré intérieur exactement égal à 1.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 27 / 77 / 77
Graphes orientés Arbres et digraphes

Théorème 3

Dans un arborescence, il existe un chemin orienté de la racine vers


tout autre sommet.
Inversement, un digraphe G est un arborescence s’il existe un sommet
v dans G tel que chaque autre sommet est accessible à partir de v et v
n’est pas accessible à partir de tout autre sommet.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 28 / 77 / 77
Graphes orientés Arbres et digraphes

Graphe de comparabilité

Un graphe est de comparabilité si on peut orienter ses arêtes de façon


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

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 29 / 77 / 77
Graphes orientés Arbres et digraphes

Algorithme permettant de reconnaitre un graphe de


comparabilité

1. F := ∅
2. Tant que F 6= E faire
Choisir une arête e dans E − F , donner une orientation à e et
compléter cette orientation pour assurer une orientation transitive de
G.
Si une arête doit être orientée dans les deux sens, STOP :
G n’est pas un graphe de comparabilité.
Sinon, rajouter à F toutes les arêtes nouvellement orientées.
Si F = E alors
STOP : G est un graphe de comparabilité.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 30 / 77 / 77
Graphes orientés Arbres et digraphes

Algorithme de coloration minimale des sommets d’un


graphe de comparabilité

1. Déterminer une orientation transitive de G (par exemple à l’aide de


l’algorithme précédent), et poser i := 1.
2. Tant qu’il existe encore des sommets à colorer faire
Donner la couleur i à tous les sommets sans prédécesseur,
Ôter ces sommets du graphe,
Poser i := i + 1

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 31 / 77 / 77
Graphes orientés Arbres et digraphes

Exercice 5
Une compagnie de transport a un ensemble de trajets à effectuer. On
décide de représenter ceci par un graphe : un arc de Ti à Tj indique
que le trajet Tj peut être effectué par le même véhicule que celui qui a
effectué le trajet Ti .
1. De quel type est le graphe obtenu ?
2. Interprétez (dans le graphe non orienté) le problème de la
recherche d’un nombre minimum de véhicules.
Trajet T1 T2 T3 T4
de A B C B
à B C A A
Départ à 6h 10 h 8h 12 h
Durée du trajet A B C
A 1h 3h
B 2h 1h
C 2h 4h
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 32 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Représentations non graphiques de graphes (structures de


données)

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 33 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Introduction

La conception d’algorithmes nécessite une profonde connaissance


des techniques de structures de données ainsi que leurs coûts. Elle
est comparable à la conception d’un bâtiment. Tout ce qui doit y être
fait doit l’être de la façon la plus efficace possible. Ce qui nécessite
une connaissance approfondie des techniques de construction.
Dans cette partie, nous ne parlerons pas de façon approfondie des
différents types de structures de données en général (il existe de très
bons livres pour cela). Il est important d’avoir de bonnes notions des
structures de données qui changent en fonction du temps car dans
beaucoup de problèmes, il est souvent nécessaire d’insérer de
nouveaux éléments ou d’effacer des éléments existants de façon
efficace.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 34 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Listes chainées
Les listes chainées constituent la forme la plus simple des structures
de données dynamiques. Tous leurs éléments sont connectés à
travers des pointeurs. Un pointeur peut être vu comme une variable
ayant pour valeur l’adresse d’un autre élément de la liste chainée. Une
liste chainée est une liste de paires, chaque paire étant constituée d’un
élément et d’un pointeur qui pointe vers l’adresse de la prochaine
paire. Chaque paire est représentée par un enregistrement (record)
particulier, sorte de tableau à deux entrées dont les types diffèrent.
Une liste chainée est parcourue en suivant les adresses des pointeurs.
Ce parcours doit être linéaire (linear scan) c-à-d qu’on ne peut pas
avoir un accès direct à un élément de cette liste. Il faut la parcourir
depuis son début dans l’ordre.
Pour détecter la fin d’une liste, une adresse spéciale est disponible,
appelée NIL. Un pointeur NIL est un pointeur qui pointe nulle part.
Une autre possibilité consiste à choisir un enregistrement fictif (dummy
record) pour identifier la fin de la liste chainée.
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 35 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Listes d’adjacence

On peut représenter un digraphe en donnant pour chacun de ses


sommets la liste des sommets qu’on peut atteindre directement en
suivant un arc (dans le sens de la flèche).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 36 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Exemple de liste d’adjacence d’un graphe orienté

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 37 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Exercice d’application
Définir les listes d’adjacence du graphe orienté ci-dessous :

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 38 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Arborescences

Il faudrait remarquer que la seule structure que peuvent capturer les


tableaux et les listes d’adjacence est l’ordre. Cependant, il existe des
graphes pour lesquelles la capture de structures supplémentaires est
nécessaire. C’est le cas par exemple des arborescences (rooted trees)
qui sont des arbres qui requièrent des structures hiérarchiques.
Rappelons qu’une arborescences est formée de noeuds et d’arêtes
(ou arcs) qui relient ces sommets d’une façon particulière. Le noeud
racine est connecté à d’autres noeuds qui sont au niveau 1 de la
hiérarchie, qui eux-même sont connectés à d’autres noeuds qui sont
au niveau 2 de la hiérarchie, ainsi de suite.. Toutes les connections se
font entre des noeuds et leurs uniques noeuds précédents (appelés
parents). Seul le noeud racine n’a pas de parent. Les noeuds suivants
immédiats de chaque noeuds sont ses fils.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 39 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Arborescences (définitions)

Le nombre maximal de fils de tout noeud d’un graphe est appelé degré
de ce graphe. Les arborescences de degré 2 sont appelés arbres
binaires avec pour chaque noeud interne un noeud fils gauche et un
noeud fils droit. Tout noeud qui n’a pas de fils est appelé feuille. Tout
noeud qui n’est pas une feuille est un noeud interne. La hauteur d’un
arbre est le niveau maximal de cet arbre (la distance maximale entre le
noeud racine et une feuille).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 40 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Exemple d’arborescence

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 41 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Représentations en mémoire d’arborescences

I Explicite avec des enregistrements et pointeurs liant les noeuds


entre eux. Un noeud ayant k fils est un enregistrement contenant
un tableau de k pointeurs.
I Implicite avec des tableaux. Pas de pointeurs.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 42 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Représentations non graphiques (matricielles) de


graphes

Les matrices associées aux digraphes sont tout à fait similaires à


celles des graphes non orientés avec la différence basique suivante :
Pour prendre en compte l’orientation des arêtes, les matrices A, B et C
consistent en des +1, 0, -1 (plutôt que des 0 et 1 comme dans les
graphes non orientés). +1, 0 et -1 sont considérés comme des
nombres réels ordinaires.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 43 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Matrice d’incidence d’un digraphe


La matrice d’incidence d’un digraphe contenant n sommets et e arêtes
et pas de boucles est une matrice n par n A = (aij ) dont les n lignes
correspondent aux sommets et les e colonnes correspondent aux
arêtes, telle que :




1, si la j eme arête ej est incidente extérieurement au
i eme sommet





si la j eme arête ej est incidente intérieurement au

−1,
aij =


 i eme sommet
si la j eme arête ej n’est pas incidente au




0
i eme sommet

Les observations faites sur les propriétés des matrices d’incidence des
graphes non orientés subsistent, avec des changements mineurs, pour
les graphes orientés.
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 44 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Théorème 4

Si A(G) est la matrice d’incidence d’un digraphe connexe G ayant n


sommets, son rang est n - 1.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 45 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Théorème 5

Le déterminant de chaque sous matrice carrée de A(G), matrice


d’incidence d’un digraphe connexe G est 1, -1 ou 0.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 46 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Matrice de circuits d’un digraphe


Soit G un graphe contenant e arêtes et q circuits (circuits orientés ou
semi-circuits).
Une orientation arbitraire (dans le sens des aiguilles d’une montre ou
dans les sens anti-horaire) est affectée à chacun des q circuits.
Alors la matrice circuit B = (bij ) est une matrice d’ordre q par définie
par :


1, si le i eme circuit inclut la j eme arête et

les orientations de l’arête et du circuit coincident




bij = −1, si le i eme circuit inclut la j eme arête et

les orientations de l’arête et du circuit sont opposées





0 si le i eme circuit n’inclut pas la j eme arête

Il faut noter que l’orientation affectée à chaque circuit est tout à fait
arbitraire. Les observations faites sur les propriétés des matrices de
circuits des graphes non orientés subsistent, avec des changements
Semestre 2, Année académique 2018-2019
mineurs,
Ayoub Insa Correapour lesde graphes
(Université Thies) orientés. 47 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Théorème 6

Soient B(G) et A(G), respectivement, la matrice de circuits et la


matrice d’incidence d’un digraphe sans boucle dont les colonnes sont
rangées en utilisant le même ordre des arêtes.
Alors chaque ligne de B(G) est orthogonal à chaque ligne de A(G),
c’est-à-dire que, AḂ T = B ȦT = 0 (mod2).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 48 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Matrice d’adjacence d’un digraphe

Soit G un digraphe ayant n sommets et sans arêtes parallèles. La


matrice d’adjacence X = (xij ) d’un digraphe G est un (0,1)-matrice
d’ordre n par n dont l’élément est :

eme sommet au
1, s’il existe une arête orientée du i

xij = j eme sommet

0 autrement

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 49 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Remarque

La notion de matrice d’adjacence apparait dans plusieurs disciplines


scientifiques.
Dans la théorie des machines séquentielles, elle est appelée matrice
de transition. Dans le calcul des relations, on l’appelle matrice de
relation tandis que dans les flots sur les réseaux, on l’appelle matrice
de connections. Dans les applications en sociologie, elle est connue
sous le nom de matrice de priorité ou matrice de préférence. En
Ordonnancement (scheduling en anglais) et l’analyse de chemins
critiques, elle est connue sous le nom de matrice de prédécesseur.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 50 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Propriétés d’une matrice d’adjacence X

1. X est une matrice symétrique si et seulement si G est un digraphe


symétrique ;
2. Chaque élément non nul de la diagonale principale représente
une boucle au sommet correspondant ;
3. Il n’y a pas de façons de montrer des arêtes parallèles dans X ;
4. La somme des nombres de chaque ligne est égale au degré
sortant du sommet correspondant. La somme des nombres de
chaque colonne est égale au degré entrant du sommet
correspondant. Le nombre d’éléments non nuls correspond au
nombre d’arêtes de G.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 51 / 77 / 77
Représentations non graphiques de graphes (structures de
Graphes orientés données)

Propriétés d’une matrice d’adjacence X (Suite)

1. La permutation d’un couple de lignes accompagnée de la


permutation de colonnes correspondantes dans une matrice
d’adjacence ne modifie pas un graphe. La permutation
correspond tout simplement à un réarrangement de ses sommets.
Ainsi les deux digraphes sont isomorphes si et seulement si leur
matrice d’adjacence diffèrent par de telles permutations ;
2. Si X est la matrice d’adjacence d’un digraphe G, alors la matrice
transposée X T de X est la matrice d’adjacence d’un digraphe
obtenu en inversant l’orientation de chaque arc de G ;
3. Pour toute (0,1)-matrice carrée Q d’ordre n, il existe un digraphe
unique G de n sommets telle que Q est la matrice d’adjacence de
G.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 52 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Introduction
E. W. Dijkstra (1930 - 2002) a proposé en 1959 un algorithme qui
permet de calculer le plus court chemin entre un sommet particulier et
tous les autres.
Résultat : Une arborescence, c’est-à-dire un arbre avec un sommet
particulier appelé racine.
Numéroter les sommets du graphe G = (V , E) de 1 à n.
Supposons que l’on s’intéresse aux chemins partant du sommet 1.
Construire un vecteur λ = (λ(1), λ(2), .., λ(n)) ayant n composantes tel
que λ(j) soit égale à la longueur du plus court chemin allant de 1 au
sommet j.
On initialise ce vecteur à c1j , c’est-à-dire à la première ligne de la
matrice des coûts du graphe, définie comme indiqué ci-dessous :

0,
 si i = j
cij = ∞, i 6= j et (i, j) ∈
/E

δ(i, j) i 6= j et (i, j) ∈ E

Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 53 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Introduction (Suite)

δ(i, j) > 0 est le poids de l’arête (i, j).


On construit un autre vecteur p pour mémoriser le chemin pour aller du
sommet 1 au sommet voulu.
La valeur p(i) donne le sommet qui précède i dans le chemin.
On considère ensuite deux ensembles de sommets, S initialisé à {1}
et T initialisé à {2, 3, ..., n}. À chaque pas de l’algorithme, on ajoute à S
un sommet jusqu’à ce que S = V de telle sorte que le vecteur λ donne
à chaque étape la longueur minimale des chemins de 1 aux sommets
de S.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 54 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Algorithme de Dijkstra

On suppose que le sommet de départ (qui sera la racine de


l’arborescence) est le sommet numéroté 1.
Notons qu’on peut toujours renuméroter les sommets pour que ce soit
le cas.
Initialisations
λ(j) = c1j et p(j) = NIL, pour 1 ≤ j ≤ n
Pour 2 ≤ j ≤ n faire
Si c1j < ∞ alors p(j) = 1.
S = {1}; T = {2, 3, ..., n}.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 55 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Algorithme de Dijkstra (Suite)

Itérations
Tant que T n’est pas vide faire
Choisir i dans T tel que λ(i) est minimum
Retirer i de T et l’ajouter à S
Pour chaque successeur j de i, avec j dans T, faire
Si λ(j) > λ(i) + δ(i, j) alors
λ(j) = λ(i) + δ(i, j)
p(j) = i

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 56 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Exemple

4
1 5

10 5

7
15
4
2
3

3
2 3

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 57 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Solution Exemple Dijkstra

Initialisations
S = {1}; T = {2, 3, 4, 5} ; λ = (0, 15, ∞, ∞, 4) ; p = (NIL, 1, NIL, NIL, 1).
1 ère itération
i = 5 car λ(5) = min (15, ∞, ∞, 4) = 4
S = {1, 5}; T = {2, 3, 4}.
Les successeurs de 5 dans T sont 3 et 4
λ(3) prend la nouvelle valeur
min (∞, λ(5) + δ(5, 3)) = min(λ; 4 + 7) = 11; p(3) = 5
λ(4) prend la nouvelle valeur min (∞, λ(5) + δ(5, 4)) = 9; p(4) = 5
d’où les nouveaux vecteurs λ = (0, 15, 11, 9, 4) ; p = (NIL, 1, 5, 5, 1).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 58 / 77 / 77
Graphes orientés Algorithme de Dijkstra

2 ème itération
i = 4; λ(4) = 9
S = {1, 5, 4}; T = {2, 3}.
Le seul successeur de 4 dans T est 2
λ(2) prend la nouvelle valeur
min (15, λ(4) + δ(4, 2)) = min (15; 9 + 3) = 12; p(2) = 4
d’où les nouveaux vecteurs λ = (0, 12, 11, 9, 4) ; p = (NIL, 4, 5, 5, 1).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 59 / 77 / 77
Graphes orientés Algorithme de Dijkstra

3 ème itération
i = 3; λ(3) = 11
S = {1, 5, 4, 3}; T = {2}.
Le seul successeur de 3 dans T est 2
λ(2) garde sa valeur car
min (12, λ(3) + δ(3, 2)) = min (12; 11 + 3) = 12
d’où les vecteurs inchangés λ = (0, 12, 11, 9, 4) ; p = (NIL, 4, 5, 5, 1).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 60 / 77 / 77
Graphes orientés Algorithme de Dijkstra

3 ème itération
i = 2; λ(2) = 12
S = {1, 5, 4, 3, 2}; T = {}.
λ = (0, 12, 11, 9, 4) ; p = (NIL, 4, 5, 5, 1).
L’algorithme se termine car T = {}
On peut lire les coûts des chemins les plus courts dans λ et les
chemins eux-mêmes grâce au vecteur p. Par exemple, le chemin
minimal de 1 à 4 est de coût 9, car λ(4) = 9. C’est le chemin 1 - 5 - 4,
car p(4) = 5 et p(5) = 1.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 61 / 77 / 77
Graphes orientés Algorithme de Dijkstra

4
1 5

5
7
4
3
3

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 62 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Théorème

Le digraphe G est sans circuit si et seulement si on peut attribuer un


nombre r(v), appelé le rang de v, à chaque sommet v de manière que
pour tout arc (u, v) de G on ait r (u) < r (v ).

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 63 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Algorithme de calcul du rang

Donnée : digraphe G = (V , E) sans circuit.


Résultat : rang r(v) de chaque sommet v ∈ V du digraphe G.
Début
r := 0
X := V
R : l’ensemble des sommets de X sans prédécesseur dans X
Tant que X n’est pas vide faire
r (v ) := r pour tout sommet v ∈ R
X := X − R
R : l’ensemble des sommets de X sans prédécesseur dans X
r := r + 1
Fin tant que
Fin

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 64 / 77 / 77
Graphes orientés Algorithme de Dijkstra

Exemple
Attribuez un rang aux sommets du digraphe ci-dessous en utilisant
l’algorithme de calcul du rang.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 65 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Explication de PERT (Project Evaluation and Review


Technique)

Le problème du plus long chemin dans les digraphes sans circuit


trouve une application dans l’ordonnancement et la planification des
tâches composant un projet complexe, par exemple la construction
d’une maison.
On fait correspondre à chaque tâche un arc d’un digraphe, sa durée
d’exécution étant égale au poids de cet arc.
Le digraphe reflète les précédences requises dans l’exécution du
projet.
Ainsi, la tâche correspondant à l’arc (i, j) ne peut commencer que si
toutes les tâches correspondant à des arcs (k, i) ont été complétées.
Le digraphe peut contenir des tâches fictives de durée nulle afin de
forcer certaines précédences.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 66 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Explication de PERT (Project Evaluation and Review


Technique) (Suite)
Les sommets du digraphe représentent des événements, début (fin)
des activités correspondant aux arcs dont ils sont l’extrémité initiale
(finale). Le fait que le digraphe est sans circuit est garant de la
faisabilité du projet. En effet, l’existence d’un circuit impliquerait une
contradiction dans les précédences : une tâche devant en même
temps précéder et suivre une autre ! On supposera dorénavant que les
sommets ont déjà été numérotés de 1 à n de manière compatible avec
leurs rangs, c’est-à-dire que r (j) > r (i) implique j > i (voir l’algorithme
de calcul du rang). En plus, si le digraphe possède plusieurs sommets
sans prédécesseur, on supposera avoir introduit un sommet 1 relié par
un arc de durée nulle à chacun de ces sommets. Ce sommet indique
le début du projet. De même, si le digraphe possède plusieurs
sommets sans successeur, ceux-ci seront reliés par un arc de durée
nulle à un dernier sommet n (fin du projet). Enfin, on supposera
éliminés les arcs parallèles par l’introduction de tâches fictives.
Semestre 2, Année académique 2018-2019
Ayoub Insa Correa (Université de Thies) 67 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Algorithme du chemin critique

Données : Digraphe G = (V , E), sans circuit, des activités avec leur


durée dik .
Notations :
P(i) = {k ∈ V | (k , i) ∈ E} : Ensemble des sommets prédécesseurs
de i.
S(i) = {k ∈ V | (i, k ) ∈ E} : Ensemble des sommets successeurs de i.
Résultat :
I δi : début au plus tôt des activités correspondant aux arcs (i, k)
partant de i,
I fi : fin au plus tard des activités correspondant aux arcs (k, i)
arrivant à i,
I durée du chemin critique.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 68 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Algorithme du chemin critique (Suite)

Début
- Calcul des dates de début au plus tôt (récurrence en avançant dans
le projet)
δ1 := 0
Pour k := 2 à n faire
δk := max δj + djk | j ∈ P(k )
- Calcul des dates de fin au plus tard (récurrence en reculant dans le
projet)
φn := δn
− 1 à 1 faire
Pour k := n 
φk := min φj − dkj | j ∈ S(k )
Fin.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 69 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Algorithme du chemin critique (Définitions)

I Un sommet i est critique si δi = φi .


I Un arc (i, j) est critique si ses extrémités sont des sommets
critiques et dij = δj − δi .
I Un chemin critique est un chemin de 1 à n n’utilisant que des arcs
critiques, c’est-à-dire des activités telles que tout retard dans leur
exécution provoquerait un retard de la fin du projet.
I La durée du chemin critique est donnée par δn (ou par φn , les
deux valeurs étant toujours égales). Elle correspond à la durée
minimale du projet étant données les durées des tâches le
composant et les précédences respectives.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 70 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Exemple de chemin critique


Voir ci-dessous le graphe des précédences obtenu avec l’algorithme
du chemin critique.
Le chemin critique est en gras.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 71 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Exemple de chemin critique (Suite 1)

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 72 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Exemple de chemin critique (Suite 2)

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 73 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Exercice sur la méthode PERT


La construction d’un entrepôt est divisée en dix tâches dont les
caractéristiques sont données dans le tableau ci-dessous.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 74 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Suite Exercice sur la méthode PERT

1. Représentez le graphe des précédences de ces travaux de


rénovation ;
2. Déterminez une durée totale minimale de rénovation en exhibant
un chemin critique dans ce graphe.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 75 / 77 / 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Décyclisation : Remarque
Les graphes acycliques ont une très grande importance dans
beaucoup d’applications. Les circuits orientés représentent souvent
des incohérences (ou anomalies) dans certaines situations. Ils
peuvent par exemple représenter :
1. Des chemins de rétroaction indésirables dans un réseau
électrique ;
2. Une erreur sérieuse dans un graphe de projet d’une méthode de
chemin critique ou PERT. C’est pourquoi par exemple, un circuit
orienté abca, implique que l’activité a doit être complétée avant
l’activité b, et b avant c, et c avant a. Évidemment cette situation
est impossible et rien ne sera réalisé. Une situation semblable
arrive souvent en programmation informatique et est à juste titre
appelée rencontre mortelle. En logique déductive,(où les sommets
représentent des axiomes et les arcs représentent des théorèmes
ou dérivation d’une déclaration à partir d’autres), un circuit orienté
implique un raisonnement circulaire et donc une erreur ;
3.
Ayoub Insa Correa (Université de Thies) 76 / 77
Semestre 2, Année académique 2018-2019
/ 77
Graphes orientés Reseau PERT (Project Evaluation and Review Technique)

Décyclisation
Ainsi, il faut d’abord détecter un cycle (par la méthode des chemins
critiques ou PERT) puis savoir comment briser ces cycles vicieux avec
un effort minimum.
En d’autres mots, trouver un ensemble minimal d’arcs dont la
suppression rendra un graphe orienté acyclique.
Le plus petit ensemble d’arcs dont la suppression rend le graphe
orienté acyclique est appelé ensemble d’arcs à rétroaction minimale
(minimum-feedback arc set) en Génie électrique.
L’action qui consiste à obtenir un tel ensemble minimal d’arcs est
appelée décyclisation minimale d’un graphe orienté.
Pour des graphes de petite taille, on peut procéder à une décyclisation
par inspection mais en général, la décyclisation minimale d’un graphe
orienté est une affaire ardue. Aucune méthode simple n’a été trouvée
jusqu’à présent.

Semestre 2, Année académique 2018-2019


Ayoub Insa Correa (Université de Thies) 77 / 77 / 77

Vous aimerez peut-être aussi