Académique Documents
Professionnel Documents
Culture Documents
Pr DKHISSI Btissam
• Le terme « optimal » est souvent trompeur. Ce n'est pas un jugement de valeur absolu.
C'est plutôt une information sur l'approche méthodologique utilisée.
• Problème identique à celui consistant à tracer une Figure géométrique sans lever le
crayon et sans repasser plusieurs fois sur un même trait.
• Dix ans plus tard, Cayley (1821-1895) développa la théorie des arbres
Problèmes d’optimisation
Modélisation Résolution
A = a , b, c, d, e, f , g, h
U = (a, b), (b, c), (b, e), (a, e), (d, e), (a, h ), (d, h ), (g, h ), (d, g), (g, h ), (f , g), (e, f )
b
a
c
d
h
f
g
13/10/2022 Théorie des graphes 2022/2023 13
Graphe orienté
On dit que le graphe G est orienté si les éléments de U (les connexions entre les
sommets) sont orientés et dans ce cas , les éléments de U sont appelés des arcs
b
d
b
a
c
d
→
On note un arc par (i,j) ou ij
x2
x3
x1 R x2 , x2 R x1 , x2 R x3 et x1 R x3
13/10/2022 Théorie des graphes 2022/2023 17
Vocabulaire de la théorie des graphes
• On dit qu'un graphe est sans boucle si A ne contient pas d'arête de la forme (x, x),
c'est à dire joignant un sommet à lui même.
Remarques
• Si le graphe est non orienté, la relation binaire définie est symétrique : xi R xj alors
xjR xi
a
U − (d ) = e
e
U (c) = a , b, d
−
U + (a ) = b, c, e b
+
d
Ø
U ( c) =
c
Exemple: a
4
3 e
2
11
b
5 d
1
c
Soit L=(x,y) un arc (qui n’est pas une boucle) d’un graphe G
• On dit que L est incident à x vers l’extérieur et incident à y vers
l’intérieur
• Le nombre des incidents à x vers l’extérieur est noté: d G+ (xet
)
s’appelle le demi-degré extérieur de x
• Le nombre des incidents à x vers l’intérieur est noté: d G− (x) et
s’appelle le demi-degré intérieur de x
• Le nombre d G+ (x) + d G− (x)s’appelle le degré du sommet x et on le
note d G (x)
Remarque:
si dG(x)=0, on dit que x est isolé
x5
x2
x4
x3
x1 X2 x3 x4 x5
+
dG (x) 3 1 0 1 1
−
dG (x) 0 1 3 1 1
d G (x) 3 2 3 2 2
13/10/2022 Théorie des graphes 2022/2023 26
Théorème des poignées de mains
La somme des degrés de tous les sommets d’un graphe vaut le double
du nombre d’arêtes
d
x X
G (x) = 2 U
b
d
c f
c f
c f
Remarque:
1 si (x i , x j ) U
On pose M=(mij)1≤i,j≤n avec m ij =
0 sinon
Exemple :
a b c d
a
0
a 1 0 0
b 1 0 1 0
M =
c 0 0 0 1
b
d
d
1 1 0 0
c
Représentation matricielle:
− ab − −
ba − bc −
M=
cd
a
− − −
da − −
db
b
d
Dénitions :
• On appelle graphe réflexif un graphe possédant une boucle sur chaque sommet.
• Un graphe est symétrique si, pour tout arc u = (x, y) appartenant à U, l'arc v = (y,
x) appartient également à U.
• Un graphe est antisymétrique si, pour tout arc u = (x, y) appartenant à U, l'arc v =
(y, x) n'appartient pas à U.
• Un graphe est transitif si, quelque soit deux arcs adjacents u = (x, y) et v = (y, z)
appartenant à U, alors l'arc w = (x, z) appartient également à U.
Dénition :
• Un graphe G = (A,U) est dit complet si, pour toute paire de sommets (x, y), il
existe au moins un arc de la forme (x, y) ou (y, x).
i, j S (i, j) U
a
e
b
d
S={a,d,e} f
c
• La coloration des sommets d’un graphe consiste à une affectation de couleurs à tous les sommets
du graphe de telle sorte que deux sommets adjacents ne soient pas porteurs de la même couleur.
• Une K-coloration des sommets est une partition (S1, S2, ..., Sk) de
l’ensemble des sommets en K ensembles stables
(chaque couleur i représente un sous ensemble de sommets non
adjacents puisqu’ils sont de la même couleur)
Chemin:
Une suite d’arcs dont l’extrémité terminale de chacun est l’extrémité initiale du
suivant sauf pour le dernier
b
d
c
a,b,c,d est un chemin
Chemin hamiltonien:
Un chemin est dit hamiltonien, s’il passe une fois et une seule
par chaque sommet du graphe
a
b
d
c
Chemin pré-hamiltonien:
Un chemin est dit pré-hamiltonien, s’il passe au moins une fois
par chaque sommet du graphe
a
b
d
c
Chemin élémentaire :
Un chemin est dit élémentaire s’il ne passe pas plus qu’une fois
par chacun des sommets (pas tous les sommets)
a
b
d
c
Chemin simple:
Un chemin est dit simple s’il ne passe pas plus qu’une fois par le
même arc
a
b
d
c
Chemin eulérien:
Un chemin est dit eulérien s’il passe une fois et une seule par
chaque arc
a
b
d
c
Chemin pré-eulérien:
Un chemin est dit pré-eulérien s’il passe au moins une fois par
chaque arc
a
b
d
c
Circuit :
Un chemin est dit circuit s’il se ferme sur lui même
Circuit hamiltoniens:
Un circuit est dit hamiltonien s’il passe une fois et une seule par
chaque sommet
a
Chaîne :
Une chaîne est une suite d’arêtes dont chacune a une extrémité
commune avec l’arête précédente
a
e
b
d
c
Chaîne hamiltonien:
Une chaîne hamiltonien est une chaîne de longueur n-1
a
e
b
d
c
Cycle:
Un cycle est une chaîne simple se fermant sur elle-même
b
d
c
Vi Vj
dij
Connexité :
Un graphe est dit (faiblement) connexe si,
Connexité :
Soit R la relation binaire définie par:
xi = x j
xi R xj
ou
il existe une chaîne reliant x i à x j
Connexité : Exemple
a
b
d
c
a = a, b, c, d
Connexité :
Un graphe est dit (fortement) connexe si,
Connexité :
Soit R la relation binaire définie par:
xi = x j
xi R xj ou
il existe un chemin allant de x à x et un chemin de x vers x
i j j i
c
g
b
Exemple:
1 6 10 12
7 9 11
2
3 4 5 8
13/10/2022 Théorie des graphes 2022/2023 58
Vocabulaire de la théorie des graphes
Réseau :
On appelle réseau, un graphe connexe sans boucle.
Arbre:
On appelle arbre, un graphe connexe sans cycle.
Remarques:
• On dit que x est l’enfant de y , si x,y sont adjacents avec : d(r,x) =1+d(r,y)
• Les feuilles sont les noeuds sans enfants.
• On représente les arborescences par leurs branches (chemins) en commençant
par la racine
DFS : principe
Chaque nœud adjacent à v, non visité, est à son tour visité en utilisant DFS
récursivement.
Une fois tous les nœuds accessibles à partir de v ont été visités, la recherche
de v ( DFS(v) ) est complète.
DFS : Exemple
1
Choisir A A
2 6
4
B D E
C 3
B 5
C I
A I
D
E 1
Choisir F F
H 2
F
G
G
1
Choisir H H
13/10/2022 Théorie des graphes 2022/2023 67
Algorithme de parcours d’un graphe
C'est la généralisation du parcours niveau par niveau défini sur les arbres
BFS : principe
Chaque nœud adjacent à v, non visité, est à son tour visité en utilisant BFS
Une fois tous les nœuds accessibles à partir de v ont été visités, la recherche
de v ( BFS(v) ) est complète
BFS : Exemple
1
Choisir A A
2 3 4
B D E
C
B 5 6
C I
A I
D
E 1
Choisir F F
H 2
F
G
G
1
Choisir H H
13/10/2022 Théorie des graphes 2022/2023 71
Niveau de génération (rang) d’un sommet
N° de ligne X P(X) x1
x4
1 x0 néant
2 x1 x0
x0 x2 x5
3 x2 x0,x1,x4,x5
4 x3 x0,x1
5 x4 x1,x5
x3
6 x5 x3
13/10/2022 Théorie des graphes 2022/2023 73
Niveau de génération (rang) d’un sommet
N° de ligne X P(X) x1
x4
1 x0 néant
2 x1 x0 néant
x0 x2 x5
3 x2 x0,x1,x4,x5
4 x3 x0,x1
5 x4 x1,x5
x3
6 x5 x3
13/10/2022 Théorie des graphes 2022/2023 74
Niveau de génération (rang) d’un sommet
N° de ligne X P(X) x1
x4
1 x0 néant
2 x1 x0 néant
x0 x2 x5
3 x2 x0,x1,x4,x5
4 x3 x0,x1 néant
5 x4 x1,x5 x3
6 x5 x3
13/10/2022 Théorie des graphes 2022/2023 75
Niveau de génération (rang) d’un sommet
N° de ligne X P(X) x1
x4
1 x0 néant
2 x1 x0 néant
x0 x2 x5
3 x2 x0,x1,x4,x5
4 x3 x0,x1 néant
5 x4 x1,x5 x3
6 x5 x3 néant
13/10/2022 Théorie des graphes 2022/2023 76
Niveau de génération (rang) d’un sommet
N° de ligne X P(X) x1
x4
1 x0 néant
2 x1 x0 néant
x0 x2 x5
3 x2 x0,x1,x4,x5
4 x3 x0,x1 néant
5 x4 x1,x5 néant x3
6 x5 x3 néant
13/10/2022 Théorie des graphes 2022/2023 77
Niveau de génération (rang) d’un sommet
N° de ligne X P(X) x1
x4
1 x0 néant
2 x1 x0 néant
x0 x2 x5
3 x2 x0,x1,x4,x5
néant
4 x3 x0,x1 néant
5 x4 x1,x5 néant x3
13/10/2022
6 x5 x3 néant
Théorie des graphes 2022/2023 78
Niveau de génération (rang) d’un sommet
Commet déterminer les rangs des sommets:
Exemple: rg(x2)=5 (la longueur du plus long chemin ayant comme
extrémité finale x2)
N° de ligne X P(X)
1 x0 néant
x1
x4
2 x1 x0 néant
3 x2 x0,x1,x4,x5
néant x2 x5
x0
4 x3 x0,x1 néant
5 x4 x1,x5 néant
6 x5 x3 néant x3
Théorème:
L’élément M(i,j) de Mk est le nombre de chemin de longueur k
allant du sommet i au sommet j.
1 si (x i , x j ) U
m ij =
0 sinon
Considérons le graphe
0 1 1 0 1 a
0 0 1 0 0 e
M = 0 0 0 0 0
0 0 1 0 0 b
d
0 0 0 1 0
c
a
0 0 1 1 0
0 0 0 0 0 e
M2 = 0 0 0 0 0
b
0 0 1 0 0 d
0 0 1 0 0 c
a
0 0 1 0 0
0 0 0 0 0 e
M3 = 0 0 0 0 0
b
0 0 0 0 0 d
0 0 0 0 0 c
Définition:
On appelle fermeture transitive d’un sommet x (ou ensemble de
descendant de x) d’un graphe G=(A,U) l’expression suivante:
U( x ) = x U ( x ) U
+ +2
( x ) ... U + n −1
(x)
Où:
+k + + k −1
U (x) = U (U ( x ))
• • • •
M = I+M+M ( 2)
+ ... + M ( n −1)
Où:
M( k ) est la matrice produit dont les éléments sont calculés en
utilisant le produit logique et la somme logique.
0 1 + 0 1
0 0 0 0 0 1
1 0 1 1 1 1
13/10/2022 Théorie des graphes 2022/2023 87
Fermeture transitive
Remarque:
• • • •
( n −1) ( n −1) ( n − 2)
(A + B) =A +A B + ... + B( n −1)
Exemple:
0 1 0 0 1 0 b
0 0 1 0 0 0 c
0 0 0 1 0 0 a
M= d
0 0 0 0 0 1
0 1 1 0 0 1 e
0 0 0 0 0 0
f
Exemple:
1 1 0 1 00
0 1 0 0 01
• 0 0 1 1 0 0
M+I =
0 0 0 1 0 1
0 1 1 0 1 1
0 0 0 0 0 1
Exemple:
1 1 0 1 11
0 1 1 0 01
• 0 0 1 1 0 1
( M + I) 2 =
0 0 0 1 0 1
0 1 1 1 1 1
0 0 0 0 0 1
Exemple:
1 1 1 1 1
1
0 1 1
1 0 1
• 0 0 1 1 0 1
( M + I) 5 =
0 0 0 1 0 1
0 1 1 1 1 1
0 0 0 0 0 1
Remarques:
1. En pratique, on peut arrêter les calculs dés que :
• •
( M + I) (k)
= ( M + I) ( k −1)
U(a ) = a U + (a ) U + (a ) U + (a ) U + (a ) U + (a )
2 3 4 5
= a, b, e, c, d, f
b
U( b) = b, c, d, f
c
U(c) = c, d, f
a
d
U(d ) = d, f
U(e) = b, c, d, e, f e
f
U (f ) = f
Problème:
comment chercher le ou les chemins de longueur extrémale (minimale ou
maximale) partant du sommet n°1 vers un sommet donné.
c
b e
d f
a
g
h
13/10/2022 Théorie des graphes 2022/2023 95
Recherche des chemins de longueur extrémale
Lemme1:
Démonstration (Lemme1)
Lemme2:
Démonstration (Lemme2):
• Supposons qu’il existe un circuit C1=[xi,xi] de valeur strictement
négative et que C =[x0,xi] soit un chemin de valeur minimale de x0 à xi.
Alors la valeur du chemin C’=CC1 est strictement inférieure à celle de C
ce qui contredit sa minimalité.
Remarques :
Algorithme de Ford :
1. Numéroter les sommets du graphe valué dans n’importe
quel ordre, en commençant par x0 et en terminant par xn-1.
2. Affectation d’une valeur ti=0 (0≤ i ≤ n-1) à tous les sommets
du graphe valué
3. Pour tout arc (xi,xj) si vji=tj-ti < dij (la valuation de l’arc (xi,xj) ),
On remplace la valeur de tj par la valeur: ti+dij, sinon on ne
change pas la valeur de tj.
4. On continue les itérations jusqu’à ce qu’on ne peut plus
augmenter les ti
Exemple:
Recherche du chemin de longueur maximale dans un graphe
valué à l’aide de l’algorithme de Ford
a 24 g
21
12 13 3 5
7 21 s
e b
f
1 4
10
14 26
c 16 d
Exemple:
t1=0 t4=0
x1 24 x4
21
12 13 3 5
t7=0
t2=0 7 t5=0 21
x0 x2 x7
x5
t0=0 1 4
10
14 26
x3 16 t6=0x6
t3=0
Exemple:
• x0 (x0,x1), (x0,x3)
Pour l’arc (x0,x1) on a v10=t1-t0 < d01=12
Donc on remplace t1=0 par t1’=t0+d01=12
Pour l’arc (x0,x3)...
• x1 (x1,x6), (x1,x2)
• .
• .
• .
Exemple:
t1’=12
t1=0 t4=0
x1 24 x4
21
12 13 3 5
t7=0
t2=0 7 t5=0 21
x0 x2 x7
x5
t0=0 1 4
10
14 26
x3 16 x6
t3=0 t6=0
Algorithme de Ford :
1. Numéroter les sommets du graphe valué dans n’importe
quel ordre, en commençant par x0 et en terminant par xn-1.
2. Affectation d’une valeur ti=∞ (1≤ i ≤ n-1) à tous les sommets
du graphe valué et t0=0
3. Pour tout arc (xi,xj) si vji=tj-ti > dij (la valuation de l’arc (xi,xj) ),
On remplace la valeur de tj par la valeur: ti+dij, sinon on ne
change pas la valeur de tj.
4. On continue les itérations jusqu’à ce qu’on ne peut plus
améliorer les ti
Exemple:
Recherche du chemin de longueur minimale dans un graphe
valué à l’aide de l’algorithme de Ford
t1’=2
x1 t =∞
1
2 1 7
t7= ∞
x0 x3 t3= ∞ x4
t0=0
1
4
5
x2 t4= ∞
13/10/2022 Théorie des graphes 2022/2023 109
Algorithme de Ford pour la recherche de chemin maximal
Remarque:
Si le graphe comporte un circuit absorbant, l’algorithme de Ford
peut ne pas se terminer
b
-5
2
-1 d
a
3 4
Remarque:
t1’’=0
t1’=2
t1=+∞
x1
-5
2
t3’=-3
-1 t3=+∞
t0=0 x3
x0
3 4
x2
t2=+∞
t2’=3
t2’’=1
13/10/2022 Théorie des graphes 2022/2023 111
Cas des valeurs positives: Algorithme de Dijkstra
2 X3
X
1
6 7 1
X X
0
4
8 5 1
X
2 9
X
5
Exemple :
t3=8
t1=6 2 X3
X1
6 7 1
X0
X4
t4=min(6+7, 8+5, 8+1)
8 5 1
X2
9
t2=8 X5
Problèmes d’ordonnancement
Définition:
Domaines d’application:
Diagramme de GANTT
Tâches
Temps
13/10/2022 0 1 2 3 4 des5graphes 2022/2023
Théorie 6 7 8 9 10 131
Résolution des problèmes d’ordonnancement
Diagramme de GANTT : Exemple
2ème étape: Dessiner chaque tâche en faisant apparaître au fure et à
mesure les contraintes de précédence
D 2 B
E 4 B
Tâches F 3 D, A
A G 1 F, E, C
B D
Temps
13/10/2022 0 1 2 3 4 des5graphes 2022/2023
Théorie 6 7 8 9 10 132
Résolution des problèmes d’ordonnancement
Diagramme de GANTT : Exemple
2ème étape: Dessiner chaque tâche en faisant apparaître au fure et à
mesure les contraintes de précédence
F 3 D, A
Tâches G 1 F, E, C
A
B D F
Temps
13/10/2022 0 1 2 3 4 des5graphes 2022/2023
Théorie 6 7 8 9 10 133
Résolution des problèmes d’ordonnancement
Tâches G 1 F, E, C
B D F
C G
Temps
13/10/2022 0 1 2 3 4 des5graphes 2022/2023
Théorie 6 7 8 9 10 134
Résolution des problèmes d’ordonnancement
Numéro de l’étape
1
6 9
1 a 2 b 3
a
1
b
3
1
a
3 c 4
b
2
Chemin critique est constitué par les événement (dits critiques) dont la date
attendue est égale à la différence entre la date attendue de l’événement
suivant (sur le chemin critique) et la valeur de l’arc qui les relie
13/10/2022 Théorie des graphes 2022/2023 141
Résolution des problèmes d’ordonnancement
Marges :
Marges :
La marge totale est définie par :
Tâches fictives :
Soit les trois tâches suivantes
1
a
3 c 4
b
2
Tâches fictives :
Comment créer une tâche d qui n’a que b comme prédécesseur ?
1 a 3 c 4
2 b 5 d 6
Tâches fictives :
Comment créer une tâche d qui n’a que b comme prédécesseur ?
1 a 3 c 4
2 b 5 d 6
a da b db c
t j = max [ ti + Vij ]
−
iu ( j)
Chemin critique est constitué par les événement (dits critiques) dont la date
attendue est égale à la différence entre la date attendue de l’événement
suivant (sur le chemin critique) et la valeur de l’arc qui les relie
Marges :
mi = min [t j − Vij ] - t i
ju + ( i )
Une réserve de temps dont on dispose sur une tâche qui
permet si elle est consommée de ne pas tarder les dates
au plus tôt des tâches ultérieures.
Marges :
La marge totale est définie par :
Mi = t i − t i
Exemple :
A 2 C
4
6 Fin
E
2
5
B D
4
4
0 6 Fin
E
Début 2
0 0 5
B D
0
4
Exemple : MPM
ti si X i appartient à un chemin critique
Date au plus tard : t i = [ t j − Vij ] sinon
min
ju ( i )
+
A 2 C
0 2 2 5
4
0 6 Fin
E
Début 2
9 9 15 15
0 0 5
B D
0
0 0 4 4
4
Exemple : MPM
Chemin critique
A 2 C
0 2 2 5
4
0 6 Fin
E
Début 2
9 9 15 15
0 0 5
B D
0
0 0 4 4
4
2
2 4
A(2) C(4)
E(6) 5
4
1 X(0)
9 9 15 15
0 0
3 D(5)
B(4) 4 4
13/10/2022 Théorie des graphes 2022/2023 159