Vous êtes sur la page 1sur 35

GRAPHES ET APPLICATIONS

2023 - 2024

ESATIC UP MATHS
Table des matières

1 Généralités sur les graphes 5


1.1 Définition des graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Représentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.3 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.4 Isomprphismes de graphes et graphes non étiquetés . . . . . . . . 6
1.2 Sous-graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Quelques définitions . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Chaînes et cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.2 Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Connexité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Graphes bipartis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.1 Arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Graphes orientés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6.1 Définitions et généralités . . . . . . . . . . . . . . . . . . . . . . 13
1.6.2 Terminologies . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2 Représentations des graphes 14


2.1 Représentations par Matrices (et/ou) listes . . . . . . . . . . . . . . . . . 14
2.1.1 Représentations par matrices d’adjacence . . . . . . . . . . . . . 14
2.1.2 Liste des voisins : cas non orienté . . . . . . . . . . . . . . . . . 15
2.1.3 Tableaux des successeurs ; Tableaux des antécédents . . . . . . . 15

3 Quelques applications des graphes 16


3.1 Graphes Euleriens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2 Nombres de chemins de longueur k . . . . . . . . . . . . . . . . . . . . 17
3.3 Plus court chemin dans un graphe valué . . . . . . . . . . . . . . . . . . 18
3.3.1 Algorithme de Dijkstra . . . . . . . . . . . . . . . . . . . . . . . 19

1
TABLE DES MATIÈRES

3.3.2 Un exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 arbres couvrants de poids minimum . . . . . . . . . . . . . . . . . . . . 20
3.4.1 Algorithme de Kruskal 1956 . . . . . . . . . . . . . . . . . . . . 20
3.5 Ordonnancement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.1 METHODE PERT . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5.2 D’autres méthodes d’ordonnancement et de gestion de projets . . 29
3.6 Flot maximum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.6.1 Flots dans un réseau de transport . . . . . . . . . . . . . . . . . . 30
3.6.2 Théorème du flot maximum . . . . . . . . . . . . . . . . . . . . 32
3.6.3 Algorithme du flot maximum . . . . . . . . . . . . . . . . . . . 33

BIBLIOGRAPHIE 34

ESATIC 2 UP Maths
Introduction

L’objectif de ce cours est de permettre aux étudiants de se familiariser avec les élé-
ments de base de la théorie des graphes, de connaître le vocabulaire et les définitions
mathématiques de la théorie des graphes, de maîtriser les représentations des graphes et
les algorithmes classiques de manipulation des graphes et leurs principales applications.
Les graphes que nous proposons d’étudierici sont des figures géométriques simples for-
mées de points et de lignes reliant certains de ces points ; on leur donne parfois le nom de
" graphes linéaires".
La première publication consacrée à la théorie des graphes est due à l’illustre mathémati-
cien suisse Euler et parut en 1736. (voir [8])
La théorie des graphes est aujourd’hui un moyen d’étude naturel de quelques sujets pu-
rement mathématiques, la théorie des relations mathématiques par exemple ; elle a ce-
pendant bien d’autres applications à des problèmes purement pratiques : couplages, pro-
blèmes de transports, écoulement dans un réseau de pipe-lines et "programmation" au
sens général. Pour se donner une idée précise de ce qu’est un graphe, prenons l’exemple
suivant :

Championnat entre plusieurs équipes


Supposons qu’une équipe de foot-ball appartienne à une ligue au sein de laquelle elle
rencontre quelques autres équipes. Nous désignerons notre équipe par A et les autres par
B,C, D, E et F, en admettant qu’il y en ait six au total. Au bout de quelques semaines, la
saison est avancée et certaines rencontres ont eu lieu, par exemple : A a rencontré C, D et
F;
B a rencontré C, E et F ;
C a rencontré A et B ;
D a rencontré A, E et F ;
E a rencontré B, D et F ;
F a rencontré A, B, D et E.
On peut représenter la situation sur un diagramme géométrique. On représente chaque
équipe par un point ou un petit cercle et on relie deux de ces points par un segment de

3
TABLE DES MATIÈRES

droite chaque fois que les deux équipes qu’ils représentent se rencontrent.La liste des
rencontres que nous avons donnée ci-dessus se représente alors par la figure ci-dessous.

F IGURE 1 – Un graphe

Une figure analogue à la figure 1 est appelée un graphe. Il est formé de certains points
A, B, C, D, E et F appelés sommets du graphe et de segments reliant deux sommets, AC,
EB, par exemple, qui sont les arêtes du graphe.
Nous présenterons dans une première partie la théorie des graphes et dans une seconde
nous en donnerons quelques applications.

ESATIC 4 UP Maths
Chapitre 1

Généralités sur les graphes

1.1 Définition des graphes


Définition 1.1.1. Un graphe (non orienté) G est défini par deux ensembles finis : un
ensemble X, non vide, d’éléments appelés sommets , un ensemble E ( qui peut être vide)
d’éléments appelés arêtes avec associés à chaque arête e deux sommets x et y, distincts
ou non, appelés les extrémités de e.

1.1.1 Notations
On écrit G = (X, E). Les ensembles X et E peuvent être notés X(G) et E(G). On
note habituellement par n ou nG le cardinal de X, c’est à dire le nombre de sommets du
graphe, et par m ou mG le cardinal de E, c’est à dire le nombre d’arêtes du graphe. La
paire des extrémités x et y d’une arête e est notée ici simplement xy ( ou yx), au lieu de
la notation mathématique habituelle x, y lorsque x ̸= y.

1.1.2 Représentation
Il est habituel, et bien pratique, de dessiner les graphes sur un plan de la façon sui-
vante : les sommets sont représentés par des points, les arêtes par des lignes simples
(qu’on peut définir mathématiquement de façon précise) qui relient les points extrémités
concernés (voir Figure 1.1 ).

1.1.3 Terminologie
Lorsque x et y sont les extrémités d’une arête e , on dit que e relie les sommets x et y,
que les sommets x et y sont voisins , que l’arête e est incidente au sommet x et au sommet
y. On peut avoir x = y, dans ce cas l’arête e est appelée une boucle . Deux arêtes e et e′ ,

5
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

F IGURE 1.1 – X = {x, y, z}, E = {a, b, c, d, e}

ou plus, peuvent avoir mêmes extrémités x et y, on dit alors qu’elles sont parallèles ou
qu’on a une arête multiple ( double, triple, etc., suivant le nombre d’arêtes) entre x et y.

Définition 1.1.2. Un graphe est dit simple s’il n’a ni boucles ni arêtes multiples.

Dans le cas, d’un graphe simple, chaque arête s’identifie à la paire de ses extrémités,
qui sont distinctes, et on écrit par exemple e = xy. Un graphe simple peut être défini, plus
simplement que de la façon générale donnée plus haut, comme un couple d’ensembles
finis (X, E) où X est non vide et E est un ensemble de parties à deux éléments de X.

1.1.4 Isomprphismes de graphes et graphes non étiquetés


Définition 1.1.3. Un isomorphisme d’un graphe G = (X, E) sur un graphe H = (Y, F )
est la donnée de deux bijections, ϕ de X sur Y et ψ de E sur F , telles que, pour e ∈ E
et x, y ∈ X, l’arête ψ(e) a pour extrémités ϕ(x) et ϕ(y) dans H si et seulement si l’arête
e a pour extrémités x et y dans G. C’est à dire, ces bijections préservent la relation
d’incidence des arêtes sur les sommets. Les graphes G et H sont dits isomorphes.

Exercice 1.1.1. Justifie que les graphes G et H ci-dessous sont isomorphes

F IGURE 1.2 – Deux graphes isomorphes

Définition 1.1.4. Un graphe est dit planaire, si on peut réaliser sa représentation plane
de sorte que deux lignes arêtes ne se coupent pas, en dehors d’extrémités communes (
dans le cas d’arêtes ayant une extrémité commune).

Exercice 1.1.2. Ce graphe est planaire !

ESATIC 6 UP Maths
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

F IGURE 1.3 – Ce graphe est planaire !

Définition 1.1.5. Un graphe est dit complet, si deux sommets distincts quelconques sont
reliés par une arête. Comme graphe non étiqueté, un graphe complet est déterminé par la
donnée du nombre n de ses sommets. On note Kn le graphe complet à n sommets.

F IGURE 1.4 – Graphes complet à 5 sommets

Exercice 1.1.3.
1 Dessiner les graphes complets K3 , K4 et K6
2 Quel est le nombre m des arêtes du graphe complet Kn ?

1.2 Sous-graphes
1.2.1 Quelques définitions
Définition 1.2.1. Soit G = (X, E) un graphe. Un sous-graphe de G est un graphe de la
forme H = (Y, F ) où Y ⊂ X et F ⊂ E sont tels que toute arête de F a ses extrémités

ESATIC 7 UP Maths
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

dans Y . Un sous- graphe H de G est dit engendré ( ou induit) et on peut préciser par un
ensemble de sommets Y ⊂ X, s’il est de la forme H = (Y, F ) où F est l’ensemble des
arêtes de E qui ont leurs extrémités dans Y . On note ce sous-graphe GY . En particulier
GX = G. Un sous-graphe H = (Y, F ) de G est dit couvrant si Y = X. On dit aussi dans
ce cas que H est un graphe partiel de G. On peut préciser graphe partiel engendré par
F , c’est le graphe (X, F ) et on le note G(F ).

1.2.2 Notations
Soient G = (X, E) un graphe, Y ⊂ X et F ⊂ E. On note :
• G − Y le sous-graphe de G engendré par X \ Y ( sousgraphe obtenu en enlevant
de G les sommets de Y , avec leurs arêtes incidentes).
• G − F le graphe partiel de G engendré par E F (graphe partiel de G obtenu en
enlevant les arêtes de F ).
On écrira en particulier : G − x à la place de G − {x} pour x ∈ X et G − e à la place de
G − {e} pour e ∈ E.
Par extension de ce dernier cas, on note parfois G + e le graphe obtenu en ajoutant à G
une nouvelle arête e ( en précisant bien sûr ses extrémités dans G).

Exercice 1.2.1. On donne le graphe G suivant :

F IGURE 1.5 –

1 Dessiner le sous graphe de G engendré par les sommets {x, u, v, z}.


2 Dessine le graphe partiel induit par les arêtes {a, b, e, f }.
3 Dessine le sous graphe G \ {x, y}.
4 Dessine G − c puis G − x.

ESATIC 8 UP Maths
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

1.3 Chaînes et cycles


1.3.1 Chaînes
Une chaîne d’un graphe G = (X, E) est une suite de la forme :(x0 , e1 , x1 , · · · ek , xk ) où
k est un entier naturel, les xi sont des sommets de G et les ei sont des arêtes de G tels que
pour i = 0, ..., k − 1 , xi et xi+1 sont les extrémités de ei+1 ·
L’entier k est la longueur de la chaîne. Une chaîne peut être de longueur nulle, elle se
réduit alors à une suite ne comprenant que le sommet x0 . Les sommets x0 et xk sont les
extrémités de la chaîne. Lorsque le graphe est simple, une chaîne peut être définie sim-
plement par la suite (x0 , x1 , · · · , xk ) de ses sommets. Une sous-chaîne d’une chaîne est
une chaîne définie comme sous suite, entre deux sommets, de la suite définissant la chaîne
considérée. Une chaîne est dite simple si ses arêtes ei , pour i = 1, · · · , k, sont deux à
deux distinctes. (On dit que la chaîne ne passe pas deux fois par une même arête).
Une chaîne est dite élémentaire si ses sommets xi , pour i = 0, 1, · · · , k, sont deux à deux
distincts.
(On dit que la chaîne ne passe pas deux fois par un même sommet). Remarquer que élé-
mentaire entraîne simple. Une chaîne est dite fermée si ses extrémités x0 et xk coïncident.

Lemme 1.3.1. De toute chaîne on peut extraire un chaîne élémentaire. □

Exercice 1.3.1. Faire la preuve du lemme 1.3.1.

1.3.2 Cycles
Définition 1.3.1. Un cycle est une chaîne de longueur ≥ 1 simple et fermée. C’est donc
une chaîne de la forme : (x0 , e1 , x1 , · · · ek , x0 ) où k ≥ 1 et les ei sont distincts. L’entier k
est la longueur du cycle.

Un cycle est élémentaire si ses sommets xi , pour i = 0, · · · , k − 1, sont deux à deux


distincts. Dans ce cas, la longueur est le nombre de sommets du cycle ( sauf le dernier).Un
cycle est dit pair ou impair suivant que sa longueur est paire ou impaire.

Remarque 1.3.1. Par extension des définitions précédentes, on appelle également chaîne
(élémentaire) tout graphe qui peut être paramétré comme une chaîne (élémentaire). De
même, on parle d’un cycle (élémentaire) pour un graphe qui peut être paramétré comme
un cycle élémentaire.

Définition 1.3.2. Une chaîne eulérienne est une chaîne composée de toutes les arêtes du
graphe prises une seule fois. Un cycle eulérien est un cycle composé de toutes les arêtes
du graphe prises une seule fois. Un graphe possédant un cycle eulérien est un graphe
eulérien.

ESATIC 9 UP Maths
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

Définition 1.3.3. On appelle degré d’un sommet x d’un graphe G le nombre d’arêtes de
G incidentes à x, c’est-à-dire admettant x comme extrémité. Précisons que chaque boucle
compte deux fois. On note d(x) ou dG (x) cet entier.

Un sommet est dit isolé si son degré est nul. La notion de degré est l’occasion de
donner la première proposition suivante.

Proposition 1.3.1. Dans un graphe G quelconque, on a :


X
dG (x) = 2m.
x∈X

Définition 1.3.4. Un graphe G est dit régulier lorsque les degrés de ses sommets sont
tous égaux. On peut préciser le degré commun k des sommets en disant k−régulier. Les
graphes 3−réguliers sont dits cubiques.

Définition 1.3.5. On appelle appelle graphe valué, un graphe tel qu’à chaque arête, on
associe un nombre réel.

1.4 Connexité
Définition 1.4.1. Un graphe G est connexe si quels que soient deux sommets de ce graphe
ils sont reliés par une chaîne. Les composantes connexes d’un graphe G sont les sous-
graphes engendrés connexes maximaux de G. Maximal veut dire ici que le sousgraphe en
question n’est pas lui-même sous-graphe propre, c’est-à-dire ayant strictement moins de
sommets, d’un sous-graphe connexe de G.

Evidemment, un graphe est connexe si et seulement s’il n’a qu’une seule composante
connexe. On vérifie que les composantes connexes d’un graphe sont des sousgraphes deux
à deux disjoints, c’est-à-dire n’ayant deux à deux ni sommets ni arêtes en commun. Elles
définissent la décomposition en composantes connexes du graphe.

Définition 1.4.2. Un arbre est un graphe connexe sans cycle.

Définition 1.4.3. Un isthme d’un graphe G est une arête e telle que G − e a une com-
posante connexe de plus que G. Ce qui revient à dire que dans G − e les extrémités x et
y de e ne sont plus reliées par une chaîne. On dit parfois aussi que l’arête e sépare les
sommets x et y. Lorsque G est connexe, un isthme est une arête e telle que G − e n’est
pas connexe.

ESATIC 10 UP Maths
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

1.5 Graphes bipartis


Définition 1.5.1. Un graphe G est biparti si son ensemble de sommets peut être divisé
en deux parties, appelées classes, disjointes et recouvrant l’ensemble des sommets, telles
que toute arête a une extrémité dans chacune des classe.

Exemple 1.5.1. Ci-dessous :

F IGURE 1.6 – Graphe biparti K3,3

Théorème 1.5.1. Un graphe est biparti si et seulement s’il n’a pas de cycles impairs.

Démonstration. La démonstration de la condition nécessaire est facile en raisonnant par


l’absurde et en suivant par rapport aux classes les sommets d’un cycle impair.
La démonstration de la condition suffisante est moins simple mais peut être faite de façon
constructive, c’est-à-dire en produisant effectivement une bipartition adéquate. Le prin-
cipe est le suivant : marquer O un premier sommet arbitrairement choisi, puis marquer 1
ses voisins, ensuite reprendre chacun de ces sommets nouvellement marqués pour mar-
quer 0 leurs voisins non encore marqués, et ainsi de suite jusqu’à ce que tous les sommets
atteints soient marqués 0 ou 1. Le point crucial est que si lors de ce processus de marquage
il se trouve que deux sommets voisins reçoivent la même marque ( tous deux 0 ou tous
deux 1), alors il existe dans le graphe un cycle de longueur impaire. Ceci peut se voir en
considérant les chaînes définies par la succession des sommets marqués qui aboutissent à
ces deux sommets, et l’arête qui relie ces sommets. Sous l’hypothèse de la condition suf-
fisante, cette circonstance de deux sommets voisins ayant la même marque ne se produira
pas et les marques attribuées aux sommets définiront une bipartition qui répond à la défi-
nition des graphes bipartis. Précisons que tout sommet se trouvera marqué dès lors que le
graphe est connexe, sinon il suffit de procéder indépendamment sur chaque composante
connexe.

Exercice 1.5.1. Le graphe ( Figure 1.7) est-il biparti ? Justifier votre réponse.

ESATIC 11 UP Maths
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

F IGURE 1.7 – Graphe biparti K3,3?

1.5.1 Arbres
On rappelle qu’un arbre est un graphe connexe, acyclique. Nous énonçons ici quelques
propriétés des arbres :

Proposition 1.5.1. Un arbre tel que n ≥ 2 possède au moins deux sommets pendants,
c’est-à-dire de degré 1.

Proposition 1.5.2. Si G est un arbre, on a mG = nG − 1.

Proposition 1.5.3. Dans un arbre, deux sommets quelconques sont reliés par une chaîne
élémentaire unique.

Proposition 1.5.4. Les conditions suivantes pour un graphe G sont équivalentes.


1 G est un arbre.
2 G est connexe et on a m = n − 1.
3 G est acyclique et on a m = n − 1.
4 Dans G deux sommets quelconques sont reliés par une chaîne élémentaire unique.

1.6 Graphes orientés


Beaucoup d’applications se modélisent par des graphes dont les arêtes sont orientées,
les deux extrémités d’une arête ne jouant pas des rôles symétriques. Ce sont les graphes
dits orientés, étudiés dans ce chapitre. Parmi ceuxci, deux classes sont particulièrement
importantes : les graphes sans circuits et les arborescences, ces dernières correspondant
en fait à ce qu’on appelle couramment les « arbres » en informatique par exemple.

ESATIC 12 UP Maths
CHAPITRE 1. GÉNÉRALITÉS SUR LES GRAPHES

1.6.1 Définitions et généralités


Définition 1.6.1. Un graphe orienté ou encore digraphe G est défini par deux ensembles
finis : un ensemble X non vide de sommets, un ensemble A d’arcs (certains auteurs les
appellent arêtes orientées) avec associé à chaque arc a ∈ A un couple (x, y) de sommets
qui sont les extrémités de a, le sommet x étant en particulier appelé l’origine et le sommet
y le sommet terminal de a

1.6.2 Terminologies
Lorsque (x, y) est le couple associé des extrémités de l’arc a, on dit : que l’arc a va
du sommet x au sommet y, que l’arc a est incident aux sommets x et y, ou encore, plus
précisément, que l’arc a sort du sommet x et qu’il entre dans le sommet y. Le sommet
y est appelé un successeur de x et le sommet x un prédécesseur de y. Comme en non
orienté, on a une boucle dans le casx = y et un arc multiple dans le cas d’arcs ayant un
même couple (x, y) associé. On peut préciser,suivant le nombre d’arcs concernés : arc
double, triple, etc. Deux arcs ayant pour couples associés respectivement (x, y) et (y, x)
sont dits opposés.

Définition 1.6.2. Un graphe orienté est dit strict s’il n’a ni boucles ni arcs multiples (il
peut avoir des arcs opposés). Dans ce cas, souvent considéré, chaque arc s’identifie au
couple de ses extrémités, qui sont alors distinctes, et on écrit par exemple a = (x, y). Pour
un graphe orienté strict G = (X, A) on peut définir l’ensemble des arcs A directement
comme partie du produit cartésien X × X. Un graphe orienté strict est dit symétrique si
pour tout arc (x, y) il existe également l’arc opposé (y, x). Cette notion est très proche de
celle d’un graphe non orienté.

ESATIC 13 UP Maths
Chapitre 2

Représentations des graphes

La théorie des graphes est un terrain de prédilection pour l’algorithmique. Beaucoup


d’applications mettent en jeu des algorithmes de graphes et il faut donc représenter en
machine les graphes considérés. La question de la représentation en machine d’un graphe
n’a pas de réponse unique. En effet on peut imaginer bien des façons de le faire. Nous
présentons ci-dessous certaines représentations en machine.

2.1 Représentations par Matrices (et/ou) listes


2.1.1 Représentations par matrices d’adjacence
Définition 2.1.1. Soit G = (X, E) avec X = x1 , ..., xn on définit le matrice d’adjacence
M (G) de G, comme suit :M (G) est la matrice carrée d’ordre n dont les coefficients
(mij ), désignent le nombre d’arêtes (d’arcs) reliant xi à xj dans G.

Exemple 2.1.1.

F IGURE 2.1 – Un graphe non orienté G et sa matrice d’adjacence

14
CHAPITRE 2. REPRÉSENTATIONS DES GRAPHES

Exemple 2.1.2. Ci-dessous un autre exemple.

F IGURE 2.2 – Un graphe orienté G et sa matrice d’adjacence

2.1.2 Liste des voisins : cas non orienté

2.1.3 Tableaux des successeurs ; Tableaux des antécédents


Dans toute la suite de ce cours, on notera pour un sommet x d’un graphe orienté, Γ(x)
les successeurs de x, Γ−1 (x) les antécédents de x et Γ(x) ∪ Γ−1 (x) les voisins de x. Ci
dessous une présentation sous forme de tableau (successeurs, précédents et voisins) du
graphe de l’exemple :2.1.2. .

F IGURE 2.3 – Tableau successeur, précédents et voisins du graphe de l’exemple2.1.2

Exercice 2.1.1. Représenter le graphe de l’exemple 2.1.1sous forme de tableau de voisins.

ESATIC 15 UP Maths
Chapitre 3

Quelques applications des graphes

3.1 Graphes Euleriens


On rappelle [Définition 1.3.2] qu’ une chaîne eulérienne est une chaîne composée de
toutes les arêtes du graphe prises une seule fois. Un cycle eulérien est un cycle composé
de toutes les arêtes du graphe prises une seule fois. Un graphe possédant un cycle eulé-
rien est un graphe eulérien. le degré d’un sommet est le nombre dês arêtes qui lui sont
incidentes.

Théorème 3.1.1 ([1]). Soit G = (X, E) un graphe connexe. On a le résultat suivant : G


est Euleurien ⇐⇒ (∀x ∈ X, degG (x) est pair.

Problème des ponts de Königsberg

La ville de Koenigsberg, aujourd’hui Kaliningrad, est située en Prusse Orientale dans


deux îles et sur les deux rives de la Pregel. Les divers quartiers de la cité étaient à l’époque
reliés par 7 ponts. Le dimanche, comme tous bons bourgeois allemands, les habitants
faisaient le tour de leur ville en se promenant. Le problème était le suivant : pouvaient-ils
trouver un chemin qui les fasse partir de chez eux et y revenir en traversant chaque pont
une et une seule fois ? Nous allons utiliser un graphe pour répondre à la question.

F IGURE 3.1 – Plan simplifié de Kônigsberg

16
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

F IGURE 3.2 – Graphe associé au plan de Kônigsberg

Les quatre quartiers de la ville sont représentés par les lettres A, B, C et D. Comme nous ne
nous intéressons qu’aux ponts, nous pouvons considérer A, B, C et D comme les sommets
d’un graphe dont les arêtes seraient les ponts.
Le graphe de la Figure 3.2 n’est pas Eulerien car il possède un sommet de dégré 3
[Théorème :3.1.1]donc la réponse au problème est négative.

3.2 Nombres de chemins de longueur k


.

Proposition 3.2.1. Soit G = (X, E) un graphe (orienté ou pas), A sa matrice d’ adja-


(k)
cence et k ≥ 1 un entier. Le coefficient aij de la matrice Ak , situé sur la iieme ligne et
la j ieme colonne, est égal au nombre de chaînes de longueur k entre les sommets xi et
xj (respectivement de chemins de longueur k de xi à xj ).

La preuve de cette poposition peut être consultée dans le livre[7].

Exercice 3.2.1. On considère le graphe G ci-dessous : .

F IGURE 3.3 – graphe G

1 Ecrire la matrice d’adjacence M de G.

ESATIC 17 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

   
0 0 1 2 3 2 0 0 2 3 3 3
 0 0 2 1 0 2   0 0 1 0 4 3
   

   
5
 0 0 0 2 3 1  6
 0 0 2 3 1 2 
2 On admet que M =    et M =  
 0 0 1 0 4 3 
  0 0 0 4 4 1 
 
   
 0 0 2 1 0 2   0 0 1 0 4 3 
0 0 0 2 1 0 0 0 2 1 0 2
a) G contient-il des circuits de longuer 5 ? (Justifier la réponse)
b) Combien sont les circuits de longueur 6 de G ?

3.3 Plus court chemin dans un graphe valué


Définition 3.3.1. Un graphe valué est un graphe G = (X, E) (orienté ou non) muni d’une
fonction ν : E → R⋆+ appelée fonction de coût.
On le note souvent : G = (X, E, ν).

Définition 3.3.2. Le coût d’un chemin (chaîne) est la somme des coûts des arcs (arêtes)
de ce chemin.

Définition 3.3.3. La distance entre deux sommets x et y que nous noterons dG,ν (x, y)
d’un graphe valué G est la valuation (ou coût) minimum d’une chaîne du graphe ayant
ces deux sommets pour extrémités.

Exemple 3.3.1. On considère le graphe valué ci-dessous : Sur cet exemple :

F IGURE 3.4 – Graphe valué

• ν(ac) = 3 et ν(bd) = 5.
• Pour la chaîne P = {e, a, c, b}, ν(P ) = 9.
• dG,ν (e, c) = 4 et dG,ν (b, d) = 4. On notera que dG,ν (b, d) ̸= ν(b, d).

ESATIC 18 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

3.3.1 Algorithme de Dijkstra


L’algorithme de Dijkstra permet de calculer la distance des sommets d’un graphe G
par rapport à un sommet a donné. La valuation aux arêtes est strictement positive pour
faire coïncider la notion de distance dans un graphe à la définition mathématique de dis-
tance. Cependant, l’algorithme est aussi correct si la valuation est positive. Il n’est plus
correct si on étend les valuations à des valeurs négatives. La figure ci-dessous (3.5) pré-
sente l’algorithme. (On implémentera cet algorithme en travaux dirigés).

F IGURE 3.5 – Algorithme de Dijkstra

3.3.2 Un exemple
Déterminons par l’algorithme de Djkstra sur la figure ci-après, le parcours qui possède
le minimum d’obstacles entre A et G. La valuation sur chaque trajet représente le nombre
d’obstacles sur ce trajet.

ESATIC 19 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

Le tableau ci-dessous décrit l’ application de l’Algorithme de Dijkstra.

Donc le chemin ayant minimum d’obstacles du sommet A au sommet G est :


A − E − D − F − G. avec 12 obstacles.

3.4 arbres couvrants de poids minimum


3.4.1 Algorithme de Kruskal 1956
Donnée :
— Graphe G = (V, E) cardV = n et cardE = m
— Pour chaque arête e de E son poids c(e).
Résultat attendu : Arbre T = (V, F ) de poids minimum.
Trier et numéroter les arêtes de G dans l’ordre croissant de leur poids.

c(e1 ) ≤ c(e2 ) ≤ · · · ≤ c(em )


.
Poser F = ∅ k = 0.
Tant que k < m et cardF < n − 1 Faire :
Debut
.
Si ek+1 ne forme pas de cycle avec F alors F = F ∪ {ek+1 }
.
k = k + 1.

ESATIC 20 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

Fin
Ci dessous une figure illstrant l’algorithme de Kruskal

F IGURE 3.6 – Algorithme de Kruskal

Remarque 3.4.1. L’algorithme de Kruskal consiste à classer les arêtes par ordre de poids
croissant puis à chaque étape retenir l’arête de poids minimum tant que celle-ci ne crée
pas un cycle avec les arêtes déjà retenues. L’algoritme s’arête quand on a utilisé n − 1
arêtes.

Remarque 3.4.2. Les arêtes de poids 3, n’ont pas pu être placées dans l’algorithme à la
Figure3.6 car elles auraient formé un cycle. L’algorithme s’est arrêté dès que cinq arêtes
ont été placées. Toute arête supplémentaire aurait créé un cycle. S’1l y a plusieurs arêtes,
de même poids. Il peut y avoir plusieurs arbres couvrants de poids, mmimum :tout dépend
de l’ordre dans, lequel ces arêtes, ont êté triées.

Exercice 3.4.1. En appliquant l’algorithme de Kruskal, retrouver tous les arbres cou-
vrants de poids minimum du graphe

F IGURE 3.7 – Graphe de l’exercice3.4.1

On verra en TD un autre algorithme : celui de Prim.

ESATIC 21 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

3.5 Ordonnancement
L’objet d’un problème d’ordonnancement est de faciliter la mise en oeuvre et de guider
l’exécution d’un ensemble complexe de tâches (programme de recherche ou de produc-
tion, lancement d’un produit, construction d’un bâtiment ou d’une route · · · ).
La technique d’analyse la plus connue, appelée méthode P.E.R.T (Program Evaluation
and Review Technique) est celle que nous allons présenter ici. Elle a été introduite aux
Etats-Unis en 1958 pour la réalisation d’un programme de recherches et de construction
des fusées Polaris.
Cette méthode tient une place dominante par sa simplicité, son efficacité et la variété des
extensions qui ont pu être développées.
Nous supposons que le projet est décomposable en un nombre fini de tâches, carac-
térisées par leur durée d’exécution (généralement fixe parfois aléatoire), éventuellement
aussi par leur coût d’exécution, et soumises à des contraintes de postériorité strictes (une
tâche ne peut commencer que si certaines autres tâches sont complètement terminées).

3.5.1 METHODE PERT


Principe de la méthode

Réduire la durée totale d’un projet par une analyse détaillée des tâches ou activités
élémentaires et de leur enchaînement. On étudie les délais sans prendre en compte les
charges.

Notions de base

La méthodes s’appuie en grande partie sur une représentation graphique qui permet
de bâtir un « réseau PERT ».
Un réseau PERT est constitué par des tâches et des étapes.
Étape : commencement ou fin d’une tâche. Une étape n’a pas de durée. On symbolise
une étape (ou « noeud ») sur le réseau par un cercle.

Tâche : déroulement dans le temps d’une opération. Contrairement à l’étape, la tâche est
pénalisante car elle demande toujours une certaine durée, des moyens (ou ressources) et
coûte de l’argent. Elle est symbolisée par un vecteur (ou arc orienté, ou liaison orientée)
sur lequel seront indiqués l’action à effectuer et le temps estimé de réalisation de cette
tâche.

Remarques 3.5.1.

ESATIC 22 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

F IGURE 3.8 – Exemple de réseau simple

• La longueur des arcs n’est pas proportionnelle au temps d’exécution.


• Pour alléger la représentation, on ne note pas le nom complet de la tâche, mais
une lettre ou code la représentant.

Représentation graphique des étapes et des tâches dans un réseau.

◦ Tâches successives :

B ne peut commencer que si A est terminée (A précède B , ou A est antériorité de B) .


C ne peut commencer que si A et B sont terminées ( A et B précèdent C, ou A et B sont
antériorité de C, ou A et B enclenchent C).
Remarque : en fait B terminée suffit, sinon il y a redondance. La contrainte d’antériorité
qui lie A à C n’a pas besoin d’être représentée.

◦ Tâches simultanées :

Elles peuvent commencer en même temps en partant d’une même étape.

D ne peut commencer que si B est terminée.


Si l’on souhaite que D ne commence que si B et C sont terminées :

Du fait de la règle de construction qui interdit de faire se dérouler les deux tâches B et C
simultanément, nous utilisons une tâche X(0) dite « tâche fictive » qui sert à représenter

ESATIC 23 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

ce type de contraintes de liaison (contraintes d’antériorité). Il s’agit d’une tâche dont la


durée et le coût sont nuls. On la représente en pointillés.

◦Tâches convergentes :

Plusieurs tâches peuvent se terminer sur une même étape.

Ici, la tâche A(12) a une durée de 12 unités de temps, B(6) a une durée de 6 unités de
temps. On constate que la tâche A dure plus longtemps que B. A est dite « pénalisante ».
Nous pouvons calculer la durée du projet (ici : 12+3 = 15 unités de temps) en prenant le
chemin le plus long dit « chemin critique ». Ce « chemin critique » pourra être repéré en
rouge. Les tâches de ce chemin seront à surveiller prioritairement.

◦ Normalisation du graphe.
Si le graphe doit débuter par plusieurs tâches simultanées, il ne doit y avoir qu’une
seule étape d’entrée (ou étape de début, ou étape de départ). Les étapes seront donc re-
groupées en une seule.

Si le graphe se termine par plusieurs tâches (plusieurs étapes de sortie (ou de fin), il ne
doit y avoir qu’une seule étape de sortie.

ESATIC 24 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

Problèmes de dépendances : A enclenche B, A enclenche D, C enclenche D.


Nous pouvons être tentés de dessiner le graphe suivant :
Problèmes de dépendances : A enclenche B, A enclenche D, C enclenche D.
Nous pouvons être tentés de dessiner le graphe suivant :

Le graphe précédent est faux car cette construction signifie : A enclenche B, A enclenche
D, C enclenche B, et C enclenche D.
Pour respecter les contraintes d’antériorités du projet, on introduit une tâche fictive
comme suit :

◦ Représentation des étapes

Les étapes ou « noeuds » peuvent être représentés de différentes façons selon les in-
formations que l’on souhaite mettre en évidence.

ESATIC 25 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

F IGURE 3.9 – Représentation graphique d’une étape d’un réseau PERT

◦ Methodologie de construction du réseau PERT

1 Établir la liste des tâches (faire le partitionnement des tâches en fonction des res-
sources).
2 Déterminer des antériorités : tâches immédiatement antérieures, et tâches anté-
rieures.
3 Déterminer les niveaux d’exécution ou rang des tâches (optionnel).
4 Construire le réseau PERT.
5 Calculer la durée du projet, les dates début et de fin des tâches. Déterminer le
chemin critique. Mettre en évidence les marges.

Exemple 3.5.1. Soit les tâches suivantes qui constituent un projet : A(3), B(4), C(2),D(3),
E(4).
Les antériorités sont les suivantes :
A enclenche C
A enclenche D
B enclenche E
C enclenche E
Constuisons le diagramme PERT de ce projet.

Afin de construire le réseau, nous allons déterminer le rang (ou niveau) d’exécution de
chaque tâche, c’est à dire la position chronologique qu’elle occupe au début de son exé-
cution dans le projet.
Nous pouvons utiliser une matrice (ou grille) de dépouillement des données (dite :
« matrice de dépouillement par les sommets »)[Voir Figure 3.10] : On met une croix
lorsqu’il y a une antériorité entre une tâche et une autre. On cherche s’il existe des croix
dans l’une des colonnes. Si nous ne trouvons pas de croix dans certaines, cela signifie que
les tâches repérées en haut des colonnes n’ont pas d’antériorité. Elles sont alors de rang
1. On note ces tâches, puis on barre les lignes horizontales correspondant à ces tâches et

ESATIC 26 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

F IGURE 3.10 – Matrice de dépouillement du projet : une méthode pour déterminer les
rangs des tâches.

on réitère l’opération précédente. On détermine les tâches de rang 2 et ainsi de suite. Les
rangs (ou niveaux) déterminés permettent de positionner le début des différentes tâches
lors de la construction du graphe. Nous en déduisons le réseau PERT correspondant à
l’application proposée :

◦ Calculs sur le graphe

La méthode PERT a pour but de planifier la durée d’un projet, aussi nous devons
mener des calculs sur le graphe afin d’en déduire des renseignements sur son exécutabilité.
Quelques définitions à retenir :
• Début au plus tôt d’exécution d’une tâche : C’est le maximum des fins au plus
tôt des tâches qui la déclenche (Il peut exceptionnellement y avoir un retard ou
chevauchement si le cahier des charges du projet le précise et que la faisabilité est
vérifiée).
• Début au plus tard d’une tâche : C’est la date de fin au plus tard de la tâche
moins la durée de la tâche.
• Fin au plus tôt : C’est la date de début au plus tôt plus la durée de la tâche.
• Fin au plus tard : C’est le minimum des dates de début au plus tard des tâches
qu’elle enclenche.
• Marge totale : C’est le retard admissible du début d’une tâche qui n’entraîne au-
cun recul de la date de fin du projet, mais qui consomme les marges libres des
opérations suivantes. C’est la date de début au plus tard moins la date de début au
plus tôt.

ESATIC 27 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

• Marge libre : C’est le retard admissible sur une tâche qui n’entraîne pas de mo-
dification des calendriers des tâches suivantes.C’est la date de début au plus tôt de
la tâches suivante moins la durée de la tâche moins la date de début au plus tôt de
la tâche.
• Chemin critique : C’est l’ensemble des tâches dont la marge totale et la marge
libre est nulle. C’est le chemin dont la succession des tâches donne la durée d’exé-
cution la plus longue du projet et fournit le délai d’achèvement le plus court. Si
l’on prend du retard sur la réalisation de ces tâches, la durée globale du projet est
allongée.
On peut porter toutes ces informations directement sur le graphe [voir Fiure 3.9]. Cepen-
dant, pour l’application précédente, on peut dresser un tableau de synthèse comme suit :

Résultats de l’étude :

La durée globale du projet (délai d’achèvement le plus court) est de 9 jours.


Le chemin critique est constitué des tâches : A, C, et E.
Il faut vérifier que ces tâches se déroulent correctement et le cas échéant adopter des
actions correctives afin de les fiabiliser.

Exercice 3.5.1. L’entreprise @Math décide de lancer un produit nouveau sur le mar-
ché. Les services commerciaux ont déterminé l’ensemble des tâches nécessaires à cette
action :a,b,c,d,e,f,g,h,i,j,k.
Les conditions d’antériorité liant ces tâches et les durées en jours de celles-ci sont
rassemblées dans le tableau ci-dessous.

ESATIC 28 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

Tâches Tâches antérieures Durées


a e 4
b j,e 6
c / 12
d / 14
e / 8
f d 2
g f,d 10
h a, c, d 6
i h, a, c, e, k, d, f 8
j e 12
k f, d 2

1 Ranger les tâches par niveaux.


2 Tracer le diagramme PERT
3 Déterminer les dates de début au plus tôt et les dates de debut au plus tard de
chaque tâche.
4 Quelles sont les tâches critiques de ce projet ?

3.5.2 D’autres méthodes d’ordonnancement et de gestion de projets


La methode MPM

A l’identique de la méthode PERT cette méthode permet de réduire la durée totale


d’un projet. On étudie les délais sans prendre en compte les charges et les moyens dis-
ponibles. La méthode est une représentation graphique qui permet de bâtir un « réseau
». Ce réseau est constitué par des tâches (ou étapes). Tâche : Déroulement dans le temps
d’une opération. La tâche est pénalisante car elle demande toujours une certaine durée,
des moyens (ou ressources) et coûte de l’argent. Contrairement au réseau PERT, ici elle
est symbolisée par un rectangle dans lequel seront indiqués l’action à effectuer et le temps
estimé de réalisation de cette tâche, la date de début et de fin.
Nous ne l’exposerons pas dans le cadre de ce cours.

Le diagramme GANTT

Le diagramme de GANTT est un graphique (chronogramme) qui consiste à placer les


tâches chronologiquement en fonction des contraintes techniques de succession (contraintes
d’antériorités). L’axe horizontal des abscisses représente le temps et l’axe vertical des or-
données les tâches. On représente chaque tâche par un segment de droite dont la longueur

ESATIC 29 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

F IGURE 3.11 – Diagramme MPM l’Exemple 3.5.2.

F IGURE 3.12 – Diagramme GANTT de l’Exemple 3.5.2 .

est proportionnelle à sa durée. L’origine du segment est calée sur la date de début au plus
tôt de l’opération (« jalonnement au plus tôt ») et l’extrémité du segment représente la
fin de la tâche. Ce type de graphe présente l’avantage d’être très facile à lire, mais pré-
sente l’inconvénient de ne pas représenter l’enchaînement des tâches. Cette méthode est
généralement utilisée en complément du réseau PERT ou MPM. On trace le plus souvent
le GANTT au plus tôt ou « jalonnement au plus tôt » et éventuellement au plus tard «
jalonnement au plus tard ».

Exemple 3.5.2.

3.6 Flot maximum


La notion de flot dans les graphes est aussi l’une des grandes notions de la théorie
des graphes. Elle présente un aspect algébrique très intéressant et se prête à de grandes
applications, comme les problèmes de transport.

3.6.1 Flots dans un réseau de transport


Un réseau de transport R est défini par : un graphe orienté strict connexe G = (X, A)
avec deux ensembles disjoints S ⊂ X, ensemble des entrées (ou sources), et T ⊂ X,

ESATIC 30 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

ensemble des sorties (ou puits) du réseau, et une valuation des arcs c : A → N ( entiers
naturels), appelée capacité. On admettra aussi la valeur ∞ (positive) comme capacité
d’un arc. Précisons quelques points de terminologie et notations. Pour a ∈ A, c(a) est la
capacité de l’arc a , les sommets de X \ (SU T ) sont appelés sommets intermédiaires,
pour Z ⊂ X on note ω + (z) l’ensemble des arcs de G de la forme (x, y) avec x ∈ Z et
y∈/ Z et ω − (z) l’ensemble des arcs de la forme (x, y) avec x ∈
/ Z et y ∈ Z. Les arcs de
+ −
ω (z) sont les arcs sortant de Z, ceux de ω (z) les arcs entrant dans Z. Lorsque Z = x
on parle d’arcs entrant dans x et d’arcs sortant de x.

Définition 3.6.1. Un flot dans un réseau de transport R est une application f : A → N


vérifiant :
1) 0 ≤ f (a) ≤ c(a) pour tout a ∈ A,
P P
2) a∈ω + ({x}) f (a) = a∈ω − ({x}) f (a) pour tout X ∈ X \ (SU T ).

Cette deuxième condition est ce qu’on appelle la loi de conservation du flot en chaque
sommet intermédiaire, connue aussi, en électricité, comme la loi de Kirchhoff. On pose
d’une façon générale pour Z ⊂ X, f + (Z) = a∈ω+ (Z) f (a) et f − (Z) = a∈ω− (Z) f (a).
P P

Précisons que si ω + (Z) = ∅ alors j + (Z) = 0, de même pour ω − (Z) et f − (Z). Par abus
d’écriture, dans le cas Z = x, on écrira f + (x) à la place de f + ({x}) et de même pour
f − (x). La condition 2) précédente peut être réécrite :
2’)f + (x) = f − (x) pour tout x ∈ X \ (SU T ).
On ajoute la condition suivante, qui fait apparaître les sommets de S comme des «
sources » et les sommets de T comme des « puits » vis- à-vis du flot :
3) f + (s) − f − (s) ≥ 0 pour tout s ∈ S et f − (t) − f + (t) ≥ 0 pour tout t ∈ T .
On donne ci-dessous (figure 3.13)un exemple de flot.

Remarque 3.6.1. Il existe toujours dans un réseau ce qu’on appelle le flot nul, celui qui
prend la valeur 0 sur chaque arc.

Appelons d’une façon générale flot résultant sortant de Z ⊂ X la quantité f + (Z) −


f − (Z), et flot résultant entrant dans z la quantité f − (Z) − f + (Z).

Lemme 3.6.1. Dans un réseau de transport, le flot résultant sortant de S est égal au flot
résultant entrant dans T.

Ce résultat repose évidemment sur la propriété de conservation du flot sur les sommets
intermédiaires. Cette valeur commune f + (S) − f − (S) = f − (T ) − f + (T ) est appelée
la valeur du flot f , et notée ν(f ). Le problème traité dans ce chapitre est celui du flot
maximum , à savoir trouver dans un réseau donné un flot dont la valeur est la plus grande
possible.
On peut transformer un réseau de transport à plusieurs sources et plusieurs puits en
réseaux ayant une source unique et un puit unique (voir figure 3.14).

ESATIC 31 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

F IGURE 3.13 – Dans cette représentation d’un réseau les capacités des arcs sont indiquées
entre crochets. On a ici S = {s1 , s2 , s3 } et T = {t1 , t2 }. Un flot est donné par les valeurs
indiquées à gauche des capacités en chaque arc. Ces conventions de représentation s’ap-
pliquent également dans les figures qui suivront.

F IGURE 3.14 – Le réseau de la (figure 3.13) modifié en réseau avec entrée et sortie
uniques

3.6.2 Théorème du flot maximum


On suppose maintenant que les réseaux considérés sont à entrée et sortie uniques. La
notion de coupe, duale de celle de flot comme on le verra, est essentielle dans cette étude.
Une coupe d’un réseau R est un ensemble d’arcs du réseau de la forme K = ω + (Z) où
Z ⊂ X tel que s ∈ Z et t ∈/ Z. La capacité d’une coupe K est la somme des capacités de
P
ses arcs, soit c(K) = a∈K c(a). La proposition suivante, simple, joue un rôle essentiel.

Proposition 3.6.1. Quels que soient un flot f et une coupe K on a : ν(f ) ≤ c(K).

Définition 3.6.2. Une coupe minimum est une coupe de capacité la plus petite possible.

Il résulte directement de la proposition précédente la propriété fondamentale suivante :

Corollaire 3.6.1. Etant donnés un fiat f et une coupe K , si ν(f ) = c(K) alors f est un
flot maximum et K une coupe minimum.

ESATIC 32 UP Maths
CHAPITRE 3. QUELQUES APPLICATIONS DES GRAPHES

C’est ce dernier résultat qui nous permettra de reconnaître qu’un flot est maximum.

Remarque 3.6.2. Si on admet la possibilité d’arcs de capacités infinies, comme on l’a


fait plus haut pour se ramener au cas de réseaux avec entrée et sortie uniques, il peut y
avoir des coupes de capacités infinies. Si toutes les coupes d’un réseau sont dans ce cas,
on a dans ce réseau des flots de valeurs arbitrairement grandes. Il n’existe pas alors à
proprement parler de flot maximum. Lorsque nous appliquerons le corollaire précédent,
nous supposerons implicitement qu’il existe une coupe de capacité finie.

Rappelons qu’une chaîne dans un graphe orienté est une chaîne du graphe non orienté
associé. Cette chaîne est donc définie par une suite d’arcs du graphe qui ne sont pas
nécessairement orientés dans un même sens de parcours de la chaîne ( ce qui fait qu’on
a une chaîne et non un chemin). Soit une chaîne élémentaire µ dans un réseau R muni
d’un flot f , chaîne reliant l’entrée s du réseau à un sommet quelconque u et supposée de
longueur non nulle. Notons (a1 , · · · , ak ) la suite de ses arcs (k ≥ 1), et posons :

τ (µ) = min τ (ai )


i=1,...,k

où τ (ai ) = c(ai ) − f (ai ) si l’arc ai est orienté dans le sens de s à u dans la chaîne
µ, et τ (ai ) = f (ai ) si l’arc ai est orienté dans le sens de u à s dans µ. La chaîne est dite
insaturée , pour f , si τ (µ) > 0.

Lemme 3.6.2. S’il existe pour le flot f une chaîne insaturée reliant s à t, alors il existe
un flot f ′ tel que ν(f ′ ) > ν(f ).

Lemme 3.6.3. S’il n’existe pas pour le flot f de chaîne insaturée reliant s à t, alors il
existe une coupe K telle que c(K) = v(f ).

En considération de ces résultats, on appelle chaîne augmentante pour le flot f , toute


chaîne insaturée reliant s à t. On a :

Proposition 3.6.2. Un flot est maximum si et seulement s’il n’existe pas de chaîne aug-
mentante.

Démonstration. Preuve directe avec les lemmes (3.6.2) et (3.6.3) précédents, et le corol-
laire (3.6.1) plus haut.

Théorème 3.6.1 (DU FLOT MAXIMUM, FORD-FULKERSON). Dans un réseau la


valeur d’un flot maximum est égale à la capacité d’une coupe minimum

3.6.3 Algorithme du flot maximum

ESATIC 33 UP Maths
Bibliographie

[1] Irène Larramendy, Alain Marie-Jeanne , Introduction à la théorie des graphes, ellipses, 2018
[2] C. Berge, Graphes, Gauthier-Villars, 1983
[3] C. Berge, Hypergraphs : Combinatorics of Finite sets, Vol. 45 of North-Holland Mathemati-
cal library, Elsevier Science Publ. B.V., Amsterdam, 1989.
[4] M. Gondran et M. Minoux, Graphes et Algorithmes, Eyrolles, 1993.
[5] J.C. Fournier, Théorie des Graphes et Applications, Hermes-Lavoisier.
[6] Roseaux, Exercices résolus de Recherche Opérationnelle tome 1 : Graphe.
[7] Alain Bretto, Alain Faisant, François Hennecart, Éléments de théorie des graphes, Vol.4
Springer Paris, 2012.
[8] Oystein Ore, Les graphes et leurs applications,(Sigma n°21)-Dunod (1970)
[9] Edmond Maurel, Daniel Roux et Daniel Dupont, Techniques opérationnelles d’ordonnance-
ment, Eyrolles Mars, 1997

34

Vous aimerez peut-être aussi