Cours de
Cours de
PLAN DU COURS
I - Définitions
N’GUESSAN REMI 1
COURS DE RECHERCHE OPERATIONNELLE
La recherche opérationnelle apparaît en 1940 en Angleterre puis aux États-Unis à des fins de
recherche militaire : il s’agissait pour le Royaume Uni d’utiliser au mieux ses moyens
militaires, à l’époque insuffisants (avions, forces antiaériennes, moyens maritimes. L’idée
fondamentale était de mettre autant de soin dans l’emploi des moyens qu’on en avait mis pour
les concevoir et les construire.
Après la guerre, la recherche opérationnelle s’introduit dans le monde des affaires, l’objectif
étant d’organiser, produire, stocker et vendre de façon optimale. L’arrivée de l’ordinateur
allait accélérer l’essor de cette nouvelle branche des mathématiques qu’est la théorie des
graphes, support théorique de la recherche opérationnelle, laquelle utilise également trois
autres branches fondamentales :
la statistique, usant du calcul des probabilités, notamment la théorie des files d’attente
la théorie des graphes qui s’est surtout développé au 20è siècle, dans les années 50,
avec C. Berge, en France, et D. König en Allemagne. Elle s’appuie sur la théorie des
ensembles et les relations binaires.
L’essor cohérent des réseaux de chemin de fer, des lignes aériennes, du réseau téléphonique
doit beaucoup à la théorie des graphes.
Dans ce module, nous allons voir uniquement la recherche opérationnelle utilisant la théorie
des graphes.
L’objectif principal de ce cours est d’acquérir une connaissance de certaines techniques
considérées à l’heure comme des méthodes de base issue de la recherche opérationnelle
appliquée au système concurrentiel économique ou militaire en mettant en œuvre des
stratégies afin :
Les exemples et exercices qui accompagnent ce cours permettent aux étudiants de modéliser
des problèmes simples en utilisant les techniques de la Recherche Opérationnelle. Ces
exemples et exercices ne tiennent évidemment pas compte de tous les paramètres d’une
véritable analyse professionnelle. Ils sont simplifiés volontairement et sont choisis suivant
l’orientation des étudiants, en majorité dans le domaine de la gestion; mais les techniques
utilisées s’appliquent également à la modélisation en ingénierie et en sciences.
N’GUESSAN REMI 2
COURS DE RECHERCHE OPERATIONNELLE
I. GRAPHES
En un mot un graphe permet de décrire un ensemble d’objets et leurs relations, c’est à dire les
liens entre les objets.
Les objets sont appelés les noeuds, ou encore les sommets du graphe.
Un lien entre deux objets est appelé une arête
1-Définitions
a- Graphe
G=(V,E) avec V={ a, b, c, d, e, f, g, h } E={ (a,d), (b,c), (b,d), (d,e), (e,c), (e,h),
(h,d), (f,g), (d,g), (g,h) }
N’GUESSAN REMI 3
COURS DE RECHERCHE OPERATIONNELLE
Un graphe peut être représenté par un ensemble de points (sommets) reliés entre eux par des
flèches. Une flèche relie un sommet xi à un sommet xj si xj Є E(xi)
Un sommet xj est dit suivant de xi à un sommet xj si xj Є E(xi) donc s’il y a une flèche de xi
vers xj on dit que xi est dit précèdent de xj
Deux sommets x et y sont adjacents si il existe l’arête (x,y) dans E. Les sommets x et y sont
alors dits voisins
Une arête est incidente à un sommet x si x est l’une de ses extrémités
Remarques
Les objets représentés par les sommets sont sans importance pour la manipulation du
graphe.
Un graphe est d’ordre n si il comporte n sommets.
Toute la richesse des graphes vient évidemment de la grande diversité que peut avoir
l’ensemble de ses arêtes. Pour appréhender la structure d’un graphe, nous pouvons
commencer par la caractériser localement en regardant pour chaque sommet les autres
sommets auxquels il est relié, le nombre d’arêtes dont il est extrémité,…
Un graphe est dit simple lorsqu’il existe au plus une arête liant deux sommet et dans le
cas contraire le graphe est multiple.
b- sous-graphe
Pour caractériser de manière moins locale la structure d’un graphe, il est possible de
rechercher des parties remarquables du graphe, en restreignant l’ensemble des sommets (sous
graphe).
Un sous graphe de G consiste à considérer seulement une partie des sommets de V et les
liens induits par E. Par exemple si G représente les liaisons aériennes journalières entre les
principales villes du monde, un sous graphe possible est de se restreindre aux liaisons
journalières entre les principales villes Africaines.
Définition
Pour un graphe G = (V, E)
Un sous graphe de G est un graphe H= (W, E (W)) tel que W est un sous-ensemble de V, et
E(W) sont les arêtes induites par E sur W, c’est à dire les arêtes de E dont les 2 extrémité sont
des sommets de W.
Un exemple de sous graphe sur le graphe de l’exemple introductif.
c- Graphe partiel
N’GUESSAN REMI 4
COURS DE RECHERCHE OPERATIONNELLE
Pour caractériser de manière moins locale la structure d’un graphe, il est possible de
rechercher des parties remarquables du graphe, en restreignant l’ensemble des arêtes (graphe
partiel).
Un graphe partiel de G consiste à ne considérer qu’une partie des arêtes de E. En reprenant le
même exemple, un graphe partiel possible est de ne considérer que les liaisons journalières de
moins de 3 heures entre les principales villes du monde.
Définition
Le graphe partiel I défini par l’ensemble F={ (a,d), (b,d), (d,e), (e,h), (h,d), (f,g) } d’arêtes
2- sommets et arcs
Soit l’arc U=(x ,y) ; x et y sont des extrémités .
Boucle : arc(x,x)
Arcs adjoints : arcs ayant au moins une extrémité en commun
Sommet adjacents à x (ou sommet voisins de x) ensemble des suivants, des précedent de x.
1 2 3 4 5 6
1 1
2 1 1
3 1 1
4 1
5 1
6 1 1
N’GUESSAN REMI 5
COURS DE RECHERCHE OPERATIONNELLE
1-Chemin
a- Définition
Un chemin est une liste de sommets telle qu'il existe dans le graphe une
arête entre chaque paire de sommets successifs.
La longueur du chemin correspond au nombre d'arêtes parcourues : k-1.
b- Exemple
Un chemin de longueur 5 dans le graphe reliant les sommets f à b.
p=( f, g, h, e, d, b )
c- Remarque
Il existe bien d'autres chemins pour aller de f à b : par exemple (f, g, d, b) de longueur 3, le
chemin (f, g, d, h, e, d, b) de longueur 6, ou encore (f, g, d, h, e, d, h, e, d, b) de longueur 9, ...
(d, h, e, d) est appelé un cycle. Ce cycle pouvant être emprunté autant de fois que l'on veut, il
y a un nombre infini de chemins de f à b
Un chemin p est simple si chaque arête du chemin est empruntée une seule fois.
Un cycle est un chemin simple finissant à son point de départ :
b- Exemple
N’GUESSAN REMI 6
COURS DE RECHERCHE OPERATIONNELLE
c- Remarque
Les termes de chemin et de circuit s'emploient en propre pour les graphes orientés. Pour les
graphes non orientés que nous manipulons ici, on parle de chaîne et de cycle. Cependant la
définition formelle est exactement la même dans les 2 cas, seule change la structure (graphe
orienté ou non) sur laquelle ils sont définis.
3- Chemin élémentaire
a- Définition
Un chemin est élémentaire si chacun des sommets du parcours est visité
une seule fois :
Un chemin élémentaire est donc un chemin simple et sans cycle.
b- Exemple
c- Propriété
Dans un graphe G d'ordre n
Tout chemin élémentaire est de longueur au plus n-1
Le nombre de chemins élémentaires dans le graphe est fini
4- Connexité
N’GUESSAN REMI 7
COURS DE RECHERCHE OPERATIONNELLE
La notion de connexité est liée à l'existence de chemins dans un graphe : depuis un sommet,
existe-t-il un chemin pour atteindre tout autre sommet? Les graphes connexes correspondent à
la représentation naturelle que l'on se fait d'un graphe. Les graphes non connexes apparaissent
comme la juxtaposition d'un ensemble de graphes : ses composantes connexes.
a- Définition
Un graphe est connexe ssi il existe un chemin entre chaque paire de sommets
b- Exemple
III.CHEMINEMENT
Lorsqu'un chemin existe entre deux sommets dans un graphe, l'être humain se pose
rapidement la question non seulement de trouver un tel chemin, mais bien souvent il est
intéressé par le plus court chemin possible entre ces deux sommets. Notre oeil est d'ailleurs
particulièrement efficace dans cette tâche, tant que le graphe est de taille raisonnable... Mais
dès que le graphe comporte plusieurs dizaines de sommets et d'arêtes, trouver le plus court
chemin entre deux points devient vite un problème.
Nous aimerions disposer d'une méthode systématique capable, pour tout graphe et pour toute
paire de sommets s et t, de déterminer le plus court chemin entre eux. Résoudre ce problème
va donc consister à proposer un algorithme, aussi rapide que possible. Le problème de trouver
un plus court chemin est le premier problème d'optimisation auquel nous sommes confrontés.
Ainsi nous avons à notre disposition des algorithmes comme FORD et DIJKSTRA qui nous
permettent de résoudre ces problèmes.
1- Algorithme de FORD
Cet algorithme fait la recherche des plus courts chemins du sommet A vers tous les autres
sommets dans un graphe quelconque.
Principe :
2- Affecter provisoirement à tout sommet xi (i=0) la valeur j= +et poser 0=0
3-Pour tout sommet xj telque ji= V (xi-xj) où V (xi-xj) = valutation de l’arc (xi-xj)
N’GUESSAN REMI 8
COURS DE RECHERCHE OPERATIONNELLE
Explication
Pour chaque sommet, calculer son associé (au départ égal à +). Ceci va permettre de
calculer la longueur du chemin le plus court.
Calcul : on part de la racine ( associé égal à 0). On empile les successeurs en calculant le
associé (le sommet n’est empilé que si son nouveau est inférieur au précédent calculé)
Parcourir le graphe pour trouver les chemins les plus courts à partir des calculés à l’étape
précédente en partant du sommet extrémité finale des chemins
2- Algorithme de DIJKSTRA
L'algorithme de Dijkstra détermine les plus courts chemins dans un graphe avec des
valuations positives de ses arêtes, entre un sommet s et tous les autres sommets. Nous allons
nous intéresser plus particulièrement au calcul de la longueur D(x) d'un plus court chemin
entre s et x. Cet algorithme est une adaptation de l'algorithme de recherche pour calculer les
plus court chemin d'un sommet s à tous les autres sommets du graphe.
L'algorithme de Dijkstra est un algorithme de marquage, une adaptation pour le problème du
plus court chemin de l'algorithme général de recherche. Cet d’algorithme permet uniquement
la recherche des chemins minimums.
Principe
N’GUESSAN REMI 9
COURS DE RECHERCHE OPERATIONNELLE
Nous allons généraliser notre notion de plus court chemin dans le cas de graphes valués, où
chaque arête e est associée à une valeur, appelée souvent son poids, c(e). La valuation des
arêtes peut représenter des coûts de transit, des distances kilométriques, le temps nécessaire
pour parcourir les arêtes,...
Exemple
Le schéma ci-dessous représente les différents parcours pour aller d’un village A à un village
F, en région de montagne où l’étroitesse des routes impose une circulation à sens unique.
1-Algoritme de FORD
-Solution-
1- Numéroter les sommets
2- Affecter les et 0 0
3- Calcul des différents
1 0 3 2 4 2
1 3 2 7
2 0 8 3 2 1
2 8 3 8
N’GUESSAN REMI 10
COURS DE RECHERCHE OPERATIONNELLE
4 1 2 5 4 7
4 5 5 12
3 1 6 5 3 2
3 9 5 10
On a donc x 0 , x 1 , x 3 , x 2 , x 4 , x 5 de longueur 10
2- Algorithme de DIJKSTRA
-Solution-
On pose D 0 x 1 1 0
t1 1
Déterminons les sommets D 0 mais qui sont directement liés aux éléments de
D 0 : x2 , x3 , x4
Calcul des différents
1 V x1 , x 2 3
2 3
1 V x1 , x 3 8 k min 2 , 3 , 4 min 3 ;8 ; 6
3 8 k 3 2 doncx k x2
1 V x1 , x 4 6
4 6 D 1 D 0 x 2 x 1 ; x 2
t2 2
Déterminons les sommets D 1 mais qui sont directement liés aux éléments de
D1 : x5 , x3 , x 4
Calcul des différents
N’GUESSAN REMI 11
COURS DE RECHERCHE OPERATIONNELLE
2 V x2 , x4 5 2 V x2 , x5 9
4 5 5 9
1 V x1 , x 3 8 k min 5 , 3 , 4 min 5 ;9 ;8 ; 6
3 8 k 5 4 doncx k x4
1 V x1 , x 4 6
4 6 D 2 D 1 x 4 x 1 ; x 2 ; x 4
t3 3
Déterminons les sommets D 2 mais qui sont directement liés aux éléments de
D 2 : x5 , x3 , x6
Calcul des différents
4 V x4 , x3 7 4 V x 4 , x 6 12
3 7 6 12
1 V x1 , x 3 8
3 8 D 3 D 2 x 3 x 1 ; x 2 ; x 4 ; x 3
t4 4
Déterminons les sommets D 3 mais qui sont directement liés aux éléments de
D3 : x5 , x6
Calcul des différents
2 V x2 , x5 9 4 V x 4 , x 6 12
5 9 6 12
N’GUESSAN REMI 12
COURS DE RECHERCHE OPERATIONNELLE
D 4 D 3 x 5 x 1 ; x 2 ; x 4 ; x 3 ; x 5
t5 5
Déterminons les sommets D 4 mais qui sont directement liés aux éléments de D 4 : x 6
Calcul des différents
5 V x 5 , x 6 10 4 V x 4 , x 6 12
6 10 6 12
D 5 D 4 x 6 x 1 ; x 2 ; x 4 ; x 3 ; x 5 ; x 6
Le chemin minimal est x 1 ; x 2 ; x 4 ; x 3 ; x 5 ; x 6 de longueur 10
0 si i= j
V x k , x j V x k , x j si x k , x j U
+ ∞ si x k , x j U
N’GUESSAN REMI 13
COURS DE RECHERCHE OPERATIONNELLE
D x 1 , 1 0
x j V x 1 , x j , j 1
k min j
x j D
D D x k
j min j ; k V x k , x j
NON
xn D OUI
STOP
1- Algorithme de FORD
Les n sommets numérotés de 1 à n et remplacer +par -et la condition jiV (xi-xj) par
ji≤ V (xi-xj)
2- Algorithme de DIJKSTRA
N’GUESSAN REMI 14
COURS DE RECHERCHE OPERATIONNELLE
Les arbres sont des graphes particuliers, très populaires en algorithmiques et en informatique.
Les graphes envisagés ici sont non orientés.
I- Définitions
1- Arbre
Un arbre est un graphe connexe sans cycle.
Soit n sommets (n2), on appelle arbre de n sommets un graphe de n sommets, connexe et
sans cycle (circuit).
Exemple
2- Forêt
Une forêt est un graphe sans cycle. Une forêt étant un graphe sans cycle, chacune de ses
composantes connexes est acyclique, et par définition connexe. La définition d'une forêt
correspond donc bien au sens usuel d'un ensemble d'arbres, chacune de ses composantes
connexes étant un arbre.
3- Propriété
4- Remarque
Souvent, pour manipuler un arbre, nous particularisons un sommet du graphe que nous
appelons racine. Dans le cas des graphes non orientés, le choix d'une racine r dans l'arbre est
arbitraire. Dans le cas des graphes orientés, la racine est définie de manière unique comme le
sommet sans prédécesseur de l'arbre.
Le choix d'une racine revient dans un certain sens à orienter l'arbre, la racine apparaissant
comme l'ancêtre commun à la manière d'un arbre généalogique. Le vocabulaire de la théorie
des graphes s'en inspire directement : on parle de fils, de père, de frère,...
Imaginons que nous ayons à connecter des villes entre elles, par exemple avec un nouveau
réseau très haut débit. Un certains nombre de connexions directes point à point entre les villes
sont techniquement possibles. Il nous faut choisir lesquelles parmi ces connexions nous allons
effectivement mettre en place. La distance entre 2 villes dans le réseau final a peu
d'importance au vu des débits; cependant les coûts d'installation du réseau ne sont
N’GUESSAN REMI 15
COURS DE RECHERCHE OPERATIONNELLE
évidemment pas les mêmes pour les différentes liaisons point à point. Nous aimerions donc
déterminer comment connecter toutes les villes en minimisant le coût total du réseau.
Ce problème en théorie des graphes correspond à la recherche d'un arbre couvrant de poids
minimum. L'ensemble des connexions potentielles peut être représenté par un graphe G =
(V,E) dans lequel chaque arête e est associée à un coût c(e) positif. Connecter toutes les villes
correspond à sélectionner un ensemble d'arêtes F de G tel que le graphe partiel H = (V,F)
induit est connexe. Le poids de cette solution c(H) est définie comme la somme des poids de
ses arêtes.
1- L’algorithme de KRUSKAL
L'algorithme de Kruskal se base sur la caractérisation des arbres comme des graphes
acycliques maximaux au sens de l'inclusion : on ne peut ajouter une arête à un arbre sans créer
de cycle
a- Principe
Etablir une liste des arêtes par valuations croissantes. Dans le cas où k arêtes sont
de même valuation, on les distinguera en ajoutant ∑ >0 à la valeur de la seconde,
2 ∑ à la valeur de la 3 ème etc.…( on admet que les k valeurs restent inférieurs à la
valuation immédiatement supérieure dans le graphe)
Choisir l’arête de valeur minimale puis successivement au fur et à mesure de la
construction de l’arbre, l’arête de valeur immédiatement supérieurs dans la liste,
ne formant pas de cycle avec les arêtes retenus jusque là. S’arrêter lorsque tous les
sommets du graphe sont connectés.
Pour obtenir la valeur de l’arbre, additionner les valuations des (n-1) arêtes
obtenues, en ayant soin de faire ∑ =0.
Remarque : La solution (arbre) est unique si toutes les arêtes sont initialement de valeur
différentes.
b- Exemple
Considérons ci-dessous le graphe G dont les arêtes sont valuées par des coûts, on veut trouver
dans ce graphe un arbre de coût minimal en utilisant L'algorithme de Kruskal.
N’GUESSAN REMI 16
COURS DE RECHERCHE OPERATIONNELLE
-Solution-
2- Construction de l’arbre
3- Une solution est donnée par l’arbre {[D ,G] ; {[G ,F] ; {[F ,A] ; {[F ,B] ; {[B ,E] ; {[B ,C]}
de valeur : 1+2+3+3+3+4= 16 minimale.
2-Algorithme de SOLLIN
a- Principe
Etablir une liste des arêtes par valuations croissantes. Dans le cas où k arêtes sont de
même valuation, on les distinguera en ajoutant ∑ >0 à la valeur de la seconde, 2 ∑ à la
valeur de la 3ème etc.…( on admet que les k valeurs restent inférieurs à la valuation
immédiatement supérieure dans le graphe)
A chaque étape de l’algorithme, choisir arbitrairement un sommet en dehors de ceux
qui ont déjà été retenues et reliés par l’arête de valuation la plus faible, ce sommet à
l’un des sommets auxquels il est adjacent.
Lorsque l’ensemble des sommets a été utilisé entièrement :
- Ou bien le résultat obtenu est déjà un arbre et le problème est résolu.
- Ou bien on n’a encore que des sous arbres qu’on considérera comme des
sommets d’un multigraphe (c’est-à-dire graphe dont 2 sommets au moins sont reliés par
N’GUESSAN REMI 17
COURS DE RECHERCHE OPERATIONNELLE
plus d’un arc), les arêtes de ce multigraphe étant toutes les arêtes qui sont susceptibles de
connecter 2à 2 ces sous arbres et l’on reprendra l’algorithme à la 2ème étape.
Pour obtenir la valeur de l’arbre, additionner les valuations des (n-1) arêtes
obtenues, en ayant soin de faire ∑ =0.
b- Exemple
On reprend l’exemple précèdent. Considérons ci-dessous le graphe G dont les arêtes sont
valuées par des coûts, on veut trouver dans ce graphe un arbre de coût minimal en utilisant
L'algorithme de SOLLIN.
-Solution-
2- Construction de l’arbre
N’GUESSAN REMI 18
COURS DE RECHERCHE OPERATIONNELLE
4- Une solution est donnée par l’arbre {[D ,G] ; {[G ,F] ; {[F ,A] ; {[F ,B] ; {[B ,E] ; {[B ,C]}
ou {[D ,G] ; {[G ,F] ; {[F ,A] ; {[F ,B] ; {[B ,E] ; {[E ,C]} de valeur : 1+2+3+3+3+4= 16
minimale.
Remarque En remplaçant [EC] par [BC] On obtient deux nouveaux arbres de valeur
minimale.
1- Algorithme de Kruskal
Pour cet algorithme, il faut lire la liste des arêtes établie au 1ereétape dans l’ordre inverse c'est-
à-dire prendre la liste dans l’ordre décroissant.
2-Algorithme de SOLLIN
Pour cet algorithme, il faut relier le sommet choisi par l’arête de valeur maximale.
N’GUESSAN REMI 19
COURS DE RECHERCHE OPERATIONNELLE
I- Définitions
1-Réseau
Un réseau est un graphe orienté N=(V,A) avec une valuation positive de ses arcs. La
valuation c(x,y) d'un arc (x,y) est appelée la capacité de l'arc.
On distingue sur N deux sommets particuliers : une source s et une destination t. Les autres
sommets sont les noeuds intermédiaires du réseau.
Exemple
Remarque Le choix d'une source et d'une destination est arbitraire et dépend simplement du
problème que nous avons à traiter sur le réseau.
2- Le flot
Un flot représente l'acheminement d'un flux de matière depuis une source s vers une
destination t. Le flot est ainsi décrit par la quantité de matière transitant sur chacun des arcs du
réseau. Cette quantité doit être inférieure à la capacité de l'arc, qui limite ainsi le flux pouvant
transiter par lui. De plus il n'est pas possible de stocker ou de produire de la matière aux
noeud intermédiaires : un flot vérifie localement une loi de conservation analogue aux lois de
Kirshoff en électricité.
Un flot F sur un réseau N=(V,A) est une valuation positive des arcs, c'est à dire une
application de A dans R+, qui vérifie les deux propriétés suivantes :
Exemple
N’GUESSAN REMI 20
COURS DE RECHERCHE OPERATIONNELLE
Le problème du Flot Maximum consiste à trouver un flot Fmax de valeur maximale sur le
réseau N.
La valeur du flot correspond au flux net partant de s. La valeur du flot peut être définie de
manière équivalente comme le flux net arrivant à t, c'est à dire le flot entrant moins le flot
sortant de t. En effet pour tout noeud intermédiaire x, le flot entrant étant égal au flot sortant,
on a : (x) = (x)
Comment aborder un problème comme la recherche d'un flot maximum sur un réseau ? Nous
allons utiliser le paradigme très général de l'optimisation locale. Son principe consiste à se
donner une solution réalisable, c'est à dire un flot sur le réseau, et à essayer de l'améliorer à
chaque itération.
4-Saturation
Un arc (x,y) est saturé par un flot F si la valeur du flot sur l'arc égale sa capacité : F(x,y) =
c(x,y). Un chemin est saturé si l'un de ses arcs est saturé.
La capacité résiduelle d'un arc (x,y) est la quantité c(x,y) - F(x,y) de flot pouvant encore
transiter par lui. La capacité résiduelle d'un chemin est la plus petite capacité résiduelle de ses
arcs.
a- Principe
N’GUESSAN REMI 21
COURS DE RECHERCHE OPERATIONNELLE
b- Exemple
Obtenir un flot de valeur maximale dans le réseau ci-dessous. Les nombres associés aux arcs
représentent :
-Les capacités cij s’ils sont écrits au-dessus de l’arc
-Les flux élémentaires φ ij du flot initial s’ils sont écrits au-dessous de l’arc.
N’GUESSAN REMI 22
COURS DE RECHERCHE OPERATIONNELLE
-Solution-
5 3 8
Valeur du flot initial :
Le sommet x1 porte la marque m 1 ,
Etape 1 : marquage des sommets
m2 n’est pas calculable à partir de m1 car j 0
m 3 1, 5 ,
m 5 3 , 4 , ou 4 min 5 , 35 4
m 2 5 , 2 , ou 2 min 4 , 25 2
m 4 2 ,1,
m 7 4 ,1, ou 1 min 1, 47 4
Ici xn=x7 est marqué donc 7 1
La phase de marquage s’achève, on peut modifier le flot initial.
Le nouveau flot de valeur 8 1 9 Les composantes sont :
13 3 1 4 24 3 1 4 12 5
35 1 1 2 47 3 1 4 36 2
25 2 1 1 57 3
67 2
Etape 2 : marquage des sommets
N’GUESSAN REMI 23
COURS DE RECHERCHE OPERATIONNELLE
On va associer à tout flot existant au début de chaque étape un graphe G( ), dit graphe
d’écart dont les arcs sont définis comme suit :
Pour tout x , x U
i j
1- x , x U siC
i j IJ IJ 0
2- x , x U si
j i ij 0
Les chaines permettant de marquer xn à partir de x1 dans le graphe G correspondent aux
chemins joignant x1 à xn dans le graphe d’écart.
a- Principe
Obtenir un flot de valeur maximale dans le réseau ci-dessous. Les nombres associés aux arcs
représentent :
-Les capacités cij s’ils sont écrits au-dessus de l’arc
-Les flux élémentaires φ ij du flot initial s’ils sont écrits au-dessous de l’arc.
On prend un Flot initial nul : 0
N’GUESSAN REMI 24
COURS DE RECHERCHE OPERATIONNELLE
-Solution-
Etape3
On choisit le chemin x 1 , x 3 , x 6 , x 7 de capacité résiduelle minimale 2
Le nouveau flot est 7 2 9
Etape4
Il n’existe plus de chemin allant de x1 à x7 dans le graphe d’écart donc le dernier flot de valeur
9 est un flot de valeur maximale.
N’GUESSAN REMI 25
COURS DE RECHERCHE OPERATIONNELLE
La réalisation d’un projet nécessite souvent une succession de tâches auxquelles s’attachent
certaines contraintes :
_ De temps : délais à respecter pour l’exécution des tâches ;
_ D’antériorité : certaines tâches doivent s’exécuter avant d’autres ;
_ De production : temps d’occupation du matériel ou des hommes qui l’utilisent..
Les techniques d’ordonnancement dans le cadre de la gestion d’un projet ont pour objectif de
répondre au mieux aux besoins exprimés par un client, au meilleur coût et dans les meilleurs
délais, en tenant compte des différentes contraintes.
I Le Diagramme de Gantt.
Ce type de diagramme a été mis au point par un américain Henry Gantt.
1. 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.
2. Réalisation.
Les différentes étapes de réalisation d’un diagramme de Gantt son les suivantes :
Première étape : On détermine les différentes tâches (ou opérations) à réaliser et leur durée.
Deuxième étape : on définit les relations d’antériorité entre tâches.
Troisième étape : on représente d’abord les tâches n’ayant aucune antériorité, puis les tâches
dont les tâches antérieures ont déjà été représentées, et ainsi de suite…
Quatrième étape : on représente par un trait parallèle en pointillé à la tâche planifiée la
progression réelle du travail.
3- Exemple :
N’GUESSAN REMI 26
COURS DE RECHERCHE OPERATIONNELLE
4- Remarques
_ Chaque colonne représente une unité de temps.
_ Les durées d’exécution prévues des tâches sont représentées par un trait épais.
_ Les contraintes de succession se lisent immédiatement.
Les tâches B et C succèdent à la tâche A.
D succède à B.
_ Le déroulement d’exécution des tâches figure en pointillé, au fur et à mesure des contrôles.
On est à la fin de la 6 ème unité de temps, B est en avance d’une unité et, C est en retard d’une
unité.
_ On peut alors déterminer le chemin critique : qui est formé d’une succession de tâches, sur
le chemin le plus long en terme de durées. Il est appelé chemin critique car tout retard pris sur
l’une des tâches de ce chemin, entraîne du retard dans l’achèvement du projet. (Chemin
critique : A, B, D, E).
5-Avantages :
_ Permet de déterminer la date de réalisation d’un projet.
_ Permet d’identifier les marges existantes sur certaines tâches (avec une date de début au
plus tôt et une date au plus tard).
_ La date au plus tard de début d’une tâche, la date à ne pas dépasser sans retarder l’ensemble
du projet.
6-Inconvénient :
_ Ne résoud pas tous les problèmes, en particulier si l’on doit planifier des fabrications qui
viennent en concurrence pour l’utilisation de certaines ressources.
N’GUESSAN REMI 27
COURS DE RECHERCHE OPERATIONNELLE
La date de début au plus tôt d’une tâche est obtenue en cumulant la durée des tâches qui
précèdent sur la séquence la plus longue.
On initialise le sommet DEBUT avec une date au plus Tôt = 0.
Date au plus tôt de la tache j = Max ( date au plus tôt de i + Durée Ti,j) pour tous les
prédécesseurs i de j.
6- Le chemin critique
On peut alors déterminer le chemin critique : succession de tâches sur le chemin le plus long
au sens des durées. Pour toutes les tâches du chemin critique, les dates au plus tôt et au plus
tard coïncident. Chemin critique : B, D, E.
7-Exemple :
Une entreprise s’intéresse à un procédé de construction d’un produit nouveau. Ce procédé fait
intervenir un certain nombre d’opérations. Leurs durées et les contraintes auxquelles elles sont
soumises, sont données dans le tableau suivant :
N’GUESSAN REMI 28
COURS DE RECHERCHE OPERATIONNELLE
-Solution-
1. Principe.
Dans un graphe PERT :
_ Chaque tâche est représentée par un arc, auquel on associe un chiffre entre parenthèses qui
représente la durée de la tâche.
_ Entre les arcs figurent des cercles appelés « sommets » ou « événement » qui marquent
l’aboutissement d’une ou plusieurs tâches. Ces cercles sont numérotés afin de suivre l’ordre
de succession des divers évènements.
2. Réalisation
Pour construire un graphe PERT, on utilise la méthode des niveaux.
_ On détermine les tâches sans antécédents, qui constituent le niveau 1.
_ On identifie ensuite les tâches dont les antécédents sont exclusivement du niveau 1. Ces
tâches constituent le niveau 2, et ainsi de suite…
N’GUESSAN REMI 29
COURS DE RECHERCHE OPERATIONNELLE
7- Exemple
Une entreprise s’intéresse à un procédé de construction d’un produit nouveau. Ce procédé fait
intervenir un certain nombre d’opérations. Leurs durées et les contraintes auxquelles elles sont
soumises, sont données dans le tableau suivant :
-Solution-
N’GUESSAN REMI 30
COURS DE RECHERCHE OPERATIONNELLE
Remarque :
_ Il a été nécessaire d’introduire une tâche fictive de durée égale à 0, pour représenter la
relation d’antériorité entre A et D.
_ Le cumul des tâches composant la séquence la plus longue (B, D, E) permet de déterminer
la date au plus tôt de réalisation du projet. Cette succession de tâches constituent le chemin
critique.
N’GUESSAN REMI 31