Professional Documents
Culture Documents
RECHERCHE OPERATIONNELLE 1ère LICENCE ECOQUE
RECHERCHE OPERATIONNELLE 1ère LICENCE ECOQUE
UNIVERSITE DE LUBUMBASHI
FACULTE DES SCIENCES ECONOMIQUES ET DE GESTION
B.P. 1825
LUBUMBASHI
Par
LOUIS SUMBA CHENGE
Professeur
OBJECTIFS DU COURS
OBJECTIF GLOBAL
A la fin de ce cours de recherche opérationnelle, l’étudiant de licence de gestion à qui
il est destiné doit être capable d’analyser et de représenter par des modèles
mathématiques appropriés des phénomènes économiques ou d’organisation et de leur
appliquer des techniques rationnelles d’optimisation en vue de définir les meilleures
décisions.
OBJECTIFS SPECIFIQUES
Pour atteindre l’objectif global ainsi défini, l’apprenant doit être capable :
1. En programmation linéaire
-) de définir et d’interpréter un programme linéaire ;
-) de traduire mathématiquement des problèmes d’organisation, après analyse de leur
fonctionnement, par des programmes linéaires correspondants ;
-) de résoudre des programmes linéaires à l’aides des méthodes de résolution enseignées ;
-) d’expliquer la paramétrisation de la fonction économique et de résoudre les programmes
paramétriques établis.
2. En théorie des graphes, l’étudiant doit être capable
-) de définir et de construire un graphe représentant un phénomène économique ou
d’organisation ;
-) de rechercher sur un graphe le chemin de valeur minimale ou maximale ;
-) d’appliquer les graphes et les techniques appropriées dans les problèmes
de la recherche du flot maximal ;
d’affectation optimale et de transport de coût minimal ;
-) de résoudre un problème d’ordonnancement par la recherche du chemin critique, des
intervalles de flottement des événements, des marges libres des opérations, etc.
3. En gestion de stocks, l’étudiant doit être capable
-) de définir un problème de gestion de stock et de le représenter graphiquement ;
-) de déterminer les rafales économiques à commander et les périodes de gestion dans les
modèles déterministes ;
-) de déterminer le stock optimal à réapprovisionner dans les modèles aléatoires de gestion de
stocks ;
3 Recherche opérationnelle 2021-2022
CONTENU DU COURS
CHAPITRE 0 : INTRODUCTION
1. Aperçu historique
2. Définition, problèmes et branches de la recherche opérationnelle
LA PROGRAMMATIO N LINEAIRE
CHAPITRE 1 : GENERALITES
1.1 Introduction
1.2 Expressions mathématiques des programmes linéaires
1.3 Variables d’écart
1.4 Définitions essentielles associées aux programmes linéaires
CHAPITRES 2 : QUELQUES PROBLEMES ECONOMIQUES DE
PROGRAMMATION LINEAIRE
2.1 Problème de nutrition
2.2 Problème de transport
2.3 Problème de production
2.4 Problème de placement
2.5 Problème d’importation
2.6 Problème de fabrication
Chapitre 3 : METHODES DE RESOLUTION DES PROGRAMMES LINEAIRES
3.0 Propriétés des programmes linéaires
3.1 Méthode graphique ou méthode de balayage
3.2 Algorithme de dénombrement ou méthode de sélection
4 Recherche opérationnelle 2021-2022
GESTION DE STOKS
CHAPITRE 0 : INTRODUCTION
1. APERÇU HISTORIQUE
Le but est d’obtenir une solution optimale, c’est-à-dire celle qui minimise ou maximise la
performance du système étudié sous condition des contraintes précisées dans le modèle.
La recherche opérationnelle est un domaine vaste dans lequel on retrouve les
problèmes de divers types ayant donné naissance aux différentes branches de la recherche
opérationnelle. Les problèmes dont s’occupe la recherche opérationnelle ne concernent pas
ceux dont une solution de bon sens peut être appliquée naturellement. La recherche
opérationnelle s’occupe des problèmes ou situations pour lesquelles, pour une raison
quelconque, le bon sens humain se révèle faible ou impuissant. Ces problèmes peuvent être
groupés en trois grandes catégories ; à savoir :
1°. Les problèmes combinatoires : ce sont des problèmes pour lesquels il existe plusieurs
solutions dénombrables et pour lesquels l’utilisation d’un algorithme judicieux permet de
choisir la ou les solutions optimales. Les principaux problèmes de cette catégorie sont :
- Les problèmes d’investissement où il est question de rechercher les investissements les
plus rentables dans un projet déterminé ;
- Les problèmes de production qui consistent à optimiser les niveaux d’activité en tenant
compte des ressources qui sont limitées ;
- Les problèmes d’affectation qui consistent à affecter un ouvrier ou une machine à une
et une seule tâche, et chaque tâche à un seul ouvrier ou à une seule machine, de manière
à rendre minimum le coût d’affectation ;
- Les programmes de transport qui consistent à organiser le transport des marchandises
entre les centres de production (ou de départ) et les centres de consommation ou
distribution (ou centres d’arrivée) de manière la moins coûteuse possible ;
- Les problèmes de circulation à travers un réseau (problème du voyageur de commerce,
problème de flot maximal, problème de chemin optimal,…) ;
- Les problèmes d’ordonnancement : il s’agit ici de planifier dans le temps un ensemble
d’opérations ou tâches contribuant à la réalisation d’un même projet ainsi que de
déterminer la durée optimale de réalisation de ce projet.
Ces problèmes peuvent être traités à l’aide des méthodes et techniques des branches
de la recherche opérationnelle suivantes : la programmation linéaire, la théorie des graphes,
l’ordonnancement, la programmation dynamique, etc.
2°. Les problèmes stochastiques ou aléatoires. Ce sont des problèmes dans lesquels le hasard
joue un rôle important et est connu à travers les distributions de probabilité. Parmi ces
problèmes nous pouvons citer :
8 Recherche opérationnelle 2021-2022
- Les problèmes de file d’attente qui consistent à l’examen d’un système d’attente
alimenté par des arrivées des unités dans le système et diminué des sorties des unités
après un service dans un ou plusieurs guichets ou stations. Le but de l’étude d’un
système d’attente peut être celui de trouver le nombre de guichets, stations ou serveurs
qui minimise la somme des coûts d’attente des clients (sujets attendant d’être servis) ;
- Les problèmes de stock où il est question de déterminer les quantités à commander dans
une gestion des stocks et les dates auxquelles il faut commander ;
- Les problèmes de gestion et de renouvellement des équipements : ce sont des problèmes
qui consistent :
pour les matériels qui se détériorent à déterminer le moment de leur
remplacement de façon à minimiser pour une période donnée la somme des
différents coûts (coût d’achat du matériel, coût d’entretien et de réparation de
l’ancien matériel, coût de la perte de rendement) ;
et pour les matériels sujets à des pannes irréparables à déterminer le nombre des
pièces à remplacer, la fréquence de remplacement de façon à minimiser la
somme de différents coûts (coût du matériel considéré, coût de remplacement
des pièces, coût de la panne).
Cette deuxième catégorie de problèmes stochastiques est résolue par les méthodes
et techniques des branches de la recherche opérationnelle ci-après : les files d’attente, la gestion
des stocks, la gestions des équipements. La programmation dynamique dans le cas aléatoire
peut être mise à contribution pour résoudre certains problèmes de gestion des stocks ou de
gestion des équipements.
3°. Les problèmes concurrentiels. Les problèmes de concurrence sont des problèmes dans
lesquels chacun de deux joueurs ne connaît pas la décision prise par l’autre joueur, mais cherche
à minimiser (ou maximiser) les conséquences de la décision pouvant être prise par l’autre joueur
vis-à-vis de sa décision propre. Parmi ces problèmes on peut citer la politique
d’approvisionnement, de vente, le choix d’un moyen de publicité. Ces problèmes sont du ressort
de la théorie des jeux.
Le cours de la recherche opérationnelle et notamment l’apprentissage de certaines
de ses branches exige un pré requis solide en mathématique et en statistique. Les disciplines
développées dans ce cours sont exemptées dans la mesure du possible de leurs
développements mathématiques et accordent une plus grande importance aux résultats qui
résultent de ces développements.
9 Recherche opérationnelle 2021-2022
LA PROGRAMMATION LINEAIRE
CHAPITRE 1 : GENERALITES
1.1 INTRODUCTION
La programmation linéaire est une branche de la recherche opérationnelle qui
s’occupe de l’étude et de la résolution des programmes linéaires. Elle trouve son application
dans divers domaines et différents problèmes à caractère combinatoire, notamment dans la
résolution des problèmes de transport, de production, d’affectation, d’investissement etc. Dans
ces problèmes, il est essentiellement question de trouver l’optimum d’une fonction linéaire dite
fonction économique en respectant certaines contraintes ou certaines conditions dont on ne
peut se passer. Ces conditions ou contraintes se présentent mathématiquement sous forme
d’équations ou inéquations du premier degré. L’on comprend dès lors pourquoi il y a le mot
« linéaire » dans la dénomination de cette branche de recherche opérationnelle : c’est parce
que la fonction économique et les contraintes sont des expressions dans lesquelles les variables
sont considérées à leur première puissance.
Parmi les contraintes, il y a celles de non négativité des variables, étant donné que
celles-ci expriment le niveau d’activité (quantité à produire, à transporter, à consommer,
nombre d’ouvriers, montant à investir ou à placer…).
Ainsi un programme linéaire est un modèle mathématique dans lequel il faut
optimiser une fonction économique linéaire de certaines variables, celles-ci étant liées entre
elles par un certain nombre d’équations ou inéquations du premier degré qui doivent être
respectées lors de cette optimisation et qui jouissent de la propriété de non négativité.
Les aij , les c j et les bi sont des constantes positives, négatives ou nulles.
Autres notations.
1. Notation condensée :
n
Optimiser Z c j x j
j 1
a
j 1
ij x j bi , i 1, 2,..., m
Contraintes :
x j 0, j 1, 2,..., n
2. Notation matricielle :
Fonction économique : Optimiser CX tel que
Contraintes : AX ≤ B, X ≥ 0,
où A = matrice m x n ;
C = matrice ligne 1 x n ;
B = matrice colonne m x 1
X = matrice colonne n x 1.
A=
a21 a22 a23 .......... a2n
………………………..
C (c1 , c2 ,..., cn )
12 Recherche opérationnelle 2021-2022
b1 x1
b2 x2
. .
B= ; X =
. .
. .
bm xn
3. Ecriture vectorielle :
n n
Opt c j x j tel que
j 1
x P
j 1
j j P0
xj 0
b1 a11 a12 a1n
b2 a21 a22 a2n
. . . .
P0 = . , P1 = . , P2 = . ,. . . , Pn = .
. . . .
bm am1 am2 amn
quantité que l’on ajoute s’appelle variable d’écart. Soit t i cette variable d’écart ; il vient :
ai1 x1 ai 2 x2 ... ain xn t i bi
13 Recherche opérationnelle 2021-2022
a
j 1
ij x j bi , i 1, 2,..., m devient a
j 1
ij x j t i bi , i 1, 2,..., m
Notons que les variables d’écart ti jouissent aussi de la propriété de non négativité.
Supposons maintenant que les inéquations soient de la forme :
7 Système :
- Standard ou saturé : un système de contraintes constitué uniquement des
égalités : AX = B ;
- Canonique : un système de contraintes défini uniquement des inégalités :
par exemple AX ≤ B ou AX ≥ B ;
- Mixte : un système de contraintes comportant à la fois des égalités et des
inégalités ;
8 Hyperplan : une contrainte dans un espace ayant plus de trois dimensions. Exemple :
abréger, Z X Y , , 0, 1;
10 Polyèdre convexe : un ensemble convexe des points ayant un nombre fini de sommets.
En fait, c’est une figure géométrique obtenue en représentant graphiquement le système
de contraintes. Un sommet est un point de l’ensemble convexe qui ne peut être obtenu
par aucune combinaison linéaire convexe de points de l’ensemble. Mais tout point P de
l’ensemble convexe peut être obtenu à partir de combinaison linéaire de sommets :
P k S k avec 0 k 1 et k 1
L’ensemble vide peut être considéré comme convexe.
Le sommet d’un polyèdre convexe s’appelle également point anguleux ou extrémal ;
11 Espace de contraintes : un repère orthonormé de dimension m dans lequel on
représente le vecteur Po et et les vecteurs Pj de la matrice A des contraintes.
12 Espace de décisions ou de solutions : un repère euclidien orthonormé des variables
(x1, x2, …, xn).
15 Recherche opérationnelle 2021-2022
Aj Qté minimale
Ei A1 A2 A3.............An Imposée
E1 a11 a12 a13............a1n B1
E2 a21 a22 a23............a2n b2
E3 a31 a22 a32............a2n b3
............... ....................................... .....
Em am1 am2 am3...........amn bm
Prix unitai- c1 c2 c3..............cn
Res
Ce tableau est désigné par l’expression de « matrice de nutrition ». On y lit ainsi qu’il y a par
exemple a12 unités d’élément nutritif E1 dans une unité de l’aliment A2, a21 unités d’élément
nutritif E2 dans une unité de l’aliment A1. Par ailleurs b1, b2, …, bm sont les quantités minimales
respectives des éléments nutritifs E1, E2, …, Em à consommer mensuellement dans le régime
16 Recherche opérationnelle 2021-2022
alimentaire, lequel est formé des aliments A1, A2, …, An. Les prix unitaires respectifs de ces
aliments sont c1, c2, …, cn.
Déterminer le régime approprié correspondant à chercher les quantités xj de chaque
aliment qu’il faut dans le régime. Si donc on consomme xj unités de Aj (j = 1,2, …, n), on aura
consommé pour chaque élément nutritif les quantités suivantes : pour
E1 : a11x1 + a12x2 + … + a1nxn
E2 : a21x1 + a22x2 + … + a2nxn
………………………...........
Ei : ai1x1 + ai2x2 + … + ainxn
.............................................
Em : am1x1 + am2x2 + … + amnxn
L’on sait qu’il faut au moins bi unités de Ei dans le régime (i = 1,2, …, m) ; d’où :
a11x1 + a12x2 + … + a1nxn ≥ b1.
a21x1 + a22x2 + … + a2nxn ≥ b2.
………………………………..
am1x1 + am2x2 + … + amnxn ≥ bm.
Etant donné qu’une unité de l’aliment Aj coûte cj (j = 1, …, n), alors le coût du régime
alimentaire s’exprime par la fonction Z = c1x1 + c2x2 + … + cnxn.
Déterminer un régime alimentaire le plus économique correspond à résoudre le
programme linéaire suivant :
n
Minimiser Z c j x j
j 1
a
j 1
ij x j bi , i 1,...., m
x j 0, j 1, , n
C’est la traduction mathématique du problème.
demandées (consommées) dans ces centres. Soit cij le coût de transport d’une unité de
n
2°. Le ravitaillement au centre Pi ne soit pas dépassé : x
j 1
ij a i (i 1, 2,...., m)
m n
3°. Le coût d’expédition soit minimum : c
i 1 j 1
ij xij
n m
4°. La demande totale soit au moins inférieure au ravitaillement total : d a
j 1
j
i 1
i
Exemple numérique.
1
P1 D1 (d1 = 2)
a1 = 4 2
2 D2 (d2 = 3)
4
3
P2 D3 (d5 = 5)
a2 = 7 6
Le programme linéaire correspondant se présente comme suit :
x12 x 22 3
x13 x23 5
x11 x12 x13 4
x21 x22 x23 7
xij 0 (i 1, 2 ; j 1, 2, 3)
18 Recherche opérationnelle 2021-2022
Machines
Produits M1 M2 M3
P1 11 minutes 7 minutes 6 minutes
P2 9 minutes 12 minutes 16 minutes
On suppose que les machines n’ont pas de temps mort par suite d’une attente d’un produit en
opération sur une autre machine, ce qui peut être réalisé puisque l’ordre des opérations est
indifférent.
Les heures disponibles pour chaque machine pour une activité d’un mois sont :
M1 : 165 heures = 9900 minutes ;
M2 : 140 heures = 8400 minutes ;
M3 : 160 heures = 9600 minutes.
Le produit P1 donne un profit unitaire de 900 F et P2 un profit unitaire de 1000 F.
On se propose de déterminer le programme linéaire qui maximise le profit de cette production.
Toutes les données du problème peuvent être consignées dans le tableau ci-après :
Machines
Produits M1 M2 M3 Profit unitaire
P1 11 minutes 7 minutes 6 minutes 900 F
P2 9 minutes 12 minutes 16 minutes 1000 F
Temps disponible des 9900 minutes 8400 minutes 9600 minutes
Machines
19 Recherche opérationnelle 2021-2022
Modalités d’investissement M1 M2 M3 M4 M5 M6
Intérêt 3% 2,5% 3,5% 4% 5% 4,5%
Sommes placées x1 x2 x3 x4 x5 x6
Contraintes 40% minimum 35% maximum 35% maximum
20 Recherche opérationnelle 2021-2022
si x3 x4 35
x5 x6 35
x1 , x2 , x3 , x4 , x5 , x6 0
2.5 PROBLEME D’IMPORTATION
Un importateur de whisky dispose d’un marché illimité, mais se trouve restreint
par la réglementation des importations quant aux quantités mensuelles maximales autorisées
qui s’établissent comme suit :
Sir Roses : au plus 2000 bouteilles à 35 F ;
Highland Wind : au plus 2500 bouteilles à 25 F ;
Old Frenzy : au plus 1200 bouteilles à 20 F.
Il effectue trois mélanges A, B et C qu’il vend aux prix respectifs de 34 ; 28,5 et 22,5
la bouteille. Ces mélanges se définissent comme suit :
Pas moins de 60% de Sir Roses ;
A
Pas plus de 20% de Old Frenzy.
Appelons x11 la quantité de Sir Roses, x12 celle de Highland Wind et x13 celle de Old
Frenzy contenues dans le mélange A. Soient x21, x22 et x23 les quantités correspondantes
contenues dans le mélange B.
La fonction économique s’écrit :
Z 34( x11 x12 x13 ) 28,5( x21 x22 x23 ) 35( x11 x21 ) 25( x12 x22 ) 20( x13 x23 )
x3 1500
x1 x x
2 3 45 : contrainte de temps disponible
50 25 75
d2 ≡ 7 x1 + 12 x2 = 8400.
d3 ≡ 6 x1 + 16 x2 = 9600.
d1
1000
d2
d3
B
500
C
D
E
A 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1500
1700
Z = 90000
Quelle quantité d’aliment M et N doit-on utiliser par jour et par animal pour réaliser
l’alimentation la moins coûteuse ?
Soient x1 et x2, les quantités respectives en kg de M et N à consommer par jour et
par animal.
26 Recherche opérationnelle 2021-2022
En plaçant Z présentement dans la zone hachurée vers la zone non hachurée, le premier point
de cette dernière zone qui sera rencontré par Z correspond au minimum. C’est le point I1 de
coordonnées (4 ; 9) se trouvant à l’intersection de d1 et d4 qui donne le minimum de Z = (10 x
4) + (4 x 9) = 76 F. On remarque encore que le minimum correspond à un sommet du polyèdre,
c’est-à-dire une solution de base admissible. Ce minimum correspond à la consommation
minimale des composants A et D et il y a dépassement de la quantité minimale prescrite pour
B et C. En effet,
0,1 x 9 = 0,9 >0,6 soit un dépassement de 0,3 kg de B ;
0,1 x 4 + 0,2 x 9 = 2,2 > 2 soit un dépassement de 0,2 kg de C.
Exercice.
Résoudre par la méthode graphique le programme linéaire ci-après :
1
Maximiser Z x y tel que :
2
x ≤2
x +y≤3
-x + y ≤ 1
x, y ≥ 0
Limite de la méthode graphique.
Cette méthode ne permet que la résolution des programmes linéaires ayant deux
variables ou tout au plus trois. En effet, chaque variable étant représentée par un axe, il est
impossible de représenter un système orthonormé de plus de trois axes sur une feuille de papier
à deux dimensions.
3.2 ALGORITHME DE DENOMBREMENT OU METHODE DE
SELECTION
Principe et justification de la méthode.
Nous avons vu que l’optimum de la fonction économique d’un programme linéaire
a lieu à un sommet (ou quelques sommets) du polyèdre convexe qui en est alors la solution
optimale. C’est-à-dire la solution optimale d’un programme linéaire est une solution de base
admissible. C’est pourquoi le principe de la méthode de dénombrement consiste à rechercher
toutes les solutions de base du système {X/AX = B}. Uniquement pour les solutions de base
admissibles on calculera la valeur de la fonction économique. On choisira la solution de base
admissible qui optimise la fonction économique.
Lorsque le système AX = B comporte m équations et n inconnues, la méthode
consiste à choisir m variables parmi les n inconnues, à annuler les n – m autres restantes et à
résoudre le système composé de m équations et m inconnues. Il faut procéder ainsi et résoudre
28 Recherche opérationnelle 2021-2022
…, Pk, …, Pn sont des vecteurs hors base. Effectuer un changement de base c’est extraire un
vecteur Pr de la base et lui substituer un vecteur Pk hors base.
Le changement de base s’opère grâce aux formules suivantes :
xr j
x k j
xr k
xi k
xi j xi j xr j pour i k (1)
xr k
xr
x k
xr k
xi k
x i x i xr pour i k
xr k
Dans ces formules les xi j sont les composantes des vecteurs Pj. hors base et x i celles du
vecteur P0. Après changement de base les composantes des vecteurs Pj hors base deviennent
les xi j et celles du vecteur P0 deviennent x i . La composante xr k est appelée le pivot du
u1 2 3 -1 1
u2 1 0 2 -2
u3 1 1 1 2
u1 0 3 -5 5
a1 1 0 2 -2
u3 0 1 -1 4
u1 0 0 -2 -7
a1 1 0 2 -2
0 1 -1 4
a2
a3 0 0 1 7/2
1 0 0 -9
a1
0 1 0 15/2
a2
D’où X ( x1 , x2 , x3 ) (9 ; 15
2 ; 72 )
a1 a2 a3 u1 u2 u3
u1 1 0 -1 1 0 0
u2 1 2 0 0 1 0
u3 1 -1 3 0 0 1
a3 -1 0 1 -1 0 0
u2 1 2 0 0 1 0
u3 5 -1 0 3 0 1
a3 0 2 1 -1 1 0
a1 1 2 0 0 1 0
u3 0 -11 0 3 -5 1
1 0 0
A-1 A = AA-1 = 0 1 0
0 0 1
2. Variation de la fonction économique lors de changement de base
Introduisons les notations suivantes :
I (B) = l’ensemble des indices des vecteurs de la base B ;
I (B’) = l’ensemble des indices des vecteurs de la base B’.
Alors : Z 0 cx
iI ( B )
i i ; Zj c x
iI ( B )
i ij
xr
1°. Z 0 Z 0 (Z k ck ) (2)
xr k
33 Recherche opérationnelle 2021-2022
Dans un problème à minimum (maximum), le changement de base sera choisi de telle sorte que
la valeur de la fonction économique diminue (augmente). Il faudra donc que
Z k ck 0 ( Z k ck 0) (cfr critères de choix pour le changement de base).
xr j
2°. Z j c j ( Z j c j ) ( Z k ck ) (3)
xr k
passage d’un point extrémal à un autre point extrémal : ce sont les coût marginaux des variables
xj hors base par rapport à la solution de base.
Dans les deux cas, la solution optimale ainsi obtenue est fournie par les composantes x i du
Z 0 c x
iI ( B )
i i que l’on lit en dessous de la colonne de P0
2°. Le cas d’une solution infinie. S’il existe des quantités Z j c j 0 pour un problème à
minimum ou des quantités Z j c j 0 pour un problème à maximum, mais que toutes les
quantités xi k 0 , cela signifie que le polyèdre des solutions admissibles n’est pas borné et que
n n
Contraintes aij x j bi , i 1,...., m
j 1
Contraintes a
j 1
ij x j bi , i 1,...., m
x j 0, j 1,....,n x j 0, j 1,.....,n
Si les contraintes sont données sous forme d’inéquations, introduire les variables d’écart. Si on ne dispose
pas d’une base admissible explicite, l’expliciter par la méthode de remplacement ou introduire les
variables artificielles ; puis ranger les données en tableau comme celui donné en 6.
1°. Si Z j c j 0 j alors la solution de base 1°. Si Z j c j 0 j alors la solution de base
considérée est optimale, sinon on passe au point 2° considérée est optimale, sinon on passe au point 2°
ci-dessous. ci-dessous.
2° Si j / Z j c j 0 et xi j 0 i, alors la solution 2° Si j / Z j c j 0 et xi j 0 i, alors la solution
optimale est infinie. La valeur de la fonction optimale est infinie. La valeur de la fonction
économique = -∞. Sinon on passe au point 3° ci- économique = +∞. Sinon on passe au point 3° ci-
après. après.
3°.Certains Z j c j 0 avec certains xi j 0, faire 3°. Certains Z j c j 0 avec certains xi j 0, faire
et faire sortir le vecteur Pr tel que : et faire sortir le vecteur Pr tel que :
xr x xr x
min i 0 ( xi k 0) min i 0 ( xi k 0)
x rk i xi k xr k i xi k
puis effectuer un changement de base selon les puis effectuer un changement de base selon les
formules (1), (2) et (3) reprises ci-dessous. Poser formules (1), (2) et (3) reprises ci-dessous. Poser
avant de procéder l’itération suivante : avant de procéder l’itération suivante :
Z j c j Z j c j j Z j c j Z j c j j
xr j xik x x
x k j ; xi j xij x r j i k ; x k r ; xi xi ik x r i k
xr j x rk x rk x rk
xr x rj
Z 0 Z 0 (Z k ck ) ; Z j c j Z j c j (Z k ck )
x rk x rk
4. Disposition pratique ou tableau de Simplexe.
Nous supposons que les vecteurs P1, P2, …, Pm constituent une première base
admissible.
C1 C2 C3 … C r … Cm Cm+1 … Ck … Cn
Ci Base Po P1 P2 P3 ... Pr.... Pm Pm+1 … Pk … Pn
(xi) (xi1) (xi2) (xi3)...xir xim (xim+1) (xik) (xin)
C1 P1 x1 1 0 0 …0 …0 x1,m+1 ... x1,k ... x1,n
C2 P2 x2 0 1(E) 0 …0 …0 x2,m+1 ... x2,k(K) …x2,n
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
Cr Pr xr 0 0(L) 0 ... 1 ... 0 xr,m+1 … xr,k(S) …xr,n
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
Cm P m xm 0 0 0 ... 0 ... 1 xm,m+1 ... xm,k ... xm,n
Zo 0 0 0 … 0 …0 Zm+1–cm+1…zk-ck ... zn-cn
m m
N.B Z 0 ci xi ; Z j ci xij
i 1 i 1
Formule du rectangle :
Pour faciliter l’application de l’algorithme de Simplexe, il existe un moyen pour
retrouver facilement les formules de changement de base. Si E est un élément du tableau de
simplexe, S étant le pivot, K l’élément situé dans la ligne de E et la colonne de S, L l’élément
situé dans la colonne de E et la ligne de S, c’est-à-dire si E, K,S,L sont les sommets d’un
rectangle dans le tableau de Simplexe et si E’ est l’élément du nouveau tableau correspondant
KL
à E, alors on a : E E i r , sauf pour les éléments de la ligne S qui sont divisés
S
simplement par S. Cette formule est désignée sous le nom de la formule du rectangle.
36 Recherche opérationnelle 2021-2022
Exemple numérique
Soit à trouver les valeurs de Y= (y1, y2, …, y5) ≥ 0 qui minimisent :
Z = y1 + 6 y2 – 7 y3 +y4 + 5 y5 sous les contraintes :
5 y1 - 4 y2 + 13 y3 - 2 y4 + y5 = 20
y1 - y2 + 5 y3 - y4 + y5 = 8
5 -4 13 -2 1 20
A= ; P0 =
1 -1 5 -1 1 8
Le système ne possède pas de base admissible explicite. Nous allons donc d’abord chercher par
la méthode de remplacement une première base admissible explicite à partir du tableau To ci-
après :
To A1 a2 a3 a4 a5 Po
u1 5 -4 13 -2 1 20
u2 1 -1 5 -1 1 8
u1 4 -3 8 -1 0 12
a5 1 -1 5 -1 1 8
a1 1 -3/4 2 -1/4 0 3
a5 0 -1/4 3 -3/4 1 5
2 x1 x2 0 x3 0 x4 t 2 3
0 x1 x2 4 x3 x4 t 3 3
x j 0, j 1, 2, 3, 4 ; t i 0, i 1, 2, 3
Comme les variables d’écart sont toutes affectées du signe + elles constituent une première
solution de base admissible explicite, c’est-à-dire la solution.
( x1, x2, x3, x4, t1, t2, t3) = (0 ;0 ;0 ;0 ;4 ;3 ;3)
On peut donc démarrer la méthode de simplexe à partir de cette solution
38 Recherche opérationnelle 2021-2022
TABLEAUX DE SIMPLEXE
2 4 1 1 0 0 0
Ci BASE Po x1 x2 x3 x4 t1 t2 t3
0 t1 4 1 3 0 1 1 0 0
0 t2 3 2 1 0 0 0 1 0
0 t3 3 0 1 4 1 0 0 1
0 -2 -4 -1 -1 0 0 0
4 x2 4/3 1/3 1 0 1/3 1/3 0 0
0 t2 5/3 5/3 0 0 -1/3 -1/3 1 0
0 t3 5/3 -1/3 0 4 2/3 -1/3 0 1
16/3 -2/3 0 -1 1/3 4/3 0 0
4 x2 4/3 1/3 1 0 1/3 1/3 0 0
0 t2 5/3 5/3 0 0 -1/3 -1/3 1 0
1 x3 5/12 -1/12 0 1 1/6 -1/12 0 ¼
23/4 -3/4 0 0 ½ 5/4 0 ¼
4 x2 1 0 1 0 2/5 2/5 -1/5 0
2 x1 1 1 0 0 -1/5 -1/5 3/5 0
1 x3 ½ 0 0 1 3/20 -1/10 1/20 ¼
13/2 0 0 0 7/20 11/10 9/20 ¼
Solution optimale :
x1 = 1, x2 = 1, x3 = ½, x4 = 0, t1 = t2 = t3 = 0
Valeur de la fonction économique Z = 13/2
chaque contrainte une nouvelle variable vi affectée d’un coefficient M > 0 arbitrairement grand
dans la fonction économique. Ainsi le programme initial :
n
min Z c j x j tel que
j 1
a
j 1
ij x j bi , i 1, 2,..., m
x j 0, j 1, 2,..., n
a
j 1
ij x j vi bi , i 1, 2,..., m
x j 0, vi 0
On peut donc observer que les m variables v i , dites variables artificielles, fournissent une
première base admissible et la procédure de Simplexe peut être entamée. Comme M est très
grand et vi 0 , la valeur de la fonction économique est très grande.
Pour que le programme modifié soit équivalent au programme initial il faut que dans
sa solution toutes variables artificielles soient nulles. Cela est possibles car pour réaliser le
minimum l’algorithme de Simplexe aura tendance à rejeter les variables vi hors de la base à
cause de leur coefficient M positivement très grand.
Si le programme initial admet une solution optimale finie (x1, x2,…; xn) alors (x1,
x2,…xn, 0, 0, 0, …, 0) est une solution optimale du programme modifié. En fait trois situations
peuvent se présenter :
1. Le programme complété (modifié) admet une solution optimale où toutes les variables
artificielles sont hors base : cette solution est aussi la solution optimale du programme
initial. Dans ce cas la procédure de Simplexe élimine tous les vecteurs P vi de la base et
l’on obtient ainsi une base du programme initial. La procédure peut se poursuivre, et il est
inutile de poursuivre les calculs des composantes d’un vecteur Pvi dès que celui-ci est sorti
de la base, le coefficient M figurant dans la fonction économique empêchant tout vecteur
Pvi sorti de réapparaître dans la base.
2. La solution optimale du problème complété contient des variables artificielles en base, mais
elles sont toutes nulles : on dit que la solution du problème initiale est une base dégénérée.
Ce cas arrive lorsque certaines contraintes sont linéairement dépendantes.
40 Recherche opérationnelle 2021-2022
3. La solution optimale du programme complété contient des variables artificielles non nulles
en base. Cela signifie que le programme initial n’admet pas de solution c’est-à-dire son
système de contraintes est contradictoire.
Remarques
1° Dans le tableau Simplexe on écrit Z j c j en deux lignes, l’une contenant les termes
Comme ici M est très grand et affecté du signe -, vi ≥ 0, la valeur de la fonction économique est
très petite et pour maximiser cette fonction, les variables vi à coefficient négativement très petit
sortiront de la base.
Exemple : Soit à résoudre le programme linéaire suivant :
min Z = x1 + x2,
sous les contraintes :
2 x1 + x2 ≥ 8
x1 + x2 ≥ 6
x1 +5 x2 ≥ 10
xj ≥ 0, j = 1,2.
Nous commencerons par l’introduction des variables d’écart pour avoir un système standard.
Il vient :
2 x1 + x2 - t1 = 8
x1 + x2 – t2 = 6
x1 + 5 x2 – t3 = 10.
A ce niveau la matrice A n’ayant pas une base admissible explicite, nous introduisons les
variables artificielles afin d’en faire une première solution de base explicite. Le programme
devient :
min Z = x1 + 2 x2 + M v1 +M v2 +Mv3
sous les contraintes :
2 x1 +x2 – t1 + v1 = 8
x1 +x2 – t2 + v2 = 6
x1 +5 x2 – t3 + v3 = 10
xj ≥ 0, ti ≥ 0, vi ≥ 0
41 Recherche opérationnelle 2021-2022
Tableau de Simplexe
1 2 0 0 0 M M M
C BASE B Px1 Px2 Pt1 Pt2 Pt3 Pv1 Pv2 Pv3
M Pv1 8 2 1 -1 0 0 1 0 0
M Pv2 6 1 1 0 -1 0 0 1 0
M Pv3 10 1 5 0 0 -1 0 0 1
0 -1 -2 0 0 0 0 0 0
24 M 4M 7M -M -M -M 0 0 0
M Pv1 6 9/5 0 -1 0 1/5 1 0
M Pv2 4 4/5 0 0 -1 1/5 0 1
2 Px2 2 1/5 1 0 0 -1/5 0 0
4 -3/5 0 0 0 -2/5 0 0
10 M 13M/5 0 -M -M 2M/5 0 0
1 Px1 10/3 1 0 -5/9 0 1/9 0
M Pv2 4/3 0 0 4/9 -1 1/9 1
2 Px2 4/3 0 1 1/9 0 -2/9 0
6 -3/4 0 -1/3 0 -1/3 0
4M/3 0 0 4M/9 -M M/9 0
1 Px1 5 1 0 0 -5/4 ¼
0 Pt1 3 0 0 1 -9/4 ¼
2 Px2 1 0 1 0 ¼ -1/4
7 0 0 0 -3/4 -1/4
a
j 1
ij x j bi , i 1, 2,...., m (I)
x j 0, j 1, 2,..., n
42 Recherche opérationnelle 2021-2022
on peut faire correspondre un nouveau programme, dit problème dual, défini comme suit :
m
max g ( y ) bi y i
i 1
a i 1
ij y i c j , j 1, 2,..., n ( II )
yi 0, i 1, 2,..., m
Reprenons toutes les données dans le tableau suivant :
xj
x1 x2 … xn ≥0
yj
y1 a11 a12 … a1n ≥ b1
y2 a21 a22 … a2n ≥ b2
. . . … . .
. . . … . .
. . . … . .
ym am1 am2 … amn ≥ bm
! ! ! … !
Max g = min f
0 c1 C2 … cn
On peut encore remarquer qu’à toute contrainte primale représentée par une
inéquation correspond une variable duale positive ou nulle et réciproquement.
3.5.2 Exemple des programmes duals et leurs solutions
Soit à résoudre le programme primal ci-après :
Max g = 2 x1 +4 x2 + x3 + x4
sous les contraintes :
x1 + 3 x2 + 0 x3 + x4 ≤ 4
2 x1 + x2 + 0 x3 + 0 x4 ≤ 3
0 x1 + x2 + 4 x3 + x4 ≤ 3
x1 ≥ 0, x2 ≥ 0, x3 ≥, x4 ≥ 0
Si on y introduit les variables d’écart, il devient :
max g = 2 x1 + 4 x2 + x3 + x4 tel que :
x1 + 3 x2 + 0 x3 + x4 + t1 = 4
2 x1 + x2 + 0 x3 + 0 x4 + t2 = 3
0 x1 + x2 + 4 x3 + x4 + t3 = 3
xj ≥ 0, j , ti ≥ 0 i
Ce problème a été résolu à la fin du point 3.3.2 par l’algorithme de Simplexe qui a fourni la
solution suivante :
x1 = 1, x2 = 2, x3 = ½ ; x4 = t1 = t2 = t3 = 0
g = 13/2.
Résolvons aussi par l’algorithme de Simplexe le programme dual correspondant. Ce
programme est alors :
min f = 4 y1 + 3 y2 + 3 y3
sous les contraintes :
y1 + 2 y2 + 0 y3 ≥ 2
3 y1 + y2 + y3 ≥ 4
0 y1 + 0 y2 + 4 y3 ≥ 1
y1 + 0 y2 + y3 ≥ 1
y1 ≥ 0, y2 ≥ 0, y3 ≥ 0
44 Recherche opérationnelle 2021-2022
respectifs. Si l’un des problèmes n’a pas de solution possible alors l’autre n’en a pas
non plus.
46 Recherche opérationnelle 2021-2022
Conclusion :
La recherche de l’optimum d’un programme peut être remplacée par la recherche de l’optimum
du programme dual correspondant. Ou encore la recherche du minimum peut être transformée
en recherche du maximum et réciproquement. D’autre part, la dualité peut servir à vérifier
l’exactitude des calculs. Par ailleurs, un programme et son dual forment un jeu de stratégie à
somme nulle. Enfin, la recherche de l’optimum d’un programme paramétrique dont les seconds
membres des contraintes sont paramétrisés ne peut se faire que par la résolution du programme
dual associé.
47 Recherche opérationnelle 2021-2022
INTRODUCTION
Un des reproches les plus sérieux qu’on pouvait faire, il y a quelques années, aux
méthodes de programmation linéaire, était de fournir un optimum sur la stabilité duquel on avait
aucun renseignement. D’importants travaux ont porté sur la mise en cause des coefficients de
la fonction économique (revenus ou coûts unitaires) et des seconds membres des contraintes ou
objectifs (limitation de budgets, de quantités, de temps, de capacités disponibles, …). En
revanche on n’a encore que peu de résultats en ce qui concerne la variation des coefficients de
la matrice, souvent appelés coefficients techniques.
En pratique, compte tenu des résultats de recherche jusque là obtenus, on ne peut
résoudre par Simplexe que les programmes linéaires paramétriques dont uniquement les
coefficients de la fonction économique sont paramétrisés. De plus pour la même raison, seule
l’introduction d’un seul paramètre ne pose pas de problème de résolution. La résolution devient
pratiquement difficile à réaliser lorsque le programme comporte plusieurs paramètres.
Si les coefficients bi représentant les deuxièmes membres des contraintes sont
paramétrisés, la résolution d’un tel programme se fait à travers de la résolution du programme
dual correspondant
P S
W
T
V
U
Il résulte de la convexité de l’hyper polyèdre que la direction de l’hyperplan (P) de la fonction
économique, passant par le point optimal S, peut subir des modifications d’une certaine
48 Recherche opérationnelle 2021-2022
amplitude sans que S cesse d’être l’optimum ; sinon, dans un premier stade l’optimum se trouve
transporté en l’un des points adjacents T, U, V, ou W, puis encore au-delà en l’un des points
adjacents des précédents, et ainsi de suite.
Soit à résoudre le programme linéaire suivant :
Minimiser (c c ) x
j j j
si a ij x j bi , i 1, 2,..., m
x j 0, j 1, 2,..., n
où les coefficients aij , bi , cj et cj sont donnés et où λ est un paramètre. Dans un tel programme,
le polyèdre des contraintes est fixe, mais l’orientation de la fonction économique varie avec λ.
Il est clair que le sommet du polyèdre qui donne la solution optimale va varier selon les valeurs
de λ. En général un sommet fournira la solution optimale pour un ensemble de valeurs de λ
appartenant à un intervalle. On dit que la solution optimale est stable sur un tel intervalle et l’on
parle d’intervalle de stabilité. Le problème que l’on se propose de résoudre est de décomposer
l’axe réel λ, (-∞ < λ < + ∞), en intervalles de stabilité. Remarquons que sur un intervalle de
stabilité, la solution optimale (x1, x2, …, xn) reste inchangée, mais que la valeur numérique de
la fonction économique varie. La valeur de λ séparant deux intervalles de stabilité confère à
l’hyperplan de la fonction économique une direction parallèle à une arête ou face du polyèdre
des solutions admissibles. Par conséquent, la valeur de la fonction économique est identique à
chaque point de cette arête ou face parallèle à l’hyperplan de la fonction économique.
m m
ci xij c j cixij c j 0
(1)
i 1 i 1
On pose :
m m
j ci xij c j et j cixij c j
i 1 i 1
j
Si j 0 alors
j
j
Si j 0 alors
j
S’il n’y a pas de coefficient j 0 l’intervalle n’est pas borné à droite et . Et s’il n’y
S1 S2 S3 ... Sk
λ
j j 0 j j
j
Si j 0 alors
j
j
Si j 0 alors
j
D’où l’intervalle de stabilité dans le cas d’un problème à maximum :
j j
max min
j 0
j
j 0
j
50 Recherche opérationnelle 2021-2022
S’il n’y a pas de coefficient j 0 , l’intervalle n’est pas borné à droite et et s’il n’y a
4.3 APPLICATIONS
1. Maximiser Z = (2 + λ) x1 + 5 x2
Si x1 + x3 = 4
x2 + x4 = 3
x1 + 2 x2 + x5 = 8
x1, x2, x3, x4, x5 ≥ 0
On dispose d’une base admissible (0, 0, x3, x4, x5) qui permet d’entamer
immédiatement la procédure Simplexe. On obtient successivement les tableaux ci-après :
2+λ 5 0 0 0 Observations
x2
4
C BASE P0 P1 P2 P3 P4 P5
3 C
0 P3 4 1 0 1 0 0 Certains Z j c j 0 B
2 D
0 P4 3 0 1 0 1 0 toute valeur de . La 1
x1
0 P5 8 1 2 0 0 1 E
solution de base considérée A
αj 0 -2 -5 0 0 0
ne peut être optimale.
βj 0 -1 0 0 0 0
0 P3 4 1 0 1 0 0 2 0 2 x2
C
5 P2 3 0 1 0 1 0 Changer de base dès que
B
0 P5 2 1 0 0 -2 1 D
2 x1
αj 15 -2 0 0 5 0 A E
βj 0 -1 0 0 0 0
0 P3 2 0 0 1 2 -1 1–2λ≥0 x2
C
5 P2 3 0 1 0 1 0 2+ λ≥0
B
2+ P1 2 1 0 0 -2 1 1
2 D
λ 2
Changer de base dès que E
αj 19 0 0 0 1 2 x1
A
βj 2 0 0 0 -2 1 1
2
51 Recherche opérationnelle 2021-2022
x2
0 P4 1 0 0 ½ 1 -1/2 -½+λ≥0
C
5 P2 2 0 1 -1/2 0 ½ => ½ ≤ λ < + ∞.
B
2+ P1 4 1 0 1 0 0 D
λ
E
αj 18 0 0 -1/2 0 5/2 x1
A
βj 4 0 0 1 0 0
-2 ½
λ
B C D
2. Résoudre le programme linéaire paramétré :
Min Z = 2 λx1 + (1 – λ)x2 + 3 x3 + λx4 + 2 x5 + 3 λx6
Sous les contraintes :
x1 + 3 x2 + x3 + 2 x5 = 7
2x2 + 4 x3 + x4 = 12
4x2 + 3 x3 + 8 x5 + x6 = 10.
52 Recherche opérationnelle 2021-2022
2λ 1–λ 3 Λ 2 3λ
C BASE P0 x1 x2 x3 x4 x5 x6 Observations
2λ x1 7 1 3 1 0 2 0 -1 + 21λ ≤ 0**
λ x4 12 0 2 4 1 0 0 -3 + 15 λ ≤ 0 => -∞ < λ ≤ 1/21
3λ x6 10 0 4 3 0 8 1 -2 + 28 λ ≤ 0
αj 0 0 -1 -3 0 -2 0
βj 56 0 21 15 0 28 0 Changer de base dès que λ > 1/21.
1-λ x2 7/3 1/3 1 1/3 0 2/3 0 1/3 - 7λ ≤ 0*
λ x4 22/3 -2/3 0 10/3 1 -4/3 0 -8/3 + 8λ ≤ 0 => 1/21 ≤ λ ≤ 2/21
3λ x6 2/3 -4/3 0 5/3 0 16/3 1 -4/3 + 14 λ ≤ 0**
αj 7/3 1/3 0 -8/3 0 -4/3 0
βj 7 -7 0 8 0 14 0 Changer de base dès que λ > 2/21.
1-λ x2 9/4 1/2 1 1/8 0 0 -1/8 -7λ/2 ≤ 0
λ x4 15/2 -1 0 15/4 1 0 1/4 -9/4 + 29λ/8 ≤ 0 => 2/21 ≤ λ ≤ 18/29
2 x5 1/8 -1/4 0 5/16 0 1 3/16 1/4 - 21λ/8 ≤ 0
αj 5/2 0 0 -9/4 0 0 1/4
βj 21/4 -7/2 0 29/8 0 0 -21/8 Changer de base dès que λ > 18/29.
1-λ x2 11/5 3/5 1 0 0 -2/5 -1/5 -9/5 - 3λ/5 ≤ 0
λ x4 6 2 0 0 1 -12 -2 36/5 - 58λ/5 ≤ 0 => 18/29 ≤ λ < + ∞
3 x3 2/5 -4/5 0 1 0 16/5 3/5 8/5 -24λ/5 ≤ 0
αj 17/5 -9/5 0 0 0 36/5 8/5
βj 19/5 -3/5 0 0 0 -58/5 -24/5
53 Recherche opérationnelle 2021-2022
Présentation de la solution
λ -∞ 1/21 2/21 18/29 +∞
x1 7 0 0 0
x2 0 7/3 9/4 11/5
x3 0 0 0 2/5
x4 12 22/3 15/2 6
x5 0 0 1/8 0
x6 10 2/3 0 0
Z 56λ 7/3 + 7λ 5/2 + 21λ/4 17/5 + 19λ/5
8/3 3 167/29
si x1 x 4 4
x 2 2 x 4 3(1 )
x3 3 x 4 2
Cela revient à résoudre le programme dual associé suivant :
max f 4 y1 3(1 ) y 2 2 y3
si y1 0 y 2 0 y3 6
0 y1 y 2 0 y3 8
0 y1 0 y 2 y3 5
y1 2 y 2 3 y3 10
En introduisant les variables d’écart le programme dual devient :
max f 4 y1 3(1 ) y 2 2 y3
si y1 0 y 2 0 y3 t1 6
0 y1 y 2 0 y3 t 2 8
0 y1 0 y 2 y3 t 3 5
y1 2 y 2 3 y3 t 4 10
4 3(1+λ) 2 0 0 0 0
T4 C BASE P0 y1 y2 y3 t1 t2 t3 t4 Observations
__
0 t1 6 1 0 0 1 0 0 0
0 t2 8 0 1 0 0 1 0 0 Certains Z j c j 0 , d ' où la solution
0 t3 5 0 0 1 0 0 1 0 de base considérée ne peut être optimale.
0 t4 10 1 2 3 0 0 0 1
αj 0 -4 -3 -2 0 0 0 0
βj 0 0 -3 0 0 0 0 0
4 Y1 6 1 0 0 1 0 0 0 Certains Z j c j 0__ , d ' où la solution
0 t2 8 0 1 0 0 1 0 0 de base considérée ne peut être optimale.
0 t3 5 0 0 1 0 0 1 0
0 t4 4 0 2 3 -1 0 0 1
αj 24 0 -3 -2 4 0 0 0
βj 0 0 -3 0 0 0 0 0
4 Y1 6 1 0 0 1 0 0 0 5 5
0 t2 8 0 1 0 0 1 0 0 3 0
3 9
0 t3 11/3 0 -2/3 0 1/3 0 1 -1/3 Changer de base dès que λ > -5/9.
2 y3 4/3 0 2/3 1 -1/3 0 0 1/3
αj 80/3 0 -5/3 0 10/3 0 0 2/3
βj 0 0 -3 0 0 0 0 0
4 Y1 6 1 0 0 1 0 0 0
0 t2 6 0 0 -3/2 1/2 1 0 -1/2
5
2 92 0
0 t3 5 0 0 1 0 0 1 0 5
32 0 => -5/9 ≤ λ ≤ 5/3.
3(1+λ) y2 2 0 1 3/2 -1/2 0 0 1/2 2
32 0
3
αj 30 0 0 5/2 5/2 0 0 3/2 2
-∞ -5/9 5/3 +∞
y1 6 6 0
y2 0 2 5
y3 4/3 0 0
t1 0 0 6
t2 8 6 3
t3 11/3 5 5
t4 0 0 0
F 80/3 30 + 6 λ 15 + 15λ
5.1 INTRODUCTION
La théorie des graphes est une partie importante de la théorie des ensembles. Elle
peut apporter une aide très efficace dans le traitement de certains problèmes de caractère
combinatoire apparaissant dans divers domaines économiques, sociologiques, psychologiques
ou technologiques… Elle constitue la base mathématique de la méthode du « Chemin critique »
dont l’une des variantes importantes est la méthode américaine PERT (Program Evaluation
Research Task). Cette méthode permet de mettre en œuvre et de surveiller l’exécution des
programmes de production ou de recherche.
Dans cette partie nous verrons quelques applications pratiques de la théorie des
graphes dans la résolution de certains problèmes notamment les problèmes du flot maximum,
de transport, d’affectation et d’ordonnancement.
aussi désigner un graphe par l’ensemble X des sommets et l’ensemble V des arcs : on écrit alors
G = (X, V). On peut représenter un graphe à l’aide d’un dessin tel que celui de la figure 1.1 ci-
dessous appelé « représentation sagittale du graphe ». On peut aussi le représenter comme sur
la figure 1.2 ou bien encore à l’aide d’une matrice booléenne appelée matrice d’incidence du
graphe.
x2 c x3
a
j
g
x1 b
d x5 k
x6
i
l
f
h
m
e
x4 x7
p n
Figure 5.1
Γ(x1) = {x2, x4, x5} ; Γ(x2) = {x1, x3} ; Γ(x3) = {x5};
Γ(x4) = {x4, x5, x6, x7} ; Γ(x5) = {x4, x5} ;
Γ(x6) = {x3, x6, x7} ; Γ(x4) = .
x1 b x1
x2 a x2
c
e
x3 x3
d
g j
x4 p x4
h f
x5 x5
k
i
x6 l x6
n
m
x7 . x7
Figure 5.2
58 Recherche opérationnelle 2021-2022
1 si l ' arc ( xi , x j )
Pour le graphe des figures 1.1 et 1.2 la matrice booléenne est la suivante :
X1 x2 x3 x4 x5 x6 x7
X1 0 1 0 1 1 0 0
X2 1 0 1 0 0 0 0
X3 0 0 0 0 1 0 0
X4 0 0 0 1 1 1 1
X5 0 0 0 1 1 0 0
X6 0 0 1 0 0 1 1
X7 0 0 0 0 0 0 0
On peut représenter par un graphe des structures très diverses, par exemple :
- un réseau de routes ;
- un réseau électrique ;
- un groupe humain dont on étudie en psychologie les communications ;
- les relations de parenté d’un groupe d’individus ;
- la circulation des informations dans un système ;
- les opérations de montage ou de démontage d’un ensemble technologique ;
- les règles de certains jeux comme celles des échecs ou des dames ;
- un ensemble d’opérations concourant à la réalisation d’un projet.
Soit l’arc (xi, xj) : xi est l’extrémité initiale et xj est l’extrémité terminale. Deux
sommets xi et xj sont adjacents s’ils sont distinct et s’il existe un arc (xi, xj) ou (xj, xi).
Deux arcs sont adjacents s’ils sont distincts et ont une extrémité commune.
Exemple : Sur la figure 1.1, les sommets x1 et x2, x3 et x6 sont adjacents 2 à 2. Les arcs a et c, f
et g sont adjacents. Un sommet est isolé s’il n’est adjacent à aucun autre sommet.
de passer d’un sommet à un autre en suivant les arcs. Ainsi sur la fig. 1.1, (x 1, x2, x3, x5, x4),
(x1, x2, x1, x4, x5, x5, x4, x6, x7), (x2, x1, x4, x5, x5, x4, x6, x3, x5), (x4, x7) sont des chemins.
- Un chemin peut être fini ou infini.
- Un chemin est simple lorsqu’il n’utilise pas deux fois le même arc ; dans le cas contraire, il
est dit composé. Exemple : (x1, x2, x3, x5, x4, x6, x3) sur la figure 1.1 est un chemin simple.
- Un chemin est élémentaire s’il n’utilise pas deux fois le même sommet. Exemple : (x2, x1,
x5, x4, x7) est chemin élémentaire.
- Un circuit est un chemin dont le sommet initial coïncide avec le sommet final. Exemple :
(x3, x5, x4, x6, x3) est un circuit sur la figure 1.1.
- Une boucle est un circuit constitué par un seul arc et un seul sommet. Exemple : l’arc p est
une boucle.
- La longueur d’un chemin ou d’un circuit est le nombre d’arcs que contient ce chemin ou
ce circuit. Exemple : le circuit (x3, x5, x4, x6, x3) sur la figure 11 est de longueur 4.
- Un chemin ou circuit hamiltonien est un chemin ou circuit qui passe une et une seule fois
par chaque sommet.
tout couple de sommets reliés est relié dans les deux sens. Exemple : le graphe de la
figure 1.1 n’est pas symétrique.
Un graphe G = (X, V) est antisymétrique si ( xi , x j ) V (/ x j , xi ) V , c’est-à-dire
si tout arc (xi, xj) appartient à V, l’arc (xj, xi) en sens inverse n’existe pas. Ainsi le graphe
de la figure 1.1 n’est pas antisymétrique. Il résulte de la définition d’un graphe
antisymétrique que celui-ci ne contient pas de boucle.
Un graphe est fortement connexe si entre tout couple de sommets xi, xj il existe un
chemin de xi à xj et un autre de xj à xi ; Ainsi le graphe de la figure 1.3 ci-dessous est
fortement connexe mais celui de la figure 1.1 ne l’est pas.
60 Recherche opérationnelle 2021-2022
x2
x3
x1 x6
x4
x5
Figure 1.3
xj est un descendant d’ordre α de xi si d(xi, xj) = α. Dans ce cas xi est alors un ascendant
d’ordre α de xj.
1 ( x j ) est l’ensemble des précédents xj ou encore c’est l’ensemble des sommets xi tels qu’il existe
l’ensemble formé de xj et de tous les sommets d’où xj est accessible par un chemin.
1°. C xi ;
2°. C xi C x j C xi C x j ;
62 Recherche opérationnelle 2021-2022
3°. C xi X ;
xi X
v1 v5
v4
Figure 5.4
Questions Réponses
a. Combien des sommets y a-t-il ? a. 5
b. Combien d’arcs. Y a-t-il ? b. 6
c. Déterminer Г(vi) c. Г(v1) = {v2, v4}
Г(v2) = {v3}
Г(v3) = {v5}
Г(v4) = {v5}
Г(v5) = {v1}
d. Combien de circuits y a-t-il et quels sont- d. 2 : (v1 - v2 - v3 - v5 - v1)
ils ? (v1 - v4 - v5 - v1)
e. Non, car il existe de couples de sommets,
e. Ce graphe est-il complet ? comme (v1, v3), non reliés par un arc.
f. C’est un graphe antisymétrique.
f. Est-il symétrique ou antisymétrique ? g. Oui
g. Est-il simplement connexe ? h.
h. Donner la matrice booléenne v1 v2 v3 v4 v5
v1 0 1 0 1 0
correspondant à ce graphe.
v2 0 0 1 0 0
v3 0 0 0 0 1
v4 0 0 0 0 1
v5 1 0 0 0 0
i. d (v1, v5) = 2
i. Quelle est la valeur de d (v1, v5).
63 Recherche opérationnelle 2021-2022
2 3
1
4
2
1
1
0
u
2
2
v
4
1
3
Figure 6.1
Certains sommets ne pourront éventuellement pas être marqués. L’ensemble des sommets marqués
constituent donc la fermeture transitive ( xi ).
Cet algorithme permet :
- Le calcul des distances d’un sommet xi à un sommet xj, d (xi, xj).
- L’obtention d’un chemin de longueur minimum allant de xi à xj.
- L’obtention d’un circuit passant par xi qui soit de longueur minimum : il suffit de déterminer
d (xi, xj) et d (xj, xi).
NB : Le marquage peut se faire soit sur le graphe, soit encore sur la matrice associée.
Exemple : trouver la fermeture transitive du sommet xi du graphe ci-après :
x2 ^
x3 Г(x3)
1
2 x4
1 2
x6
0
x1
3
x5
11
2 3
x7 x8
x9
Figure 6.2
65 Recherche opérationnelle 2021-2022
x1 x2 x3 x4 x5 X6 x7 x8 x9
x1 0 1 1 0 0 0 1 0 0
x2 0 0 1 0 0 0 0 0 0
x3 0 0 0 0 0 0 0 1 0
x4 0 0 1 0 1 0 0 0 0
x5 0 0 0 0 0 0 0 0 0
x6 0 0 0 0 1 0 0 0 1
x7 0 0 0 1 0 0 0 0 0
x8 0 0 0 1 1 0 0 0 1
x9 0 0 0 0 1 0 0 0 0
Donc,
( x1 ) x1 , x2 , x3 , x4 , x5 , x7 , x8 , x9 .
6.3 RECHERCHE DES CIRCUITS DANS UN GRAPHE
Notons tout d’abord que les boucles sont des cas particuliers des circuits. Il est facile
de les détecter dans un graphe ou sur sa matrice incidente : elles sont représentées par les 1 de
la diagonale. Après avoir supprimé les boucles ainsi détectées, on applique l’algorithme ci-
dessous pour rechercher les autres circuits du graphe.
Algorithme de recherche des circuits.
a. Sur le tracé du graphe.
1°. Repérer le sommet i = 1 ;
2°. Les arcs du sommet i sont-ils tous aboutissants ou tous incidents ? Si oui aller en
3°, sinon reprendre en 1° avec le sommet i + 1.
3°. Effacer le sommet i ainsi que ses arcs adjacents. Puis reprendre en 1° avec le
sommet i + 1.
La procédure s’arrête lorsque tous les sommets non effacés ont à la fois des arcs incidents et
aboutissants. Si le graphe ne contient aucun circuit, la procédure efface tout le graphe. Dans le
cas contraire seuls les circuits subsistent.
66 Recherche opérationnelle 2021-2022
x1 x2
x4
x4
x10
x5
x3
x9
x8
x6
x7
Figure 6.3
x3 x5
x4 x6
x10
x8
x8
x5
x3
x6
x4
x10
68 Recherche opérationnelle 2021-2022
x2 4
5 x3
G= 1
3 x5
x1
2
2
x4
Figure 7.1
69 Recherche opérationnelle 2021-2022
mij 0 si ( xi , x j ) V
On appelle « force » d’un graphe valué numérique la valeur maximum des valeurs des arcs du
graphe. Par exemple dans le graphe de la fig. 7.1. la force de G est 5.
Exemple : soit le graphe ci-après. Rechercher dans ce graphe le chemin des valeurs maximale
et minimale allant de x0 à xn .
a. Recherche du chemin de valeur maximale
9 15
5
3
20
2 3
3
7 13 4 11
11
0 5
31
x0 13
9 7
8 8 4
21
4
2
3 9
4 5 33
4 3
xn
4 5
16
2 8
8
Figure 7.2
Le chemin de valeur maximale allant de x0 à xn est tracé en rouge sur le graphe : sa valeur est
33. Le marquage à chaque sommet exprime la valeur maximale du chemin allant de x 0 à ce
sommet.
71 Recherche opérationnelle 2021-2022
C
30
100
B 70 D
60
50 30 80 150 130
45 35
140
A G
360
95
180
60
F
80
E
Figure 7.4
72 Recherche opérationnelle 2021-2022
que xi mais ayant xi comme extrémité terminale, tandis que V ( xi ) est l’ensemble des arcs
partant de xi vers d’autres sommets.
Un flot pour un réseau de transport est une quantité (v) associée à chaque arc
v du réseau telle que :
1°. (v) 0 v V (V = ensemble des arcs du réseau) ; c’est-à-dire que le flot ne peut
jamais être négatif, il ne peut être que positif ou nul ;
2°. (v) (v), x i x 0 , xi x n
vV ( xi ) vV ( xi )
Cette propriété exprime que le flot est conservatif, c’est-à-dire que le flot respecte la loi
de Kirchhoff en tout sommet autre que x0 et xn : « Tout flot qui entre dans un sommet
doit en sortir ».
_
3°. (v) C (v) v V : Cela signifie que le flot dans un arc doit être inférieur ou égal
à la capacité de cet arc. Si (v) C (v) on dit que l’arc est saturé. Un flot (v) peut être
assimilé à une quantité de matière qui passe dans l’arc v et qui ne doit jamais
dépasser la capacité C(v) de cet arc.
4°. (v ) (v ) 0
vV ( x0 ) vV ( xn )
73 Recherche opérationnelle 2021-2022
Le nombre 0 représente la quantité de matière qui sort de x0 vers le réseau et arrive du réseau
en xn. Un flot est dit complet ssi tout chemin de x0 à xn du réseau comporte au moins un arc
saturé.
7.2.2 Exemple d’un réseau de transport
Certains ports de chargement A1, A2, …, Am disposent respectivement des tonnages
x1, x2, …, xm d’un produit que d’autres ports B1, B2, …, Bn réclament en quantités y1, y2, …,
yn. Chaque liaison maritime entre un port Ai et un port Bj a une capacité limitée Cij. On cherche
à satisfaire au mieux toutes les demandes et à organiser les expéditions.
A cette fin, on construit un réseau de transport en reliant une entrée A aux m
sommets Ai par des arcs de capacité xi et les n sommets Bj à une sortie B par des arcs de capacité
yj. En appelant j le tonnage total arrivant en un port Bj et i celui correspondant aux
expéditions des Ai, rij étant la quantité transportée de Ai à Bj le tonnage global sera maximal si
m n
R rij est max imal avec 0 rij C ij , i 1, 2, ..., m ; j 1, 2, ..., n .
i 1 j 1
m
et r
i 1
ij j y j , j 1, 2, ..., n
r
j 1
ij i xi , i 1, 2, ..., m
Ajoutons que certaines capacités Cij peuvent être nulles par hypothèse car aucune liaison
maritime entre Ai et Bj n’existe.
Ce problème peut être représenté par le graphe ci-après :
A1 C11 B1
C12 C21
x1 Cm1
C13 B2 y2 y1
A2 C22
Cm2
A B3 B
x2 C23
C2n Cm3 y3
yn
C1n
xm
Figure 7.5
Am Cmn Bn
74 Recherche opérationnelle 2021-2022
x4
x8
x1
x5 F
x0 x2 x9
xn
x3 x6
x10
x7
Figure 7.6
F = {x2, x3, x6, x9, xn}
V (F ) = {(x1, x2), ( x0, x2), (x5, x2), (x0, x3), (x5, x9), (x10, x9), (x8, xn), (x10, xn)}
peut dire que la coupe C ( F , F ) détermine une partition de tous les sommets en deux sous
la somme des capacités des arcs allant de F à F (avec x0 F et xn F ). Donc, si l’on appelle
Comme F contient la sortie toute unité de matière allant de x0 à xn emprunte au moins une fois
un arc de V (F ). Donc quel que soit un flot et une coupe V (F ) on a :
( xn ) C(V ( F ))
S’il existe un flot 0 ( xn ) et une coupe V ( F ) telle que 0 ( xn ) C(V ( F )) alors le flot 0 ( x n )
a donc une valeur maximale et la coupe V une capacité minimale ; d’où le théorème suivant :
Théorème de Ford-Fulkerson ou théorème de min-cut, max-flow :
« Dans un réseau de transport donné, la valeur maximale d’un flot est égale à la capacité
minimale d’une coupe : max 0 min C ( V ( F ))
x0 F , xn F
l’ordre de la séquence, on augmente le flot de cet arc ; s’il est orienté en sens inverse,
on diminue le flot de cet arc. La quantité à augmenter ou à retrancher au flot des arcs de
la séquence est choisie de telle sorte qu’au moins un arc soit saturé et que les flots des
arcs soient tous positifs ou nuls.
Si en appliquant une nouvelle fois la procédure de marquage décrite ci-dessus, on n’arrive pas
à marquer la sortie alors on a trouvé un flot global maximal. Pour le calculer, on réalise une
coupe en constituant l’ensemble F des sommets marqués et l’ensemble F des sommets non
marqués. La valeur de cette coupe est la valeur maximale du flot.
Exemple : Trouver le flot maximal du réseau de transport représenté par la figure 4.3 ci-dessous
où les nombres indiqués à côté des flèches des arcs représentent les capacités respectives.
6
4 2
1 2 8 9 8
6
9
44-
5 1
8
5 3
0 2 6
9 11
3 2
1
7 7
14 6
6
44 12
8
3 8 11
11
10
Figure
7 7.7
2 9
La recherche du flot complet sera faite sur les matrices des capacités de la manière suivante.
Soit la matrice ci-dessous dont les capacités k(i, j) sont celles de la figure 7.7.
77 Recherche opérationnelle 2021-2022
k (i, j)
0 1 2 3 4 5 6 7 8 9 10 11
0 0 6 8 14 0 0 0 0 0 0 0 0
1 0 0 4 0 6 2 0 0 0 0 0 0
2 0 0 0 0 0 0 7 0 0 3 0 0
3 0 0 1 0 0 0 8 2 0 0 0 0
4 0 0 0 0 0 8 0 0 2 0 0 0
5 0 0 0 0 0 0 0 0 9 1 6 0
6 0 5 0 0 0 0 0 11 0 0 0 0
7 0 0 0 0 0 0 0 0 0 4 9 2
8 0 0 0 0 0 0 0 0 0 3 0 9
9 0 0 0 0 0 0 7 0 0 0 8 6
10 0 0 0 0 0 0 0 0 0 0 0 12
11 0 0 0 0 0 0 0 0 0 0 0 0
Nous faisons passer un flot au jugé sur le chemin 0 - 1- 2 -6 - 7- 11. Dans la matrice nous
encerclons les capacités de ce chemin et lançons un flot égal à la plus petite valeur des capacités
encerclées. Nous lançons donc le flot de valeur 2 sur le chemin indiqué. Les capacités sur ce
chemin deviennent k ((i1,)j ) k (i, j ) f (i, j ) k (i, j ) 2 . La matrice des capacités k ((i1,)j ) est donc
0 1 2 3 4 5 6 7 8 9 10 11
0 4 8 14
1 2 6 2
2 5 3
3 1 8 2
4 8 2
5 9 1 6
6 5 9
7 4 9
8 3 9
9 7 8 6
10 12
11
78 Recherche opérationnelle 2021-2022
Sur la matrice des capacités k ((i1,)j ) on repère le chemin non saturé 0 - 1 - 2- 6 - 7- 9- 11 sur lequel
on fait passer un flot de valeur 2 (plus petite capacité du chemin considéré). On retranche ce
flot aux capacités du chemin considéré et l’on obtient la matrice des capacités
k ((i2, )j ) telle que :
k ((i2, )j ) k ((i1,)j ) 2 capacité sur le che min considéré ou k ((i1,)j ) autre capacité .
k ((i2, )j )
0 1 2 3 4 5 6 7 8 9 10 11
0 2 8 14
1 6 2
2 3 3
3 1 8 2
4 8 2
5 9 1 6
6 5 7
7 2 9
8 3 9
9 7 8 4
10 12
11
79 Recherche opérationnelle 2021-2022
0 1 2 3 4 5 6 7 8 9 10 11
0 8 14
1 4 2
2 3 3
3 1 8 2
4 8 0
5 9 1 6
6 5 7
7 2 9
8 3 7
9 7 8 4
10 12
11
k ((i4, )j ) k ((i3, )j ) 2 .
0 1 2 3 4 5 6 7 8 9 10 11
0 6 14
1 4 2
2 1 3
3 1 8 2
4 8
5 9 1 6
6 5 5
7 9
8 3 7
9 7 8 2
10 12
11
80 Recherche opérationnelle 2021-2022
k ((i5, )j ) k ((i4, )j ) 3 .
0 1 2 3 4 5 6 7 8 9 10 11
0 3 14
1 4 2
2 1 0
3 1 8 2
4 8
5 9 1 6
6 5 5
7 9
8 3 7
9 7 5 2
10 9
11
k ((i6, )j ) k ((i5, )j ) 1 .
0 1 2 3 4 5 6 7 8 9 10 11
0 2 14
1 4 2
2
3 1 8 2
4 8
5 9 1 6
6 5 4
7 8
8 3 7
9 7 5 2
10 8
11
81 Recherche opérationnelle 2021-2022
k ((i7, )j ) k ((i6, )j ) 4 .
0 1 2 3 4 5 6 7 8 9 10 11
0 2 10
1 4 2
2
3 1 4 2
4 8
5 9 1 6
6 5
7 4
8 3 7
9 7 5 2
10 4
11
k ((i8, )j ) k ((i7, )j ) 2 .
0 1 2 3 4 5 6 7 8 9 10 11
0 2 8
1 4 2
2
3 1 4
4 8
5 9 1 6
6 5
7 2
8 3 7
9 7 5 2
10 2
11
82 Recherche opérationnelle 2021-2022
k ((i9, )j ) k ((i8, )j ) 2 .
0 1 2 3 4 5 6 7 8 9 10 11
0 2 6
1 2 2
2
3 1 2
4 6
5 9 1 4
6 3
7 2
8 3 7
9 7 5 2
10
11
k ((i10, j)) k ((i9, )j ) 2 .
0 1 2 3 4 5 6 7 8 9 10 11
0 2 4
1 2
2
3 1
4 6
5 7 1 4
6 1
7 2
8 3 5
9 7 5 2
10
11
83 Recherche opérationnelle 2021-2022
Sur la matrice k (10) , on a encerclé les capacités des sommets qu’on peut atteindre à partir de 0
par des chemins non saturés. Ces sommets sont 2 et 3. Il n’existe plus de chemin non saturé qui
permet d’atteindre la sortie 11. On a donc trouvé un flot complet. Ce flot peut être calculé en
faisant : f (i, j ) k (i, j ) k ((i10, j)) . Ce calcul donne le tableau ci-après :
0 1 2 3 4 5 6 7 8 9 10 11
0 6 6 10
1 4 4 2
2 7 3
3 0 8 2
4 2 2
5 2 0 2
6 4 11
7 4 7 2
8 0 4
9 0 3 4
10 12
11
Le graphe avec les flots de ce tableau se présente comme celui de la figure 7.8 ci-après sur
laquelle on a appliqué la technique de marquage comme expliquée précédemment. Les arcs
saturés sont indiqués en rouge.
84 Recherche opérationnelle 2021-2022
+1
-2 4+2 4 2
+5
1 2 2+2 2+2 8
6
+4 4+2
4-2
4 0
6+2 5 0 +8
0 2 4
+ +3 9 11
3 2
0
7 0
10 2
6
4 12
3
3 8 11
+0 10
7
2 7
Figure 7.8
On a pu marquer la sortie : le flot total n’est donc pas optimal. Considérons la séquence suivante
des sommets marqués : 0-2-1-4-5-8-11. En considérant les capacités des arcs de cette séquence,
on augmentera de 2 le flot des arcs dirigés dans le sens du chemin et l’on diminuera de 2 les
autres arcs du chemin. Ainsi, (0, 2) passera de 6 à 8, (2, 1) de 4 à 2, (1, 4) de 4 à 6, (4, 5) de
2 à 4, (5, 8) de 2 à 4, (8, 11) de 4 à 6. Ainsi les arcs (0, 2) et (1, 4) deviennent saturés tandis que
l’arc (1, 2) ne l’est plus. Le graphe et les flots deviennent comme ceux de la figure 7.9 ci-après:
-2 6 4 2
1 4 8
6 4
2 4 2 6
5 0 0
0 2 4
8 +3 9 11
+ 3
0 2
7 -1 0
10 2
6 4 12
3
3 8 11
+0 10
2 7
7
Figure 7.9
85 Recherche opérationnelle 2021-2022
Sur le graphe de la figure 7.9 il n’est plus possible de marquer la sortie. On a donc trouvé un
flot global maximal. Pour le calculer réalisons la coupe dont les sommets marqués forment
l’ensemble F et les sommets non marqués, l’ensemble F :
F 0,1, 2, 3, 6 ; F 4, 5, 7, 8, 9,10,11 . Donc la valeur de la coupe est alors
Exemple : Soit le tableau des Cij ci-après, exprimant le coût d’une affectation de Xi à Yj.
Chercher les affectations de coût minimum.
Y1 Y2 yY3 Y4 Y5
En appliquant la procédure de la phase I on enlèvera 6 à
X1 7 3 5 7 10
la colonne (1), 3 à la colonne (2), 1 à la colonne (3), 2 à la
X2 6 ∞ ∞ 8 7
colonne 4 et 7 à la colonne (5). Il vient le tableau ci-
X3 6 5 1 5 ∞
dessous :
X4 11 4 ∞ 11 15
X5 ∞ 4 5 2 10
(a)
(1) (2) (3) y(4)
5 (5) On appliquera la même procédure sur les éléments d’une
(1) 1 0 4 5 3 même ligne du tableau (b) ci contre et l’on obtient le
(2) 0 ∞ ∞ 6 0 tableau (c).
(3) 0 2 0 3 ∞
(4) 5 1 ∞ 9 8
(5) ∞ 1 4 0 3
(b)
(1) (2) (3) y(4)
5 (5) (1) (2) (3) y(4)
5 (5)
(1) 1 0 4 5 3 (1) 1 0 4 5 3
(2) 0 ∞ ∞ 6 0 (2) 0 ∞ ∞ 6 0
X
(3) 0 2 0 3 ∞ (3) X
0 2 0 3 ∞
(4) 4 0 ∞ 8 7 (4) 4 0
X ∞ 8 7
(5) ∞ 1 4 0 3 (5) ∞ 1 4 0 3
(c) (d)
affectation où tous les C ij(1) sont des zéros. Si cela est possible, on a trouvé la solution optimale,
sinon on passe à la phase III. Pour rechercher cette solution nulle, on considère d’abord une des
lignes qui a le moins de zéros, on encadre l’un des zéros de cette ligne, puis on barre les zéros
qui se trouvent sur la même ligne ou la même colonne que le zéro encadré. On procède de
même successivement pour toutes les lignes.
Dans notre exemple sur le tableau (d), on a d’abord encadré C12(1 ) et barré C 42
(1)
,
87 Recherche opérationnelle 2021-2022
(1)
encadré C54 (1)
, encadré C 21 (1)
et barré C 25 (1)
et C31 (1)
, encadré C33 . On voit qu’on n’a pas pu obtenir
une affectation de valeur nulle car la 4ème ligne et la 5ème colonne n’ayant pas de zéro encadré,
on est obligé d’affecter X4 à Y5, ce qui entraîne un coût C45
(1)
7.
Phase III : obtention d’un ensemble minimal de lignes et colonnes contenant tous les
zéros
Opérer pas à pas comme suit :
a. Vérifier que le couplage obtenu en phase II est maximal. Dans le cas contraire, employer
l’algorithme de Ford-Fulkerson comme dans le cas d’affectation simple pour obtenir un
couplage maximal.
b. Marquer d’une croix toutes les lignes qui ne contiennent aucun zéro encadré.
c. Marquer toute colonne qui a un ou plusieurs zéros barrés dans une des lignes marquées.
d. Marquer toute ligne qui a un zéro encadré dans une colonne marquée.
e. Répéter c et d jusqu’à ce qu’il ne soit plus possible d’obtenir ainsi de nouvelles lignes
ou colonnes marquées.
Ce procédé permet d’obtenir un ensemble de lignes et/ou colonnes en nombre
minimal qui contient tous les zéros encadrés ou rayés.
Dans notre exemple, on a d’abord marqué la ligne (4) (voir tableau (d)), puis la
colonne (2) et la ligne (1). On n’a pas pu pousser plus loin.
Phase IV : Suite de la phase III
Tracer un trait sur toute ligne non marquée et un trait sur toute colonne marquée.
Ceci permet d’obtenir d’une façon certaine l’ensemble des lignes et/ou des colonnes en nombre
minimal qui contient tous les zéros.
Sur le tableau (d) il faut tracer des traits sur les lignes (2), (3) et (5) et sur la colonne
(2).
Phase V : Déplacement éventuel de certains zéros
Considérer le tableau partiel des éléments qui ne sont pas traversés par des traits et
prendre le plus petit nombre de ce tableau partiel, enlever ce nombre aux colonnes non
traversées par un trait et l’ajouter aux lignes traversées par un trait. Ceci revient à enlever ce
nombre à la partie non traversée par des traits et à l’ajouter aux éléments se trouvant à
l’intersection de deux traits et à laisser le reste invariable.
Sur le tableau (d) il faut retrancher 1 aux colonnes (1), (3), (4), (5) et ajouter ensuite
1 aux lignes (2), (3) et (5) : on obtient le tableau (e).
88 Recherche opérationnelle 2021-2022
zéro encadré : une solution optimale est donc trouvée avec C11( 2) C25
( 2)
C33
( 2)
C42
( 2)
C54
( 2)
0
. Cette solution optimale donne, en revenant au tableau initial : C11 + C25 + C33 + C42 + C54 = 7
+ 7 + 1 + 4 + 2 = 21. Le couplage à valeur minimale est représenté par le schéma ci-dessous :
X1 Y1
X2 Y2
X3 Y3
X4 Y4
X5 Y5
Figure 7.10
Remarques :
1. S’il y a plus d’individus que des jobs ( m n ) on introduira m n jobs fictifs pour lesquels
tous les individus ont la même qualification ou une même valeur des Cij = 0. Il est clair que
toute solution au problème modifié donne une solution au problème original. En effet, si un
individu est affecté à un job fictif dans le problème modifié, il n’est pas affecté du tout dans
le problème original et de cette façon le principe d’optimalité est préservé.
2. Dans certains problèmes d’affectation on se propose de rechercher l’affectation donnant le
maximum de la fonction économique. Dans ce cas on opère de la façon suivante :
a) On recherche le maximum des Cij dans la matrice des valeurs Cij, soit C = max Cij.
89 Recherche opérationnelle 2021-2022
Il est évident que le maximum du problème d’affectation formé avec les Cij correspond
au minimum de celui formée avec les Cij . On recherche donc la solution optimale du
tableau formé avec les Cij .
m
telle que : x
i 1
ij d j ( j 1, 2, ..., n)
x
j 1
ij ai (i 1, 2, ..., m)
m n
Le coût d’expédition sera alors déterminé par la fonction c
i 1 j 1
ij xij
90 Recherche opérationnelle 2021-2022
P2 B2
P3 B3
P4 B4
B5
Figure 7.11
Un tel problème peut aussi être résolu par l’algorithme de Stepping-Stone dû au mathématicien
américain G. Dantzig.
Exemple :
Dans 3 usines A, B et C on dispose de certains tonnages d’un produit ; ces tonnages sont
respectivement 100, 120 et 120. Le produit est livré à 5 magasins 1, 2, 3, 4 et 5 qui doivent
recevoir respectivement 40, 50, 70, 90 et 90 tonnes. Le coût de transport d’une certaine unité
du produit est donné par le tableau qui suit. On se propose de déterminer un plan (schéma) de
transport des 340 tonnes de telle sorte que le coût total de transport de ces 340 tonnes soit
minimum.
(1) (2) (3) y(4)
5 (5)
(A) 4 1 2 6 9
(B) 6 4 3 5 7
(C) 5 2 6 4 8
Dde 40 50 70 90 90
L’algorithme de Stepping-Stone part de la construction d’une première solution de
base en utilisant une règle dite « règle du coin nord-ouest ».
(1) (2) (3) y(4)
5 (5)
(A) 40 50 10 100
(B) 60 60 120
(C) 30 90 120
40 50 70 90 90
91 Recherche opérationnelle 2021-2022
On part du coin nord-ouest du tableau des affectations. A l’intersection de la 1ère ligne et de 1ère
colonne, on porte le plus petit des nombres représentant la disponibilité (100) et la demande
(40). On porte donc 40. On complètera donc la 1ère ligne (la 1ère colonne si la ligne est saturée)
jusqu’à saturation de la disponibilité (ou de la demande). Ceci nous conduit donc à prendre :
x11 = 40 ; x12 = 50 ; x13 = 10 ; x14 = x15 = 0. Nous saturerons ensuite la demande dans la 3ème
colonne, puis la disponibilité dans la 2ème ligne, ce qui donnera x21 = x22 = 0, x23 = 60 ; x24 =
60 ; x25 = 0. Saturons maintenant la demande dans la 4ème colonne, puis la disponibilité dans la
3ème ligne, soit x31 = x32 = x33 = 0 ; x34 = 30 ; x35 = 90. On a ainsi réalisé une solution de base.
Le coût global en est :
Z = (40)(4) + (50)(1) + (10)(2) + (60)(3) + (60)(5) + (30)(4) + (90)(8) = 1550.
Nous allons maintenant en partant de cette solution en rechercher une nouvelle qui
correspond à un coût global moins élevé, mais qui contiendra encore au moins 8 variables à
valeur nulle. Pour ce faire, nous supposerons chaque fois que l’on affecte une unité du produit
dans une case à variable précédemment nulle ; il faudra, pour garder l’équilibre, retrancher ou
augmenter d’une unité dans les cases déjà affectées de ligne et de colonne correspondantes.
40 50 10 40 50 10
+1 +1
-1 -1
60 60 60 60
+1 -1 +1 -1
30 90 30 90
+1 -1
(a) (b)
14 6235 2 15 9 8 4 5 3 2 1
40 50 10 40 50 10
+1 -1 +1
-1
60 60 60 60
+1 -1 +1 -1
30 90 30 90
(c) (d)
21 6 4 2 3 1 22 4 1 2 3 2
92 Recherche opérationnelle 2021-2022
40 50 10 40 50 10
-1 +1
60 60 60 60
-1 +1 -1 +1
30 90 30 90
+1 -1 +1 -1
(e) (f)
25 7 8 4 5 2 31 5 4 235 4 1
50 10 40 50 10
-1 +1
60 60 60 60
-1 +1 -1 +1
30 90 30 90
+1 -1 +1 -1
(g) (h)
32 2 1 2 3 5 4 1 33 6 4 5 3 4
Pour réaliser une solution plus avantageuse supposons que l’on affecte une unité
dans la case (1,4) : 1ère ligne et 4ème colonne, tableau (a). Il faut alors en retirer une de la case
(1,3), en ajouter une dans la case (2,3) et finalement en retirer une de la case (2,4). Cet échange
circulaire d’une unité fait varier le coût total d’une quantité 14 (case 1,4).
Les ij dont il est question constituent les coûts marginaux unitaires quand on passe d’une base
à l’autre. ij est facilement évalué en consultant le tableau des coûts unitaires cij.
Après calcul des ij pour toutes les cases à variable nulle on peut remarquer que
l’échange qui fait diminuer le coût est tel que rk min ij , ij 0. Ici c’est l’échange
i, j
correspondant à 25 2 . Mais au lieu de déplacer une seule unité, déplaçons le plus grand
nombre d’unités possibles. Pour cela considérons dans l’escalier (cases intervenant dans
l’échange) la plus petite quantité correspondant à une case où se trouve une quantité
-1. Le tableau (e) nous montre que c’est la case (2,4) où se trouve le nombre 60.On portera donc
60 dans la case (2,5), quantité que l’on enlèvera de la case (2,4) et, pour rétablir les disponibilités
93 Recherche opérationnelle 2021-2022
14 = 6 – 4 + 8 – 7 + 3 – 2 = 4; 15 = 9 – 7 + 3 – 2 = 3 ; 21 = 6 – 4 + 2 – 3 = 1; 22
= 4 – 1 + 2 – 3 = 2; 24 = 5 – 4 + 8 – 7 = 2; 31 = 5 – 4 + 2 – 3 + 7 – 8 = -1;
32 = 2 – 1 + 2 – 3 + 7 – 8 = -1; 33 = 6 – 3 + 7 – 8 = 2.
On a le choix entre 31 1 et 32 1 .
Choisissons par exemple 31. Prenons un nombre d’unités égal au plus petit nombre figurant
dans les cases où il y a une quantité -1 : ces cases sont (1,1) renfermant le nombre 40, (2,3)
renfermant 60 et (3,5) renfermant 30. On échangera donc 30 unités à partir de la case (3,1). Ceci
donne la solution du tableau ci-après :
(B) 30 90 120
(C) 30 90 120
40 50 70 90 90
Z = (10)(4) + (50)(1) + (40)(2) + (30)(3) + (90)(7) + (30)(5) + (90)(4) = 1400.
Calculons une nouvelle fois les ij correspondant au tableau précédent :
14 = 6 – 4 + 5 – 4 = 3 ; 24 = 5 – 4 + 5 – 4 + 2 - 3 = 1 ; 15 = 9 – 7 + 3 – 2 = 3 ;
32 = 2 - 1 + 4 – 5 = 0 ; 21 = 6 – 4 + 2 – 3 = 1 ; 33 = 6 – 5 + 4 – 2 = 3 ;
94 Recherche opérationnelle 2021-2022
22 = 4 – 1 + 2 – 3 = 2 ; 35 = 8 – 7 + 3 – 2 + 4 - 5 = 1.
Aucun échange ne peut plus diminuer le coût puisque tous les ij sont positifs ou nuls. On en
conclut qu’il est impossible d’obtenir une meilleure solution. Par contre, il y a une solution
équivalente puisque 32 0 . Un échange avec 32 donne la solution du tableau suivant :
(B) 30 90 120
(C) 30 90 120
40 50 70 90 90
2. Dans une société industrielle, les cotations mensuelles des ouvriers sont présentées dans le
tableau ci-dessous :
95 Recherche opérationnelle 2021-2022
y1 y2 y3 y4 y5
x1 9 6 7 3 4
x2 2 1 9 1 8
x3 4 3 2 2 7
x4 9 1 8 8 3
x5 1 7 8 9 5
On demande de trouver la meilleure affectation des ouvriers aux différents travaux de manière
à maximiser le rendement de travail.
96 Recherche opérationnelle 2021-2022
La mise en graphe du tableau ci-dessus par la méthode de potentiel nous conduit au graphe ci-
dessous :
0 4
x4 4
x1 3
x0 x9
0 33 x6 7
x5
3 3
0 2
x3 x8
Figure 8.1
98 Recherche opérationnelle 2021-2022
7 (4)
2 (6) 4 (4)
B E
1 (3)
A 6 (7)
3 (2)
5 (2)
8 (3)
D
Figure 8.2
Dans l’exemple du graphe PERT ci-dessus, il n’y a aucune tâche fictive. Si on ajoute une
contrainte supplémentaire « 5 doit être déterminé pour que 6 puisse commencer », alors il
apparaît une tâche ou une opération fictive (arc fictif) dans le graphe PERT. Le graphe
potentiel devient :
99 Recherche opérationnelle 2021-2022
x2 x7
x4
x1 x6
x0 x9
x5
x3 x8
Figure 8.3
7
2 4
1 B E
6
A
5 F
0 8
3
D
Figure 8.4
les opérations prévues peuvent être effectivement réalisées, en tenant compte de leurs durées
respectives.
Pour trouver le chemin critique, on applique l’un des algorithmes permettant de
trouver le chemin de valeur maximum dans un graphe (voir chapitre 8). En appliquant donc un
algorithme vu, on peut déterminer pour chaque événement (sommet du graphe) sa date de
réalisation (c’est la valeur maximale des temps opératoires depuis le début des travaux jusqu’au
début de l’événement considéré). Ces dates « de réalisation des événements » sur le programme
sont appelées dates de réalisation des événements ou dates au plutôt des opérations. Appelons
ti ces dates attachées aux événements Ei. Les opérations constituant le chemin critique ou sur le
chemin critique sont appelées « opérations critiques ». Elles doivent débuter aux dates de
réalisation des événements origines des arcs. Si le démarrage d’une opération critique est
retardé, alors tout le programme se trouve retardé. Les opérations critiques sont donc les
opérations du programme sur lesquelles le planificateur doit porter toute son attention au cours
de la réalisation, car de son bon déroulement dépend la date de réalisation de l’ensemble des
travaux.
Les opérations « non critiques », c’est-à-dire celles ne se trouvant pas sur le chemin
critique, tolèrent certains retards dans leur mise à exécution, sans pourtant accroître la durée
totale du travail. Il est intéressant de connaître, pour chaque événement Ei non critique, sa date
limite de réalisation, date au-delà de laquelle tout le programme se trouve retardé.
Considérons l’événement Ei. Le temps minimal nécessaire pour réaliser les
opérations situées entre Ei et En est obtenu en cherchant sur le graphe le chemin de valeur
maximale de Ei à En. Par une telle procédure, on est assuré que les opérations succédant à Ei
peuvent être effectivement réalisées, en tenant compte de leurs durées respectives. La date
limite cherchée t i* sera obtenue en retranchant ce temps (valeur maximale du chemin de Ei à En)
de la date tn de l’événement final En.
Pratiquement, pour déterminer les dates t i* , appelées dates limites de réalisation des
événement Ei ou encore dates au plus tard du début des opérations commençant en Ei on
procède comme suit :
1°. Considérer un sommet Ei.
2°. Si Ei est sur le chemin critique, alors t i* t i , sinon aller en 3°.
3°. Considérer tous les arcs partant de Ei, leurs extrémités terminales Ej portent-elles
Toutes des dates limites t *j ? Si oui alors : t i* min (t *j t ij ) où tij est le temps opératoire
j i
101 Recherche opérationnelle 2021-2022
Figure 8.5
Le chemin critique, représenté sur la figure par les arcs en rouge, est constitué comme suit :
1-3-4-8-11-10-12. Les dates attendues ti sont portées sur chaque sommet à côté des nombres
entre parenthèses. On les obtient lors du marquage servant à la recherche du chemin critique.
Les dates limites, portées sur chaque sommet, sont celles données par les nombres entre
parenthèses. Celles des événements critiques sont confondues aux dates attendues. Celles des
événements non critiques sont déterminées selon la procédure expliquée ci haut. Considérons
par exemple l’événement E7 qui est séparé de E11 par un temps opératoire de 4, donc
l’opération P7, 11 peut commencer 4 semaines avant E11. Donc l’événement E7 doit avoir lieu
au plus tard à la date t 7* 42 4 38 . E9 est séparé de E10 par un temps opératoire de 5, donc
l’opération P9,10 peut commencer 5 semaines avant E10 et l’événement E9 doit donc avoir lieu
102 Recherche opérationnelle 2021-2022
au plus tard à la date t9* = 48 – 5 = 43. E6 est séparé de E9 par un temps opératoire de 8, de E8
par un temps opératoire de 3 et de E7 par un temps opératoire de 5 ; il faut comparer 43 – 8 =
35, 29 – 3 = 26 et 38 – 5 = 33. Ainsi l’événement E6 doit avoir lieu au plus tard à la date
t 6* 26 .
Finalement, les dates des événements Ei pourront se placer dans les intervalles, dits
intervalles de flottement, donnés ci-après :
Il est également intéressant de connaître pour chaque opération Pij le retard qui peut
être apporté à sa mise en route sans perturber la date de réalisation de l’événement Ej. On appelle
« marge libre » de l’opération Pij, le retard qui peut être apporté à sa mise en route sans perturber
la date de réalisation de l’événement Ej. Si ti et tj sont les dates attendues des événements Ei et
Ej encadrant l’opération Pij de durée tij, sa marge libre est tj – ti – tij. Les marges libres des
opérations critiques sont nulles car aucun délai ne peut être apporté à leur démarrage.
On définit de même pour chaque opération Pij une « marge totale » comme la
quantité tj* - ti – tij. La marge certaine de l’opération Pij est par définition tj – ti* - tij.
Intervalles de flottement et marges libres mesurent l’élasticité d’un programme : plus elles sont
réduites, plus le programme est rigide. Un programme totalement rigide est un programme où
tous les chemins sont critiques : il n’y a alors ni intervalles de flottement, ni marge libres. Aucun
retard ne peut être toléré sur quelque opération que ce soit.
103 Recherche opérationnelle 2021-2022
9.1 INTRODUCTION
La gestion d’un stock consiste pour l’essentiel, à prévoir les dates et les volumes des
réapprovisionnements. Les principaux éléments qui interviennent dans une gestion des stocks
sont :
- La demande d’articles qui, en général, est aléatoire et une fonction du temps, mais qui,
dans d’autres cas, peut être connue d’avance et déterminée ;
- L’existence d’un stock de ces articles pour satisfaire la demande, ce stock s’épuisant et
devant être réapprovisionné ou renouvelé. M. Ramboz définit un stock comme
essentiellement une quantité variable d’un produit augmenté par les entrées (achats ou
fabrications) et diminuée par les sorties (ventes ou livraisons à l’atelier). Le
réapprovisionnement peut être continu, périodique ou encore être réalisé à des
intervalles de temps quelconques ;
- Le délai de réapprovisionnement ou délai de livraison qui peut être, lui aussi déterminé
ou aléatoire ou dépendre du volume de la commande de réapprovisionnement ;
- Les différents coûts :
1°. Le coût de stockage ou de magasinage Cs mesuré par pièce et par unité de
temps ;
2°. Le coût de lancement Cl représentant les frais administratifs de l’opération de
réapprovisionnement ;
3°. Le coût de pénurie Cp, qui apparaît dans les modèles admettant des ruptures de
stock ;
4°. Enfin, lorsque les coûts de lancement et de stockage sont négligeables on
Considère une perte C1 sur les articles soldés lorsque la demande r est inférieure
au stock, un coût supplémentaire C2 pour approvisionnement spécial lorsque la
demande est supérieure au stock S.
Ces coûts permettent de se donner une fonction économique que l’on se proposera
d’optimiser ;
104 Recherche opérationnelle 2021-2022
Niveau du stock
Stock
initial
Stock
final
T temps
Figure 9.1
Niveau du stock
niveau
maximal
n
niveau
minimal t0 t1 t2 t3 t4
temps
T T T T
Figure 9.2
T T T T
niveau
maximal
niveau
minimal
t0 t1 t2 t3 t4 temps
Figure 9.3
rendre au stock son niveau maximal à la fin de chaque période. Les dates ti où les
ordres de réapprovisionnement doivent être passés doivent être déterminés par
extrapolation de la droite ou de la courbe de consommation.
T1 T2 T3 T4
niveau
maximal
n
niveau
minimal
temps
t0 t1 t2 t3 t4
Figure 9.4
T1 T2 T3
NM
NI NM = niveau maximal
NI = niveau initial
NR= niveau
de réapprovisionnement
NR Nm = niveau minimal
Nm
temps
t0 t1 t2 t3
Figure 9.5
107 Recherche opérationnelle 2021-2022
Cette méthode offre l’avantage d’une gestion commode. Elle est d’un usage assez
répandu. Le mode de réapprovisionnement correspondant est appelé
« réapprovisionnement sur point de commande ».
9.3 MODELES CLASSIQUES DE GESTION DES STOCKS
Ces modèles partent d’un ensemble de prémisses et d’hypothèses à partir desquelles
l’analyse algébrique déduit des formules mathématiques. Selon que la demande r est déterminée
ou aléatoire on distingue d’une part les modèles déterministes pour lesquels la demande est
certaine et le taux de la demande constant, et d’autre part les modèles aléatoires pour lesquels
la demande est aléatoire et connue en probabilité.
Dans ce qui suit nous nous contenterons de présenter les principaux résultats obtenus
lors de l’analyse mathématique de ces modèles. Il faut cependant souligner que, dans la
pratique, comme dans tout problème de recherche opérationnelle, il n’est pas toujours possible
de ramener le cas étudié à un modèle classique et qu’il y a lieu de faire une étude spéciale tenant
compte de toutes les contraintes et hypothèses particulières du problème réel considéré.
9.3.1 LES MODELES DETERMINISTES
1. GESTION A PERIODE FIXE ET DEMANDE CONSTANTE
Ce modèle porte le nom du « modèle déterministe de Wilson ». Les hypothèses
et prémisses du modèle de Wilson sont :
- Le coût de lancement d’une commande ou rafale Cl est indépendant du nombre
d’articles ou de la quantité du produit à commander ;
- La demande totale pour un intervalle de temps (une année très souvent) est N ;
- Aucune pénurie n’est admise ;
- Le coût de stockage d’une pièce ou quantité unitaire pendant l’unité de temps est Cs ;
On demande quelles sont les quantités n à réapprovisionner périodiquement pour minimiser
le coût global de lancement et de stockage des N pièces.
En appelant T la période de gestion le modèle se ramène à celui de la figure 9.2, et
l’on peut montrer que le coût global de gestion pour l’intervalle de temps θ est une fonction
de la rafale n et donné par :
N Cl Cl
( n) n
n 2
N Cl
Le coût global (n) sera minimum pour n no 2
Cs
On en déduit :
Cl
T To no 2 : c’est la période de gestion optimale ;
N N CS
Exemple
Le coût de stockage d’un article de forte consommation (200 000 unités par an = 360 jours)
dont la demande est constante, est égale à 0,002 F par jour et par pièce. Quelle est la
grandeur de la rafale la plus économique et la période de gestion, sachant que le coût de
lancement d’une rafale est de 720 F.
Solution
Données du problème : N = 200 000 ; θ = 360jours ; Cl = 720 F ; Cs = 0,002 F
N Cl 200000 720
no 2 2 20000 articles.
CS 360 0,002
360
To no 20000 36 jours.
N 200000
T T T T
T1 T2 T1 T2 T1 T2 T1 T2
Figure 9.6
On peut établir que le coût global pour l’intervalle de temps θ est une fonction de n
et S, et donné par :
S 2 C S N (n S ) 2
( n, S ) Cl CP .
2n n 2n
N Cl CS CP
Cette fonction à deux variables sera minimale pour n no 2 et
CS CP
CP N Cl CP
S So no 2 .
CS CP CS CS CP
Cl CS CP CP
To 2 et o 2 N C S Cl représentant respectivement la
N CS CP CS CP
Solution :
0,008
Le taux de défaillance est alors 0,8 ; d’où :
0,002 0,008
1 1
no 20000 22361 ; S o 22361 0,8 17889 ; To 36 40,25 jours
0,8 0,8
N
Mais r , alors :
T n
C a N Cb
(n) NCa 12 Cb n .
2 n
Dans cette formule N C a 12 Cb est une quantité indépendante de n. En annulant la dérivée
de Г(n) on arrive à la relation :
111 Recherche opérationnelle 2021-2022
Ca N Cb 2 N Cb
; d ' où n no : c’est la quantité économique qui minimise la
2 n 2
Ca
dépense globale Г(n). On en déduit :
Cb
T To no 2 ; o 2 N C a Cb N C a 12 Cb
N N Ca
Exemple numérique.
Ca = 1000 F ; Cb = 50 000 F ; N = 75 000 ; θ = 360 jours ; 0,3 10 3 ; il vient :
o 2 75000 360 0,3 10 3 1000 50000 75000 1000 12 360 0,3 10 3 50000
= 75 903 000 F.
9.3.2 LES MODELES ALEATOIRES
A. MODELES ALEATOIRES A VARIABLES DISCRETES
1. Gestion à période fixe et demande aléatoire avec perte sur les excédents et coût
supplémentaire pour la pénurie (coût de stockage négligé)
Nous allons supposer maintenant que la demande r pour un intervalle de temps T est
aléatoire et que l’on connaît la distribution P(r) de la probabilité d’une demande égale à r. Si r
est inférieur au stock S les pièces restantes sont vendues avec une perte unitaire C1 ; au contraire
si r est supérieur à S il faut une exécution ou un approvisionnement spécial des pièces
manquantes, et le supplément du coût représente une perte unitaire C2. Si le coût de stockage
est négligeable devant C1 ou C2, la durée T n’intervient plus et l’on peut dire que la gestion est
alors indépendante du temps.
Convenons d’appeler S le nombre pièces à placer dans le stock. Deux situations sont
possibles et s’excluent mutuellement :
1°. r ≤ S : le stock couvre la demande et l’on doit solder une quantité égale à S – r pièces avec
une perte unitaire C1 ;
2°. r > S : il y a pénurie et il faut faire exécuter ou approvisionner spécialement r – S pièces
avec une perte unitaire C2.
On ne connaît pas r, mais connaissant la distribution P(r), on peut évaluer
l’espérance mathématique des dépenses donnée par l’expression suivante :
S
( S ) C1 ( S r ) P(r ) C 2 (r S ) P(r ) .
r 0 r S 1
On démontre que le minimum de Г(S) a lieu pour une valeur So telle que :
112 Recherche opérationnelle 2021-2022
C2
P (r S o 1) P (r S o ) où et P (r S o ) P (0) P (1) P (2) ... P ( S o )
C1 C 2
Exemple numérique
1000
C1 = 50 F ; C2 = 20 C1 = 1000 F ; 0,952 .
50 1000
La distribution est donnée par le tableau ci-après :
S R Ρ( r) Ρ(r ≤ S)
0 0 0,900 0,900
1 1 0,050 0,950
2 2 0,020 0,970
3 3 0,010 0,980
4 4 0,010 0,990
5 5 0,010 1
≥6 ≥6 0 1
On voit que :
P(r 1) 0,950 0,952 P(r 2) 0,970 .
Ainsi l’optimum a lieu pour S = 2 auquel correspond une valeur du coût de gestion
2
(2) C1 (2 r ) P(r ) C 2 (r 2) P(r ) 50(2)(0,900 ) (1)(0,050 ) (0)(0,020)
r 0 r 3
2°. La demande totale r est supérieure au stock S : r > S. La situation est celle de la figure
9.7b.
r
S S
r
s-r
r-s
T
Figure 9.7a T1 T2
T
Figure 9.7b
S S r r
- Si r ≤ S, le coût de stockage par unité de temps est 1 C S S C S
2 2
- Si r > S le coût de stockage et de pénurie par unité de temps est :
S T1 C S 12 (r S ) T2 C P 1 T1
1
T
2 2
2 S C S 12 (r S ) 2 C P ;
T T T
T1 S T rS
or et 2 ;
T r T r
S2 (r S ) 2
donc 2 1
2 C S 12 CP ;
r r
d’où l’espérance mathématique du coût total de gestion pendant T ou l’unité de temps
est donnée par l’expression :
S
r
S2
(r S ) 2
( S ) C S S P(r ) C S P(r ) C P P(r )
r 0 2 r S a 2r r S a 2r
On démontre que le minimum de Г(S) a lieu pour une valeur So telle que :
Cp
P( r )
L( S o a) L( S o ) où
CS CP
, L( S o ) P(r S o ) ( S o a2 )
r So a r
et
Exemple numérique
Soient Cs = 100 000 F et Cp = 20Cs = 2 000 000 F. Calculer le stock optimal So et min si la
demande est aléatoire et distribuée comme l’indique le tableau qui suit:
S r Ρ(r) P (r )
P(r )
P(r ) Ρ (r ≤ S) L(S)
r
r S 1 r
( S 12 )
r S 1 r
20
Pour S = 3, on a : L(2) 0,8625 0,9524 L(3) 0,9575 ; Le stock optimum est
21
donc égal à 3. Le coût correspondant est égal à :
(3) 0,1[(3)(0,1)+(2,5)(0,2)+(2)(0,2)+(1,5)(0,3)]+(0,1)[(1,125)(0,1)+(0,9)(0,1)+0]
+ 2[(0,125)(0,1)+(0,4)(0,1)] = 0,29 millions.
Exercice
Le réapprovisionnement d’un article se fait à période fixe de façon à compléter le stock à un
niveau donné S. Tout article non disponible est livré dès l’entrée en stock de la commande
suivante. Le coût de stockage par article et par unité de temps est Cs. Le coût de pénurie par
article et par unité de temps est Cp = 30 Cs. Pour quelle valeur So du stock en début de période
l’espérance mathématique du coût de gestion est-elle minimale, sachant que la demande r
pour chaque période est aléatoire et distribuée comme indiqué ci – après :
R 0 1 2 3 4 5 6 7
P(r) 0 0,1 0,1 0,2 0,3 0,2 0,1 0
1. Gestion à période fixe et demande aléatoire avec perte sur les excédents et coût
supplémentaire pour la pénurie (coût de stockage négligé)
L’espérance mathématique des dépenses est donnée par :
S
( S ) C1 ( S r ) f (r )dr C 2 (r S ) f (r )dr
0 S
dS 0 S 0
0
C1 F ( S ) C 2 1 F ( S ) (C1 C 2 ) F ( S ) C 2
S
où F ( S ) f (r )dr P (r S )
0
d C2
0 F (S )
dS C1 C 2
C2
Donc une valeur So de S telle que F ( S o ) rend minimum (S )
C1 C 2
Exemple
Supposons que la densité de probabilité f(r) soit de la forme f (r ) e S
S
Alors F (r ) e r dr 1 e S
0
C2 C2
(S ) est minimum lorsque F ( S ) 1 e S
C1 C 2 C1 C 2
ln(1 )
e S 1 S ln(1 ) ; d ' où S S o
2. Gestion à période fixe et demande aléatoire avec coût de stockage et coût de la
pénurie
La distribution P(r) étant remplacée par la densité de probabilité f(r), on a :
(r S )
2 2
S r S
( S ) C S ( S ) f (r ) dr C S f (r ) dr C P f (r ) dr
0 2 S 2r S 2r
Pour trouver le minimum de Г(S) il faut annuler sa dérivée :
d S S S2 r S
C S f (r ) dr C S f (r ) C S r f (r )dr C S
S
f (r ) C P f (r )dr
dS 0 2 S 2S S r
S
C S f (r )dr C S S
f (r )dr C P f (r )dr C P S
f (r )dr
0 S r S S r
S S
C S f (r )dr C S S
f (r )dr C P C P f (r )dr C P S
f (r )dr
0 S r 0 S r
116 Recherche opérationnelle 2021-2022
S
(C S C P ) f (r )dr (C S C P ) S
f (r )dr C P
0 S r
0 S
Le minimum de (S ) a lieu pour une valeur S = So telle que :
0 SO r
So CP
0
f (r )dr S o f (r )dr
SO CS CP
f (r )
F (S o ) S o dr
SO r
C. APPLICATION : QUANTITE A REAPPROVISIONNER DANS LE CAS DE
DELAI DE REAPPROVISIONNEMENT PLUS LONG QUE LES PERIODES DE
GESTION
Considérons un intervalle de temps θ divisé en n périodes de temps T, et
supposons que le délai entre l’ordre de réapprovisionnement et la réception soit égal à
θ. Au début de chaque période T, on transmet les ordres de manière que la livraison soit
faite n périodes plus tard. On a déterminé la distribution P(r) ou la fonction de densité
f(r) d’une demande r pour un intervalle de temps θ. Le problème qui se pose alors est le
suivant : quelle quantité qi doit-on commander n périodes T avant la période n° i de
manière que le coût global pour cette période soit minimum ?
Sur l’axe de temps on a le schéma suivant :
Nous supposons que les quantités qi pour les n-1 périodes qui précèdent la période n
sont connues car ayant fait l’objet d’ordres passés en temps voulu. Il est question de
rechercher la quantité optimum qn qu’il faut commander à la période 1 et qui sera reçue
n périodes plus tard de manière que le coût global pour les n T périodes soit minimum.
Nous nous placerons dans le cas de la demande aléatoire avec perte sur les
excédents et coût supplémentaire pour la pénurie (coût de stockage négligé ).
Soient C1 la perte unitaire concernant les pièces en excédent, C2 celle due aux
pièces en déficit. Posons :
So = stock initial (début de la 1ère période) ;
Si = stock à la fin de la période i ;
ri = demande pour la période i ;
117 Recherche opérationnelle 2021-2022
S
ou ( S ) C1 ( S r ) f (r )dr C 2 (r S ) f (r )dr le cas d’une demande continue.
0 S
Le minimum de Г(s) a lieu, comme nous l’avons vu, pour une valeur S* telle que :
P(r ≤ S*-1) < ρ < P(r ≤ S*)
C2 C2
où F ( S ) avec
C1 C 2 C1 C 2
Le stock optimum S* étant déterminé on a, puisque les quantités q1, q2 …, qn-1 sont connues :
qn S S o (q1 q2 ... qn1 ).
Exemple numérique
Un dépôt régional d’une manufacture est réapprovisionné tous les mois pour un certain article.
Les nombres d’articles reçus sont des multiples de 100. Pendant les 5 premiers mois de l’année,
les réapprovisionnements ont été q1 = 100, q2 = 200, q3 = 200, q4 = 200, q5 = 300. Le stock
initial So = 100. La distribution de la demande r pour une durée de 6 mois est donnée par le
tableau ci – après. Le délai entre l’ordre de réapprovisionnement et la livraison au dépôt est de
6 mois. Le coût unitaire d’un excédent est 1500 F et celui d’une pénurie 18000 F. Quelle
quantité q6 doit – on réapprovisionner pour le 6ème mois ?
118 Recherche opérationnelle 2021-2022
18000 12
0,923
1500 18000 13
Tableau de calcul
R P( r ) P( r ≤ S )
0 0,000 0,000 Ρ(2 < 1200) = 0,910 < ρ < ρ(r < 1300 ) = 0,947
100 0,002 0,002 Ainsi le stock économique pour une durée de 6 mois
sera S* = 1300
200 0,008 0,010 de là :
N Cl Cl
économique nO 2 et la période de gestion optimale T0 2 . Le coût minimal
SS N CS
pour constituer le stock. Quand le premier est épuisé on passe au second et aussitôt on lance
une commande de réapprovisionnement no qui sera livrée dans le délai . En attendant que le
réapprovisionnement arrive, c’est le second magasin qui fournit les pièces pour la
consommation et qui constitue ainsi un stock contre la pénurie. On a ainsi un niveau minimum
de réapprovisionnement « m », appelé aussi point de commande. Quand le stock atteint ce
niveau on lance une commande de no pièces. Ainsi le système se présente graphiquement
comme suit :
t0
Temps
T1 T2 T3
Fig. 1.1
120 Recherche opérationnelle 2021-2022
Les commandes sont passées aux dates t1 , t 2 , t 3 , ... dès que le stock atteint le niveau m
et sont reçues aux dates t1 , t 2 , t 3 , ... après un délai de livraison . On se propose de déterminer
N Cl
ces conditions, la valeur optimum de n est n0 2 . Cette méthode est dite « méthode
CS
Q » parce qu’elle consiste à lancer des commandes en quantités fixes q selon des périodicités
variables. On évaluera la loi de probabilité de la demande y pour l’intervalle de temps . Soit
P ( y ) la probabilité d’une demande de y pièces dans l’intervalle et F ( y) P(Y y) la
probabilité cumulée. Imposons-nous par exemple que la probabilité d’une rupture de stock soit
inférieure ou égale à une valeur . On doit avoir 1 F ( y) (a).
Sortie durant la
période de
réapprovisionnement
y 2 y y y y 2
Couverture pour 50% des aléas
Couverture pour 84,13% des aléas
Couverture pour 97,72% des aléas
Figure n° 1.2
On constate que les aléas de sortie sont couverts à 50% par le stock moyen y s. Si au cours
de la période de réapprovisionnement on ne dispose que de y il y a 50% de risque de connaître
une rupture de stock. Pour diminuer ce risque il faut ajouter à y une quantité S P t où t ,
t .
Exemple : Soient =360 jours, 7 jours, N = 120000, CS = 3.5 F par unité et par jour. Cl =
300000 F. La demande est distribuée selon une loi gaussienne avec une moyenne
y (120000 / 360) x7 2333 pour une semaine et un écart-type hebdomadaire = 170.
Déterminez la quantité économique n0, le point de commande et le stock de protection si l’on
admet un risque de rupture = 0.06.
122 Recherche opérationnelle 2021-2022
Solution
2 120000 300000
1. La quantité économique nO 7559
360 3.5
2. Si = 0.06, F (t ) 1 0.06 0.94
on trouve S P m y m s.
Exemple
La consommation moyenne mensuelle d’un article est 2. Le délai de réapprovisionnement est
de 2 mois. On désire être couvert à 97% de chance contre la rupture de stock. Déterminer le
point de commande m et le stock de protection Sp sachant que la loi des sorties des pièces est
poissoniènne.
Solution : s 2 2 4
La table de la loi de Poisson des probabilités cumulées pour 4 donne
F ( y) 1 0.9786 pour y 8. Donc le point de commande m = 8.
Le stock de protection S P m s 8 4 4.
3. Stock de protection basé sur la loi exponentielle
La demande y pendant la période de risque est régie par la loi exponentielle de la forme :
f ( y ) e y , y 0. Le point de commande m est tel que m s S P .
123 Recherche opérationnelle 2021-2022
1
a. Si y exprime la demande pendant le délai , alors y s .
En admettant un risque de rupture le point de commande m doit être tel que
m ln
0
e y dy 1 soit 1 e m 1 ; d’où m =
1 ln 1
Par ailleurs m = Sp ; d’où le stock de protection Sp est donné par Sp
1
b. Si y exprime la demande pendant l’unité de temps servant à chiffrer alors y s
Si est le risque de rupture choisi alors le point de commande m doit être tel que :
m y m ln
0
e dy 1 ; soit 1 e 1 m
; par conséquent
ln
SP
Exemple
La demande y pendant le délai de réapprovisionnement est régie par la loi exponentielle de
1
1 100 y
la forme f ( y ) e , y 0.
100
En admettant un risque de rupture de 5%, déterminez pour cet article le point de commande et
le stock de protection.
Solution
ln 0,05
1. Le point de commande : m 100 ln 0,05 299,57 300
1 / 100
ln 0,05 1
2. S P 100 ln 0,05 100 199,57 200
1 / 100 1 / 100
10.1.3 CONDITIONS D’APPLICATION DE LA METHODE Q, SES AVANTAGES ET
INCONVENIENTS
Cette méthode impose une comparaison très fréquente entre le disponible en stock et le
point de commande. La régularité des délais d’approvisionnement et des moyennes des sorties
conditionne sa bonne marche. Les avantages de la méthode sont :
- Mieux que la méthode de réapprovisionnement cyclique, elle permet de réduire les stocks
cycliques et de protection ;
- Le déclenchement de commande est automatique et la détermination de la rafale simple ;
d’où elle s’accommode à un personnel peu évolué (moins qualifié) ;
- Elle se prête aisément à la gestion intégrée sur ordinateur.
124 Recherche opérationnelle 2021-2022
Sp
t1 t2 t3
Temps
P P
Figure 3.3
Les commandes sont lancées aux dates successives t1, t2 = t1+P, t3 = t2+P, etc, dates de révision
du disponible. Les dates respectives des arrivages correspondants sont t1 t1 , t 2 t 2 ,
t 3 t 3 , … Au temps t1, date de révision, on se pose la question : « le disponible est-il
suffisant pour couvrir la période P, c'est-à-dire pour faire face aux sorties ( P) s
La quantité ( P ) s S P est appelée ici, non pas point de commande comme dans la méthode
Q, mais niveau de reconstitution du stock.
Exemple de détermination de la quantité à commander en méthode P : On suppose que
s 300 / mois , 2 mois, P = 3 mois, Sp =80, = 650. Alors
q (2 3) 300 80 650 930
10.2.2 AVANTAGES ET INCONVENIENTS DE LA METHODE P
Les avantages sont :
1. Elle se prête à l’organisation d’un planning d’approvisionnement
- facilitant le groupement des commandes par fournisseur,
126 Recherche opérationnelle 2021-2022
ln ln 1
N= , donc SP =
127 Recherche opérationnelle 2021-2022
1
b. Si y exprime la demande pendant l’unité de temps servant à chiffrer et P alors s y
. Le niveau N de reconstitution du stock doit être tel que
N
1 e P
1
( P) ln
N
( P) ln ( P)
SP
128 Recherche opérationnelle 2021-2022
REFERENCE BIBLIOGRAPHIQUE