Vous êtes sur la page 1sur 10

GRAPHES ET APPLICATIONS

I – NOTION DE GRAPHE
En mathématiques le terme graphe désigne une opération d’application. Il possède deux acceptions :
- le graphe d’une fonction (à distinguer de sa représentation graphique)
- le graphe qui désigne un objet représentant une relation binaire, orienté ou non, entre les
éléments d’un ensemble. Cette dernière acception qui fait l’objet de ce cours. On distingue
donc plusieurs types de graphes.
I-1 – Graphe non orienté
Il est constitué d’un ensemble d’éléments appelés sommets et d’un ensemble de paires (non ordonnées)
de sommets appelés arêtes. Une arête relie deux sommets. Pour sa représentation, les sommets peuvent
être symbolisés par des points ou des croix ou des cercles et les arêtes par des segments de droite ou des
lignes courbes.
Exemple 1 : Quatre quartiers, désignés par A, B, C et D, d’une ville sont reliés par le réseau routier décrit
ci-après :
- Une route relie A et B
- Une route relie C et D
- Une route relie B et D
- Une route relie A et C
Représenter ce réseau par un graphe. Préciser le nombre de sommets et d’arêtes de ce graphe.
Résolution

A B

C D

On 4 sommets et 4 arêtes
I-2 – Graphe orienté
Il est constitué d’un ensemble d’éléments appelés sommets et d’un ensemble de couples (ordonnées) de
sommets appelés arcs. Un arc relie deux sommets, un sommet origine et sommet extrémité, et est orienté
par une flèche. Pour sa représentation, les sommets peuvent être symbolisées par des points ou des croix
ou des cercles et les arêtes par des segments de droite ou des lignes courbes, orientés (es) par des flèches
Dans un graphe orienté, chaque sommet a un ou plusieurs successeurs et/ou un ou plusieurs
prédécesseurs. La liste des prédécesseurs et la liste des successeurs d’un graphe orienté peuvent être
représentés dans deux tableaux, un tableau des successeurs et un tableau des prédécesseurs : ces tableaux
constituent alors le dictionnaire du graphe.
Exemple 2 : Quatre villes, désignés par V1, V2, V3 et V4, d’une région sont reliées par le réseau aérien
décrit ci-après :
- Un vol de V1 à destination de V2
- Un vol de V2 à destination de V4

Page 1 sur 10
- Un vol de V3 à destination de V1
- Un vol de V4 à destination de V1
- Un vol de V4 à destination de V3
Représenter ce réseau par un graphe. Préciser le nombre de sommets et d’arcs de ce graphe.
Résolution

V V
1 2

VC VD
3 4

On a 4 sommets et 5 arcs
I-3 – Graphe valué
C’est un graphe qui à toute relation entre deux sommets est associée une valeur. Selon les cas cette valeur
peut être un coût, une durée, une distance, un poids, etc…
Un graphe orienté ou non peut donc être valué. La représentation se fait de la même manière que dans les
cas précédents mais en portant la valeur de chaque liaison au dessus.
Exemple 3 :
a) Représenter le graphe de l’exemple 1 en considérant que les distances par route entre les différents
quartiers sont respectivement de 1km, 2km, 1,5km et 1,2km respectivement
b) Représenter le graphe de l’exemple 2 en considérant que les durées de vol entre les différentes
liaisons sont respectivement de 4h, 2h, 1h, 5h et 3h.
Résolution
a) Graphe valué de l’exemple 1.

1
A B

1,2 1,5

2
C D

b) Graphe valué de l’exemple 2.


4
V V
1 2

5
2
1

3
VC VD
3 4
Page 2 sur 10
Remarque :
- On parle de boucle lorsque les deux sommets d’une arête sont identique (cas d’un graphe non
orienté) ou lorsqu’un arc est tel que son origine est identique à son extrémité.
- Deux sommets peuvent être reliés par plusieurs arêtes ou plusieurs arcs : on par le alors d’arête
multiple ou arc multiple
- Un graphe est dit simple s’il n’a ni boucle ni arête multiple (resp. ni arc multiple).

I-4 – Représentation matricielle : Matrice d’adjacence


Elle permet la numérisation d’un graphe pour une exploitation rapide sur ordinateur (exemple : réseau
routier, réseau aérien, réseau téléphonique).
Un graphe est représentée par une matrice appelée matrice d’adjacence : c’est une matrice carrée d’ordre
N où N est le nombre de sommets ou d’éléments de ce graphe. La diagonale de cette matrice est
constituée des zéros dans le cas d’un graphe n’ayant pas de boucles .
Chaque ligne correspond à un sommet et les colonnes représentent les liaisons existantes ou non de ce
sommet avec les autres sommets.
Pour un graphe non valué, lorsqu’une liaison existe on la matérialise par 1 et si elle n’existe pas on la
matérialise par 0.
Pour un graphe valué, lorsqu’une liaison existe on la matérialise par la valeur correspondante et si elle
n’existe pas on la matérialise par  . Pour un graphe simple, la diagonale est constituée des 0.
TAF 1 : Faire la représentation matricielle des graphes des exemples précédents.
Résolution :
Exemples 1 et 2 : Matrices des graphes non orienté et orienté, non valués

0 1 1 0 0 1 0 0
   
1 0 0 1 0 0 0 1
M  M 
1 0 0 1 1 0 0 0
   
0 1 1 0 1 0 1 0
Exemples 1 et 2 : Matrices des graphes non orienté et orienté, valués

 0 1 1, 2   0 4  
   
1 0  1,5  0  2
M   M 
 1, 2  0 2  1  0 
   
  1,5 2 0  5 0 3 0
I-5 – Terminologie
- Ordre d’un graphe : Nombre de sommets de ce graphe
- Degré d’un sommet : nombre d’arêtes ou d’arcs incident à ce sommet
- Chaîne : Suite finie de sommets reliés entre eux par une arête ou un arc
- Chaîne simple : Chaîne qui n’utilise pas deux fois la même arête ou un arc
- Chaîne eulérienne : Chaîne simple passant par toutes les arêtes ou arcs d’un graphe une et une
seule fois
- Chaîne hamiltonienne : Chaîne simple passant par tous les sommets d’un graphe une et une
seule fois
- Chemin : Suite de sommets reliés par des arcs dans un graphe orienté
- Cycle (simple): Chaîne qui revient à son point de départ
Page 3 sur 10
- Cycle eulérien : cycle simple passant par toutes les arêtes ou arcs d’un graphe une et une seule
fois
- Cycle hamiltonien : cycle simple passant par toutes les sommets d’un graphe une et une seule
fois
- Graphe connexe : graphe qui à toute paire de sommets {x,y} de ce graphe, il existe une chaîne
de premier terme x et de dernier terme y.
- Arbre : Graphe connexe sans cycle simple ni boucle
- Graphe eulérien : Graphe qui possède un cycle eulérien
- Graphe semi-eulérien : Graphe qui possède une chaîne eulérienne
- Graphe hamiltonien : graphe qui possède un cycle hamiltonien
- Longueur d’une chaîne : Nombre des arêtes ou d’arcs qui composent cette chaîne
- Longueur d’un chemin :
- Valeur d’une chaîne : Somme des valeurs des arêtes ou des arcs d’une chaîne d’un graphe
valué
- Distance entre deux sommets : Longueur de la plus courte chaîne joignant ces deux sommets
- Diamètre d’un graphe : Maximum des distances entre les sommets d’un graphe

II – Applications
II-1 – Problème du plus court chemin et résolution à l’aide d’un arbre
L’une des applications de la théorie des graphes est la recherche du plus court chemin pour aller d’un
point à un autre d’un réseau. On entend par court chemin le chemin qui a la plus petite valeur, cette valeur
pouvant être une longueur (distance), une durée un coût, etc. La résolution d’un tel problème peut se faire
de manière intuitive ou par des méthodes algorithmiques.
Lorsque le réseau n’est pas dense, on peut dénombrer les différents chemins et leurs valeurs respectives
(longueurs, durées, coûts,…) puis ensuite déterminer le plus court d’entre d’eux c’est à dire celui qui a la
plus petite valeur. Pour cela, on pourra représenter un arbre ressortant les différents chemins possibles
avec leurs valeurs respectives.
Exemple 4 :
La matrice qui suit est la matrice d’un graphe valué donnant, en heures, les durées des vols entre 5 villes
V1, V2, V3, V4 et V5.

 0 15   4 
 
  0   9 
M   3 0 2 

 
 10 3  0  
  7 5 0
 
Déterminer le plus court chemin pour aller de V1 à V2 .
Résolution : L’arbre des différents chemins allant de V1 à V2 montre que le plus court chemin est :
V1 – V5 – V4 – V2 avec une durée totale de 12 heures

II-2 – Arbre recouvrant à poids minimum (ARPM)


On considère un graphe connexe non-orienté et valué ː chaque arête possède une valeur qui est le poids
ou le coût de cette arête. Dans un tel graphe, un arbre couvrant est un sous-graphe connexe sans cycle qui
Page 4 sur 10
contient tous les sommets du graphe. Le poids d'un tel arbre est la somme des poids des arêtes qui le
compose. Un arbre recouvrant à poids minimum est un arbre couvrant dont le poids est inférieur ou égal à
celui de tous les autres arbres couvrants du graphe.
Ce problème a de nombreuses applications, par exemple pour constituer un réseau reliant des villes
(réseau électrique, réseau téléphonique,…).
Plusieurs algorithmes permettent de terminer cet arbre parmi lesquels l’algorithme de Kruskal et
l’algorithme de Prim.
a) Algorithme de Kruskal
L'algorithme construit un arbre recouvrant à poids minimum en sélectionnant des arêtes par poids
croissant. Plus précisément, l'algorithme considère toutes les arêtes du graphe par poids croissant. En
pratique, on trie d'abord les arêtes du graphe par poids croissant et pour chacune d'elles, on la sélectionne
si elle ne crée pas un cycle.
Exemple
Sept points de distribution A, B, C, D, E, F et G sont reliés par un réseau routier qui est modélisé par un
graphe non orienté valué suivant dont les valeurs sont les distances en kilomètre.
4
A B
5 3 3
2
3
4 1
G F 3
3
E
3 5
4
6
C
D
Représenter ce graphe et déterminer l’ARPM reliant les points de réseau ainsi que la distance totale.
Résolution
L’application de l’algorithme de Kruskal permet d’obtenir l’ARPM suivant :

A B
3 2 3
3
1
G F
E
3
4
C
D

Distance totale = 1+2+3+3+3+4 = 16 Km

b) Algorithme de Prim
On part d’un arbre initial réduit à un seul sommet du graphe. À chaque itération, on agrandit l’arbre en lui
ajoutant le sommet libre accessible (ne permettant pas de former un cycle avec les sélections précédentes)
de plus petit poids possible. On stoppe quand l’arbre est recouvrant.
Page 5 sur 10
Exemple : Refaire l’exemple précédent
Résolution : en partant de F
L’application de l’algorithme de Kruskal permet d’obtenir l’ARPM suivant :

A B
3 2 3
3
4 1
G F
E
3

C
D

Distance totale = 2+1+3+3+4+3 = 16 Km

II-3 – Problème de flots dans un réseau de transport


II-3-1 Définition
Un réseau de transport est un graphe orienté ayant une source s (aucun arc n’arrive à la source) et
un puits (aucun arc ne quitte le puits). Les arcs de ce graphe correspondent aux liens permettant
l’acheminement des matières. Chaque arc a a une capacité limitée qui est un nombre entier positif ou
nul que l’on désignera par c(a ) .
Le flux d’un arc est la quantité de matière qui y circule ; c’est une grandeur positive ou nulle
que l’on désignera par f (a) et qui doit respecter la contrainte se capacité f (a)  c(a) .
Un arc est dit saturé si sa capacité résiduelle c(a )  f (a ) est nulle i.e f (a)  c(a )
Un flot du réseau est une quantité de matière que l’on peut acheminer de la source au puits. C’est
la somme des flux sur les arcs partant de la source s et qui doit être égale à la somme des flux des arcs
arrivant au puits t . C’est une fonction entière positive ou nulle définie sur les arcs et satisfaisant aux
conditions suivantes :
- Conservation du flot : pour tout sommet autre que s et t la somme des flux sur les arcs
entrants et la somme des flux sur les arcs sortants sont égales. Autrement dit pour tout sommet
autre que s et t , le flux entrant est égal au flux sortant
- Quand deux arcs en sens inverses relient deux sommets, on peut toujours annuler le flux sur
l’un des deux
Flot complet : C’est le flot d’un réseau qui ne possède plus de chemin non saturé pour aller de la source
au puits.
Flot maximum : Il s’agit de la plus grande quantité de matière possible que l’on peut acheminer de la
source au puits. Des méthodes algorithmiques permettent de déterminer le flot maximum d’un réseau de
transport.

Page 6 sur 10
II-3-2 Problématique et formulation
On cherche dans ce cas à déterminer la quantité maximum de matière qui peut quitter la source pour
atteindre le puits.
Les données de ce problème sont :

- Les capacité des arcs :

- Le stock de matière disponible au niveau de la source :


- La demande au niveau du puits 

Les variables flux au niveau des arcs :

La fonction objectif la quantité de matière quittant la source pour arriver au puits:


et qu’il faut maximiser
Les contraintes sont liées à la conservation du flot et à la définition du flot.
Pour la résolution, on peut se servir de l’algorithme de Ford et Fulkerson qui consiste d’abord à
déterminer un flot complet et ensuite à l’améliorer si possible pour obtenir un flot maximum.

II-3-3 Algorithme de Ford et Fulkerson


a) Détermination d’un flot du réseau 
Etape 1 : A partir du initial G0 on se donne un flot initial ; en général on choisit le flot 0.
Etape 2 : Pour chaque chemin allant de la source au puits, on détermine le minimum des
différences c ( a )  f ( a ) calculées sur chaque arc de ce chemin. On retient le chemin qui a le
maximum des minima , que l’on désigne par  .
Etape 3 : On ajoute la valeur de  au flot existant sur chaque arc de ce chemin. Ensuite on
élimine les arcs saturés et on obtient ainsi un graphe partiel G1 .
Etape 4 : On applique les étapes 1, 2 et 3 au graphe partiel G1 et ainsi de suite. On continue ce
processus tant qu’il y a des chemins avec arcs non saturés pour aller de la source au puits.
On obtient à la fin de ce processus un flot du réseau dit flot complet.
NB : Plusieurs chemins peuvent fermés simultanément.

b) Processus d’amélioration : Recherche du flot maximum


Ce processus se fait sur un graphe à flot complet. Le problème est donc de savoir si ce flot est
maximum ou non. S’il n’est pas maximum alors il sera amélioré.
Un flot complet est dit maximum si on ne peut pas trouver de chaîne(s) améliorante(s) reliant la
source (nœud initial) et puits (nœud final).
Une chaîne améliorante est constituée d’arcs en sens direct et d’arcs en sens indirect :
- un arc en sens direct a sa capacité résiduelle non nulle c’est à c’est un arc non saturé
- un arc en sens inverse a son flux non nul
C’est un processus itératif dont les étapes sont décrites ci=après.
On suppose qu’on a graphe initial G0 avec un flot complet.

Etape 1 : On recherche les chaînes améliorantes dans ce réseau G0


- s’il n’existe aucune chaîne améliorante alors ce flot est maximum

Page 7 sur 10
- s’il existe au moins une chaîne améliorante alors ce flot n’est pas maximum et une
amélioration est ^possible. Dans ce cas, on détermine pour chaque chaîne le minimum
des capacités résiduelles et des flux des arcs et on retient la chaîne qui a le maximum des
minima  . Le nouveau réseau G1 et donc le nouveau flot est obtenu est ajoutant la
valeur de  au flux de chaque arc en sens direct et en retranchant la valeur de  au
flux de chaque arc en sens indirect.
Etape 2 : On applique l’étape 1 au réseau G1 et ainsi de suite jusqu’à ce qu’une amélioration
ne soit plus possible.

Exemple :
Trois usines doivent approvisionner trois dépôts à partir desquels les clients doivent être desservis. Les
capacités de production des usines, les demandes des dépôts ainsi les capacités de transports des usines
vers les dépôts, en tonnes, sont données à travers le tableau suivant :

D1 D2 D3
30 24 42
U1 21 9 6
36
U2 15 6 24
30
U3 3 12 24
30
L’objectif est la satisfaction maximum de la demande.
1°/ Modéliser cette situation par un graphe convenable.
2°/ Déterminer un flot complet.
3°/ Peut-on satisfaire toute les demande ?
Question 1°/
On porte sur chaque arc sa capacité. La source représente l’ensemble des usines et le puits
représente le marché desservi par les trois dépôt
36
U D
36 11 11 30

30
24
S U D
21 P
30 21
42

U 24
D
31 31
Question 2°/
Au départ, la capacité résiduelle d’un arc est égale à sa capaicité car son flux initial est 0
Premiers chemins à saturer :
o Chemin 1 : S – U1 – D1 – P avec   21
o Chemin 2 : S – U2 – D3 – P avec   24
o Chemin 3 : S – U3 – D3 – P avec   24
Les chemins 2 et 3 ont en commun l’arc (D3, P) qui a une capacité de 42  24  24
On choisit donc un flux de 24 sur le chemin 3 et un flux de 18 sur le chemin 2 avec le flux
de 21 sur le chemin 1.
Page 8 sur 10
On a donc un flot de 21  18  24  63
On ferme les arcs (U1, D1), (U3, D3) et (D3, P)
Capacités résiduelles restantes :
o Arc (S, U1) : 36  21  15
o Arc (S, U2) : 30  18  12
o Arc (S, U3) : 30  24  6
o Arc (D1, P) : 30  21  9
o Arc (U2, D3) : 24  18  6
o Les autres arcs sans changement
On a encore des chemins à arcs non saturés, on passe à l’itération suivante
Deuxièmes chemins à saturer :
o Chemin 4 : S – U1 – D2 – P avec   9
o Chemin 5 : S – U2 – D1 – P avec  9
o Chemin 6 : S – U3 – D2 – P avec   6
Les chemins 4 et 5 ont en commun l’arc (D2, P) qui a une capacité de 24  9  6
On a donc un flux de 9 sur les chemins 4 et 5, et un flux de 6 sur le chemin 6.
On a donc un flot de 63  9  9  6  87
On ferme les arcs (S, U3), (D1, P) et (U1, D2)
Capacités résiduelles restantes :
o Arc (S, U1) : 15  9  6
o Arc (S, U2) : 12  9  3
o Arc (U3, D2) : 12  6  6
o Arc (D2, P) : 24  9  6  9
o Les autres arcs sans changement
On a encore un chemin à arcs non saturés, on passe à l’itération suivante
Dernier chemin à saturer :
o Chemin 7 : S – U2 – D2 – P avec   3
On a donc un flux de 3 sur ce chemin.
On a donc un flot de 87  3  90
On ferme l’arc (S, U2)
Il n’y a plus de chemin à arcs non saturés. On a donc nu flot complet de 90 .
Question 3°/
Cette question consiste à rechercher un flot maximum
Recherche des chaînes améliorantes
On a 4 chaînes améliorantes
- Chaîne 1 : S  U1  D3  U3  D2  P avec   6
- S  U1  D2  U3  D2  P avec   3
Chaîne 2 :
- Chaîne 3 : S  U2  D1  U1  D3  U3  D2  P avec   3
- Chaîne 4 : S  U2  D1  U1  D3  U2  D2  P avec   3
Le flot précédent n’est pas maximum.
Amélioration
On retient la chaîne 1 et on ajoute   6 aux flux des arcs (S,U1), (U1, D3) (U3, D2) et (D2, P), et on
retranche   6 au flux de l’arc (U3, D3)
Page 9 sur 10
On obtient un flot maximum de 90  6  96
On peut satisfaire toute la demnade

Page 10 sur 10

Vous aimerez peut-être aussi