Académique Documents
Professionnel Documents
Culture Documents
optimisation
Le cours «Théorie des graphes» couvre les notions et les concepts de base de la théorie
des graphes, ainsi que les algorithmes fondamentaux d’optimisation pour résoudre le
problème de recherche d'un plus court chemin.
Objectifs:
Introduction aux concepts de la théorie des graphes, des algorithmes fondamentaux sur
les graphes, et à leurs applications
Définir les Problèmes de coloriage et d’optimisation sur les graphes, algorithmes : arbre
de coût minimum, chemins maximaux ou minimaux.
Apprendre comment résoudre le problème de recherche d'un plus court chemin par des
algorithmes d’optimisation.
Présenter les réseaux de transport, flots, circuits, séparateurs; algorithmes de Ford-
Fulkerson, Problèmes d’affectation, couplages maximaux.
2
Apprendre comment planifier des projets par les réseaux.
Plan du cours
Bibliographie
3
Chapitre1: Concepts fondamentaux de la théorie
des graphes
4
Concepts fondamentaux de la théorie des graphes
• Télécommunications,
• Chimie,
• Applications industrielles, …
2
4
3 5
X = { 1, 2, 3, 4, 5 }
U = { (1, 2), (1, 3), (2, 3), (3, 2), (4, 4), (4, 5) }
Pour un arc u = (i, j), i est l’extrémité initiale, j l’extrémité finale
(ou bien origine et destination). 6
Concepts fondamentaux de la théorie des graphes
C'est a dire que (Xi,Xj) est équivalent a (Xj,Xi). Une paire (Xi,Xj) est appelée
une arrête, et est représentée graphiquement par Xi Xj.
Par exemple: 1 5 6
4
2
3
8
Concepts fondamentaux de la théorie des graphes
i est successeur ou suivant de j si (j, i) ; l'ensemble des successeurs de i
est noté S(i).
i est prédécesseur ou précédent de j si (i, j) ; l'ensemble des prédécesseurs
de i est noté P(i).
Degrés
Dans un graphe non orienté, le degré d'un sommet est le nombre d'arêtes
incidentes à ce sommet(dans le cas d'un graphe simple, on aura
Le degré extérieur de i, , est le nombre de sommets suivants de i ;
Le degré de i est: 9
Concepts fondamentaux de la théorie des graphes
Deux sommets sont adjacents (ou voisins) s’ils sont joints par un arc.
Deux arcs sont adjacents s’ils ont au moins une extrémité commune.
Un graphe non-orienté est dit simple s’il ne comporte pas de boucle, et s’il ne
10
Concepts fondamentaux de la théorie des graphes
alors un descendant de i.
Soit .On dit qu'un arc de U est incident à A de l'extérieur si son extrémité
terminale est dans A et son extrémité initiale dans X\A
Il est dit incident à A de l'intérieur s'il est incident à X\A de l'extérieur.
12
Concepts fondamentaux de la théorie des graphes
4. Exercice d’application
Dessiner un graphe non orienté complet à 4 sommets.
13
Concepts fondamentaux de la théorie des graphes
14
Concepts fondamentaux de la théorie des graphes
2. Représentation par listes d'adjacence
Soit le graphe G = (X, U). On suppose que les sommets de X sont numérotés de
1 à n, avec . La représentation par listes d'adjacence de G consiste en un
tableau T de n listes, une pour chaque sommet de X. Pour chaque sommet ,
la liste d'adjacence est une liste chainée de tous les sommets tels qu'il
existe un arc ou une arête .
Autrement dit, contient la liste de tous les sommets successeurs de . Les
sommets de chaque liste d'adjacence sont généralement chainés selon un ordre
arbitraire.
Si le graphe est valué (par exemple, si les arêtes représentent des distances), on
peut stocker dans les listes d'adjacence, en plus du numéro de sommet, la valuation
de l'arête.
15
Concepts fondamentaux de la théorie des graphes
16
Concepts fondamentaux de la théorie des graphes
4. Exercice d'application
1. Donnez les représentations par matrice d’adjacence et listes d’adjacence du
graphe non orienté suivant :
x2
V2
V4
V1
x3 17
x1 V3
Concepts fondamentaux de la théorie des graphes
5. Des définitions
Longueur d'un chemin (ou d’une chaîne) :nombre d'arcs du chemin (ou d’arêtes
de la chaîne)
Distance: la distance entre deux sommets d’un graphe est la plus petite longueur
Diamètre : Le diamètre d’un graphe est la plus longue des distances entre deux
sommets.
Sous Graphe : le graphe G' est un sous graphe de G si l'ensemble des sommets
de G' est inclus dans l'ensemble des sommets de G, et si l'ensemble des arcs de G'
est égal au sous-ensemble des arcs de G reliant entre eux tous les sommets de G’ ;
on a donc retiré de G certains sommets, et tous les arcs adjacents à ces sommets.18
Chapitre 2: Cheminements et connexités
19
Cheminements et connexités
distincts telle que si i suit j dans cette suite (i,j) est un arc.
Un chemin est élémentaire si les sommets qu’il contient sont tous distincts.
20
Cheminements et connexités
II. Cheminements et connexités
1. Notions de connexité
Graphes non orientés:
Un graphe non orienté est connexe si chaque sommet est accessible à partir de n'importe
21
• En revanche, le sous-graphe défini par les sommets {a, b, c, d} est connexe.
Cheminements et connexités
Un graphe G = (X,U) est dit simplement connexe ou connexe si :
• un graphe orienté est fortement connexe si chaque sommet est accessible à partir
de n'importe quel autre. Autrement dit, si pour tout couple de sommets distincts
2. Exercices
Exercice 1
Trois pays envoient chacun à une conférence deux espions; chaque espion doit
Exercice 2
Etant donné un groupe de dix personnes, le tableau suivant indique les paires de
personnes qui ont une relation d'amitié.
1) Représentez cette situation par un graphe d'ordre 10 dans lequel une arête
entre les sommets i et j signifie qu'il y a une relation d'amitié entre i et j.
2) Ce graphe est-il complet ? connexe ?
3) Si l'adage "les amis de nos amis sont nos amis" était vérifié, que pourrait-on
en conclure sur la structure du graphe ?
24
Cheminements et connexités
1. Définition
Dans un graphe non orienté, une chaine eulérienne est une chaine qui emprunte une
De même, un cycle eulérien est un cycle qui emprunte une et une seule fois chaque
arête du graphe.
Un graphe comportant une chaine ou un cycle eulérien est appelé graphe eulérien.
impairs, et les degrés de tous les autres sommets du graphe sont pairs.
un chemin eulérien est un chemin qui emprunte une et une seule fois
De même, un circuit eulérien est un circuit qui emprunte une et une seule
26
Cheminements et connexités
2. Exercices d’application
Exercice1
27
Cheminements et connexités
Exercice 2
1- Justifier que G n’admet pas un cycle eulérien mais qu’il admet des chaînes
eulériennes.
28
Cheminements et connexités
Exercice 3
Pour les graphes suivants dites s’ils admettent au moins une chaîne eulérienne et
dans l’affirmatique indiquez en une
4-3-2-5-1
29
Cheminements et connexités
Exercice 4
30
Cheminements et connexités
IV. Notion de graphe hamiltonien
Dans un graphe simple non orienté comportant n sommets, une chaine
(< a; e; b; d; c; a >)
En revanche, le graphe suivant ne possède pas de cycle hamiltonien, mais possède
1. Coloriages
Un coloriage du graphe G est une manière d’attribuer une couleur à chacun de
ses sommets. On dit qu’un coloriage est propre si deux sommets reliés par une
arête ont des couleurs différentes. Le graphe G étant fini,
Remarque : le problème du coloriage d’un graphe avec un nombre limité de
couleurs est un problème combinatoire (on dit qu’il s’agit d’un problème NP-
complet). Cela signifie que tout algorithme résolvant ce problème de façon
exacte pourra prendre un temps exponentiel par rapport au nombre de sommets
du graphe (de l’ordre de 2n pour n sommets). Le problème de déterminer le
nombre chromatique d’un graphe est également exponentiel, et est en fait encore
plus difficile. 32
Cheminements et connexités
2. Nombre chromatique
On peut définir le nombre chromatique X(G) d’un graphe fini G comme le plus
colorier tous les sommets du graphe sans que deux sommets adjacents soient de
la même couleur.
Le nombre chromatique d'un graphe est inférieur ou égal au plus grand degré de
Correction:
1. Dès qu’il y a une arête, il faut au moins deux couleurs. Un graphe de nombre chromatique 1
2. Soit un graphe bipartite (on suppose qu’il a au moins une arête), et soient I et J les deux
ensembles de sommets indépendants de ce graphe. Alors on peut colorier tous les éléments de
I avec une même couleur, et tous les éléments de J avec une autre couleur. Le nombre
3. Dans un graphe complet, deux sommets quelconques sont reliés. Son nombre chromatique
34
Cheminements et connexités
Exercice 2
Faire en sorte que deux sommets ayant une arc commune soient coloriés de deux
couleurs différentes...
35
Cheminements et connexités
4. Algorithme de Welch-Powell: algorithme glouton
Colorer un graphe c'est colorer les sommets de telle façon que deux sommets distincts et adjacents
• Méthode :
1- Ranger les sommets par ordre décroissant de leurs degrés ;
Correction
Tout graphe contenant un triangle (K3) ne peut être colorié en moins de trois
couleurs.
37
Cheminements et connexités
Exercice 2
38
Cheminements et connexités
Exercice 3
Recopier le graphe ci-dessous et utiliser l’algorithme de welch-Powell pour le
colorier.
39
Cheminements et connexités
Exercice 4
T est le graphe ci-contre:
1) On note G (T) le nombre chromatique de T.
a- Pourquoi le sous graphe constitué des sommets C, D, E et F est complet.
b- Démontrer que 4 ≤ G (T) ≤ 6.
c- Déterminer la valeur de G (T)
2) On considère un groupe d’élèves notés A, B, C, D, E, F et G.
Pour un exposé, les élèves se mettent en équipes, mais il faut respecter les
incompatibilités entre les élèves.
Dans le tableau ci-après, chaque croix indique une incompatibilité entre les élèves
correspondants.
a- Si l’on décide de modéliser ce tableau d’incompatibilité par le graphe T, quel sens
faut-il donner à l’existence d’une arrête entre deux sommets?
b- Combien d’équipes faudra-t-il créer en minimum?
Proposer une répartition des élèves en équipes :
(une équipe peut comporter un seul élève).
40
Cheminements et connexités
Exercice 5
41
Cheminements et connexités
Exercice 6
Dans la ville de GRAPHE, on s’intéresse aux principales rues permettant de
relier différents lieux ouverts au public, à savoir la mairie (M), le centre
commercial (C), la bibliothèque (B), la piscine (P) et le lycée (L). Chacun de
ces lieux est désigné par son initiale. Le tableau ci-dessous donne les rues
existant entre ces lieux.
44
Arbres et arborescences
I. Définition
Les arbres et les arborescences sont des graphes particuliers très souvent utilisés en
4. G est sans cycle, et en ajoutant une arête, on crée un et un seul cycle élémentaire,
46
Arbres et arborescences
Dans un graphe G=(X,U), on appelle racine, un point a tel que tout autre sommet du
graphe puisse être atteint par un chemin issu de a. Une racine n’existe pas toujours.
47
Arbres et arborescences
- x est un ancêtre de y
- y est un descendant de x
48
Arbres et arborescences
1 est la racine
9,10,6,3,11,12,8 sont les feuilles
11 est un descendant de 4, mais pas de 2
2 est un ancêtre de 10
49
Arbres et arborescences
1 est la racine
2,3,4 sont à la profondeur 1
5,6,7,8 à la profondeur 2
La hauteur de 2 est 2, celle de 9 est 4, celle de 3 est 2, celle
de 1 est 1.
50
Arbres et arborescences
Exercice
On considère le graphe non orienté suivant :
52
Arbres et arborescences
Exercice
L’ile du Nivéou, en Camargue, se consacre à la culture du riz. Sur cette ile se trouvent 9
La culture du riz suppose que l’on puisse périodiquement inonder l’ensemble des champs.
Cela est réalisé en ouvrant des vannes placées dans les murs séparant les champs et le
Rhône ou les champs entre eux. Etant donné que l’installation d’une vanne est coûteuse,
il s’agit de déterminer le nombre minimum de vannes et leur emplacement pour pouvoir,
Correction :
un sommet pour chaque intersection de mur, et une arête pour chaque mur :
54
Arbres et arborescences
En considérant que lorsqu’on place une vanne sur un mur, on supprime l’arête
55
Arbres et arborescences
III. Le problème de recherche d'un arbre de poids minimum
Le problème de recherche d'un arbre de poids minimum (minimum tree of pods) Si on
associe à chaque arc d'un graphe G=(X,U) une valeur (un poids).
Le problème de l'arbre de coût minimum consiste à trouver un sous graphe qui est un
peut être représenté comme un problème de recherche d'un arbre de coût minimum. En
effet, on veut relier tous les points de la localité sans avoir de lignes inutiles, d'où la
recherche d'un arbre.
Ensuite on veut avoir un coût d'installation minimum, alors on associera à chaque
57
Arbres et arborescences
1. Algorithme de kruskal
Le principe: L'idée de l'algorithme de Kruskal est tout d'abord de numéroter les
arcs par ordre des poids croissants. Ensuite de construire progressivement l'arbre A
en rajoutant dans leurs ordre, les arcs un par un. Un arc est ajouté seulement si son
adjonction à A ne détermine pas de cycle, c'est-à-dire si A ne perd pas sa notion
d'arbre, sinon on passe à l'arc suivant dans l'ordre de la numérotation.
Application: Soit G=(X,U) un graphe connexe représentant le projet d'installation
de lignes téléphoniques. Les poids représentent le coût d'installation des lignes. On
veut donner un plan d'installation minimisant le coût total de l'installation .
58
Arbres et arborescences
2. Algorithme de Prim
Principe: Construction incrémentale d'un arbre de poids minimum:
Parmi toutes les arêtes incidentes à ,choisir celle de plus faible poids .
Le nouvel arbre obtenu est constitué des sommets et et de l'arête
Tant qu'il reste des sommets en dehors de l'arbre :
Parmi l'ensemble des arêtes incidentes aux sommets de l'arbre et ayant une
extrémité hors de l'arbre, choisir celle dont le poids est le plus faible.
On construit un arbre en partant d'un sommet initial et en ajoutant chaque fois une
59
Arbres et arborescences
60
Arbres et arborescences
61
Arbres et arborescences
3. Parcours de graphes
Beaucoup de problèmes sur les graphes nécessitent que l’on parcourt l’ensemble
des sommets et des arcs/arêtes du graphe. On étudie dans la suite les deux
principales stratégies d’exploration :
Le parcours en largeur consiste à explorer les sommets du graphe niveau par
niveau, à partir d’un sommet donné.
Le parcours en profondeur consiste, à partir d’un sommet donné, à suivre un
chemin le plus loin possible puis à faire des retours en arrière pour reprendre tous
les chemins ignorés précédemment.
62
Arbres et arborescences
a. Arborescence couvrante associée à un parcours
On parcourt un graphe à partir d'un sommet donné . Ce parcours va
permettre de découvrir tous les sommets accessibles depuis , c'est à dire tous
les sommets pour lesquels il existe un chemin depuis .
En même temps que l'on effectue ce parcours, on construit l'arborescence de
été découvert à partir du sommet (autrement dit, c'est le sommet qui a fait
entrer dans la file d'attente).
Ce graphe est effectivement une arborescence, dans la mesure où chaque
65
Arbres et arborescences
66
Arbres et arborescences
Complexité en temps du parcours en profondeur:
L'opération incidents (U) est appelée une fois pour chaque sommet U
Si notre graphe est représenté par une liste d'adjacences, la complexité en temps
67
de l'algorithme DFS est O(m+n)
Arbres et arborescences
c. Applications du parcours en profondeur
Parcours en profondeur
70
Arbres et arborescences
Exercices d'application
Exercice 1
Indiquer l’ordre de visite et de post-visite des sommets du graphe non orienté ci-
71
Arbres et arborescences
Exercice 2
i) 5, 3, 2, 4, 7, 6, 8, 1?
ii) 4, 3, 5, 2, 7, 6, 8, 1?
S’il y a une solution, est-elle unique?
72
Arbres et arborescences
d. Parcours en largeur (Breadth-First Search)
O(n+m)
L’algorithme de parcours en largeur peut être étendu pour résoudre d’autres
74
Arbres et arborescences
L’opération Incidents (U) est appelée une fois pour chaque sommet U
Si notre graphe est représenté par une liste d’adjacences, la complexité en temps de
76
Arbres et arborescences
e. Applications du parcours en largeur
77
Arbres et arborescences
Exemple
En fait, c’est une généralisation des parcours hiérarchiques des arbres (on regarde la
racine puis les voisins, puis les voisins des voisins, . . .). On va donc gérer la variable à
traiter comme une file FIFO (First In First Out).
Pour parcourir le graphe en largeur, on va ajouter deux règles : on fait défiler les sommets
dans l’ordre des numéros ; on examine les successeurs d’un sommet dans le même ordre.
On commence par 1 et ses voisins 2, 4 et 5.
On regarde le plus petit voisin, c’est 2.
On regarde les voisins de 2, ce sont 3 et 4. On a déjà vu 4
(il est déjà dans la pile). On ne tient donc pas compte de l’arc(2,4).
Le sommet suivant est 4. Son seul voisin est 3, que l’on a déjà vu.
Le sommet suivant est 5. Son seul voisin est 4, que l’on a déjà empilé ́.
Le sommet suivant est 3. Le seul voisin, qui est 1, a déjà été traité.
La file est alors vide. On remonte donc `a un sommet non-atteint, dans l’ordre des
numéros.
On traite donc le sommet 6. Ses voisins sont 7 et 8.
On traite le sommet 7 dont le seul voisin est 5, qui a déjà été traité.
On passe ensuite au sommet 8 dont les voisins 4, 6 et 7 ont tous déjà été traités. 78
Arbres et arborescences
DFS vs BFS
79
Arbres et arborescences
IV. Exercice d'application
Exercice1
80
Arbres et arborescences
Exercice 2
81
Chapitre 4: Plus courts chemins
82
Plus courts chemins
I. Définitions
Un automobiliste souhaite découvrir le plus court chemin possible (en nombre de
Bordeaux, additionner les distances pour chacun d’eux, et distinguer le plus court.
Cependant, on s’aperçoit rapidement que, même en n’acceptant pas les chemins
qui contiennent des circuits, il existe des milliers de possibilités, dont la plupart83ne
Plus courts chemins
84
Plus courts chemins
85
Plus courts chemins
Le chemin < s ; e; f; e;f; g > contient le circuit < e; f; e > de coût négatif -3.
Autrement dit, à chaque fois que l'on passe dans ce circuit, on diminue de 3 le coût
total du chemin. Par conséquent, et il n'existe pas de plus court chemin
entre s et g. 86
Plus courts chemins
ou nuls,
L'algorithme de Ford-Bellman résout ce problème lorsque les coûts sont positifs,
nuls ou négatifs, sous réserve qu'il n'y ait pas de circuit absorbant (de coût
négatif).
Les deux algorithmes procèdent de la même façon, selon une stratégie dite
87
Plus courts chemins
88
Plus courts chemins
partir du sommet 1. On voit immédiatement que la plus courte distance entre les
sommets 1 et 2 est 2, alors que l'algorithme de Dijkstra donne 3.
90
Plus courts chemins
91
Plus courts chemins
Les résultats
Pour chaque sommet, est égal à longueur d'un plus court chemin de S
à X.
Père(y) = x indique que le sommet x est le prédécesseur de y sur le plus
court chemin de s à y.
92
Plus courts chemins
Données
• Un graphe valué sans circuit dont les sommets sont numérotés dans l'ordre du tri
topologique
Poser λ(1) = 0
93
Plus courts chemins
Corps de l'algorithme
POUR x de 2 à n
FAIRE (on examine les prédécesseurs du sommet x)
Calculer λ (x) = min ( λ(y) +l(y,x)) pour y dans Pred(x) (on parcourt les
prédécesseurs de x, on calcule ( λ(y) + l(y,x) et on prend le minimum de ces
quantités)
POSER père(x) = y avec y prédécesseur y de x pour lequel ce minimum est
atteint
FINFAIRE
FINPOUR
FIN
Résultats
λ(x) est égale à la longueur d'un plus court chemin de s à x.
Père(x) détermine le sommet prédécesseur de x sur le plus court chemin de s à
x. 94
Plus courts chemins
95
Plus courts chemins
V. Synthèse
96
Plus courts chemins
97
Plus courts chemins
Exercice 2
• Cherchons les plus courts chemins d’origine E dans ce graphe:
98
Plus courts chemins
Exercice 3
Déterminer l’autoroute reliant A et I de cout minimum (Application d’un
algorithme)
99
Plus courts chemins
Exercice 4
• Cherchons les plus courts chemins d’origine 1 dans ce graphe
100
Plus courts chemins
Exercice 5
101
Plus courts chemins
Correction
102
Plus courts chemins
Algorithme de Bellman
Il s'agit d'abord de numéroter les sommets du graphe dans l'ordre du tri topologique.
Num(s) = 1 num(c) = 2 num(a) = 3 num(b) = 4 num(d) = 5 num(e) = 6
Pred(s) = ∅, Pred(c) = {s}, Pred(a) = {s, c}, Pred(b) = {a, c}, Pred(d) = {a, b, c},
Pred(e) = {b, d}
On calcule successivement : λ(s) = 0, λ(c) = λ(s) + l(s, c) = 0+ 1 = 1,
père(c) = s
λ(a) = Min(λ(s) + l(s, a), λ(c) + l(c, a)) = min(0 + 5, 1 + 2) = 3 père(a) = c
λ(b) = Min(λ(a) + l(a, b), λ(c) + l(c, b)) = min(3 + 1,1 + 2) = 3 père(b) = c
λ(d) = Min(λ(a) + l(a, d), λ(b) + l(b, d), λ(c) + l(c, d)) = min(3 + 2, 3 + 1, 1 + 5) = 4,
père(d )= b
λ(e) = Min(λ(b) + l(b, e), λ(d) + l(d, e)) = min(3 + 4, 4 + 2) = 6,
père(e) = d
103
Plus courts chemins
Les longueurs des plus courts chemins sont dans les étiquettes et les arcs en gras
104
Plus courts chemins
Exercice 6
105
Plus courts chemins
Exercice 7
Considérons l’exemple suivant.
On recherche les plus courts chemins à partir du sommet a.
106
Chapitre 5: Le problème central de
l'ordonnancement
107
Le problème central de l'ordonnancement
I. Introduction
La réalisation de projets complexes comme par exemple la construction d’un
barrage, l’installation d’une nouvelle chaîne de production, l’installation d’un
nouveau système d’information,… requiert une planification au préalable et un
contrôle au cours de l’exécution. Les problèmes liés à ces objectifs sont des
problèmes d’ordonnancement .
Calendrier d’exécution
108
Le problème central de l'ordonnancement
devront être exécutées les tâches afin d’optimiser un projet donné en tenant comptes
d’un certain nbr de contraintes
Les contraintes sont de type:
temporelle
Disjonctif: La non réalisation simultanée de 2 tâches
109
Le problème central de l'ordonnancement
caractérisée par sa durée et par les contraintes qui la lie aux autres tâches
Objectif :Finir le projet le plus tôt possible
110
Le problème central de l'ordonnancement
111
Le problème central de l'ordonnancement
Exemple : Situation où l’on doit construire une maison
112
Le problème central de l'ordonnancement
Le graphe potentiel-Tâches
113
Le problème central de l'ordonnancement
1. Exercice
114
Le problème central de l'ordonnancement
Algorithmes:
1- Calcul des dates au plus tôt
2.
115
Le problème central de l'ordonnancement
116
Le problème central de l'ordonnancement
117
Le problème central de l'ordonnancement
2. Définitions
2- Les tâches dont les marges sont nulles sont dites tâches critiques
1- En cas de présence d’un circuit négatif, pour calculer les il faut calculer la
longueur du plus long chemin μ du i à fp puis
2- Si un retard est pris sur une des tâches critiques, la durée minimale du projet sera
118
augmentée d’autant.
Le problème central de l'ordonnancement
119
Le problème central de l'ordonnancement
3. Le diagramme de gantt
a. Principe:
On représente au sein d’un tableau, en ligne les différentes tâches et en colonne
les unités de temps( exprimées en mois, semaines, jours, heures…) La durée
d’exécution d’une tâche est matérialisée par un trait au sein du diagramme.
b. Réalisation:
c. Exemple
121
Le problème central de l'ordonnancement
122
Le problème central de l'ordonnancement
123
Le problème central de l'ordonnancement
IV. Traduction des contraintes
Si les contraintes de type potentiel ne sont pas uniquement des contraintes
un arc(i,j) de valeur di +t
arc(dp,j) de durée bj
124
Le problème central de l'ordonnancement
REMARQUES
1.Attention, l’ajout des contraintes peut introduire des circuits dans le graphe.
125
Le problème central de l'ordonnancement
V. Le graphe potentiel étapes(PERT)
126
Le problème central de l'ordonnancement
Les dates au plus tôt et au plus tard de l’exécution d’une tâche sont calculées de
►La durée min du projet est la longueur du plus long chemin entre le début et la
fin du projet.
127
Le problème central de l'ordonnancement
REMARQUES:
1.un sommet est une étape signifiant toutes les tâches qui y arrivent sont terminées
toutes les tâches qui en partent peuvent commencer
2.il est quelque fois nécessaire d'introduire des tâches fictives de durée nulle
128
Le problème central de l'ordonnancement
3. deux arcs ne peuvent avoir à la fois la même origine et la même extrémité. Il est
nécessaire de rajouter une tâche fictive dans ces conditions
129
Le problème central de l'ordonnancement
130
Le problème central de l'ordonnancement
Exemple
131
Le problème central de l'ordonnancement
132
Chapitre 6: Réseaux de transport
133
Réseaux de transport
I. Introduction
Les réseaux de transport peuvent être utilisés pour modéliser l’écoulement de liquide à
réseau de transport.
Le graphe possède en plus deux sommets particuliers, notés s et p et correspondant
135
Réseaux de transport
136
Réseaux de transport
On suppose qu'il n'y a pas de sommet "inutile", c'est-à-dire que pour tout
sommet il existe un chemin de s à p passant par
capacité c est définie pour tout couple de sommets , de telle sorte que si
137
Réseaux de transport
Exemple :
l’usine “Max & Fils”, localisée à Lille, produit des voitures. Ces voitures sont
acheminées en train jusqu’à Lyon, où elles sont stockées dans un entrepôt puis vendues.
Les capacités des trains sont :
sur la ligne Lille/Reims : 16 voitures par jour,
sur la ligne Lille/Paris : 13 voitures par jour,
sur la ligne Paris/Reims : 4 voitures par jour,
sur la ligne Reims/Paris : 10 voitures par jour,
sur la ligne Reims/Dijon : 12 voitures par jour,
sur la ligne Paris/Nevers : 14 voitures par jour,
sur la ligne Dijon/Paris : 9 voitures par jour,
sur la ligne Nevers/Dijon : 7 voitures par jour,
sur la ligne Nevers/Lyon : 4 voitures par jour,
sur la ligne Dijon/Lyon : 20 voitures par jour.
Ce réseau de transport sera modélisé par le graphe suivant :
138
Réseaux de transport
139
Réseaux de transport
III. Problème du flot maximal
On s'intéresse ici au problème du flot maximal dans un tel réseau de transport.
depuis la source jusqu'au puits, sans violer aucune contrainte de capacité, et tout
en préservant la propriété de "conservation de flot" : excepté la source et le puits,
le matériau doit s'écouler d'un sommet à l'autre sans perte ni gain.
Autrement dit, le débit à l'entrée d'un sommet doit être égal au débit en sortie.
140
Réseaux de transport
1. Contrainte de capacité :
2. Contrainte de symétrie :
3. Conservation du flot :
La valeur d'un flot f, notée est égale à la somme des flots partant de la
source, et du fait de la propriété de conservation des flots, est aussi égale à
la somme des flots arrivant au puits :
141
Réseaux de transport
Exemple : Un flot pour le réseau de transport de l’usine “Max & Fils” est :
Ce flot sera généralement représenté en ne faisant figurer que les arcs de valeurs
positives :
14
Réseaux de transport
Définition du problème du flot maximal : Etant donné un réseau de transport
143
Réseaux de transport
1. Algorithme de Ford Fulkerson
On étudie ici l'algorithme de Ford-Fulkerson permettant de résoudre le problème
du flot maximal sans passer par sa modélisation linéaire.
et un flot f, on définit :
La capacité résiduelle d'un couple de sommets notée
est la quantité de flot pouvant encore passer par sans dépasser la
capacité:
145
Réseaux de transport
Le réseau résiduel de G, noté est le graphe partiel de G ne
contenant que les arêtes dont la capacité résiduelle est positive:
résiduel
La capacité résiduelle d'un chemin améliorant ch , notée est la plus
grande quantité de flot transportable par les arcs du chemin.
Théorème : Soient
(G; c; s; p), un réseau de transport,
f, un flot de G,
Ch un chemin améliorant dans le réseau résiduel
146
Réseaux de transport
un flot défini par:
147
Réseaux de transport
148
Réseaux de transport
Principe:
L'idée de l'algorithme de Ford Fulkerson est de faire passer un flot compatible dans
le réseau, le plus évident est le flot nul, puis l'améliorer jusqu'à ce qu'on obtienne
un flot complet.
Une chaine pour laquelle le flot peut être augmenté est une chaine dont les arcs
dans le sens direct n'ont pas atteint leur limite et les arcs dans le sens indirect ont
un flux non nul qui les traverse.
Autrement dit: une chaine C est dite augmentante si:
149
Réseaux de transport
152
Réseaux de transport
On peut alors trouver un deuxième chemin améliorant <s,s2,s1,p>, de capacité
On peut continuer ainsi, de telle sorte qu’à chaque fois on trouve un chemin
améliorant de capacité résiduelle égale à 1. Par conséquent, ce n’est qu’au bout de
2000 étapes successives que l’on trouvera le flot maximal et que l’algorithme
s’arrêtera.). l’algorithme converge plus rapidement, et nécessite au plus n*p calculs
de chemins améliorants successifs (avec n = nombre de sommets et p = nombre
d’arcs). Par conséquent, pour chercher le chemin améliorant à chaque étape de
l’algorithme de Ford-Fulkerson, il faudra utiliser un parcours en largeur d’abord,
153
permettant de trouver un plus court chemin améliorant (en nombre d’arcs).
Réseaux de transport
3. Complexité
Si on considère un réseau de transport ayant n sommets et p arcs, l'initialisation
Dans le réseau R, le flot qui traverse chaque arc ne dépasse pas sa capacité, alors se
flot est compatible.
Flot complet:
Un flot est complet si pour tout chemin allant de la source au puits il y'a au moins un
arc saturé, c'est-à-dire: le flux qui le traverse est égal à sa capacité (f(u)=c(u)).
155
Réseaux de transport
Exemple:
Dans la figure précédente, on a 3 chemins qui mènent de s à p pour lesquels on a au
moins un arc saturé. Le flot est complet.
156
Réseaux de transport
IV. Exercice d’application
Une usine à gaz alimente une ville V par l'intermédiaire du réseau de distribution
ci-dessous.
Les nombres associés aux arcs représentent les capacités de transport.
[1] Christine Solnon, Théorie des graphes et optimisation dans les graphes.
158