Vous êtes sur la page 1sur 66

Théorie des Graphes - THG Licence M.

Théorie des Graphes

PLAN
Chapitre 1 : Notions fondamentales
Chapitre 2 : Connexité
Chapitre 3 : Arbres et Arborescences
Chapitre 4 : Problèmes du plus court chemin
Chapitre 5 : Le problème d’ordonnancement
Chapitre 6 : Problèmes de flots

Bibliographie
-M.Gondron, M.Minoux, Graphes et algorithmes, Eyrolles, 1995.

-F.Droesbeke, M.Hallin, C.I.Lefevre, Les graphes par l’exemple, Ellipses, 1987.

-C.Prins, Algorithmes de graphes, Eyrolles, 1997.

Objectif
L’objectif principal est d’appréhender les algorithmes des graphes utilisés dans les
réseaux informatiques et télécommunications, dans les problèmes de calcul du coût
minimal, dans la recherche du meilleur chemin et dans les méthodes
d’ordonnancement (Gestion des projets,…).

1
Théorie des Graphes - THG Licence M.I

La recherche opérationnelle (RO) est la branche la plus importante de l’algèbre


moderne. Elle regroupe un ensemble de méthodes et techniques rationnelles orientées
vers la recherche de la meilleure façon d'opérer des choix en vue d'aboutir au meilleur
résultat possible.

RECHERCHE OPÉRATIONNELLE

Théorie des Programation


graphes linéaire

Programmation Programmation
dynamique non linéaire


Les graphes sont actuellement l’outil privilégié pour modéliser des ensembles de
structures complexes. Ils sont indispensables pour représenter et étudier des relations
entre les objets.

Les graphes sont utilisés en :


• Economie (diagramme d’organisation)
• Electronique (circuits intégrés)
• Base de données (liens entre informations)
• Communications (réseaux de télécommunications)
• Transport (réseaux routiers)
• Ordonnancement (structure des projets)
• Etc.

2
Théorie des Graphes - THG Licence M.I

CHAPITRE 1 : NOTIONS FONDAMENTALES


Plan
1. Notion de graphe
2. Graphes particuliers
3. Chemins (chaines) et circuits (cycles)
4. Modes de représentation d’un graphe

1. NOTION DE GRAPHE

Un graphe (orienté) est un couple ( , ) défini par :


1.1. Graphe

- Un ensemble = { , , … , } dont les éléments sont appelés sommets (ou nœuds).


- Un ensemble = { , , … , } dont les éléments sont appelés arcs. Un arc est un couple

= × = ( , )⁄ ∈ ∈
ordonné de sommets ; l’ensemble est donc obtenu par le produit cartésien :

- L’arc ( , ) du graphe a comme extrémité initiale et comme extrémité finale (ou


terminale).
- Le nombre de sommets d’un graphe est dit ordre d’un graphe
- Graphiquement, les sommets d’un graphe sont représentés par des points et les arcs par des
flèches reliant les sommets suivant un ordre.

={ , , , !, "}
Exemple 1 :
x3 x2
x1
= {( , ), ( , ), ( , ! ), ( ! , ), ( ! , " )}

= 5 $%&& $
x5
Ordre du graphe
x4

1.2. Arête
Une arête est un arc non orienté.

Exemple 2 : x3 x2
Une arête est représentée par un couple non

, , , ,…
ordonné noté avec des crochets comme suit :
x4 x1

Un p-graphe est un graphe dans lequel il existe au maximum arcs de la forme ( , ) entre deux
1.3. p-graphe

sommets quelconques et pris dans cet ordre. Si = 1, on parle alors de 1-graphe ou graphe.

Exemple 3 : (2-graphe)
x3 x2
x1

x5
x4
3
Théorie des Graphes - THG Licence M.I
1.4. Boucle
Une boucle est un arc (ou arête) dont l’extrémité initiale coïncide avec l’extrémité finale.

Exemple 4 :
x3 x2
x1

x4 x5 Dans ce graphe , les arcs ( , ), ( " , " ) sont des boucles.

Dans un arc de la forme ( , ),


1.5. Successeur & prédécesseur
est appelé prédécesseur de et est dit successeur de .
et sont appelés sommets voisins (ou adjacents).

L’ensemble des successeurs de est noté '() ( ) et celui de ses prédécesseurs est noté '(* ( ) :

'() ( ) = /( , ) ∈ '(* ( ) = /( , ) ∈

' ) ' * sont des applications qui à tout sommet de lui font correspondre un sous ensemble de
l’ensemble . ' ) est appelé application multivoque et ' * application multivoque réciproque.

'() ( ) = { } , '() ( ! ) = { , "}


Exemple 5 : (Voir Exemple 4)

'(* ( ! ) = { } , '(* ( " ) = { ! , "}

• L’ensemble des sommets voisins de est noté '( ( ) = '() ( ) ∪ '(* ( )


Remarque :

• '() ( ) (respectivement '(* ( ) ) peut être vide ; est alors appelé sommet puits

• Si '( ( ) = ∅, alors est un sommet isolé.


(respectivement sommet source).

Exemple 6 : (Voir Exemple 4) Le sommet est un sommet isolé car '( ( ) = ∅,

• Si . ⊂ alors
Propriétés :

'( (.) = / '( ( )


01 ∈2

' ) : = ( , ' )) ⇔ ( , )
• Un graphe est complètement défini par l’ensemble des sommets et l’application multivoque

Exemple 7 :

= ( , ) avec = { , , , ! , " , 4 , 3 } et
Ce graphe peut être soit défini par :

= {( , ), ( , ), ( , " ), ( ! , ), ( ! , " ), ( " , " ), ( 4 , 4 ), ( 4 , 3 )}


4
ou bien par:
= ( , ' ) ) avec ' ) : → 8( ) (Parties ou sous-ensembles de )
%ù ' ) ( ) = { }, ' ) ( ) = { }, ' ) ( ) = { " } , … , ' ) ( 3 ) = ∅

"
3
!
Aussi si . = { , , } alors
' ) (.) = / ' ) ( ) = { , , "}
01 ∈2
4
Théorie des Graphes - THG Licence M.I
1.6. Arcs adjacents et sommets adjacents

• 2 sommets sont adjacents s’ils sont distincts et qu’il existe un arc ( , ) et/ou ( , ).
• 2 arcs sont adjacents s’ils ont au moins une extrémité commune.

Exemple 8 : (Voir Exemple 7)

Les arcs ( , ) et ( ! , ) sont adjacents ( commun) G


9
Les arcs ( , ) et ( , " ) sont adjacents ( commun)

Les sommets et sont adjacentsG


9
Les sommets et ! sont adjacents

1.7. Arcs incidents à un sommet

= ( , ) a comme extrémité initiale. Le nombre d’arcs incidents extérieurement à est


• Incident extérieur : on dit que l’arc est incident extérieurement au sommet si l’arc

appelé demi-degré extérieur de et est noté par H() ( ). Il correspond dans le cas d’un

H() ( ) = |'() ( )|
1-graphe au nombre de successeurs et on a :

=( , ) a
• Incident intérieur : on dit que l’arc est incident intérieurement au sommet si l’arc

et est noté par H( ( ). Il correspond dans le cas d’un


*
comme extrémité finale. Le nombre d’arcs incidents intérieurement à est
appelé demi-degré intérieur de

H(* ( ) = |'(* ( )|
1-graphe au nombre de prédécesseurs et on a :

• Le degré d’un sommet est le nombre d’arcs ayant une extrémité en (chaque boucle étant

H( ( ) = H() ( ) + H(* ( )
comptée 2 fois), et est noté par :

H( ( ) = H() ( ) + H(* ( ) = 3 + 1 = 4
Exemple 9 :

H( ( ) = H() ( ) + H(* ( ) = 1 + 1 = 2

H( ( ) = H() ( ) + H(* ( ) = 0 + 1 = 1

H( ( ! ) = H() ( ! ) + H(* ( ! ) = 1 + 2 = 3
!
• Si tous les sommets ont le même degré, le graphe est dit régulier.

• Un arc est incident à K (K ⊂L) vers l’extérieur si seulement l’extrémité initiale (et pas
1.8. Arcs incidents à un ensemble de sommets

l’extrémité finale) de cet arc ∈ à N. L’ensemble des arcs incidents extérieurement à N est noté
O ) (N).

• Un arc est incident à K (K ⊂L) vers l’intérieur si seulement l’extrémité finale (et pas
l’extrémité initiale) de cet arc ∈ à N. L’ensemble des arcs incidents intérieurement à N est noté
O * (N).

• Cocycle : L’ensemble des arcs incidents à N (N ⊂ ) est appelé cocyle du graphe et est noté :
O(N) = O ) (N) ∪ O * (N)

5
Théorie des Graphes - THG Licence M.I
Exemple 10 :

N={ , , "}

O ) (N) = {( , ), ( , ! )}

O * (N) = {( , " )}

O(N) = {( , ), ( , !) , ( " )}
"
,
!

2. GRAPHES PARTICULIERS

2.1. Multi-graphe
C’est un graphe dont les arcs ne sont pas orientés (arêtes).

Exemple 11 :

2.2. Graphe simple


C’est un graphe qui n’a pas de boucles, et qu’entre deux sommets quelconques il existe au max un arc.

Exemple 12 :

4 " !

C’est un graphe qui à tout couple de sommets ( , ) (avec ≠ ) , il existe l’arc ( , ) et/ou l’arc
2.3. Graphe complet

( , ). Dans un graphe complet on a : U , V ∉ ⇒U , V ∈ .

Exemple 13 :

Un graphe ( , ) est dit plein ⇔ ∀ , ∈ , les arcs ( , ) ,( , ) ,( , ) ∈ % $ à . A tout


2.4. Graphe plein

graphe ( , ) on peut lui associer un graphe plein ( , )

6
Théorie des Graphes - THG Licence M.I
Exemple 14 :

^` ^a

^_ ^b

Le graphe complémentaire ̅ ( , Y) d’un graphe ( , ) a le même ensemble de sommets et comme


2.5. Graphe complémentaire

arcs les arcs qui ∉ à et qui ∈ à un graphe plein de . (i.e. Y = − ).

Exemple 15 :
[ \
[ \
Graphe complémentaire

H ]
H ]

̅ ( , Y)
( , )

Un graphe est dit symétrique si pour tout arc ( , ), il existe l’arc ( , ) (Le graphe peut contenir des
2.6. Graphe symétrique

boucles).

Exemple 16 : ^` ^a

^_

Un graphe est dit antisymétrique si pour tout arc ( , ), l’arc ( , )∉ .


2.7. Graphe antisymétrique

^` ^a
Exemple 17 :

^_

7
Théorie des Graphes - THG Licence M.I
2.8. Graphe partiel
Un graphe c est un graphe partiel de s’il est formé par l’ensemble des sommets de et par un
sous-ensemble d’arcs de .

Exemple 18 :

! !
Un graphe partiel de

2.9. Sous-graphe
Un sous-graphe d d’un graphe est constitué d’un sous-ensemble de sommets de et de tous les arcs
relatifs à ce sous-ensemble.

Exemple 19 :

$% $ mn[ ℎ H ( & p 18)

2.10. Sous-graphe partiel


Un sous-graphe partiel dc du graphe est obtenu en enlevant à des sommets et tous les arcs
relatifs à ces sommets, ensuite enlever à nouveau certains arcs au sous-graphe obtenu.

Exemple 20 :

" " "

!
Sous graphe obtenu en enlevant Sous graphe partiel
le sommet ! et les arcs relatifs
Graphe

Un graphe ( , ) est biparti si l’ensemble de ses sommets peut être partitionné en 2 classes 1 et 2
2.11. Graphe biparti

(i.e. 1 ∩ 2 = ∅ 1 ∪ 2 = ) de telle sorte que 2 sommets de la même classe ne soient pas


adjacents. On le note : f = ( 1, 2, ).

Exemple 21 :

" 8
Théorie des Graphes - THG Licence M.I

3. CHEMINS (CHAINES) ET CIRCUITS (CYCLES)

3.1. Chemin
Un chemin est une séquence (suite) d’arcs tels que l’extrémité finale d’un arc coïncide avec l’extrémité
initiale du suivant. Un chemin peut être énuméré par la liste des sommets qui le composent.

Exemple 22 :
"
4
( , ", !, , , !, , !, ) est un chemin

3.2. Chemin simple


C’est un chemin qui ne contient pas plus d’une fois le même arc. Dans le cas contraire, c’est un chemin
composé.

Exemple 23 :

- Le chemin ( , " , ! , , ! , ) est un chemin simple.


Dans le graphe de l’exemple 22 :

- Le chemin ( , " , ! , , " ) est un chemin composé.

3.3. Chemin élémentaire


C’est un chemin qui ne contient pas plus d’une fois le même sommet. Dans le cas contraire, c’est un
chemin non élémentaire.

Exemple 24 :

- Le chemin ( , " , ! , , ) est un chemin élémentaire.


Dans le graphe de l’exemple 22 :

- Le chemin ( , " , ! , , ! ) est un chemin non élémentaire.

3.4. Chemin hamiltonien


C’est un chemin qui passe une et une seule fois par tous les sommets du graphe.

Exemple 25 :

- Le chemin ( , " , ! , , , 4 ) est un chemin hamiltonien.


Dans le graphe de l’exemple 22 :

3.5. Circuit
C’est un chemin fermé tel que l’extrémité finale du dernier arc coïncide avec l’extrémité initiale du
premier arc.

Exemple 26 :

- ( , " , ! , , ! , ) est un circuit.


Dans le graphe de l’exemple 22 :

9
Théorie des Graphes - THG Licence M.I
3.6. Circuit simple, circuit élémentaire, circuit hamiltonien
• Un circuit est simple si tous les arcs qui le composent sont différents.
• Un circuit est élémentaire si tous les sommets qu’il traverse sont différents (sauf le sommet
initial et le sommet final qui coïncident).
• Un circuit est hamiltonien s’il passe une seule fois par tous les sommets du graphe (sauf le
sommet initial et le sommet final qui coïncident).

Exemple 27 :

- ( , " , ! , , ! , , ) est un circuit simple.


Dans le graphe de l’exemple 22 :

- ( , " , ! , ) est un circuit élémentaire.


- ( , " , ! , , , 4 , ) est un circuit hamiltonien.

3.7. Chaine
C’est une séquence d’arêtes (arcs non orientés), chaque arête étant rattachée à une autre par l’une de
ses extrémités.

Exemple 28 :

"
, , , !, , , !, " est une chaine

3.8. Chaine simple, chaine élémentaire, chaine hamiltonienne


C’est les mêmes définitions que celles des chemins, seulement au lieu des arcs, il s’agit d’arêtes.

Exemple 29 :

, , , , ! , " est une chaine simple.


Dans le graphe de l’exemple 28 :

, , , ! est une chaine élémentaire.


-

, , , ! , " est une chaine hamiltonienne.


-
-

3.9. Cycle
C’est une chaine fermée qui part d’un sommet et qui aboutit à ce même sommet.

Exemple 30 :

, , , !,
Dans le graphe de l’exemple 28 :
- est un cycle.

3.10. Cycle simple, cycle élémentaire, cycle hamiltonien


C’est les mêmes définitions que celles des circuits, seulement au lieu des arcs, il s’agit d’arêtes.

3.11. Pseudo-cycle
C’est une chaine fermée, la même arête pouvant figurer plusieurs fois même consécutivement.

Remarque :
• Un chemin (ou chaine) hamiltonien est toujours un chemin (ou chaine) élémentaire.
• Un chemin (ou chaine) élémentaire est toujours un chemin (ou chaine) simple.

10
Théorie des Graphes - THG Licence M.I
3.12. Longueur d’un chemin (ou d’une chaine)
C’est le nombre d’arcs (pour un chemin) ou d’arêtes (pour une chaine) qui composent le chemin (ou la
chaine).

Exemple 31 :

- Le chemin r = ( , " , ! , , , 4 ) est de longueur ℓ(r) = 5


Dans le graphe de l’exemple 22 :

- La chaine r = , , , ! est de longueur ℓ(r) = 3


Dans le graphe de l’exemple 28 :

4. MODES DE REPRESENTATION D’UN GRAPHE


L’essor de la théorie des graphes est essentiellement dû à l’avènement de puissants ordinateurs. Il est
donc légitime de s’intéresser à la manière de représenter les graphes au sein d’un ordinateur.
Plusieurs modes de représentation peuvent être envisagés selon la nature des traitements que l’on
souhaite appliquer au graphe considéré.

= ( , ) défini par :
= { , , , !} , = {( , ) ,( , !) , ( , !) , ( ! , )}
Soit le graphe

4.1. Représentation sagittale

4.2. Représentation par correspondance

! !

4.3. Représentation en casiers

11
Théorie des Graphes - THG Licence M.I
4.4. Représentation en écriture BERGE (ou en dictionnaire)

($%&& $) ' )( ) ' *( )

4.5. Représentation en matrice booléenne (matrice d’incidence sommet–sommet)


Chaque ligne ou colonne correspond à un sommet du graphe. Chaque élément de la matrice est défini

0 $u p v [n] U , V∉ G
comme suit :

=t
1 $u p v [n] U , V ∈

4.6. Représentation en matrice d’incidence sommet–arc


Dans cette représentation, les lignes correspondent aux sommets et les colonnes aux arcs. Chaque
élément de la matrice est défini comme suit :

+1 $u p $%&& $ p v né&u é u u u[p H p v [n]


= w−1 $u p $%&& $ p v né&u é yu [p H p v [n] G
0 $ v up v $ u né&u é u u u[p u yu [p H p v [n]

( , ) ( , !) ( , !) ( ! , )

12
Théorie des Graphes - THG Licence M.I
4.7. Représentation en matrice latine
Dans cette représentation, chaque ligne et colonne correspond à un sommet du graphe. Les cases sont

$u p v [n] ( , ) u$ G
remplies comme suit :
Case ( , ) = 9
0 % zuH $u %

Case ( , ) = 0 % zuH ∀

13
Théorie des Graphes - THG Licence M.I

EXERCICES
CHAPITRE 1 –NOTIONS FONDAMENTALES

Exercice n°1 :Soit ( , ) le graphe défini par la représentation sagittale suivante :

[ \

] H

a. Quel est l’ordre et le p-graphe de ce graphe ?


Donner 2 boucles.
Donner 2 arcs adjacents et 2 sommets adjacents.
b. Peut-on avoir un 1-graphe ( ) de ce graphe ? comment ?

Soit ( , ), donner les éléments des ensembles et .


Donner la représentation sagittale du 1-graphe .

Exercice n°2 : Soit un graphe ( , ) défini par = { , , , ! , " , 4 } et


= {( , ) , ( , ) , ( , ) , ( , ! ) , ( , 4 ) , ( ! , ! ) , ( ! , ) , ( ! , ) , ( " , ) , ( " , 4 ) , ( 4 , )}

- Pour chaque sommet , donner ' ) ( ) et ' * ( ).


- Donner la représentation sagittale de ce graphe.

- Pour chaque sommet , donner H( ( ) sous la forme H( ( ) = H() ( ) + H(* ( ).

- Soit N un sous ensemble de (N⊂ ) défini par N = { , , , ! }, donner l’ensemble des arcs
- Est-ce que ce graphe est un graphe régulier ? pourquoi ?

incidents à N sous la forme O(N) = O ) (N) ∪ O * (N).

Exercice n°3 : Parmi les graphes suivants, identifier les graphes particuliers (complet, simple,…)

.
[ \ • • \ ]
N
|
~
[
] € ~ €
} H " !
{

G1 G2 G3 G4 G5 G6

Exercice n°4 : Soit un graphe ( , ) défini par :

- Donner un sous graphe d du graphe .


- Donner un graphe partiel c du graphe .
Donner un sous graphe partiel dc du graphe .
Donner le graphe complémentaire ̅ ( , Y) du graphe .
-
-
!

14
Théorie des Graphes - THG Licence M.I

Exercice n°5 : Soit ( , ) le graphe suivant :

\
1. ([ , \ , ] , H , )
- Préciser le type des séquences suivantes :
[
] 2. ([ , ] , H , , ] , \)
3. ([ , ] , H , , ] , H , )
4. (] , H , , ])
5. (\ , ] , H , , ] , \)
H 6. ([ , \ , ] , )
7. (] , H , )
- Dégager un chemin et un circuit hamiltoniens s’il en existe.

Exercice n°6 : Soit ( , ) le graphe défini par : ƒ

Donner sa représentation :

‚ O
- Par correspondance
- En casier.

Exercice n°7 : Soit ( , ) le graphe défini par : †



Donner :
- Sa matrice booléenne (incidence sommet-sommet).

… ˆ ‡
- Sa matrice d’incidence sommet-arc.
- Sa matrice latine.

Exercice n°8 : Soit un graphe ( , ) défini par :

={ $ &\p H $ u n$ H 1 à 8}

= {( , •) ∈ ⇔ Huzu$ •}

Comment reconnait-on sur quand un nombre ∈ est premier ?


a. Donner la représentation sagittale de .

• ∈ sont premiers entre eux ?


b.

Comment peut-on avoir sur le nombre de diviseurs d’un nombre ∈ ?


c. Comment reconnait-on sur quand deux nombres
d.

15
Théorie des Graphes - THG Licence M.I

CHAPITRE 2 : CONNEXITE
Plan
1. Transitivité
2. Connexité
3. Recherche de circuits et chemins hamiltoniens

La notion de connexité est liée à l’existence de chemins dans un graphe. Elle permet essentiellement de
répondre à la problématique suivante : depuis un sommet, existe-t-il un chemin pour atteindre tout
autre sommet ? Elle permet entre autre de déterminer les éléments du graphe (sommet et/ou arc)
ayant une importance particulière selon le contexte.

La notion de connexité est importante dans plusieurs domaines :


- Réseaux : conception de réseaux fiables et résistants aux pannes.
- Topologie : pour repérer les espaces connexes ou non connexes.
- Sociologie : pour étudier l’interaction entre les individus.
- …

1. TRANSITIVITE

1.1. Graphe transitif


Un graphe transitif est un graphe tel que pour tout couple de sommets et ‰ reliés par un chemin de
longueur 2, sont aussi reliés par un arc ; autrement dit, ( , ) est transitif si :

∀ ^Š , ^‹ , ^Œ ∈ L , •Š U^Š , ^‹ V ∈ Ž •• U^‹ , ^Œ V ∈ Ž ‘’“”• (^Š , ^Œ ) ∈ Ž

Exemple 1 :
xi xj

← n[ ℎ n[ $u uy

xℓ xk

Notons par ' = ' ) (ensemble de successeurs) et ' * = ' * (ensemble de prédécesseurs). On a
Notation :

donc :

' ( , ,…, ) = ' ( )∪ ' ( )∪ …∪ ' ( ) = /' ( )


'* ( , ,…, ) = '* ( ) ∪ '* ( ) ∪ … ∪ '* ( ) = / '* ( )


16
Théorie des Graphes - THG Licence M.I
Exemple 2 : (Graphe de l’exemple 1)

• ' U , , ‰ , ℓV =' ( )∪' U V∪' ( ‰) ∪ ' ( ℓ)

' ( )= , ‰ , ℓ ' U V={ ‰} ' ( ‰) =∅ ' ( ℓ) = { ‰}

}% ] ' U , , ‰ , ℓV = , ‰ , ℓ

• '* U , , ‰ , ℓV = '* ( ) ∪ '* U V ∪ '* ( ‰) ∪ ' * ( ℓ)

'* ( ) = ∅ '* U V = { } '* ( ‰) = , , ℓ ' * ( ℓ) = { }

}% ] ' * U , , ‰ , ℓV = , , ℓ

Soit ( , ) un graphe, on définit sur les applications ' , ' , … , ' ,… telles que ∀ ∈
1.2. Fermeture transitive d’un sommet
:

' ( ) = ' U' ( )V , ' ( ) = ' U' ( )V = ' —' U' ( )V˜ , … ].

' ( ) : représente l’ensemble des sommets qui peuvent être atteints à partir de
longueur ≤ à .
par un chemin de

On appelle fermeture transitive d’un sommet l’application multivoque '› définie par :

'› ( ) = { } ∪ ' ( ) ∪ ' ( ) ∪ … ∪ ' ( ) …

'› ( ) représente l’ensemble des sommets que l’on peut atteindre à partir de par un chemin de
longueur quelconque.

1.3. Fermeture transitive inverse d’un sommet

' * , ' * , … , ' * ,… telles que ∀ ∈ :


On peut aussi définir de manière similaire les applications multivoques inverses (ou réciproques)

' * ( ) = ' * U' * ( )V , ' * ( ) = ' * U' * ( )V = ' * —' * U' * ( )V˜ , … ].

' * ( ) : représente l’ensemble des sommets à partir desquels on peut atteindre


longueur ≤ à .
par un chemin de

On appelle fermeture transitive inverse d’un sommet l’application multivoque inverse '› * définie
par :

'› * ( ) = { } ∪ ' * ( ) ∪ ' * ( ) ∪ … ∪ ' * ( ) …

'› * ( ) représente l’ensemble des sommets à partir desquels on peut atteindre par un chemin de
longueur quelconque.

17
Théorie des Graphes - THG Licence M.I
Exemple 3 :
B C
A

E G

D
F

' (N) = {., {}


' (N) = ' U' (N)V = ' (., {) = ' (.) ∪ ' ({) = {|} ∪ {., |} = {., |}
' (N) = ' U' ( )V = ' (., |) = {|} ∪ {}, {} = {|, }, {}

'› (N) = {N} ∪ ' (N) ∪ ' (N) ∪ … ∪ ' (N) … = {N, ., |, }, {} ∪ … ∪ ' (N) …

Et

' * (N) = {}}


' * (N) = ' * U' * (N)V = ' * (}) = {|}
' * (N) = ' * U' * ( )V = ' * (|) = {., {}

'› * (N) = {N} ∪ ' * (N) ∪ ' * (N) ∪ … ∪ ' * (N) … = {N, ., |, }, {} ∪ … ∪ ' * (N) …

Même question pour le graphe suivant :


D
B C
A

G E

On appelle fermeture transitive stricte d’un graphe ( , ') la correspondance telle que :
1.4. Fermeture transitive stricte d’un graphe

∀ ∈ → '› ( ) = { } ∪ ' ( ) ∪ ' ( ) ∪ … ∪ ' ( ) …

18
Théorie des Graphes - THG Licence M.I

• Algorithme de recherche de la fermeture transitive stricte d’un graphe œ(L, •)


Cet algorithme permet d’obtenir › ( , '› ) connaissant ( , '). On pose = { , , … , } l’ensemble
des sommets du graphe , ' ( ) l’ensemble des successeurs du sommet et ' * ( ) l’ensemble des
prédécesseurs de .

ž est une application qui consiste à enrichir


Principe de définition de l’algorithme

élément (sommet) de ' *


( ) à chaque élément (ou sommet) de ' ( ).
en joignant par un arc (lorsqu’il n’existe pas) chaque

∈ '* ( ) ‰ ∈' ( )

ž consiste à reproduire tous les "1" existants en ligne "u" sur toute ligne "Ÿ" possédant un "1" en
Si on considère un graphe représenté par une matrice booléenne (incidence sommet-sommet),

colonne "u".

1 2 3 4 … u … Ÿ …
1
2
3

u 1 0 0 1 … 1 0 …

… ↓ ↓ ↓
Ÿ 1 1 1 1 … …

Principe d’application de l’algorithme


Etant donné un graphe :

1. Numéroter ses sommets dans un ordre arbitraire.

3. Appliquer ž (1ère ligne de la matrice), puis ž (2ème ligne de la matrice) au résultat obtenu,
2. Déterminer la matrice booléenne correspondante au graphe.

ensuite ž (3ème ligne), … et enfin ž (dernière ligne).

Le résultat obtenu (final) est la fermeture transitive stricte du graphe initial .

Un "1" dans la case ( , ) de la matrice finale signifie qu’il existe un chemin de


Important :
vers dans .

19
Théorie des Graphes - THG Licence M.I
Exemple 4 :
Soit à appliquer l’algorithme au graphe suivant pour déterminer sa fermeture transitive stricte.

A B C D
B
A
A

C B

C
D
D

case(A , B) = ⇒
case(D , B) = ⇒

2. CONNEXITE

2.1. Graphe connexe (ou simplement connexe)


Un graphe connexe est un graphe tel qu’à partir de tout sommet on peut atteindre tout autre
sommet en passant par une chaine du graphe.

Exemple 5 :

b 4
a

!
e c

"
d
G1 est un graphe connexe G2 est un graphe non connexe
(2 composantes connexes)

un sommet donné et |01 l’ensemble des sommets pouvant être reliés à


2.2. Composantes connexes d’un graphe
Soit par une chaine y

ensemble de la forme |01 .


compris aussi ; on appelle composante connexe du graphe, le sous-graphe engendré par un

Les deux sous graphes formés par ( , , ) et ( , , 4)


Exemple 6 : (Graphe 2, Exemple 5)
! "
graphe 2.
sont les deux composantes connexes du

( , ') constituent une partition de classes de X ;


c'est-à-dire $u ∈ :
Les différentes composantes connexes du graphe

1. |01 ≠ ∅
2. |01 ≠ |0 ⇒ |01 ∩ |0 = ∅
3. ∪ |01 =

20
Théorie des Graphes - THG Licence M.I

Un graphe est connexe si et seulement s’il ne possède qu’une seule composante connexe (Graphe 1
Remarque :

de l’exemple 5).

Un graphe ( , ') est fortement connexe si et seulement si : ∀ ∈ , '› ( ) =


2.3. Graphe fortement connexe

Autrement dit, de tout sommet on peut atteindre tout autre sommet en suivant un chemin du
graphe, comme c’est le cas du graphe suivant :
b c
a

d
e

Remarque :
• Graphe fortement connexe ⇒ graphe connexe (et non l’inverse).
• Graphe connexe et symétrique ⇒ graphe fortement connexe.

On considère un graphe ( , ') et la relation d’équivalence ¡ définie par :


2.4. Composantes fortement connexes

=
∀ , ∈ ¡ ⇔¢ % G
£p u$ ]ℎ &u H z n$ né]u n%¤ &

• ¡ réflexive ∀ ∈ , ¡
Propriétés :

• ¡ symétrique ∀ , ∈ ¡ ⇒ ¡
• ¡ transitive ∀ , , ‰ ∈ ¡ ¡ ‰ ⇒ ¡ ‰
R est donc une relation d’équivalence.

| , | , … , | est l’ensemble des classes d’équivalence de l’ensemble quotient /¡


Chaque classe d’équivalence | est un sous graphe appelé composante fortement connexe.
-
-

Remarque :
• Les composantes fortement connexes constituent une partition de l’ensemble .
• Un graphe fortement connexe n’a qu’une seule composante fortement connexe.

2.5. Algorithme de Malgrange : une méthode de décomposition d’un graphe en composantes

Soit |01 une classe d’équivalence, alors |01 = '› ( ) ∩ '› * ( ) puisqu’il doit exister un chemin de vers
fortement connexes.

les autres sommets de la classe et inversement ; c'est-à-dire ∀ ∈ :

∈ |01 ⇔ ∃ ]ℎ &u H z n$ u z n$ &

21
Théorie des Graphes - THG Licence M.I

- L’algorithme consiste à sélectionner arbitrairement un sommet et à calculer '› ( ) puis '› * ( ) et


Principe de définition

enfin '› ( ) ∩ '› * ( ) : ceci nous donne un sous-graphe fortement connexe contenant .
- On supprime alors les sommets du sous-graphe obtenu et on recommence avec un autre sommet.

correspondant à '› et une ligne correspondant à '› * d’un sommet considéré.


- Pratiquement, on part de la matrice booléenne représentant le graphe et on lui ajoute une colonne

Principe d’application

A B C D E F G H I J K '› (N)
A 1 1 1 0
B 1 1 1 1 ×
C 1 ×
D 1 1
E 1 ×
F 1 1 1
G 1 1 2
H 1 1 1 ×
I 1 1
J 1 1 ×
K 1 3

'› * (N) 0 × 2 × × 1 × × × × ×

- On choisit un sommet quelconque. Prenons par exemple le sommet N, pour remplir '› (N), placer 0
dans la case N de '› (N). La ligne N porte un 1 en colonne D, on placera donc un 1 dans la case D de
'› (N). De même, on placera 1 dans les cases § et £ de '› (N) (ainsi le plus court chemin de N à }, §, £

- On considère ensuite les lignes }, §, £, on placera 2 dans les cases de '› (N) correspondantes aux
est de longueur 1).

seulement un 2 pour la case , car les autres (N et }) sont déjà remplies.


colonnes portant des 1, dans le cas où ces cases ne sont pas encore remplies. Dans notre exemple,

- On considère alors la ligne , elle contient 1 en colonne (déjà remplie) et 1 en colonne ¨ ; on


porte alors 3 dans ¨ de '› (N).
- On examine la ligne ¨ qui contient 1 en colonne £ (déjà remplie) on voit qu’on ne peut plus
appliquer la procédure, ainsi pour terminer on met une croix dans les cases restantes vides de '› (N)
(il n’y a pas de chemin entre N et ces sommets).

- Pour remplir la ligne '› * (N), on opère de la même manière, mais en remplaçant les lignes par les
colonnes. On trouve pour N :

'› (N) = {N, }, §, , £, ¨}


G © ⇒ '› (N) ∩ '› * (N) = {N , §}
'› * (N) = {N , | , §}

{N , §} est la première composante (1er sous graphe) fortement connexe (maximal).

22
Théorie des Graphes - THG Licence M.I
- On enlève les sommets du sous graphe obtenu, puis on choisit un sommet arbitraire parmi les
sommets restants et on applique à nouveau la procédure.

A la fin, on arrive à décomposer le graphe en 7 classes d’équivalence correspondant chacune à une


composante fortement connexe maximale.

| = {N, §} , | = {., ª} , | = { , £, ¨} , |! = {«} , |" = {|} , |4 = {}} , |3 = {{}

¬ (|- , ¬ ) est appelé graphe réduit de ( , ) s’il est défini par :


Graphe réduit

|- : ensemble de composantes fortement connexe.


∈|
(| , | ) ∈ ¬ s’il existe 9 ∈ | ® p ¤ U , V ∈

Pour notre d’exemple d’application, on obtient le graphe réduit suivant qui permet de "résumer" le
graphe initial, d’analyser ses "points faibles" et de déterminer quel est le minimum d’arcs à ajouter
pour rendre le graphe fortement connexe.

|"
|
|
|
N, § } , £, ¨
|4

|
., ª
« |3
|! {

3. RECHERCHE DE CIRCUITS ET CHEMINS HAMILTONIENS

3.1. Recherche de circuits d’un graphe


- Supprimer d’abord les sommets isolés.
- Commencer par chercher les boucles (circuits particuliers).
- Puis chercher les autres circuits du graphe par l’une des deux méthodes suivantes :

a. Poser u = 1 (u : indice des sommets du graphe)


Méthode 1 : Sur le tracé du graphe (représentation sagittale)

b. Repérer le sommet u
c. Les arcs du sommet u sont-ils tous aboutissants ou tous partants ?

sinon u = u + 1, aller à b
si oui aller à d

d. Effacer le sommet avec tous ses arcs ; poser u = u + 1 ; aller à b

La procédure s’arrête lorsque tous les sommets non supprimés ont à la fois des arcs partants et
aboutissants. Si le graphe ne contient aucun circuit, la procédure supprime tout le graphe. Dans le
cas contraire, seuls les circuits restent.

a. Poser u = 1 (indice des lignes ou colonnes de la matrice)


Méthode 2 : Sur la matrice booléenne du graphe

b. Repérer la case (u , u)

23
Théorie des Graphes - THG Licence M.I
c. La ligne u ou la colonne u contient-elle que des zéros (0) ?

Sinon poser u = u + 1, puis aller à b


Si oui aller à d

d. Barrer la ligne u et la colonne u ; poser u = u + 1 ; aller à b.

La procédure s’arrête d’elle-même, par épuisement.

Exemple 6 :

1ère méthode : Etape finale


B B
A
C C

F D F
E E
Les circuits sont :
CBC
CFEC
CBCFEC

2ème méthode :

A B C D E F
Résultat final
A 0 1 0 0 0 1
B C E F
B 0 0 1 0 0 0
B 0 1 0 0
C 0 1 0 1 0 1
C 1 0 0 1
D 0 0 0 0 0 0
E 0 1 0 0
E 0 0 1 1 0 0
F 0 0 1 0
F 0 0 0 0 1 0

3.2. Recherche de chemins hamiltoniens

− 1.
Longueur d’un chemin hamiltonien
La longueur d’un chemin hamiltonien (s’il existe) pour un graphe d’ordre , est ℓ =

Méthode de recherche de chemins hamiltoniens


Principe de définition

Elle permet d’énumérer successivement tous les chemins élémentaires de longueur 1, 2, 3, …, − 1


Cette méthode est basée sur une multiplication matricielle d’un type particulier (matrice latine).

( étant l’ordre du graphe). On s’arrête une fois qu’on trouve tous les chemins de longueur − 1
(chemins hamiltoniens) si le graphe en possède.

24
Théorie des Graphes - THG Licence M.I

Principe d’application

Exemple 7 :
Soit à déterminer les chemins hamiltoniens du graphe suivant :
A
B

E
C
D

Nous commençons par représenter la matrice latine du graphe notée ¯ puisqu’elle nous donne tous
les chemins élémentaires de longueur 1.
A B C D E
A 0 AB AC 0 AE
B 0 0 BC 0 BE
C 0 0 0 CD 0
D 0 0 DC 0 DE
E EA 0 0 ED 0

Nous déduisons de cette matrice une autre matrice latine notée °±̄² dans laquelle la première lettre
sera enlevée :
A B C D E
A 0 B C 0 E
B 0 0 C 0 E
C 0 0 0 D 0
D 0 0 C 0 E
E A 0 0 D 0

Multiplions (d’une manière un peu différente) ¯ par °±̄² pour avoir ¯ . On procède comme dans

de sens ici) ; lorsqu’une case (u , ³) sera en coïncidence avec une autre case (³ , Ÿ), on portera alors 0
le calcul matriciel classique "ligne par colonne", mais au lieu d’effectuer des produits (ceci n’aurait pas

dans la case (u , Ÿ) de ¯ . Si pour tous les ³, l’une ou/et l’autre de ces cases contient un 0, on porte

séquence ne contenant pas de lettres répétées en mettant à la suite d’une séquence de la case (u , ³) de
aussi 0, si pour toutes les cases traitées dans le "produit" ligne par colonne, on ne peut former une

¯ une séquence de la case (³ , Ÿ) de °±̄² , ceci pour tous les ³ (pour cet exemple les séquences de
°±̄² se limitent chacune à 1 lettre, on généralisera par la suite). Enfin, si on met à la suite d’une
séquence de la case (u , ³) de ¯ une séquence de la case (³ , Ÿ)de °±̄² , on trouve une plusieurs
séquences sans répétition de lettre, on la (ou les) porte dans la case (u , Ÿ) de ¯ , et on procède ainsi
pour tous les ³.

25
Théorie des Graphes - THG Licence M.I

¯ L°±̄² = ¯
Ce qui nous donne :
• : qui nous donne la liste des chemins élémentaires de longueur 2.
A B CD E
ACD
A 0 0 ABC ABE
AED
BCD
B BEA 0 0 0
BED
C 0 0 0 0 CDE
D DEA 0 0 0 0
EAC
E 0 EAB 0 0
EDC

• ¯ L°±̄² = ¯ : qui nous donne la liste des chemins élémentaires de longueur 3.


A B C D E
ABCD
A 0 0 AEDC ACDE
ABED
BEAC
B 0 0 0 BCDE
BEDC
C CDEA 0 0 0 0
D 0 DEAB DEAC 0 0
E 0 0 EABC EACD 0

• ¯ L°±̄² = ¯ !
: qui nous donne la liste des chemins élémentaires de longueur 4.
A B C D E
A 0 0 ABEDC 0 ABCDE
B BCDEA 0 0 BEACD 0
C 0 CDEAB 0 0 0
D 0 0 DEABC 0 0
E 0 0 0 EABCD 0

On arrête à ¯ ! car = 5. Il y a donc 7 chemins hamiltoniens :


(A , B , E , D , C) , (A , B , C , D , E) , (B , C , D , E , A) , (B , E , A , C , D) , (C , D , E , A , B) , (D , E , A , B , C) et
(E , A , B , C , D).

´
La multiplication latine peut être étendue à des matrices °±̄² ¤ > 1, définie comme suit :
Remarque :

¯ c
L°±̄²´ = ¯ (c)´)

´
Où °±̄² est la matrice ¯ ´
dont on a enlevé à chaque séquence représentant un chemin élémentaire
sa première lettre.

Exemple 8 :

26
Théorie des Graphes - THG Licence M.I

3.3. Recherche de circuits hamiltoniens

Longueur d’un circuit hamiltonien


La longueur d’un circuit hamiltonien (s’il existe) pour un graphe d’ordre , est ℓ = .

Exemple 9 :
Dans l’exemple 7 (A , B , C , D , E , A) , (B , C , D , E , A , B) , (C , D , E , A , B , C) sont des circuits
hamiltoniens (équivalents car obtenus par permutation circulaire).

Méthode de recherche de circuits hamiltoniens


- Même méthode que celle de recherche de chemins hamiltoniens : il suffit de déterminer d’abord les
chemins hamiltoniens du graphe donné, puis de fermer ces chemins obtenus par un arc du graphe

*
- Si l’ordre du graphe est , alors il suffit de calculer ¯ et de là on détermine °±̄²
si cela est possible.
*
*
- On calcule ensuite ¯ = °±̄² · °±̄² , pour avoir les circuits hamiltoniens (s’il en existe), il
.

( )
suffit d’ajouter dans chaque séquence latine de ¯ ∗
( ),
constituant l’indice de la ligne de ¯
comme lettre initiale (1ère lettre), la lettre

( ).

Exemple 10 :
*
°±̄² · °±̄² = ¯ ∗
( )

A B C D E A B C D E A B C D E
A 0 0 BEDC 0 BCDE A 0 B C 0 E A ABCDEA 0 0 0 0

B CDEA 0 0 EACD 0 B 0 0 C 0 E B 0 BCDEAB 0 0 0

C 0 DEAB 0 0 0 L C 0 0 0 D 0 = C 0 0 CDEABC 0 0

D 0 0 EABC 0 0 D 0 0 C 0 E D 0 0 0 DEABCD 0

E 0 0 0 ABCD 0 E A 0 0 D 0 E 0 0 0 0 EABCDE

27
Théorie des Graphes - THG Licence M.I

EXERCICES
CHAPITRE 2 –CONNEXITE


Exercice n°1 : Parmi les graphes suivants, indiquer les graphes transitifs :

~ [ \

€ y
" ! H

]
¹ f º

Exercice n°2 : Soient les 2 graphes suivants :


B

"
A C
E
4

D
!
3

¸ 2

Calculer pour ¸ : ' (.) , ' (|)


Calculer pour 2 : ' * ( ) , ' * ( " )
-
-
- Déterminer la fermeture transitive de ¸, puis celle de 2

Exercice n°3 : Parmi les graphes suivants, indiquer ceux qui sont connexes, puis déterminer pour

B
chacun d’eux, les composantes connexes.

A C
D !

F
E G
"

graphes de l’exercice précédent (exercice n°3). Pour le graphe remplacer l’arc ( , ! ) par ( ! , ).
Exercice n°4 : Rechercher par deux méthodes différentes, les circuits s’il en existe sur les deux

28
Théorie des Graphes - THG Licence M.I

Exercice n°5 : Déterminer les composantes fortement connexes de chacun des graphes suivants, et
tracer pour chaque graphe, son graphe réduit.

\
[
]

!
H

G1 G2

.
N

¨ |

}
£

«
{

G3

Exercice n°6 : Déterminer les chemins hamiltoniens, puis les circuits hamiltoniens du graphe suivant :

.
N
|

{ }

29
Théorie des Graphes - THG Licence M.I

CHAPITRE 3 : ARBRES ET ARBORESCENCES


Plan
1. Nombre cyclomatique et nombre cocyclomatique
2. Arbres
3. Arborescences
4. Fonction ordinale

Les arbres et les arborescences sont des structures fondamentales utilisées dans de très nombreux
domaines : informatique, science sociale, statistique, intelligence artificielle,…

Etant donné un graphe avec sommets, & arcs et composantes connexes :


1. NOMBRE CYCLOMATIQUE ET NOMBRE COCYCLOMATIQUE

- La dimension de la base des cycles (cycles indépendants) est …( ) = & − + ; …( ) est

- La dimension de la base des cocycles (cocycles indépendants) est „( ) = − ; „( ) est


appelé le "nombre cyclomatique" du graphe.

appelé le "nombre cocyclomatique" du graphe.

Du fait que le nombre de chemins, cycles et cocycles existants dans un graphe peut être très grand, les
nombres cyclomatique et cocyclomatique permettent de mesurer le nombre de cycles et cocycles
indépendants dans un graphe donné.
1 b c
Exemple 1 :
3 f
a
2
4 6
5 7

e
d
=6 &=7 =2
…( ) = & − + =3 donc il existe 3 cycles élémentaires indépendants.
„( ) = − =4 donc il existe 4 cocycles élémentaires indépendants.

2. ARBRES

2.1. Définitions
- Un arbre est un graphe connexe sans cycle et ayant au moins deux sommets (il peut avoir des arcs
ou des arêtes).
!
Exemple 2 : "

4
3

Ä
Å
Æ

30
Théorie des Graphes - THG Licence M.I
Exemple 3 :
L’arbre généalogique d’une famille est un exemple classique d’arbre où les sommets sont les membres
de la famille et les arêtes sont les liens de parenté directs.

- Une forêt est un graphe non connexe et sans cycle ; c’est aussi un ensemble d’arbres.

- Une forêt est un graphe dont chaque composante connexe est un arbre.

\
Exemple 4 :

]
[
1er Arbre

u
Forêt


³
y m p
2èmeArbre

Ÿ &

• Soit « un graphe ayant sommets ( ≥ 2), l’une des propriétés suivantes est suffisante pour
2.2. Propriétés

a. « est connexe et sans cycle.


définir un arbre :

b. « est sans cycle et possède ( − 1) arêtes (ou arcs).


c. « est connexe et possède ( − 1) arêtes.
d. « est sans cycle et en ajoutant une arête entre deux sommets non adjacents on crée un cycle et

e. « est connexe et en supprimant une arête quelconque, il n’est plus connexe.


un seul.

f. Tout couple de sommets est relié par une chaine et une seule.

Démonstration
On peut démontrer que : [ ⇒ \ ⇒ ] ⇒ H ⇒ ⇒ y ⇒ [

Exemple 5 : Démonstration de [ ⇒ \
Soient le nombre de composantes connexes, & le nombre d’arêtes et …(«) le nombre cyclomatique :

On a : …(«) = & − + = 0 (sans cycle) et = 1, donc & = − = −1

• Un graphe connexe de sommets, possède au moins ( − 1) arêtes (ou arcs).


Propriétés

• Un graphe sans cycle de sommets, possède au plus ( −1) arêtes (ou arcs).
• Dans un graphe sans cycle qui a sommets, & arêtes, composantes connexes, on a & = − .
• Un arbre d’ordre ( ≥ 2) possède au moins 2 sommets pendants (Un sommet pendant est un
sommet qui n’est adjacent qu’a un seul sommet).

31
Théorie des Graphes - THG Licence M.I

y
Exemple 6 :

m
]
[ ℎ y , m , ℎ , u , ³ $% H $ $%&& $ H[ $
u
H

• Un graphe quelconque admet un graphe partiel qui est un arbre si et seulement si est connexe.
Un tel arbre est appelé "arbre partiel".

2.3. Algorithme de détermination d’un arbre partiel d’un graphe connexe


a. Chercher une arête (ou un arc) dont la suppression "ne déconnecte pas" le graphe.
b. Si une telle arête existe, la supprimer du graphe puis reprendre en a.
Sinon le graphe est un arbre partiel.

La procédure s’arrête une fois qu’il n’y a plus d’arêtes à supprimer.

\ ]
Exemple 7 :

[ m H
Les arêtes en gras forment l’arbre
partiel, les autres ont été éliminées.

Soit un graphe ( , ), à chaque arête (ou arc) appartenant à , on lui associe un nombre ]( ) appelé
2.4. Algorithmes de recherche d’un arbre partiel de valeur minimale

"cout" ou "valeur" ou "poids" de l’arête ; on appelle valeur totale d’un arbre partiel «( , È) la
somme :
É(«) = Ê ]( )
Ë∈Ì

Le problème est de chercher un arbre partiel « de tel que sa valeur totale soit minimale. Le
minimum est pris sur l’ensemble des arbres possibles de . Si toutes les arêtes ont des couts différents,
l’arbre partiel minimal est unique.

électriques. On considère un ensemble de Í sites devant être reliés par des lignes à haute tension.
Ce problème a plusieurs applications. Nous citons à titre d’exemple la construction de lignes

peut modéliser l’ensemble des réseaux possibles par un graphe complet et valué = ( , , |) dans
L’objectif est de construire un réseau connectant tous les sites et ayant une longueur minimale. On

lequel est l’ensemble des sites, l’ensemble de toutes les connections possibles et | une application
qui associe à toute arête (u, ³) un coût (la distance entre u et ³). La résolution de ce problème (réseau
optimal) revient à trouver l’arbre partiel (recouvrant) de poids minimal.

32
Théorie des Graphes - THG Licence M.I
Algorithme de Kruskal (1956)
1. Ordonner les arêtes par ordre croissant sur le coût.
2. Choisir la 1ère arête qui a le cout minimum

4. A une étape Ÿ (2 < Ÿ ≤ − 1) choisir l’arête ‰ de cout minimum et qui ne forme pas de cycles
3. Choisir la 2ème arête qui a le cout minimum parmi les arêtes restantes.

avec les (Ÿ − 1) arêtes déjà choisies.


5. Arrêter la procédure lorsque Ÿ = − 1. Ainsi le graphe «( , È) est un arbre partiel de valeur
totale minimale.

23
Exemple 8 :

12 F 14 ! " 4

10 15
- 23 12 8 6 10
F F
- 15 24 19 14
F F
20
- 22 17 20
4 ! - 5 13
F
13 19 17 "
24
- 7

6 4 -
7 8
F
F 22
F
F F F
5
" !
F
Nous avons = 6 $%&& $ Ÿ= − 1 = 5 ; on s’arrête à Ÿ = 5.

Cout Arête Forme-t-elle un cycle Cout Nombre cumulé


arête concernée avec les autres arêtes ? de l’arête choisie d’arêtes choisies

Le cout total de l’arbre partiel obtenu est : 5 + 6 + 7 + 12 + 14 = 44

Remarque :
Dans le cas où certaines arêtes ont le même cout, on procèdera à de petites modifications au niveau

graphe on a ]( ) = ]( ) = ]( ), on fait le changement suivant :


des couts de ces arêtes pour que tous les arbres aient des couts différents. Si par exemple dans un

]( ) → ]v( ) = ]( )+‡
]( ) → ]v( ) = ]( ) + 2‡
]( ) → ] v ( ) = ]( ) + 3‡
Avec ‡ très petit (0.001 par exemple), pour ne pas inverser l’ordre des couts des arrêtes ; ainsi il existe
un arbre et un seul «( , È) de valeur totale minimale.

33
Théorie des Graphes - THG Licence M.I
Exemple 9 : (Voir TD)

Algorithme de Sollin (1961)


On procédera par étape en joignant un sommet quelconque à son voisin le plus proche (c'est-à-dire
dont l’arête porte le plus petit cout) et on formera ainsi des sous graphes (c'est-à-dire des sous arbres
du graphe donné), chacun de ces sous-graphes n’ayant aucun sommet en commun avec un autre, puis
on considérera ces sous arbres comme des sommets et on recommencera l’algorithme jusqu’au
moment où on obtiendra un arbre du graphe donné.

Exemple 10 : (Voir exemple 8)


Commençons arbitrairement par , son voisin le plus proche est 4 . On formera le sous graphe 4.
Prenons ensuite un autre sommet (autre que , 4 ), par exemple dont le voisin le plus proche est
" . Prenons un autre sommet en dehors de , , " , 4 , soit ! dont le voisin le plus proche est " .

arbres N1 et N2.
Prenons le dernier sommet , son sommet le plus proche est . Nous avons ainsi obtenu 2 sous

N
N 14
5 6
12
F F F
F
4
"

Cherchons maintenant quelle est l’arête la plus courte entre N1 et N2. C’est ", 4 qui vaut 7. Ainsi on
obtient l’arbre optimal suivant de cout 44.

14 12
5 6
F F
7
F F
4
F "

2.5. Recherche d’un système fondamental de cycles indépendants d’un graphe connexe
Pour obtenir un système fondamental de cycles indépendants, il suffit de construire un arbre partiel
du graphe et de faire passer un cycle et un seul, par chacune des arêtes n’appartenant pas à l’arbre.

Exemple 11 :

Les arêtes en gras forment l’arbre partiel.

…( ) = & − + = 11 − 6 + 1 = 6
Le nombre cyclomatique :

Soit 6 cycles indépendants.

Cette notion est très importante dans la théorie


!
des réseaux électriques.
4
"
34
Théorie des Graphes - THG Licence M.I

A partir de la matrice booléenne associée au graphe, construire la matrice . telle que :


2.6. Détermination du nombre d’arbres partiels d’un graphe connexe

u = ³ [p%n$ \ = H mné H $%&& u


Ò
$u G
(u,
Ñu ≠ ³ [p%n$ t\ = −1 $u p [n] ³) ∈ G
v

Ð \ = 0 $u p [n](u, ³)∉
v

matrice . (Mineur = déterminant de la matrice)


Le nombre d’arbres partiels et égal au mineur de n’importe quel terme de la diagonale principale de la

[
Exemple 12 :
A B
[ \ ] H [ \ ] H
[ [
H
\ \ \
] ]
H H
]

3 −1 −1 −1
Le déterminant (mineur (B)) = 2 Ó Ó+1 Ó Ó = 2 × 5 + (−2) = 8
−1 2 0 2

Donc il y a 8 arbres partiels.

Le nombre d’arêtes de chaque arbre partiel est − 1 (c'est-à-dire 3 arêtes), ainsi il faut enlever de

[ [ [
chaque combinaison deux arêtes.
[

H \ H \ H \ H \

] ] ] ]
[ [ [ [

H \ H \ H \ H \

] ] ] ]

3. ARBORESCENCE

3.1. Définitions

Dans un graphe ( , ), on appelle racine un sommet


• Racine
tel que tout autre sommet du graphe peut être
atteint par un chemin issu de .

35
Théorie des Graphes - THG Licence M.I

H
Exemple 13 :

\ ℎ

”‘ÔŠÕ• ∶ ‘
]
[ m

- Un graphe est dit quasi-fortement connexe, si pour tout couple de sommets ( ,


• Graphe quasi-fortement connexe

un sommet • d’où partent à la fois un chemin allant en et un chemin allant en .


), il existe

- Un graphe fortement connexe est donc quasi-fortement connexe,


mais la réciproque est fausse.
- Un graphe quasi-fortement connexe est connexe.

Soit ( , ') un graphe orienté :


• Arborescence

est une arborescence de racine Æ ∈ si :


a. Æ est unique et n’est l’extrémité finale d’aucun arc (u. . ' * ( Æ ) = ∅).
b. ∀ , ≠ Æ , est l’extrémité finale d’un seul arc (u. . |' * ( )| = 1).
c. ne contient pas de circuit.

Toute arborescence est un arbre muni d’une racine Æ et ∀ ∈ , ∃ un chemin allant de Æ à .

Exemple 14 :

! " 4
" 4
Ä
3
Æ
3
Ä

Å Æ
!
Æ

Nn\%n $] ] 1 Nn\%n $] ] 2

La condition nécessaire et suffisante pour qu’un graphe ( , ) admet une racine est qu’il soit quasi-
Remarque :

fortement connexe.

Soit N un graphe d’ordre > 1, les propriétés suivantes sont équivalents pour définir une
3.2. Propriétés

a. N est quasi-fortement connexe et sans cycles


arborescence.

b. N est fortement connexe et admet ( − 1) arcs


c. N est un arbre admettant une racine Æ
d. Il existe un sommet Æ qui est relié à tout autre sommet par un chemin unique issu de Æ
e. N est quasi-fortement connexe et cette propriété disparait par suppression d’un arc

f. N est connexe et il existe un sommet Æ tel que : H¸* ( Æ ) = 0 et H¸* ( ) = 1 ∀ ≠ Æ


quelconque

g. N est sans cycle et l’on a : H¸* ( Æ ) = 0 et H¸* ( ) = 1 ∀ ≠ Æ

36
Théorie des Graphes - THG Licence M.I
Démonstration
On peut démontrer que : [ ⇒ \ ⇒ ] ⇒ H ⇒ ⇒ y ⇒ m ⇒ [

Exemple 15 : Démonstration de [ ⇒ \
D’après [, N est connexe et sans cycle ⇒ c’est un arbre, ainsi il admet ( − 1) arcs.

4. FONCTION ORDINALE

Soit ( , ') un graphe sans circuit, on définit les sous-ensembles ÍÆ , Í , Í , … , ͬ tels que :
4.1. Définition

ÍÆ = { / '* ( ) = ∅ }

Í ={ / ' * ( )⊂ÍÆ }

Í ={ / ' * ( )⊂ÍÆ ∪ Í }
¬*

ͬ = ¢ / ' * ( )⊂ / ͉ ×
䥮

Avec n est le plus petit entier tel que ' ( ) = ∅ (ou '(ͬ ) = ∅)

Les sous-ensembles ͉ forment une partition de et sont appelés "Niveaux".

La fonction ordinale ž( ) du graphe sans circuit est défini par ∈ ͉ ⇒ ž( ) = Ÿ

a. Représenter la matrice booléenne du graphe ; poser Ÿ = 0


4.2. Méthode de détermination de la fonction ordinale d’un graphe sans cycle

b. Ajouter une ligne totale N‰ en bas de la matrice et y mettre des croix dans les cases des

c. Faire la somme par colonne et reporter le total dans la case correspondante de N‰ .


colonnes dont les lignes correspondantes ont été supprimées.

d. Les sommets ayant leur total nul constituent le niveau ͉ , supprimer alors les lignes portant

e. Incrémenter Ÿ (Ÿ = Ÿ + 1) et aller à b.
ces sommets.

f. S’arrêter une fois que la ligne N‰ contient seulement des croix.

Exemple 16 :
A B C D E F G H I J K
A 1 1 1
B 1 1 1
C 1 1
D 1 1
E
F
G 1 1
H
I
J 1 1
K 1 1 1

37
Théorie des Graphes - THG Licence M.I

NÆ 0 0 1 2 2 3 2 1 3 1 1 ÍÆ = {N, .}

N X X 0 0 2 2 1 2 3 1 0 Í = {|, }, ¨}

N Í = {§, , ª}
déf.
X X X X 1 0 0 1 2 0 X

N Í = {{, «, £}
de F
X X X X 0 X X 0 0 X X

N! X X X X X X X X X X X

§ {
|

} «
.

¨
ª £

N0 N1 N2 N3

Exemple 17 : (Contre-Exemple : Graphe avec cycle)

A B C D
A 1 1
B 1
C 1 1
D

NÆ 2 0 2 1 ÍÆ = {.}

N 2 X 2 0 Í = {}}

N 2 X 2 X .p%][m : né$ ] H ]un] u

Remarque :
- On peut définir la fonction ordinale inverse de la même façon qu’on a défini la fonction
ordinale : seulement tout ce qui a été fait pour les lignes, sera fait pour les colonnes et
inversement.
- Une arborescence a toujours une fonction ordinale.

38
Théorie des Graphes - THG Licence M.I

Définir une fonction ordinale (en donnant à la racine le niveau ÍÆ ) pour l’arborescence suivante :
Exemple 18 :

1 12

4 3
5

6 7 8

9 11
10

ÍÆ = {2} , Í = {1,12} , Í = {3,4,5} , Í = {6,7,8} , Í! = {9,10,11}

39
Théorie des Graphes - THG Licence M.I

EXERCICES
CHAPITRE 3 –ARBRES ET ARBORESCENCES

Exercice n°1 : Déterminer pour ¸


.
un arbre partiel, puis les différents cycles indépendants à partir de
cet arbre partiel.

N |

}
§

Exercice n°2 : On veut construire un réseau ferroviaire reliant sept villes N, ., |, }, {, § et avec un
cout minimum. Le prix de revient au Km est de 10 unités. Les liaisons possibles (au Km) entre les villes
sont données par le tableau suivant :
A B C D E F G
A X
B 80 X
80 40 X

C
D 30 70 X
110 120 90 130 X

E

10 70 10 90 X

F
G 90 40 60 80 50 X

Exercice n°3 : Chercher un arbre de poids minimum (par 2 méthodes) pour le graphe 2.
N 3+‡ ƒ N
.
9
3 ‚ }
11 10 |
{ 4 2
5 5+‡
12 } 8
11 + ‡
3 + 2‡ O .
«
§ 9+‡ |
4+‡
Ü
2 Ù Ú

Exercice n°4 : Chercher un système de cycles indépendants sur le graphe Ù.

Exercice n°5 : Déterminer le nombre d’arbres partiels du graphe connexe Ú.

Exercice n°6 : Déterminer la fonction ordinale du graphe Û ( , ) défini par :


= { , , , !, ", 4, 3}
= {( , ), ( , ), ( , 4 ), ( , ), ( , 4 ), ( , " ), ( ! , 3 ), ( " , ! ), ( 4 , ! ), ( 4 , " )}

40
Théorie des Graphes - THG Licence M.I

CHAPITRE 4 : PROBLEMES DU PLUS COURT CHEMIN


Plan
1. Définition
2. Conditions d’existence
3. Algorithmes de recherche du plus court chemin

Le problème du plus court chemin est parmi les problèmes les plus étudiés de la théorie des graphes ;
on le retrouve dans beaucoup de domaines :
- Economie : problèmes d’investissement
- Gestion : gestion des projets
- Optimisation des réseaux (réseaux routiers, de télécommunications, de distribution)
- Réseaux informatiques et protocoles de routage (protocole OSPF : Open Shortest Path First)

( , ) on associe à chaque arc ∈ , un nombre ℓ( ) appelé


1. DEFINITION
- Etant donné un graphe
"longueur de l’arc".

- Si l’arc ∉ alors ℓ( ) = ∞

r( , ) de à dont la longueur totale ℓ(r) soit minimale, avec


- Le plus court chemin entre 2 sommets et consiste à trouver un chemin élémentaire

ℓ(r) = Ê ℓ( )
Ë∈Ý(01 ,0 )

La longueur ℓ peut désigner aussi un cout de transport, un cout de construction, une durée de
temps,… Par exemple, chercher sur une carte routière, la route la plus courte entre une ville N
-

et une ville . : les villes sont les sommets et les routes sont les arcs (dans les deux sens). Dans
ce cas ℓ(r) signifie la distance entre les 2 villes N et ..

2. CONDITIONS D’EXISTENCE
Dans tout ce qui suit, on admettra que tout graphe ne contient pas de circuit de longueur négative.

ℓ(z) : longueur du circuit


ℓ(r) : longueur du chemin élémentaire de
Soit
à

Soit ℓv (r) = ℓ(r) + ℓ(z)

• Si ℓ(z) < 0,
infinité de fois le circuit z.
alors il n’existe pas de plus court chemin de vers ; on peut emprunter une

• Si ℓ(z) ≥ 0, alors on a ℓ′(r) ≥ ℓ(r), donc pour la recherche des plus courts chemins, on
considérera uniquement les chemins élémentaires.

41
Théorie des Graphes - THG Licence M.I
Le nombre de chemins élémentaires (sur un graphe) est fini, par conséquent, il existera toujours un
plus court chemin de vers (pour peu qu’il existe au moins un chemin entre les 2 sommets !).

3. ALGORITHMES DE RECHERCHE DU PLUS COURT CHEMIN

• ℓ( ) ≥ 0
Les algorithmes de résolution sont différents suivant les propriétés du graphe :

• ℓ( ) = 1

et ℓ( ) quelconques
• sans circuit

• …

(ß(à) ≥ á)
On voudrait chercher le plus court chemin entre un sommet de départ [ = [ et un sommet d’arrivée
3.1. Algorithme de Dantzig

\ = [ . L’algorithme de Dantzig consiste à déterminer pour tout sommet , un nombre €( ) qui


donnera la longueur du plus court chemin entre [ et .

On opère par étapes : (N désigne les ³ sommets affectés de €).

Poser €([ ) = 0 et N = {[ }
Etape d’initialisation :

Supposons qu’à l’étape k, on a déjà déterminé € pour l’ensemble N‰ = {[ , [ , … , [‰ }


Etape d’itération :

- On associe à chaque sommet [ ∈ N‰ un sommet \ ∉N‰ tel que ([ , \ ) ∈ et tel que la


longueur ℓU[ , \ V soit minimale.
- Puis chercher le sommet [c ∈ N‰ tel que €U[c V + ℓU[c , \c V = min €U[ V + ℓU[ , \ V
- Poser alors N‰) = N‰ ∪ {\c } et €U\c V = €U[c V + ℓU[c , \c V et passer à l’étape Ÿ+1.

S’arrêter une fois que tous les sommets sont affectés d’un nombre €.
Arrêt :

b b
Exemple 1 :
_ b
â â
_ _ _ _
` á ä
Æ Æ ` `
`_ 4
`_ 4

ã b ` ã b `


"

"
! ã ! aa

1ère Etape : N = { Æ} €( Æ ) = 0

€( Æ ) + ℓ( , )=0+3 = 3
2ème Etape :
Æ
€U[c V + ℓU[c , \c V = min w€( Æ ) + ℓ( Æ, ) = 0 + 1 = 1© = €( Æ ) + ℓ( Æ , )=1
€( Æ ) + ℓ( Æ, ") = 0 + 7 = 7

Donc : \c = N = { Æ} ∪ { } = { Æ , } Et €( ) = €( Æ ) + ℓ( Æ , )=1

42
Théorie des Graphes - THG Licence M.I

€( Æ ) + ℓ( , )= 0+3 = 3
3ème Etape :
Æ
€U[c V + ℓU[c , \c V = min w€( Æ ) + ℓ( Æ , " ) = 0 + 7 = 7© = €( Æ ) + ℓ( Æ , )=3
€( ) + ℓ( , )= 1+3 = 4

Donc : \c = N = N ∪{ }= { Æ , , } Et €( ) = €( Æ ) + ℓ( Æ , )=3

€( Æ ) + ℓ( , ") = 0+7 = 7
4ème Etape :
Æ
€U[c V + ℓU[c , \c V = min w€( ) + ℓ( , ) = 1 + 3 = 4© = €( ) + ℓ( , )=4
€( ) + ℓ( , )= 3+4 = 7

Donc : \c = N! = N ∪ { } = { Æ , , , } Et €( ) = €( ) + ℓ( , )=4

€( Æ ) + ℓ( , ") = 0+7 = 7
5ème Etape :
€U[c V + ℓU[c , \c V = min 9 Æ
® = €( Æ ) + ℓ( , ") =7
€( ) + ℓ( , )
" = 4+5 = 9
Æ

Donc : \c = " N" = N! ∪ { " } = { Æ , , , , "} Et €( " ) = €( Æ ) + ℓ( Æ , ") =7

€( ) + ℓ( , 4 ) = 4 + 5 = 9
6ème Etape :
€U[c V + ℓU[c , \c V = min 9 ® = €( ) + ℓ( , 4) =9
€( " ) + ℓ( " , ! ) = 7 + 15 = 22

Donc : \c = 4 N4 = N" ∪ { 4 } = { Æ , , , , " , 4} Et €( 4 ) = €( ) + ℓ( , 4) =9

€U[c V + ℓU[c , \c V = €( " ) + ℓ( , !) = 7 + 15 = 22


7ème Etape :
"

Donc : \c = ! N3 = N4 ∪ { ! } = { Æ , , , , " , 4 , !} Et €( ! ) = €( " ) + ℓ( " , !) = 22

3.2. Algorithme de Moore-Dijkstra (ß(à) ≥ á)


Cet algorithme permet de déterminer le plus court chemin d’un sommet à tous les autres sommets.

å
Soient :

$
: une fonction dite potentiel définie sur les sommets du graphe.
: sommet source ou de départ.

¯
: ensemble des sommets du graphe.
: ensemble des sommets marqués.

a. Poser å Æ ($) = 0 et å Æ ( ) = +∞ ∀ ≠ $ ∈
Marquer le sommet $ ; ¯ = {$} (puisque le meilleur chemin de $ vers $ est 0 !)
Poser Ÿ = 1
(L’ensemble des å ( ) constituent la valeur des plus court chemins de $ à ∀ ∈
l’itération u)
à

b. Si tous les sommets sont marqués (¯ = ) : Arrêter.


Sinon : pour tout sommet non marqué (c'est-à-dire ∉¯), on calcule :

æŒ (^) = çè é°æŒ*` (^Œ*` ) + ß(^Œ*` , ^) , æŒ*` (^)²

c. Sélectionner le sommet ‰ pour lequel å ‰ ( ) est minimum :

43
Théorie des Graphes - THG Licence M.I
Marquer ce sommet : ¯ = ¯ ∪ { ‰}
Incrémenter Ÿ : Ÿ = Ÿ + 1
Aller à b.

Exemple 2 :
1 î 1
. . î
2 | b 2 |
N 1 N 1
4 4
4 1 4
á 1
2 § 2 §
Æ 2 1 Æ 2 b 1
2 a 2
1 1 1
1 1 1
1 1
{ { â
2 } 2 }
_

Initialisation : å Æ ( Æ ) = 0 et å Æ ( ) = +∞ ∀ ≠ Æ ∈ ¯ = { Æ}

ê → ^á

æŒ (^) = çè é°æŒ*` (^Œ*` ) + ß(^Œ*` , ^) , æŒ*` (^)²

• Œ=`
å (N) = mi n å Æ ( Æ ) + ℓ( Æ , N) , å Æ (N) = mi n 0 + 4 , ∞ = 4
å (§) = mi n å Æ ( Æ ) + ℓ( Æ , §) , å Æ (§) = mi n 0 + 2 , ∞ = 2
å (.) = å (|) = å (}) = å ({) = å ( ) = ∞

Donc min{å ( ‰ )} = å (§) = 2


^` → ë å (§) = 2
ì = ì ∪ {ë} = {^á , ë}

• Œ=a
å ({) = mi n å (§) + ℓ(§ , {) , å ({) = mi n 2 + 1 , ∞ = 3
å ( ) = mi n å (§) + ℓ(§ , ) , å ( ) = mi n 2 + 2 , ∞ = 4
å (N) = 4 , å (.) = ∞ , å (|) = ∞ , å (}) = ∞

Donc min{å ( ‰ )} = å ({) = 3


^a → í å ({) = 3
ì = ì ∪ {í} = {^á , ë , í}

• Œ=_
å (}) = mi n å ({) + ℓ({ , }) , å (}) = mi n 3 + 2 , ∞ = 5
å (N) = 4 , å (.) = ∞ , å (|) = ∞ , å ( ) = 4

Il y a 2 minimums, on prendra un seul, min{å ( ‰ )} = å (N) = 4


^_ → K å (N) = 4
ì = ì ∪ {K} = {^á , ë , í , K}

44
Théorie des Graphes - THG Licence M.I
• Œ=b
å ! (.) = mi n å (N) + ℓ(N , .) , å (.) = mi n 4 + 2 , ∞ = 6
å ! (|) = ∞ , å ! (}) = 5 , å ! ( ) = 4

Donc min{å ! ( ‰ )} = å !( ) = 4

^b → œ å !( ) = 4
ì = ì ∪ {œ} = {^á , ë , í , K , œ}

• Œ=â
å " (}) = mi n å ! ( ) + ℓ( , }) , å ! (}) = mi n 4 + 2 , 5 = 5
å " (.) = 6 , å " (|) = ∞

Donc min{å " ( ‰ )} = å " (}) = 5

^â → ï å " (}) = 5
ì = ì ∪ {ï} = {^á , ë , í , K , œ , ï}

• Œ=î
å 4 (|) = mi n å " (}) + ℓ(} , |) , å " (|) = mi n 5 + 1 , ∞ = 6
å 4 (.) = 6

On choisit min{å 4 ( ‰ )} = å 4 (.) = 6

^î → ð å 4 (.) = 6
ì = ì ∪ {ð} = {^á , ë , í , K , œ , ï , ð}

• Œ=ã
å 3 (|) = mi n å 4 (.) + ℓ(. , |) , å 4 (|) = mi n 6 + 1 , 6 = 6

Donc min{å 3 ( ‰ )} = å 3 (|) = 6

^ã → ñ å 3 (|) = 6
ì = ì ∪ {ñ} = {^á , ë , í , K , œ , ï , ð , ñ}

3.3. Algorithme de Ford (ß(à) òà•’Ô“Õòà•)


a. Numéroter les sommets du graphe dans un ordre quelconque ; marquer le sommet de départ
Æ et celui de l’arrivée * , étant le nombre de sommets du graphe.
b. Poser å( Æ ) = 0 å( ) = +∞ ∀ ≠ Æ ∈
c. Pour tout sommet tel que åU V − å( ) > pU , V, remplacer åU V par å( ) + ℓU , V
d. Recommencer l’étape 'c' jusqu’à ce que leså( ) deviennent stables (ou fixes) ; c'est-à-dire
qu’ils ne puissent plus être modifiés.

En résumé, on pose u = 0 et on varie ³ de 1 à − 1 avec un pas de 1 ; ensuite passer à u = 1 et on fait


varier ³ de 0 à − 1 toujours avec le même pas, et ainsi de suite jusqu’à u = − 1, puis recommencer à
nouveau avec u = 0 et ³ de 1 à − 1… etc, jusqu’à ce que les å( ) deviennent stables.

45
Théorie des Graphes - THG Licence M.I
Exemple 3 : åU V − å( ) > pU , V, åU V = å( ) + ℓU , V

a _ a â
ã ã
_ _
î î á î î `á
Æ Æ
" "
a a
ô a ô a

` ! ã ` !
ô

Initialisation : å( Æ ) = 0 å( ) = +∞ ∀ ≠ Æ ∈

Š=á
³ =0 å( Æ) =0
³ =1 å( ) − å( Æ) > p( Æ, ):∞−0> 3 å( )= 0+3 =3
³ =2 å( ) − å( Æ) > p( Æ, ):∞−0 >8 å( )= 0+8= 8

³ =3 å( ) − å( Æ) > p( Æ, ):∞−0 >6 å( )= 0+6= 6


³ =4 å( ! ) − å( Æ) > p( Æ, !) : ∞ − 0 > ∞ å( !) = ∞

³ =5 å( " ) − å( Æ) > p( Æ, ") : ∞ − 0 > ∞ å( ") = ∞



Š=`
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=8
³ =3 å( ) − å( ) > p( , ):6−3> 2 å( ) = 3 + 2 = 5
³ =4 å( ! ) − å( ) > p( , !) : ∞ − 3 > 6 å( ! ) = 3 + 6 = 9

³ =5 å( ") = ∞

Š=a
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=8
³ =3 å( )=5
³ =4 å( ! ) − å( ) > p( , !) :9−8> 1? ⇒ å( ! ) ]ℎ[ m [$ n $ à9
³ =5 å( ") = ∞

Š=_
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( ) − å( ) > p( , ):8−5> 2 å( ) = 5 + 2 = 7
³ =3 å( )=5

³ =4 å( !) = 9
³ =5 å( " ) − å( ) > p( , ") :∞−5 >7 ⇒ å( " ) = 5 + 7 = 12

Š=b
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( !) = 9
³ =5 å( " ) − å( ! ) > p( ! , ") : 12 − 9 > 2 ⇒ å( " ) = 9 + 2 = 11

46
Théorie des Graphes - THG Licence M.I
Š=â
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( !) = 9
³ =5 å( " ) = 11

Š=á
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( !) = 9
³ =5 å( " ) = 11

Š=`
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( !) = 9
³ =5 å( " ) = 11

Š=a
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( ! ) − å( ) > p( , !) :9−7 >1 å( ! ) = 7 + 1 = 8
³ =5 å( " ) = 11

Š=_
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( !) = 8
³ =5 å( " ) = 11

Š=b
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( !) = 8
³ =5 å( " ) − å( ! ) > p( ! , ") : 11 − 8 > 2 ⇒ å( " ) = 8 + 2 = 10

Š=â
³ =0 å( Æ) =0
³ =1 å( )=3
³ =2 å( )=7
³ =3 å( )=5
³ =4 å( !) = 8
³ =5 å( " ) = 10

Puis on itère encore une fois u de 1 à 5, et on remarque que tous les å( ) restent stables (ou fixes) ;
l’algorithme s’arrête.

47
Théorie des Graphes - THG Licence M.I
Remarque :
Les performances de l’algorithme dépendent de la numérotation des sommets ; ainsi si on échange les
indices des sommets et , l’optimum sera obtenu sans retour arrière !

3.4. Graphe sans circuit et de longueur quelconque


Rechercher le chemin d’un sommet particulier à tous les autres sommets. Ce sommet particulier doit
être le seul qui n’a pas de prédécesseurs.

Supposons que le sommet 1 soit le seul sommet tel que ' * (1) = ∅

a. Poser å(1) = 0 et É = {1}


Algorithme :

b. Chercher un sommet ³ ∈ É̅ (É̅ = − É) tel que ' * (³)⊂É

å(³) = min {å(u) + ℓ(u , ³)}


c. Poser :
ö÷∈õ ( )

É = É ∪ {³}

Si |É| = | | : Arrêt
Sinon : Aller à b

Exemple 4 :
2 4 4
4
7

1 5 2
7
-3
5

1 2 10

3 7 3 5
6
Solution : å(1) = 0, å(2) = 6, å(3) = 1, å(4) = 8, å(5) = 3, å(6) = 3, å(7) = 12

Remarque :
Il existe d’autres algorithmes pour le calcul du plus court chemin entre deux sommets quelconques
d’un graphe dont l’algorithme de Bellman basé sur la programmation dynamique, l’algorithme de
De Moucron (méthode matricielle)…

48
Théorie des Graphes - THG Licence M.I

EXERCICES
CHAPITRE 4 –PROBLEMES DU PLUS COURT CHEMIN

Exercice n°1 : Trouver les plus courts chemins du sommet « 0 » à tous les autres sommets du graphe
ci-dessous en appliquant :
- Algorithme de Dantzig
- Algorithme de Dijkstra

1
1 5
2 2
3 2
4 2 12
0 6
2 5
5 4 1
3 2 7
4 2

Exercice n°2 : Appliquer l’algorithme de Ford au graphe ci-dessous, pour trouver les plus courts
chemins du sommet « Æ » à tous les autres sommets :

3 7
6
Æ
"
2 2
8
2
1 !

49
Théorie des Graphes - THG Licence M.I

CHAPITRE 5 : LE PROBLEME D’ORDONNANCEMENT


Plan
1. Notions préliminaires
2. Les différents types de contraintes
3. Les méthodes de résolution

1. NOTIONS PRELIMINAIRES
Les réalisations importantes telles que la construction de barrages, d’immeubles, … nécessitent une
surveillance permanente et une parfaite considération des différents travaux à effectuer pour éviter
des pertes de temps (souvent couteuses) et respecter les délais. Les problèmes liés à cette
coordination sont appelés problèmes d’ordonnancement.

On dit qu’on a affaire à un problème d’ordonnancement chaque fois que le processus de réalisation
d’un objectif (projet) se décompose en plusieurs tâches (travaux élémentaires) soumises à des
contraintes et dont l’exécution nécessite au préalable l’établissement d’un certain ordre entre ces
multiples tâches.

La représentation d’un problème d’ordonnancement par un graphe (avec l’application de méthodes de


détermination des chemins optimaux) permet d’identifier les tâches prioritaires et de détecter les
retards et/ou les dépassements des moyens à temps pour prendre des mesures correctives
nécessaires.

2. LES DIFFERENTS TYPES DE CONTRAINTES

2.1. Les contraintes de type potentiel


• Les contraintes de localisation temporelle : La tâche u ne doit pas être commencée avant telle date
ou au contraire, doit être achevée à telle date.
• Les contraintes de succession : La tâche ³ ne peut pas être commencée que lorsque la tâche u est
achevée.

Les tâches u et ³ ne peuvent pas être réalisées en même temps (par exemple c’est le même ouvrier qui
2.2. Les contraintes de type subjonctif

les réalisent ou c’est la même machine).

2.3. Les contraintes de type cumulatif


Les moyens (humains, financiers, matériels,…) nécessaires à l’exécution d’un certain nombre de tâches

les travaux ne doit pas dépasser une somme $ à l’instant ).


sont à chaque instant limités (par exemple le nombre de camions utilisés est 2, la somme dépensée sur

Dans tout ce qui suit, on tiendra compte seulement des contraintes de succession.

3. LES METHODES DE RESOLUTION


Jusqu’à 1958 il y avait uniquement le "planning à barres" dit diagramme de Gantt et les algorithmes de
Johnson applicable dans des cas bien particuliers.

Exemple 1 : Diagramme de Gantt

50
Théorie des Graphes - THG Licence M.I
0 1 2 3 4 5 6 7 8 Temps
Tâche 1

Tâche 2

Tâche 3

Les segments sont proportionnels à la durée de leur tâche et parallèle à l’axe correspondant au temps.

Après 1958, sont apparues 2 nouvelles méthodes indépendantes fondées sur la théorie des graphes : la
méthode américaine CPM (Critical Path Method) avec sa variante PERT (Program Evaluation and
Review Technique ou Research Task) et la méthode française dite « Méthode des potentiels ».

Ces 2 méthodes permettent :


- d’établir un ordonnancement des tâches composant le projet.
- de déterminer le temps optimal total nécessaire à la réalisation du projet.
- de déterminer le chemin critique et ses tâches critiques (i.e. les tâches dont tout retard
d’exécution sur l’une d’elles, se répercutera sur la durée minimale de la réalisation du projet).

3.1. Le graphe potentiel-tâche

A partir d’un projet donné, on construit le graphe suivant : à chaque tâche u (u allant de 1 à Í) on lui
Définition

associe un sommet u du graphe. On définira un arc de u vers ³ de longueur H si la tâche u doit précéder
la tâche ³ (H est la durée minimale devant s’écouler entre le début de la tâche u et celui de la tâche ³).

Le graphe ainsi obtenu doit être sans circuit, on lui ajoute alors 2 sommets … et ø correspondant à 2
tâches fictives : … est la tâche de début des travaux de durée nulle (Hù = 0), elle doit être antérieure à

ø la tâche de fin des travaux, elle doit être postérieure à toutes les autres tâches (pour cela, il suffit de
toutes les autres tâches (pour cela, il suffit de la relier aux sommets sans prédécesseurs du graphe) et

la relier à tous les sommets sans successeurs du graphe).

Exemple 2 :
Un atelier fabrique 2 pièces P1 et P2 devant être montées sur un appareil. Ces deux pièces sont
obtenues à partir de 2 éléments M1 et M2 qu’il faut commander au magasin central. Les pièces P1 et
P2 nécessitent toutes les deux un tournage et un filetage ; le tournage est effectué sur l’élément M1 et
le filetage sur l’élément M2. La pièce P2 doit être en plus polie après son filetage et son tournage. Les
pièces P1 et P2 entièrement usinées sont ensuite montées sur l’appareil. Sachant que le travail débute
à 8h00, on désire connaître à quel moment l’appareil sera disponible.

Code tâche Désignation de la tâche Durée en minutes Tâches antérieures




A Approvisionnement de M1 20
B Approvisionnement de M2 10
C Tournage de M1 pour P1 20 A
D Filetage de M2 pour P1 10 B
E Tournage de M1 pour P2 20 A
F Filetage de M2 pour P2 10 B
G Polissage de P2 20 E,F
H Montage de P1 10 C,D
I Montage de P2 10 G

51
Théorie des Graphes - THG Licence M.I

… sera relié à N et . (car ' * (N) = ' * (.) = ∅), et ø succédera à « et £ car (' ) («) = ' ) (£) = ∅).

On peut représenter le graphe associé par niveau après avoir calculé sa fonction ordinale (ou rang).

ÍÆ = {…} Í = {N , .} Í = {| , { , } , §} Í = {« , } Í! = {£} Í" = {ø}


Les niveaux :

20 | 20
N «
10
{ ø
0 20 10


} 20
£
10
10

.
0
20

§
10
10

Niv. 0 Niv. 1 Niv. 2 Niv. 3 Niv. 4 Niv. 5

Le travail commence à 8h00, on cherche l’heure de fin des travaux.

Méthode de calcul des paramètres

La date au plus tôt : la date au plus tôt de la tâche u est :


•Š = çúû (•‹ + ü‹ )

ö` ‹∈• (Š)
C'est-à-dire est égale à la longueur du plus long chemin de … à u : ℓ(… , u)

La durée minimale du projet ý est donc égale à la longueur du plus long chemin de … à ø.

ý est la durée minimale du projet, la date au plus tard Ü de début de


la tâche u est :
• La date au plus tard : si

þŠ = çèé þ‹ − üŠ ‘ •Ô þ = •
‹∈•(Š)
Où Ü = ý − ℓ(u , ø) avec ℓ(u , ø) est la longueur du plus long chemin de u à ø.

• La marge : La marge u de la tâche u est la différence entre la date au plus tôt et la date au plus

Š = þŠ − •Š
tard :

Les tâches dont leur marge est nulle sont appelées tâches critiques ; elles constituent le chemin
critique. Si un quelconque retard est pris sur une de ces tâches, celui-ci sera répercuté sur la durée min
du projet.

Entre deux tâches u et ³ telle que ³ ∈ ' * (u), on doit avoir Ü − ≥H

La date associée à chaque tâche peut être considérée comme un potentiel d’où l’appellation du
graphe « potentiel-tâches ».

52
Théorie des Graphes - THG Licence M.I
Le graphe étant sans circuit, l’algorithme de recherche du plus long chemin sera celui de la recherche
du chemin minimal, en remplaçant le min par le max.

Algorithme de calcul des dates d’un problème d’ordonnancement par le graphe potentiel-tâches

1. Poser H(…) = 0
• Algorithme de calcul des dates au plus tôt

2. Prendre les sommets u par ordre croissant et calculer :


•Š = çúû (•‹ + ü‹ )
ö`‹∈• (Š)

ù =0
Exemple 2 (Suite) :

¸ = max( ù + Hù ) = 0 + 0 = 0
2 = max( ù + Hù ) = 0 + 0 = 0
Ù = max( ¸ + H¸ ) = 0 + 20 = 20
Ú = max( 2 + H2 ) = 0 + 10 = 10
Û = max( ¸ + H¸ ) = 0 + 20 = 20
= max( 2 + H2 ) = 0 + 10 = 10
( = max( Û + HÛ , + H ) = max{20 + 20 , 10 + 10} = 40
= max( Ù + HÙ , Ú + HÚ ) = max{20 + 20 , 10 + 10} = 40
= max( ( + H( ) = max{40 + 20} = 60
ý = max( + H , + H ) = max{40 + 10 , 60 + 10} = 70

• = ãá

• Algorithme de calcul des dates au plus tard


ý étant la durée min du projet.
1. Poser Üý = ý
2. Prendre les sommets u par ordre décroissant et calculer :
þŠ = çèé þ‹ − üŠ
‹∈•(Š)

Üý = ý = 70
Exemple 2 (Suite) :

Ü = min{Üý } − H = 70 − 10 = 60
Ü = min{Üý } − H = 70 − 10 = 60
Ü( = min{Ü } − H( = 60 − 20 = 40
Ü = min{Ü( } − H = 40 − 10 = 30
ÜÚ = min{Ü } − HÚ = 60 − 10 = 50
ÜÛ = min{Ü( } − HÛ = 40 − 20 = 20
ÜÙ = min{Ü } − HÙ = 60 − 20 = 40
Ü2 = min{ÜÚ , Ü } − H2 = 30 − 10 = 20
ܸ = min{ÜÙ , ÜÛ } − H¸ = 20 − 20 = 0

= þŠ − •Š
• Calcul des marges
Š

&¸ = ܸ − ¸ = 0 − 0 = 0
Exemple 2 (Suite) :

&2 = Ü2 − 2 = 20 − 0 = 20
&Ù = ÜÙ − Ù = 40 − 20 = 20
&Ú = ÜÚ − Ú = 50 − 10 = 40
&Û = ÜÛ − Û = 20 − 20 = 0
& = Ü − = 30 − 10 = 20

53
Théorie des Graphes - THG Licence M.I
&( = Ü( − ( = 40 − 40 = 0
& = Ü − = 60 − 40 = 20
& = Ü − = 60 − 60 = 0

Les tâches critiques sont donc : K , í , œ ••


Le chemin critique est : ( , K , í , œ , , )
L’appareil sera disponible à 8h00 + 70’ = 9h10’

|
(20,40)

( ,Ü )
(0,0) 20 20
N «
(40,60)

10
{
(20,20)
ø
(70,70)
0 20 10


(0,0)

} 20
£
10
10

.
0 (10,50)
20 (60,60)

§
(0,20) 10 (40,40)
10
(10,30)
Plus tôt Plus tard

3.2. Le graphe potentiel-étapes (PERT)


Dans cette méthode, les tâches représentent les arcs du graphe et les étapes (ou événements) les
sommets du graphe (d’où l’appellation du graphe "potentiel-étapes") :

- Une étape est un début ou une fin de tâche.


- La longueur de chaque arc représente la durée de la tâche correspondante.
- On définit une étape de début du projet, une étape de fin de projet, et un certain nombre

Si une tâche ³ doit succéder à une tâche u, l’extrémité initiale de l’arc


d’étapes intermédiaires.

tâche ³) doit être l’extrémité finale de l’arc (correspondant à la tâche u).


- (correspondant à la

- Le graphe ainsi obtenu doit être sans circuit.

La construction d’un tel graphe est un peu complexe car elle nécessite la définition des étapes.
Généralement les étapes peuvent être définies à partir de la colonne du tableau (tâches antérieures ou
précédentes).

Les étapes correspondantes sont : yu N, yu ., yu { §, yu | }, yu , yu « £.


Exemple 3 : (Même énoncé que l’exemple 2)

[
\ fin d’approvisionnement de M1 (yu N)
: début des travaux (ou fin de passation des commandes de M1, M2)

] fin d’approvisionnement de M2 (yu .)


:

H fin du tournage de M1 et filetage de M2 pour P2 (yu { §)


:

fin du tournage de M1 et filetage de M2 pour P1 (yu | })


:

y
:

m fin de montage de P1 et P2 (yu H « £)


: fin de polissage pour P2 (yu )
:

54
Théorie des Graphes - THG Licence M.I

Nous obtenons le graphe potentiel-étapes suivant :

H
\
20

y
E 20
G
20 10
10
F I
m
A
[
20
B C H
10 10

] D
10

Date au plus tôt :


- La date au plus tôt ‰ de réalisation de l’étape ‰ est égale à la longueur du plus long chemin
entre l’étape début et l’étape ‰
- La date au plus tôt de début de chaque tâche issue de l’étape ‰ est alors ‰
- La durée minimale du projet est donc égale à la longueur du plus long chemin entre l’étape
début et l’étape fin du projet ( étant l’indice de l’étape fin du projet).

Date au plus tard :



܉ = min Ü − H‰ [z ] Ü =
- Si est la durée minimale du projet, la date au plus tard de réalisation de l’étape est :

܉ = − ℓ(Ÿ , )
Ou bien

Où ℓ(Ÿ , ) est la longueur du plus long chemin de Ÿ à

- La date au plus tard de début de chaque tâche issue de l’étape ‰ est alors ܉ .

- La marge & de l’étape ³ (la tâche ³) est : & = Ü −


Marge :

- Les étapes dont la marge est nulle sont les étapes critiques qui constituent le chemin critique
de l’étape début à l’étape fin du projet.

Exemple 3 (suite) :

¹ =0
= 20
Calcul des dates au plus tôt :
f
º = 10
= 40
= 40
- = 60
= 70

Ü = = 70
Ü- = 70 − 10 = 60
Calcul des dates au plus tard :

Ü = 70 − 10 = 60

55
Théorie des Graphes - THG Licence M.I
Ü = 70 − 30 = 40
ܺ = 70 − 40 = 30
Üf = 70 − 50 = 20
ܹ = 70 − 70 = 0

&¹ = 0 − 0 = 0
&f = Üf − f = 20 − 20 = 0
Calcul des marges :

&º = 30 − 10 = 20
& = 40 − 40 = 0
& = 60 − 40 = 20
&- = 60 − 60 = 0
& = 70 − 70 = 0

Donc les tâches critiques sont {(‘, ) , ( , ü) , (ü, ) , ( , )}

Le chemin critique est (‘ , , ü , , ) de valeur 70 minutes.

L’appareil sera disponible à 8h00 + 70’ = 9h10’

(40,40)
H
(20,20)
\
20
(60,60)
y
E 20
G
20 10
10 (70,70)
(0,0) F I
m
A
[
20
B C H
10 10

] D
10
(10,30)
(40,60)
Complément :
Supposons qu’au moment de commencer le filetage, la machine tombe en panne et ne peut être
réparée qu’au bout de :
a. 20 minutes
b. 30 minutes.
A quel moment l’appareil sera disponible dans ce cas ?

56
Théorie des Graphes - THG Licence M.I

EXERCICES
CHAPITRE 5 –LE PROBLEME D’ORDONNANCEMENT

Exercice n°1 : La construction d’une villa demande la réalisation d’un certain nombre de tâches. Le
tableau ci-après donne ses différentes tâches avec leurs relations antérieures :

Code de Durée en Tâches


Désignation
la tâche semaines antérieures
A Travaux de maçonnerie 7 -
B Charpente de la toiture 3 A
C Toiture 1 B
D Installation sanitaire et électrique 8 A
E Façade 2 D,C
F Fenêtres 1 D,C
G Aménagement du jardin 1 D,C
H Travaux de plafonnage 3 F
J Mise en peinture 2 H
K Emménagement 1 E,G,J

Déterminer les tâches critiques et le chemin critique avec la méthode potentiel-tâches.

Exercice n°2 : Mêmes questions avec la méthode potentiel-étapes.

57
Théorie des Graphes - THG Licence M.I

CHAPITRE 6 : PROBLEMES DE FLOTS


Plan
1. Définition et propriétés du flot
2. Le problème du flot maximum dans un réseau de transport
3. Notions de coupe et graphe d’écart
4. Algorithme de recherche d’un flot maximum

1. DEFINITION ET PROPRIETES DU FLOT

Soit ( , ) un graphe connexe dont les arcs sont numérotés = 1, 2, … , &. On appelle flot dans
1.1. Définition

un vecteur à & composantes ( , ,…, ) ∈ £¡ , tel que en tout sommet ∈ la loi de


Kirchhoff soit vérifiée i.e. :
Ê Ë = Ê Ë (1)
Ë∈ (0) Ë∈ ö (0)

O ) ( ) : ensemble des arcs incidents extérieurement à .


O * ( ) : ensemble des arcs incidents intérieurement à .

Pour tout arc ∈ , la composante Ë du vecteur est appelée "quantité de flot" ou "flux" sur l’arc .

La relation (1) exprime tout simplement que la somme des flux entrants en un sommet est égale à la
somme des flux sortants de ce sommet (loi de conservation aux nœuds).

Cette propriété est connue en électricité sous le nom de "loi de Kirchhoff".

=5
1.2. Exemple
Æ

4 2 3
1 1 4

1 3 2

Soit ( , ) un graphe dont les arcs sont arbitrairement colorés, soit en noir, soit en rouge, soit en vert
1.3. Arcs colorés

(certains arcs peuvent être incolores). On suppose qu’il existe au moins, l’arc Æ de couleur noir, une et
une seulement des deux propositions suivantes est vérifiée :
a. Il passe par l’arc Æ un cycle élémentaire noir et/ou rouge et/ou vert (mais ne contenant pas
d’arcs incolores), avec tous les arcs noirs orientés dans le même sens (sens de Æ ) et tous les
arcs verts orientés dans le sens contraire de Æ .
b. Il passe par l’arc Æ un cocycle élémentaire non rouge (mais pouvant contenir des arcs
incolores), avec tous les arcs noirs orientés dans le même sens (sens de Æ ) et les arcs verts
orientés dans le sens contraire de Æ .

58
Théorie des Graphes - THG Licence M.I

N N̅ = −N
R N
N
N
V
V
R
V
N incolore
N
V incolore
R : Rouge
Æ
N
N : Noir
V : Vert
Æ

a. Cycle : b. Cocycle O(N) :


- Passe par Æ - Contient Æ
- Tous les arcs noirs dans le même sens - Tous les arcs noirs dans le même sens (sens Æ)
- Tous les arcs verts dans le sens contraire - Tous les arcs verts dans le sens contraire de Æ
- Les arcs rouges dans n’importe quel sens - Pas d’arcs rouges
- Pas d’arcs incolores. - Les arcs incolores dans n’importe quel sens.

2. LE PROBLEME DU FLOT MAXIMUM DANS UN RESEAU DE TRANSPORT

On appelle "réseau de transport" un graphe ( , ) sans boucle où chaque arc ∈ est muni d’un
2.1. Réseau de transport

nombre ]Ë ≥ 0 appelé "capacité de l’arc " et dans lequel :


a. Il existe un sommet $ et un seul tel que ' * ($) = ∅ ; ce sommet est appelé "l’entrée du réseau"

b. Il existe un sommet et un seul tel que ' ) ( ) = ∅ ; ce sommet est appelé "la sortie du réseau"
(ou source).

Dans tout ce qui suit les capacités ]Ë sont supposées être des nombre entiers ≥ 0.
(ou puits).

( , ) et à valeurs entières, est appelé « flot dans un


2.2. Flot dans un réseau de transport
On dit qu’une fonction Ë définie sur de

a. Le flux Ë ≥ 0 ∀ ∈
réseau de transport » si l’on a :

b. La loi de Kirchhoff est vérifiée :


Ê Ë = Ê Ë ([z ] ≠$ ≠ )
Ë∈ (0) Ë∈ ö (0)

c. Ë ≤ ]Ë ∀ ∈

Le flot dans ce cas peut être assimilé à une quantité de matière qui passe dans l’arc et qui ne doit
jamais dépasser la capacité de cet arc.

Autrement dit, le vecteur = ( , ,…, ) est un flot de $ à dans G ⇔ les lois de conservation
aux nœuds sont vérifiées au niveau de tous les sommets de (i.e. propriété b) sauf aux sommets $ et
où on a :
Ê Ë = Ê Ë = Æ
Ë∈ (d) Ë∈ ö( )

Le nombre Æ représente la valeur du flot (ou quantité de matière) qui sort de $ et arrive en .

59
Théorie des Graphes - THG Licence M.I

Etant donné deux sommets particuliers $ ∈ et ∈ (i.e. entrée et sortie) (avec $ ≠ ) de ( , ), on


considère le graphe Æ ( , Æ ) déduit de en ajoutant un arc ( , $).

L’arc ( , $) est appelé l’arc de retour de flot, et on convient de lui affecter le n°0 ; ainsi les arcs de Æ

sont numérotés de 0 , 1 , … , &

Ainsi, si = ( , ,…, ) est un flot de $ à dans Æ, ’=( Æ , ,…, ) est


un flot de Æ .
et de valeur alors

Le problème de flot maximum de $ à dans muni des capacités ]Ë ( ∈ ) revient dès lors à
déterminer un flot ’ = ( Æ , ,…, ) dans Æ vérifiant les contraintes de capacités 0 ≤ Ë ≤ ]Ë
( = 1, … , &) et tel que la composante Æ (valeur du flot) sur l’arc de retour soit maximale.

3. NOTION DE COUPE ET GRAPHE D’ECART

On appelle coupe séparant $ et , un ensemble d’arcs de la forme O ) (N) (ou O * (N)) où N ⊂


3.1. Définition d’une coupe

sous ensemble de sommets tels que $ ∈ N et ∉ N (ou tel que $∉N et ∈ N ).


est un

‘ (3)
(x) : Flot
: Capacité ]
(3)
(2)

• Ô •
(1)
N = {$ , ] , H)
(6) (4)

(1) O ) (N) = {($, [), (], [), (], ), (H, )}

) (K)
ü
(3) (4)
est une coupe

(¸) ]Ë
3.2. Capacité d’une coupe
La capacité d’une coupe est la somme des capacités des arcs qui la constituent soit ∑Ë∈

La capacité de la coupe précédente est : |º = 3 + 4 + 4 + 6 = 17

• La valeur maximale d’un flot de $ à compatible avec les capacités ]Ë n’excède jamais la capacité
3.3. Propriétés

d’une coupe séparant $ à .

Dans l’exemple précédent, nous avons :


Æ = Ê Ë = Ê Ë = 2 + 6 + 3 = 3 + 4 + 4 = 11
Ë∈ (d) Ë∈ ö( )

≤ ][ []u é H p[ ]% |º
On a bien :
Æ
11 < 17
Autrement dit, comme on a 0 ≤ Ë ≤ ]Ë ∀ ∈

Alors on peut écrire :


Æ ≤Ê ]Ë
Ë∈ (¸)

• Si un flot et une coupe O ) (N) sont tels que la valeur Æ du flot est égale à la capacité de la coupe,
alors est un flot maximum de $ à , et O ) (N) est une coupe minimale séparant $ à .

60
Théorie des Graphes - THG Licence M.I
• Une condition nécessaire et suffisante pour que le problème du flot maximum de $ à dans
une solution de valeur finie, est qu’il n’existe pas de chemin de capacité infinie entre $ et .
ait

La valeur maximale d’un flot de $ à dans un graphe ( , ) muni des capacités ]Ë ( ∈ ) est égale à
3.4. Théorème de flot max et de capacité minimale

la capacité d’une coupe de capacité minimale séparant $ à .

Soit = ( , ,…, ) un flot entre $ et dans = ,


3.5. Graphe d’écart

capacités 0 ≤ Ë ≤ ]Ë ∀ = 1,2, … , &. Le graphe d’écart associé à est le graphe ̅ ( ) = , Y( )


compatible avec les contraintes de

ayant le même ensemble de sommets que et dont l’ensemble des arcs Y( ) est constitué de la façon
suivante : à chaque = (u, ³) ∈ de , on associe au plus 2 arcs de ̅ ( ) :
)
= (u, ³) $u Ë < ]Ë et *
= (³, u) $u Ë >0

Autrement dit, si l’arc est rouge, il lui correspond ) et * dans ̅ ( ), si est noir, il lui correspond
)
seulement, si est vert, il lui correspond * seulement. On associe également à chaque arc de ̅ ( )
une capacité dite résiduelle égale à ]Ë − Ë > 0 dans le premier cas et Ë > 0 dans le deuxième cas.

Graphe d’écart ̅ associé à G


Exemple :
Graphe G

2
3
2 1
Ô
1

‘ Ô ‘
3 3
1 3
2 2


3


3 3 1
ü
0
ü
0 6
8

: Capacité c y : flot

Soit un flot de $ à dans , compatible avec les capacités ]Ë ( ∈ ) et soit ̅ ( ) le graphe d’écart
Théorème :

chemin de $ à dans ̅ ( ).
associé à . Une condition nécessaire et suffisante pour que le flot soit maximal est qu’il n’existe pas de

3.6. Flot compatible et flot complet

Un flot compatible est un flot vérifiant pour tout arc , 0 ≤ ≤ ]Ë


• Flot compatible :
Ë

Un flot complet est un flot compatible pour lequel tout chemin allant de $ à possède au moins
• Flot complet :

un arc saturé (i.e. Ë = ]Ë ).

61
Théorie des Graphes - THG Licence M.I

4. ALGORITHME DE RECHERCHE D’UN FLOT MAX

4.1. Algorithme de Ford et Fulkerson (1956)


a. Faire passer un flot compatible avec les contraintes de capacités vérifiant la loi de conservation
en chaque nœud.
b. Chercher un flot complet :

s’il existe dans le graphe un chemin allant de l’entrée $ à la sortie : le flot n’est pas
1. Pour avoir un flot complet, il suffit de considérer le graphe restreint aux arcs non saturés ;

2. Augmenter le flot de ce chemin de la capacité résiduelle minimale, i.e. min (]Ë − Ë ) sur ce
complet, alors :

chemin, pour saturer au moins un arc de ce chemin.

4. Itérer la partie b jusqu’à ce que tous les sommets de $ à contiennent chacun au moins un
3. Marquer avec un trait plein (ou double trait) tout arc saturé.

arc saturé (i.e. critère d’obtention d’un flot complet).

1. Marquer l’entrée $ par +


c. A partir d’un flot complet, marquer les sommets du graphe de la façon suivante :

- Marquer d’un + tout sommet non marqué tel qu’il existe un arc ( , ) non saturé.
2. Un sommet étant marqué

- Marquer d’un − tout sommet non marqué tel qu’il existe un arc ( , ) traversé
par un flot non nul.
3. Si on ne parvient pas à marquer la sortie par cette procédure : ARRET ; le flot est
maximal.

marqués de (+ % −) allant de $ à et la séquence de sommets qui la composent. Si un arc


Sinon (i.e. on parvient à marquer la sortie ) ; on considère alors une chaîne de points

dans cette séquence est orienté dans le sens de la séquence (i.e. de $ vers ) on augmente
la capacité de cet arc de la capacité résiduelle minimale (i.e. min (]Ë − Ë ) des arcs de
cette chaine orientés dans le sens de la séquence) ; s’il est orienté en sens inverse de la
chaîne, on lui retranche la capacité résiduelle minimale. Marquer avec un trait plein tout
arc saturé.
d. Retourner en c.

Pour vérifier que la valeur du flot trouvée est maximale, il suffit de tracer une courbe qui sépare les
sommets marqués des sommets non marqués (coupe de capacité minimale), cette courbe traverse les
arcs saturés ou non saturés mais de flots nuls orientés des sommets non marqués vers les sommets
marqués.

4.2. Exemple d’application


On considère le réseau de transport suivant où tout arc est muni d’une capacité (nombre encerclé) et
de flot (nombre non encerclé). Chercher un flot maximal dans ce réseau par l’application de
l’algorithme de Ford et Fulkerson.

1 2

‘ Ô
3

2 1
3


1 2

ü
1

62
Théorie des Graphes - THG Licence M.I
1) Nous commençons par vérifier la loi de conservation pour chaque nœud :

Æ = Ê Ë = Ê Ë % n p $ $%&& $ H v né H $%n u [ y
Ë∈ (¹) Ë∈ ö (-)

Ê Ë = Ê Ë % n p $ $%&& $ ∈ {\, ], H, }
Ë∈ (0) Ë∈ ö (0)

Pour les sommets : b : (3=1+2) ;


c : (1+2=1+2) ;
d : (1=1) ;
e : (1+2=3) ;

Pour les sommets [et y, nous avons :


Æ = Ê Ë = Ê Ë =6
Ë∈ (¹) Ë∈ ö (-)

2) Ensuite on vérifie que le flot est compatible :

En effet, on a : ∀ ∈ 0≤ Ë ≤ ]Ë

3) On marque les arcs saturés :

Dans notre cas, il s’agit uniquement de l’arc (\, ])

1 2

‘ Ô
3

2 1
3


1 2

ü
1

4) Chercher un flot complet :

Un flot est complet lorsque tous les chemins de [ vers y contiennent au moins un arc saturé. Pour le
moment le flot n’est pas complet.

([ \ y)
• On considère le chemin :

On peut augmenter le flot de ce chemin de :

min{]Ë − Ë} = min{5 − 3 , 4 − 2} = 2

Donc : Æ = Æ +2=6+2=8

On obtient donc le flot suivant :

63
Théorie des Graphes - THG Licence M.I

1 4

‘ Ô
5

2 1
3


1 2

ü
1

Le flot n’est toujours pas complet.

([ ] y)
• On considère le chemin :

On peut augmenter le flot de ce chemin de :

min{]Ë − Ë} = min{3 − 2 , 4 − 1} = 1

Donc : Æ = Æ +1=8+1=9

On obtient donc le flot suivant :

1 4

‘ Ô
5

3 2
3


1 2

ü
1

Le flot n’est toujours pas complet.

([ H y)
• On considère le chemin :

On peut augmenter le flot de ce chemin de :

min{]Ë − Ë} = min{5 − 1 , 6 − 1 , 4 − 3} = 1

Donc : Æ = Æ + 1 = 9 + 1 = 10

On obtient donc le flot suivant :

1 4

‘ Ô
5

3 2
4


2 2

ü
2

Le flot est à présent complet, car tout chemin de [ vers y possède au moins un arc saturé.

64
Théorie des Graphes - THG Licence M.I

5) Chercher un flot maximum :

Après marquage des sommets, on arrive à marquer le sommet y, le flot n’est pas donc maximal.

• On considère la chaine (améliorante) :

([ H ] y)
On peut augmenter le flot de ce chemin de :

min{5 − 2 , 6−2, 2 , 4 − 2} = 2

Donc : Æ = Æ + 2 = 10 + 2 = 12

On obtient donc le flot suivant :

1 4

‘ Ô
5

3 4
4


4 0

ü
4

Vu qu’on ne peut plus marquer la sortie y, le flot est donc maximal :

‘^ = `a

On peut finalement vérifier que le flot est bien maximal, en considérant une coupe, par exemple :

1 4

‘ Ô
5

3 4
+ 4


4 0

ü
4

+a +d

Nous avons :
| = {[ , H , }
O ) (|) = {([, \), ([, ]), ( , y)}
|º = ]¹f + ]¹º + ] - = 5 + 3 + 4 = 12
Qui correspond au flot max trouvé.

65
Théorie des Graphes - THG Licence M.I

EXERCICES
CHAPITRE 6 –PROBLEMES DE FLOTS

Exercice n°1 : Appliquer l’algorithme de Ford et Fulkerson pour déterminer le flot max correspondant
au réseau de transport suivant :


ü

66

Vous aimerez peut-être aussi