Académique Documents
Professionnel Documents
Culture Documents
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.
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
RECHERCHE OPÉRATIONNELLE
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.
2
Théorie des Graphes - THG Licence M.I
1. NOTION DE GRAPHE
= × = ( , )⁄ ∈ ∈
ordonné de sommets ; l’ensemble est donc obtenu par le produit cartésien :
={ , , , !, "}
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
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.
• '() ( ) (respectivement '(* ( ) ) peut être vide ; est alors appelé sommet puits
• Si . ⊂ alors
Propriétés :
' ) : = ( , ' )) ⇔ ( , )
• 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
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.
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
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 :
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
Exemple 13 :
6
Théorie des Graphes - THG Licence M.I
Exemple 14 :
^` ^a
^_ ^b
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
^_
^` ^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 :
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
Exemple 21 :
" 8
Théorie des Graphes - THG Licence M.I
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
Exemple 23 :
Exemple 24 :
Exemple 25 :
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 :
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 :
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
Exemple 29 :
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.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 :
= ( , ) défini par :
= { , , , !} , = {( , ) ,( , !) , ( , !) , ( ! , )}
Soit le graphe
! !
11
Théorie des Graphes - THG Licence M.I
4.4. Représentation en écriture BERGE (ou en dictionnaire)
0 $u p v [n] U , V∉ G
comme suit :
=t
1 $u p v [n] U , V ∈
( , ) ( , !) ( , !) ( ! , )
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
[ \
] 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 ?
Exercice n°3 : Parmi les graphes suivants, identifier les graphes particuliers (complet, simple,…)
.
[ \ • • \ ]
N
|
~
[
] € ~ €
} H " !
{
G1 G2 G3 G4 G5 G6
14
Théorie des Graphes - THG Licence M.I
\
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.
Donner sa représentation :
‚ O
- Par correspondance
- En casier.
… ˆ ‡
- Sa matrice d’incidence sommet-arc.
- Sa matrice latine.
={ $ &\p H $ u n$ H 1 à 8}
= {( , •) ∈ ⇔ Huzu$ •}
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.
1. TRANSITIVITE
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 = , , ℓ
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.
' * ( ) = ' * U' * ( )V , ' * ( ) = ' * U' * ( )V = ' * —' * U' * ( )V˜ , … ].
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
Et
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
∈ '* ( ) ‰ ∈' ( )
ž 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 … …
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.
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
Exemple 5 :
b 4
a
!
e c
"
d
G1 est un graphe connexe G2 est un graphe non connexe
(2 composantes connexes)
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).
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.
=
∀ , ∈ ¡ ⇔¢ % 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.
Remarque :
• Les composantes fortement connexes constituent une partition de l’ensemble .
• Un graphe fortement connexe n’a qu’une seule composante fortement connexe.
Soit |01 une classe d’équivalence, alors |01 = '› ( ) ∩ '› * ( ) puisqu’il doit exister un chemin de vers
fortement connexes.
21
Théorie des Graphes - THG Licence M.I
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.
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).
- 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 :
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.
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
|! {
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
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.
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) ?
Exemple 6 :
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
− 1.
Longueur d’un chemin hamiltonien
La longueur d’un chemin hamiltonien (s’il existe) pour un graphe d’ordre , est ℓ =
( é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 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
´
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
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).
*
- 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
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 º
"
A C
E
4
D
!
3
¸ 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
Les arbres et les arborescences sont des structures fondamentales utilisées dans de très nombreux
domaines : informatique, science sociale, statistique, intelligence artificielle,…
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
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 :
• 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".
\ ]
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.
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.
Remarque :
Dans le cas où certaines arêtes ont le même cout, on procèdera à de petites modifications au niveau
]( ) → ]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)
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 :
…( ) = & − + = 11 − 6 + 1 = 6
Le nombre cyclomatique :
Ð \ = 0 $u p [n](u, ³)∉
v
[
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
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
35
Théorie des Graphes - THG Licence M.I
H
Exemple 13 :
\ ℎ
”‘ÔŠÕ• ∶ ‘
]
[ m
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
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 '(ͬ ) = ∅)
b. Ajouter une ligne totale N‰ en bas de la matrice et y mettre des croix dans les cases des
d. Les sommets ayant leur total nul constituent le niveau ͉ , supprimer alors les lignes portant
e. Incrémenter Ÿ (Ÿ = Ÿ + 1) et aller à b.
ces sommets.
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
A B C D
A 1 1
B 1
C 1 1
D
NÆ 2 0 2 1 ÍÆ = {.}
N 2 X 2 0 Í = {}}
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
39
Théorie des Graphes - THG Licence M.I
EXERCICES
CHAPITRE 3 –ARBRES ET ARBORESCENCES
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 Ù Ú
40
Théorie des Graphes - THG Licence M.I
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)
- Si l’arc ∉ alors ℓ( ) = ∞
ℓ(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.
‰
• 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 !).
• ℓ( ) ≥ 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
Poser €([ ) = 0 et N = {[ }
Etape d’initialisation :
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
Æ
€( ) + ℓ( , 4 ) = 4 + 5 = 9
6ème Etape :
€U[c V + ℓU[c , \c V = min 9 ® = €( ) + ℓ( , 4) =9
€( " ) + ℓ( " , ! ) = 7 + 15 = 22
å
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)
à
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
å (.) = å (|) = å (}) = å ({) = å ( ) = ∞
• Œ=a
å ({) = mi n å (§) + ℓ(§ , {) , å ({) = mi n 2 + 1 , ∞ = 3
å ( ) = mi n å (§) + ℓ(§ , ) , å ( ) = mi n 2 + 2 , ∞ = 4
å (N) = 4 , å (.) = ∞ , å (|) = ∞ , å (}) = ∞
• Œ=_
å (}) = mi n å ({) + ℓ({ , }) , å (}) = mi n 3 + 2 , ∞ = 5
å (N) = 4 , å (.) = ∞ , å (|) = ∞ , å ( ) = 4
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 , å " (|) = ∞
^â → ï å " (}) = 5
ì = ì ∪ {ï} = {^á , ë , í , K , œ , ï}
• Œ=î
å 4 (|) = mi n å " (}) + ℓ(} , |) , å " (|) = mi n 5 + 1 , ∞ = 6
å 4 (.) = 6
^î → ð å 4 (.) = 6
ì = ì ∪ {ð} = {^á , ë , í , K , œ , ï , ð}
• Œ=ã
å 3 (|) = mi n å 4 (.) + ℓ(. , |) , å 4 (|) = mi n 6 + 1 , 6 = 6
^ã → ñ å 3 (|) = 6
ì = ì ∪ {ñ} = {^á , ë , í , K , œ , ï , ð , ñ}
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
⇒
³ =4 å( ! ) − å( Æ) > 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 !
Supposons que le sommet 1 soit le seul sommet tel que ' * (1) = ∅
É = É ∪ {³}
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
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.
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
Dans tout ce qui suit, on tiendra compte seulement des contraintes de succession.
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 ».
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
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.
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).
20 | 20
N «
10
{ ø
0 20 10
…
} 20
£
10
10
.
0
20
§
10
10
La durée minimale du projet ý est donc égale à la longueur du plus long chemin de … à ø.
þŠ = çèé þ‹ − üŠ ‘ •Ô þ = •
‹∈•(Š)
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.
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
ù =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
• = ãá
Üý = ý = 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
|
(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
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).
[
\ fin d’approvisionnement de M1 (yu N)
: début des travaux (ou fin de passation des commandes de M1, M2)
y
:
54
Théorie des Graphes - THG Licence M.I
H
\
20
y
E 20
G
20 10
10
F I
m
A
[
20
B C H
10 10
] D
10
܉ = − ℓ(Ÿ , )
Ou bien
- La date au plus tard de début de chaque tâche issue de l’étape ‰ est alors ܉ .
- 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
(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 :
57
Théorie des Graphes - THG Licence M.I
Soit ( , ) un graphe connexe dont les arcs sont numérotés = 1, 2, … , &. On appelle flot dans
1.1. Définition
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).
=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
Æ
On appelle "réseau de transport" un graphe ( , ) sans boucle où chaque arc ∈ est muni d’un
2.1. Réseau de transport
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).
a. Le flux Ë ≥ 0 ∀ ∈
réseau de transport » si l’on a :
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
L’arc ( , $) est appelé l’arc de retour de flot, et on convient de lui affecter le n°0 ; ainsi les arcs de Æ
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)
(x) : Flot
: Capacité ]
(3)
(2)
• Ô •
(1)
N = {$ , ] , H)
(6) (4)
) (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 valeur maximale d’un flot de $ à compatible avec les capacités ]Ë n’excède jamais la capacité
3.3. Propriétés
≤ ][ []u é H p[ ]% |º
On a bien :
Æ
11 < 17
Autrement dit, comme on a 0 ≤ Ë ≤ ]Ë ∀ ∈
• 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
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.
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
Un flot complet est un flot compatible pour lequel tout chemin allant de $ à possède au moins
• Flot complet :
61
Théorie des Graphes - THG Licence M.I
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 :
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é.
- 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.
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.
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)
En effet, on a : ∀ ∈ 0≤ Ë ≤ ]Ë
1 2
‘ Ô
3
2 1
3
•
1 2
ü
1
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 :
min{]Ë − Ë} = min{5 − 3 , 4 − 2} = 2
Donc : Æ = Æ +2=6+2=8
63
Théorie des Graphes - THG Licence M.I
1 4
‘ Ô
5
2 1
3
•
1 2
ü
1
([ ] y)
• On considère le chemin :
min{]Ë − Ë} = min{3 − 2 , 4 − 1} = 1
Donc : Æ = Æ +1=8+1=9
1 4
‘ Ô
5
3 2
3
•
1 2
ü
1
([ H y)
• On considère le chemin :
min{]Ë − Ë} = min{5 − 1 , 6 − 1 , 4 − 3} = 1
Donc : Æ = Æ + 1 = 9 + 1 = 10
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
Après marquage des sommets, on arrive à marquer le sommet y, le flot n’est pas donc maximal.
([ 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
1 4
‘ Ô
5
3 4
4
•
4 0
ü
4
‘^ = `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