Académique Documents
Professionnel Documents
Culture Documents
AU 2023-2024
Syllabus du cours
Objectif
Montrer la richesse des concepts fondamentaux de la théorie des
graphes pour la modélisation et la résolution de nombreux
problèmes d’optimisation discrète. .
Pré-requis
Cours d'algorithmique et quelques notions de programmation.
Organisation
Cours : 2h/semaine ; TD : 1h/semaine
Bibliographie
D Maquin (2010).,«Eléments de Théorie des Graphes et
Programmation Linéaire».,http://cours.ensem.inpl-
nancy.fr/cours-dm/graphes/Graphesnew. pdf
Roseaux (2005 )., Roseaux., «Exercices et problèmes résolus de
recherche opérationnelle,Dunod, 2005.
R.Harrathi Théorie des Graphes et Optimisation 2
.
1
Plan du cours
Concepts fondamentaux de la théorie des graphes
Problème d’ordonnancement
CHAPITRE 1
CONCEPTS FONDAMENTAUX DE LA
THÉORIE DES GRAPHES
2
Concepts fondamentaux de la théorie des graphes I. Introduction
L’optimisation
L’optimisation
Exemple:
Données : Un réseau routier
Graphe
sommets ↔ villes
arcs ↔ routes
poids sur les arcs :distance entre les villes
3
Concepts fondamentaux de la théorie des graphes I. Introduction
sommets=villes
arcs=ponts
Recherche d’un cycle eulérien (une chaîne qui passe une fois et
une seule par chaque arête du graphe )
Théorème d’Euler :un graphe admet un cycle eulérien si et
seulement si le nombre d’arêtes reliées à chaque sommet est pair.
4
Concepts fondamentaux de la théorie des graphes I. Introduction
•arc
2 3
Type de graphe
Orienté : chaque arc à un sens
1 Sommet
arc
2 3
arête
2 3
5
Concepts fondamentaux de la théorie des graphes I. Introduction
Trafic aérien :
sommets ↔ aéroports,
arêtes ↔ vols existants
Réseau informatique :
sommets ↔ ordinateurs
arêtes ↔connexions physiques
6
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Graphes orientés
4 1
2 3
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Graphes orientés
Boucle (5,5)
5 l'extrémité initiale
4 1
2 3
7
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Graphes orientés
4 1
2 3
S = { 1, 2, 3, 4, 5 }
Γ(1)={5}, Γ(2)={1}, Γ(3)={1,2}, Γ(4)={2}, Γ(5)={4,5}
R.Harrathi Théorie des Graphes et Optimisation 15
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Graphes orientés
Chemins
Chemin : c = ( s0, s1,s2, …, sk-1,sk ) où les (si-1,si) A
origine = s0
extrémité = sk
longueur = k (=le nombre d'arcs qui composent le chemin )
Exemple
c= ( 3, 1, 5, 4 ) est un chemin de longueur 3
4 1
2 3
8
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Graphes orientés
Chemins
Chemin simple: si il ne passe pas deux fois par le même arc
Chemin élémentaire: si il ne passe pas deux fois par le même
sommet
Circuit: un chemin de longueur non nulle et dont l'origine et
l'extrémité sont identiques.
Exemple
c= ( 3, 1, 5, 4 ) est un chemin simple 5
c= (1,5 ,4 ,2,1 ) est un circuit
4 1
2 3
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Graphes orientés
9
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Graphes orientés
Exemple
1 x d+(x) d-(x)
1 0 2
2 1 1
2 3
3 2 0
∑ 3 3
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
4 1
2 3
10
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
4 1 extrémité
2 3
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Chaîne
Chaîne : c = ( s0, s1,s2, …, sk-1,sk ) où les (si-1,si) A
Longueur = k (=le nombre d'arêtes qui composent la chaîne )
Cycle: chaîne de longueur non nulle et dont l'origine et
l'extrémité sont identiques.
Exemple
5
c= ( 3, 1, 5, 4 ) est une chaîne de longueur 3
c= (1,5 ,4 ,2,1 ) est un cycle 4 1
2 3
11
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Exemple
x d(x)
1
1 2
2 1
2 3 3 1
∑ 4
12
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
P-Graphe
Graphe dans lequel il n’existe jamais plus de p arcs entre deux
sommets quelconques
Exemple :2 -Graphe
1
4
2 3
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
Graphe simple
Un graphe est dit simple si et seulement si il ne comporte pas de
boucle et s'il n'y à pas plus d'une arête (ou arc) entre deux
sommets quelconques.
Exemple
Graphe simple Graphe non simple
1
1
2 3
2 3
13
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
Graphe partiel
Soit G = <S,A> un graphe (orienté ou non). Un graphe partiel de
G est un graphe G' = <S,A’> tel que A A’.
Exemple
5
5
4 1
4 1
2 3
2 3
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
Sous graphe
Soit G = <S,A> un graphe (orienté ou non). Un sous-graphe de G
est un graphe G' = <S’,A’> tel que A A’ et S S’
Exemple
5
1
4 1
2 3
2 3
14
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
Exemple
5 5
4 1 4 1
2 3 2 3
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
Graphe valué
Un graphe dans lequel chacune des arêtes (ou arcs), a, est associée
à une valeur, appelée poids, p(a).
Exemple
5
8 7
1
4 2 -13
1
2 3
11
15
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
a
a
b
Fermeture transitive b
c
c
d
d
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
Graphe symétrique :
(x,y) A ⇒ (y, x) A
Graphe anti-symétrique :
(x,y) A ⇒ (y, x) A
Graphe réflexif :
(x,x) A, ∀ x ∈ A
Graphe transitif :
(x,y) A, (y,z) A ⇒ (x,z) A.
Graphe complet
(x,y)A ⇒ (y,x) A
16
Concepts fondamentaux de la théorie des graphes II. Concepts de base de la théorie des graphes
Définitions
Exemple
Graphe réflexif, anti symétrique, transitif et complet
1 2
3 4
Graphe eulérien
F
B
E
C
17
Concepts fondamentaux de la théorie des graphes III. Graphes particuliers
Graphe eulérien
F
B F
B
E
C E
C
Graphe eulérien
F F
B B
E E
C C
D
18
Concepts fondamentaux de la théorie des graphes III. Graphes particuliers
Graphe hamiltonien
5 3
1
Graphe hamiltonien
1 5 3
4
R.Harrathi Théorie des Graphes et Optimisation 38
19
Concepts fondamentaux de la théorie des graphes III. Graphes particuliers
Graphe hamiltonien
Matrice d’adjacence
1 1 2 3
2 3
1
2
3
1
1
0
1
0
1
1
0
0
20
Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes
Matrice d’adjacence
1 2 3
1
8 1 2 8 5
5
3 2 3 ∞ ∞
2 3 3 ∞ 9 ∞
9
Matrice d’incidence
1 a1 a2 a3 a4
a1 a3
a2
1 1 -1 1 0
2 3
2 -1 1 0 -1
a4 3 0 0 -1 1
21
Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes
Matrice d’incidence
1 a1 a2 a3 a4
a1 a3
a2
1 1 1 1 0
2 3
2 1 1 0 1
a4 3 0 0 1 1
Liste de successeurs
1 1 1 2
2 1
2 3 3 2
2
1 1 2 2 8
8 1
5
3 2 1 3
2 3 3
9 2 2
22
Concepts fondamentaux de la théorie des graphes IV. Représentation des graphes
Parcours en profondeur
c d 7 e 5
6
3 f g 4
2
b
23
Concepts fondamentaux de la théorie des graphes V. Parcours d’un graphe
Parcours en profondeur
Exemple:
Ordre suffixe du parcours : e, g, f, b, c, d, a
7 a
c d 6 e 1
5
3 f g 2
4
b
Parcours en profondeur
Algorithme
24
Concepts fondamentaux de la théorie des graphes V. Parcours d’un graphe
Parcours en largeur
1 a
3 c 4 d e 5
6 f g
7
b
2
Parcours en largeur
Algorithme
25
CHAPITRE 2
LA CONNEXITÉ DANS UN GRAPHE
3 4 5 6
7 8 9 10
11 12
26
La connexité dans un graphe I. Introduction
Plan de circulation dans une ville des rues avec des sens interdits,
Graphe orienté : la circulation est autorisée de n'importe quel
point de la ville vers un autre
1 2
3 4 5 6
7 8 9 10
11 12
Graphe connexe
E D E D
C F C F
A B A B
27
La connexité dans un graphe II. Connexité
Graphe connexe
F
C
A B
d d
e e
b b
f f
28
La connexité dans un graphe II. Connexité
d
e {f,d,e,b}
b
f
a C1
g
c
Graphe réduit
d
e
b C2
f
29
La connexité dans un graphe III. Recherche des composantes connexes
Algorithme de Kosaraju-Shamir
1. Appliquer un parcours en profondeur de G en numérotant les
sommets dans l’ordre suffixe
2. Construire le graphe transposé GT obtenu en inversant le sens des
arcs de G.
3. Appliquer un parcours en profondeur de GT en démarrant par le
sommet de plus grand numéro suffixe
Chaque arborescence de la forêt obtenue à l’étape précédente est une
composante fortement connexe.
30
La connexité dans un graphe III. Recherche des composantes connexes
Exemple:
Parcours suffixe : e, d ,f, b, g, c, a
7
a
6 g 5
c
2 d 1
e
b 4
3 f
G GT :
7
a 7
6 g 5
a
6
c c
g
5
2 d 1 d
e
2 e 1
b 4 b 4
3 f
3
f
31
La connexité dans un graphe III. Recherche des composantes connexes
7 a
6 Forêt de l'exploration en profondeur
c
g
5
0
2 d 1 a b
e
g e
f
b 4
3 c d
f
composante fortement connexe
Principe :
Calculer la matrice de la fermeture transitive d'un graphe
a a
b Fermeture transitive ? b
c c
a b c a b c
a 0 1 0 Matrice d’adjacence?
a 1 1 1
b 1 0 1 b 1 1 1
c 0 0 0 c 0 0 0
32
La connexité dans un graphe III. Recherche des composantes connexes
Principe :
Calculer la matrice de la fermeture réflexive transitive d'un
graphe
a a
c c
Matrice d’adjacence? 1 1 1
0 1 0 1 1 1
1 0 1
0 0 1
0 0 0
A B A+B A × B
1 1 1 1
1 0 1 0
0 1 1 0
0 0 0 0
33
La connexité dans un graphe III. Recherche des composantes connexes
b × b 1 0 1
c 0 0 0
c M a b c M2 a b c
a 0 1 0 a 1 0 1
b 1 0 1 b 0 1 0
c 0 0 0 c 0 0 0
Exemple de calcul
M2[a,a]=M[a,a]×M[a,a] + M[a,b] × M[b,a] + M[a,c]× M[c,a]
M2[a,c]=M[a,a]×M[a,c] + M[a,b] x M[c,b] + M[a,c] × M[c,c]
Exemple de calcul
M2[a,a]=M[a,a]×M[a,a] + M[a,b] × M[b,a] + M[a,c]× M[c,a]
M2[a,a]= 1 car M[a,b] = 1 et M[b,a] =1
Il existe un chemin du sommet a au sommet a
Chemin=(a,b,a)
R.Harrathi Théorie des Graphes et Optimisation 68
34
La connexité dans un graphe III. Recherche des composantes connexes
35
La connexité dans un graphe III. Recherche des composantes connexes
a M[1] M[2]
a b c a b c
b
a 0 1 0 a 1 0 1
b 1 0 1 b 0 1 0
c c 0 0 0 c 0 0 0
36
La connexité dans un graphe III. Recherche des composantes connexes
37
La connexité dans un graphe III. Recherche des composantes connexes
1
Chemin de 1 à 4: 1 3 4 2
3
Sommets intermédiaires : 3, 4
2
4
38
La connexité dans un graphe III. Recherche des composantes connexes
pas de k pas de k
39
La connexité dans un graphe III. Recherche des composantes connexes
1 0 0 1 0
1 0 0 1 0
3 0 0 0 1
3 0 0 0 1
1 0 1 1
1 0 1 1
0 1 0 1
0 1 0 0 2 4
2 4
1 1
1 0 1 1 1 1 1 1
3 0 0 0 1 3 0 1 0 1
1 0 1 1 1 1 1 1
2 4 0 1 0 1
2 4 0 1 0 1
40
La connexité dans un graphe III. Recherche des composantes connexes
1 1 2 3 4 1 3 2 4
1 1 1 1 1 1 1 1 1 1
3 2 0 1 0 1 3 1 1 1 1
3 1 1 1 1 2 0 0 1 1
2 4 4 0 1 0 1 4 0 0 1 1
cfc1={1, 3} Cfc1={2,4}
Remarque
Dans cet exemple la fermeture transitive est réflexive
41
La connexité dans un graphe III. Recherche des composantes connexes
1
rendre le graphe
2 réflexive 1
2
3
3
M
I+M
0 1 0
1 0 1 1 1 0
0 0 0 1 1 1
0 0 1
1
1 1 0
1
1 1 1
2 1 1 1 2 1 1 1
0 0 1
0 0 1
3
3
1
1 1 1
2 1 1 1
0 0 1
3
42
CHAPITRE 3
PROBLÈME DE L’ARBRE COUVRANT DE
COÛT MINIMUM
C 2 D 3
3 1 2
E F
4
Quelles sont les liaisons à réaliser pour connecter toutes les villes
au moindre coût ?
43
Problème de l’arbre couvrant de coût minimum I. Introduction
C 2 D 3
3 1 2
E F
4
C 2 D 3 C 2 D 3
3 1 2 3 1 2
E F E F
4 4
44
Problème de l’arbre couvrant de coût minimum II. Définitions
Arbre
A B
C D
E F
Arbre
45
Problème de l’arbre couvrant de coût minimum II. Définitions
Arbre couvrant
Arbre couvrant T1: Coût(T1) =18 Arbre non couvrant T2: Coût(T2) =13
5
A B 5
4 A B
6 2 4 6 2
C 2 D 3
C 2 D 3
3 1 2
E F 3 1 2
4 E F
4
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
46
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Principe:
1. Trier toutes les arêtes et les placer en ordre croissant de coût
(arbre de valeurs minimales).
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Trier les arêtes par ordre croissant de coût
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6
47
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Itération 1 : choisir l’arête (E,D)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
48
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Itération 4 : Choisir l’arête (E,A)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
49
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
5
A B
4 6 2
2 D 3 cycle!!
C
3 1 2
E F
4
Itération 6 : Éliminer l’arête (B,F)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Itération 7 : Choisir l’arête (C,E)
1 - 2 - 2 - 2 - 3 - 3 - 4 - 5 -6
50
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Exemple
A B
2
C 2 D
3 1 2
E F
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Kruskal
Algorithme
51
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Principe:
1. Initialiser les sommets d’un sous arbre T à un sommet quelconque
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
52
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Itération 1 : choisir l’arête du coût minimal (A,E)
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Itération 2 : choisir l’arête (E,D)
53
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
C 2 D 3
3 1 2
E F
4
Itération 3 : choisir l’arête (D,F)
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Itération 4 : choisir l’arête (D,B)
54
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Exemple
5
A B
4 6 2
C 2 D 3
3 1 2
E F
4
Itération 5 : choisir l’arête (E,C)
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Exemple
A B
2
C 2 D
3 1 2
E F
55
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Algorithme de Prim
Algorithme
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Application
2 6 3 3 8
D 1 E 6 F 4
5 5 4 5 2
G 10 H I
1 – 2 – 2 – 3 – 3 – 4 – 4 – 4 – 5 – 5 – 5 – 6 – 6 – 8 – 10
inutiles
Poids de l’arbre : 1 + 2 + 2 + 3 + 3 + 4 + 5 = 20
56
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Application
2 6 3 3 8
D 1 E 6 F 4
5 5 4 5 2
G H I
10
10 – 8 – 6 – 6 – 5 – 5 – 5 – 4 – 4 – 4 – 3 – 3 – 2 – 2 – 1
inutiles
Coût de l’arbre : 10 + 8 + 6 + 6 + 5 + 5 + 4 + 4 = 48
113
R.Harrathi Théorie des Graphes et Optimisation
Problème de l’arbre couvrant de coût minimum III. Recherche de l’arbre couvrant de coût minimum
Application
2 6 3 3 8
D 1 E 6 F 4
5 5 4 5 2
G 10 H I
Coût de l’arbre : 2 + 4 + 1 + 3 + 3 + 5 + 2 + 5 = 20
57
CHAPITRE 4
PROBLÈME DU PLUS COURT CHEMIN
Graphe valué
Exemple B
8
V(A,B)=8
5
2
V(B,A)=+∞ A D 3
1
6
C
58
Problème du plus court chemin I. Introduction
Interprétation C
59
Problème du plus court chemin I. Introduction
5 Circuit
3
s A C t
L≤0
4 1
D
Circuit
L≥ 0
S x t
60
Problème du plus court chemin I. Introduction
Principe d’optimalité
Sous-chemin minimal de x à y
S x y t
61
Problème du plus court chemin II. Principe d’optimalité
Principe d’optimalité
Exemple
1 2 4
s x y t
4 z 5
Principe d’optimalité
S x t
62
Problème du plus court chemin II. Principe d’optimalité
Principe d’optimalité
Exemple
δ(s, t) = δ(s, y) + v(y, t)
δ(s, y) =3 δ(s, t) ≤ δ(s, z) + v(z, t)
1 2 4
s x y t δ(s, t) =7
4 z 5
δ(s, z) =4
Principe d’optimalité
Preuve
C est composé de p arcs :
s x1 x2 ………………. xk t
Comme V(xi, xj )= δxj- δxi (xi, xj ) C, on a
63
Problème du plus court chemin II. Principe d’optimalité
Principe d’optimalité
Preuve (suite)
Soit Q un chemin quelconque de s à t. Q est composé de k arcs
s y1 y2 ………………. yk t
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Principe de recherche
64
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme générique
Répéter
Pour chaque arc (q,r) :
si d(q) + v(q, r) < d(r) alors
{
d(r) d(q) + v(q, r) ;
(r) q ;
}
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme générique
(d(i),(i))
(0, -) (, -) (, -)
1 2
s x t
-3
5 4
y
(, -)
65
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme générique
Itération 2
(0, -) 1 (1, s) (2, y)
2
s x t Nombre d’itérations ?
-3
5 4
y
(-2, x)
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
Cz
z
s t
66
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
z1 z1 z1
s z z z t
zm zm zm
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
Étape 1 : Initialisation
(, -)
Pour chaque sommet i de S
d(i) + (d(i),(i)) B
8
5
(i) nul (0, -)
2
Source du graphe A A D (, -) 3
d(A) 0
1
(A) nul 6 (, -)
C
Étape 2 :
Chercher tous les chemins de longueur 1, 2, …(n-1)
67
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
Itération 1:
B (8, A) B (8, A)
8 8
5 5
(0, -) (0, -)
2 2
A D (, -) 3 A D (, -) 3
6 1 (, -) 1
6 (6, A)
C C
B (8, A)
8
5
(0, -)
2
A D (2, A) 3
6 1
(6, A)
C
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
Itération 2:
B (7, D) B (7, D)
8 8
5 5
(0, -) (0, -)
2 2
A D (2, A) 3 A D (2, A) 3
6 1 (6, A) 1
6 (3, D)
C C
B (7, D)
8
5
(0, -)
2
A D (2, A) 3
6 1
3, D)
C
68
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
Itération 3:
B (6, C) B (6, C)
8 8
5 5
(0, -) (0, -)
2 2
A D (2, A) 3 A D (2, A) 3
6 1 (3, D) 1
6 (3, D)
C C
B (6, C)
8
5
(0, -)
2
A D (2, A) 3
6 1
3, D)
C
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
69
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
Algorithme
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Bellman-Ford
v(xk , xk+1)
xk xk+1
70
Problème du plus court chemin III. Plus courts chemins à origine unique
Algorithme de Bellman-Ford
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Dijkstra
Principe:
Hypothèse : si un chemin minimal (Cx) de s à t passant par (x, y )
et les valuations des arcs sont positives alors δ(s, y)≥ δ(s, x)
Chemins minimaux
Cx
T y1
x
s y
t
y2
71
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Dijkstra
Étape 1 : Initialisation
(, -)
Pour chaque sommet i de S
(d(i),(i)) B
d(i) 8
5
(i) nul (0, -)
2
Source du graphe A A D (, -) 3
d(A) 0
1
(A) nul 6 (, -)
L’ensemble des sommets non traités : T Ø C
Étape 2 :
On ajoute un sommet non-traité de distance minimale à T
Relaxer des arcs sortant du sommet de distance minimale
Répéter l’étape 2 jusqu'a ’a que T=S
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Dijkstra
minimum 1 1
6 (6, A) 6 (3, D)
C C
6 1 6 1
(3, D) (3, D)
C C
R.Harrathi Théorie des Graphes et Optimisation 144
72
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Dijkstra
B (6, C) B B
8
(0, -) 5
2 2 2
A D (2, A) 3 A D 3 A D 3
1 1 1
6
C (3, D) C C
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Dijkstra
Algorithme
73
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Dijkstra
xi+1
x y
s
Problème du plus court chemin III. Plus courts chemins d’un sommet à des autres
Algorithme de Dijkstra
xi+1
x y
s
b
C2
L(C2)= (s,b)+(b,u) ≤ d(s, y)
d(s,b) +d(b,y) ≤ d(s, y)
d(s,b) ≤ d(s, y). Les longueurs des arcs étant positives
Contradiction : le sommet b contredit le choix de y
R.Harrathi Théorie des Graphes et Optimisation 148
74
Problème du plus court chemin III. Plus courts chemins à origine unique
Algorithme de Dijkstra
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
Principe
Soit dij(k-1) la longueur du plus court d’un chemin p de i à j dont
les les sommets intermédiaires sont dans {1, 2, . . . , k-1 }.
(i, j) = dij(k-1) .
75
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
Principe
Soit dij(k) la longueur du plus court d’un chemin de i à j dont les
les sommets intermédiaires sont dans {1, 2, . . . , k }.
K
dik(k-1) dkj(k-1)
{1, 2, …, k-1}.
préd[i, j] = préd[k, j]
i
j
dij (k-1)
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
76
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
- 1 - 1 1
9
(0) - - 2 -
3
3 - - -
- 4 4 -
R.Harrathi Théorie des Graphes et Optimisation 153
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
- 1 - 1 1
9
(1) - - 2 -
5 3 1
3 -1 - -1 2
3 1 4 3 1 2
- 4 4 -
R.Harrathi Théorie des Graphes et Optimisation 154
77
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
- 1 -2 1 9
1
3
(2) - - 2 -
5 3 12
3 1 - 1
- 4 42 -
R.Harrathi Théorie des Graphes et Optimisation 155
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
- 1 2 1 6 9
3 1
(3) -3 - 2 -1
5 3 12
3 1 - 1
-3 4 2 -
R.Harrathi Théorie des Graphes et Optimisation 156
78
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
- 14 22 1 6 4
3 1
(4) 3 - 2 1
12 3 7
3 14 - 1
3 4 2 -
R.Harrathi Théorie des Graphes et Optimisation 157
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
1 D(4) (4)
1 8
4 0 3 4 1 - 4 2 1
2
4 2 5 0 1 6 3 - 2 1
1
4 7 0 5 3 4 - 1
9
3
7 2 3 0 3 4 2 -
79
Problème du plus court chemin IV. Plus courts chemins pour tous couples de sommets
Algorithme de Floyd-Warshall
Algorithme
Problème du plus court chemin V. Comparaison des algorithmes des plus courts chemins
Plus courts
Algorithme Valuation Complexité
chemins
positive et
d’un sommet à des Bellman-Ford O(card A.card S)
négative
autres
Dijkstra positive O(card S2)
positive et
pour tous couples
Floyd-Warshall négative O(card S3)
de sommets
80
CHAPITRE 5
PROBLÈME D’ORDONNANCEMENT
Désignation Durée
Description Contraintes
tâche (en jours)
a Parquet salle de séjour 6 -
b Réaménagement salle de bains 5 -
c Réfection électricité 3 -
d Carrelage salle de bains 2 b et c achevée
e Peinture 3 c achevée
81
Problème d’ordonnancement I. Introduction
82
Problème d’ordonnancement II. La méthode MPM
di
i j
a
6
0 Paquet SJ
0 5 2
D b d F
Réam SB Carrelage SB
3 3
0
3
c e
Electricité Peinture
83
Problème d’ordonnancement II. La méthode MPM
Optimisation
0 5 2
D b d F
Réa SB Carrelage SB
3 3
0
3
c e
Electricité Peinture
0
La durée minimale du projet est 7 jours.
a
0 6
0 0 5 7
0 5 2
D b d F
3 3
0
0 3
3
c e
84
Problème d’ordonnancement II. La méthode MPM
0
a
plus tôt
0 6
0 0 5 7
0 5 2
D b d F
3 3
0
0 3
3
c e
Date limite à laquelle une tâche doit être exécutée au plus tard
sans retarder le projet.
T*i = TFin -Plus long chemin d’une tâche i à la Fin du projet
0 1=(7-6)
a
plus tôt plus tard
0 6
0 0 0 0
5 5 7 7
0 5 2
D b d F
3 3
0
0 1 3 4
3
c e
85
Problème d’ordonnancement II. La méthode MPM
0 6
0 0
0 0
0 0 0 0 5 5
5 7 7
0 2
D b d F
3 3
0 1 1
0 1 3 4
3
c e
Chemin critique
1
0 1
a
0 6
0 0
0 0
0 0 0 0 5 5
5 7 7
0 2
D b d F
3 3
0 1 1
0 1 3 4
3
c e
86
Problème d’ordonnancement II. La méthode MPM
Diagramme de GANTT
Carrelage SB
Paquet SJ
Peinture
Electricité
Réaménagement SB
0 1 2 3 4 5 6 7 temps
87
Problème d’ordonnancement III. La méthode PERT
da dc
a et b doivent être terminées pour
que c et d puissent commencer
db dd
Tâche fictive
0
6
5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB
0
3 0
3
4 6
Peinture
88
Problème d’ordonnancement III. La méthode PERT
0
6
5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB
0
3 0
3
4 6
Peinture
6
2
plus tôt
0
6
0 5 7 7
5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB
0 0
3
3 6
3
4 6
Peinture
89
Problème d’ordonnancement III. La méthode PERT
6 7
0
6
0 0 5 5 7 7 7 7
5 2 0
1 3 5 7
Réaménagement Carrelage SB
SB
0 0
3
3 4 6 7
3
4 6
Peinture
90
Problème d’ordonnancement IV. Application
Enoncé
CHAPITRE 6
PROBLÈME DU FLOT MAXIMUM
91
Problème du flot maximum I. Introduction
puits
source
50 v2 40
s p1 p
disponibilité
40 50
c2 p2 v3 demande des villes
92
Problème du flot maximum I. Introduction
0 / 50 0 / 40
s p1 v2 p
0 / 40 0 / 50
c2 p2 v3
Réseau de pipelines
un réseau de transport
3
v1 v3 puits v1 v3
source 6
8 3
S p S p
3
6
8
v2 v4 v2 v4
6
93
Problème du flot maximum II. Réseau de transport
Réseau de transport
S p
3
6
8
v2 v4
6
94
Problème du flot maximum II. Réseau de transport
3/3
v1 v3
6/8 4/6
3/3
-6
S t
1/3
6/6
8/8
v2 v4
5/6
Conservation du flot
La somme des flots sur les arcs entrants et la somme des flots sur
les arcs sortants sont égales
S p
1/3
6/6
8/8
v2 v4
5/6
6=1+5 5+3=8
95
Problème du flot maximum II. Réseau de transport
3/3
v1 v3
4/6
6/8 3/3
Principe
96
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Graphe d’écart
Capacité résiduelle
Représente la quantité de flot pouvant encore passer un arc donné
flot : f(i,j) Capacité résiduelle: Cf (i, j)
0/8 8
i j i j
Maximum d’augmentation
6
2/8
i j i j
2 Maximum de diminution
8/8 8
i j i j
8/10 5
i j i j
3/4
9
R.Harrathi Théorie des Graphes et Optimisation 193
Graphe d’écart
S S p
p
0/3 3
0/6 6
0/8 v2 v4
8
v2 v4
0/6 6
97
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Application 1
Chercher le flot maximum sur le réseau suivant
98
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Itération 1
Graphe d’écart
Gf |f|=3
3 minimum 0/3
v1 v3 v1 v3
8 6 augmentation 3/8 0/6
3 3/3
du flot sur SV1V4P
S p S p
3 0/3
6 0/6
v2 v4
8 v2 v4
3/8
6 p: Chemin 0/6
augmentant
Augmentation
sur l’arc direct (u,v)
f(u,v)+ cf(p)
Itération 2
Graphe d’écart
Gf |f|=6
3 3/3
v1 v3 v1 v3
3 6 3/6
augmentation 6/8
3 3/3
5 du flot sur SV1V3P
S p S p
3 3 0/3
6 0/6
v2 v4
5 v2 v4
3/8
6 0/6
99
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Itération 3
Graphe d’écart
Gf | f | =11
3 3/3
v1 v3 v1 v3
6 3 3/6
augmentation 6/8
3 3 3/3
2 du flot sur SV2V4P
S p S p
3 3 0/3
6 5/6
v2 v4
5 v2 v4
8/8
6 5/6
Itération 4
Graphe d’écart
Gf | f | =12
3 3/3
v1 v3 v1 v3
6 3 4/6
augmentation 6/8
3 3 3/3
2 du flot sur SV2V3P
S p S p
1 3 1/3
8
6/6
5 1 8/8
v2 v4 v2 v4
5/6
5
100
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Itération 5
Graphe d’écart
Gf Max=| f | =12
3 3/3
v1 v3 v1 v3
6 4 4/6
Il n’y a pas un 6/8
3 2 3/3
2 chemin augmentant
S p S p
2 1/3
3 8
6/6
6 1 8/8
v2 v4 v2 v4
5/6
5
101
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Application 2
Chercher le flot maximum sur le réseau suivant
Réseau de transport Initialisation du flot
|f|=0
u u
4 0/4
5 0/5
3 2 P 0/3 0/2
S S P
6 3 0/6 0/3
v v
Itération 1
|f|=3
u u
4 3/4
5 augmentation 0/5
3 du flot sur SU VP
S 2 P 3/3 -3/2
S P
6 3 0/6
v 3/3
v
Augmentation Diminution
sur l’arc direct (u,v) sur l’arc inverse(v,u)
f(u,v)+ cf(p) f(v, u) -cf(p)
102
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Itération 2 |f|=4
u u
1 augmentation 4/4
5 1/5
du flot sur SUP
3 8 3/3 -3/2
S -3 P S P
6 3 0/6 3/3
v v
Itération 3
| f | =8
u 1 u
augmentation
4 4/4
du flot sur SVP 5/5
4
S -3 8 p -1/3 1/2
S p
6 3 4/6
v 3/3
v
Itération 4
Max=| f | =8
u 5 u
Il n’y a pas un
4 4/4
chemin augmentant 5/5
5 -1/3
S p S 1/2 p
2
4 3 4/6 3/3
v v
103
Problème du flot maximum III. Algorithme de Ford- Fulkerson
Algorithme
104