Cours de R.O.L1 Info Soir2021
Cours de R.O.L1 Info Soir2021
Cours de R.O.L1 Info Soir2021
ENSEIGNEMENT SUPERIEUR ET
UNIVERSITAIRE.
INSTITUT SUPERIEUR DE STATISTIQUE.
B.P. 2471
LUBUMBASHI.
PAR
M. NKONGOLO MWAMBA GHISLAIN.
(Licencié en statistique)
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
CONTENU DU COURS
CHAPITRE 0 : INTRODUCTION
1. Aperçu historique
2. Définition, problèmes et branches de la recherche opérationnelle
LA PROGRAMMATION 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
GESTION DE STOKS
CHAPITRE 0 : INTRODUCTION
1. APERÇU HISTORIQUE
La recherche opérationnelle (R.O) est la traduction des expressions anglaises
(Operationnal Research) et américaine (Opérations Research). Les risques de guerre, la
conduite des opérations militaires ont fourni à la recherche opérationnelle les conditions
favorables à son développement. L’un des premiers problèmes militaire de la recherche
opérationnelle fut la mission confiée à Archimède par Hiéron de trouver le moyen de résister
à l’attaque des vaisseaux. Mais au cours de la deuxième guerre mondiale la recherche
opérationnelle s’est véritablement révélée. Les substantiels résultats obtenus alors l’ont été
grâce à la conjonction de deux facteurs essentiels :
- Premièrement les besoins de la défense qui, en même temps qu’ils exigeaient une parade
efficace contre le danger, faisaient passer au second plan le coût élevé des recherches ;
- Deuxièmement les progrès réalisés sur le plan des mathématiques ont fourni aux
chercheurs de nouveaux procédés d’analyse. A ces progrès ajoutons ceux obtenus en
informatique avec la naissance des ordinateurs dits de la première génération (IBM 650,
Gamma-Bull, …, 1955-1956). En effet, l’informatique a permis la résolution automatique
des problèmes qui, manuellement, ne pouvaient pas l’être.
équations. 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.
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.
9
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 :
- 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.
10
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é.
x1 0, x2 0,..., xn 0 (3)
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.
a11 a12 a13 ......... a1n
C (c1 , c2 ,..., cn )
13
b1 x1
b2 x2
. .
B= ; X =
. .
. .
bm xn
3. Ecriture vectorielle :
n n
Opt c
j 1
j xj tel que x P
j 1
j j P0
xj 0
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 :
ai1 x1 ai 2 x2 ... ain xn bi . Pour qu’elles deviennent équations on retranche au membre de
gauche une quantité positive ou nulle capable de ramener l’égalité entre les deux membres.
Soit ti cette quantité ou variable d’écart. Il vient : ai1 x1 ai 2 x2 ... ain xn ti bi
La fonction économique ne change pas car les variables d’écart ne modifient pas sa
valeur.
1.4 DEFINITIONS ESSENTIELLES ASSOCIEES AUX
PROGRAMMES LINEAIRES
On appelle :
1 Solution : un ensemble de valeurs associées aux variables xj (j = 1, …, n) d’un
programme linéaire satisfaisant au système de contraintes physiques du programme
linéaire ;
2 Solution admissible : un ensemble de valeurs des variables xj non négatives
satisfaisant aux contraintes d’un programme linéaire (X ≥ 0).
3 Solution admissible optimale : une solution admissible qui optimise la fonction
économique du programme linéaire ;
4 Base : un ensemble de m variables xj dont le déterminant de leurs coefficients aij dans
le système des contraintes sous forme d’équations est différent de zéro. Chaque fois
que l’on détermine une base, on distingue les m variables de base et le n-m variables
hors base. Bien entendu, m < n où m et n sont respectivement le nombre des
contraintes et celui des variables du programme. Pour une base à déterminant non nul
les vecteurs Pj correspondants sont linéairement indépendants ;
5 Solution de base : une solution qui s’obtient en annulant n-m variables hors base et en
résolvant le système de m contraintes sous forme d’équations à m inconnues ou
variables de base. En supposant que les m premières variables x j soient les variables
de base, la solution de base peut s’écrire (x1,x2, …, xm, 0, 0, …, 0) ;
6 Solution de base admissible : une solution de base telle que les variables xj ≥ 0 ;
7 Système :
- Standard ou saturé : un système de contraintes constitué uniquement des
égalités : AX = B ;
15
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
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
17
le régime 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 x j 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.
Bien entendu x j 0 j 1,...., n
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
minimales demandées (consommées) dans ces centres. Soit c ij le coût de transport d’une
n
2°. Le ravitaillement au centre Pi ne soit pas dépassé : x
j 1
ij ai (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 j ai
j 1 i 1
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 :
Min Z x11 2x12 3x13 2x21 4x22 6x23
sous les contraintes :
x11 x 21 2
x12 x 22 3
x13 x23 5
xij 0 (i 1, 2 ; j 1, 2, 3)
19
Machines M3
Produits M1 M2
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
20
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
On en tire facilement le programme linéaire suivant :
Maximiser Z 3x1 2,5x2 3,5x3 4x4 5x5 4,5x6
x1 x2 x3 x4 x5 x6 100
x1 x 2 40
si x3 x4 35
x5 x6 35
x1 , x2 , x3 , x4 , x5 , x6 0
21
Cette fonction économique Z est à rendre maximale sous les contraintes ci-dessous :
x11 x21 2000 x11 0,60( x11 x12 x23 )
Contraintes : x1 1000
x 2 500 contraintes de production maximale.
x3 1500
x1 x2 x3
45 : contrainte de temps disponible
50 25 75
x1 , x2 , x3 0 : contraintes de non négativité.
23
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
considérant la solution x1 = 266 et x2 = 500 (points G sur d3), on obtient Z = 900 x 266 +
1000 x 500 = 729400 F. Ceci ne fournit pas non plus le maximum de Z.
Représentons aussi la fonction Z sur le graphique en lui donnant une valeur
arbitraire de façon à permettre la représentation, par exemple Z = 90000. Déplaçons la droite
Z parallèlement à elle-même de façon à accroître les valeurs de x 1 et de x2. En procédant
ainsi, on remarque que le point D = d1 ∩ d2 donne la plus grande valeur à Z. Ce point est un
sommet du polyèdre convexe, c’est-à-dire une solution de base admissible. Il est tel que si
l’on déplace encore la droite Z dans la même direction, elle se trouvera complètement en
dehors du polyèdre convexe dans la zone hachurée. D est le point de coordonnées x1 = 626 et
x2 = 334 obtenues par résolution du système des équations des droites d1 et d2.
Le maximum de Z est donc 900 x 626 + 1000 x 334 = 897400 F. Il correspond à
la saturation des machines M1 et M2, la machine M3 restant encore disponible pendant 9600 –
(6 x 626 + 16 x 334) = 500 minutes.
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
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.2ALGORITHME 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 à
28
…, 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
xk j
xr k
xi j
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 xi 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 xi . La composante x r k est appelée le pivot du
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
4
a2 0 1 -1
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 )
Exemple de l’inversion d’une matrice.
Soit la matrice
1 0 -1
A= 1 2 0
2 -1 3
Déterminer sa matrice inverse par l’application du théorème de remplacement.
32
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
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 xi 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
n n
Contraintes a
j 1
ij x j bi , i 1,...., m 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 considérée est optimale, sinon on passe au
point 2° ci-dessous. point 2° ci-dessous.
2° Si j / Z j c j 0 et xi j 0 i, alors la 2° Si j / Z j c j 0 et xi j 0 i, alors la solution
solution optimale est infinie. La valeur de la optimale est infinie. La valeur de la fonction
fonction économique = -∞. Sinon on passe au économique = +∞. Sinon on passe au point 3°
point 3° ci-après. ci-après.
3°.Certains Z j c j 0 avec certains xi j 0, 3°. Certains Z j c j 0 avec certains xi j 0,
faire entrer le vecteur Pk tel que faire entrer le vecteur Pk tel que
Z k ck max (Z j c j ) pour les Z j c j 0 Z k c k min( Z j c j ) pour les Z j c j 0
j i
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. formules (1), (2) et (3) reprises ci-dessous.
Poser avant de procéder l’itération suivante : Poser avant de procéder l’itération suivante :
xij xij , xi xi i et j xij xij , xi xi i et j
Z j c j Z j c j j Z j c j Z j c j j
xr x rj
Z 0 Z 0 (Z k ck ) ; Z j c j Z j c j (Z k ck )
xrk x rk
6 Disposition pratique ou tableau de Simplexe.
Nous supposons que les vecteurs P1, P2, …, Pm constituent une première base
admissible.
C1 C2 C3 … Cr … 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
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= ; Po =
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 T o
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
0x1 x2 4x3 x4 t3 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
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
ajoutant à 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 vi , 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
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
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
3.5 LA DUALITE
3.5.1 Définition :
A tout programme linéaire, qu’on appelle alors primal, tel que :
n
min f ( x) c j x j
j 1
a
j 1
ij x j bi , i 1, 2,...., m (I)
x j 0, j 1, 2,..., n
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
b y c
i 1
i i
j 1
j x j , c’est-à-dire la valeur de la fonction économique de la solution yi
problèmes respectifs. Si l’un des problèmes n’a pas de solution possible alors
l’autre n’en a pas non plus.
46
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
EXERCICES
1. Dans quelle condition un point non anguleux du polyèdre convexe d’un programme
linéaire peut-il être une solution optimale ?
2. La méthode graphique de résolution des programmes linéaires utilise l’espace de
décisions (x1, x2, …, xn). Qu’est-ce qui explique l’impraticabilité de la méthode pour
la résolution de certains de certains programmes.
3. Un capital de 500 unités monétaires doit être placé selon les modalités M1, M2, M3 et
M4 procurant respectivement les intérêts 4%, 1%, 3% et 2%. Au plus 60% du capital
doit être placé selon les modalités M1 ou M2 et 80% au moins du capital doit être placé
selon les modalités M3 ou M4.
a. Ecrire le programme linéaire qui maximise l’intérêt des placements de ce
capital ;
b. Résoudre ce programme linéaire par la méthode de dénombrement et trouver
les différents montants placés selon les modalités précédentes qui maximisent
l’intérêt global. Quelle est la valeur de cet intérêt maximale ?
4. Résoudre par la méthode de la base artificielle le programme linéaire ci-après :
Max Z 4 x1 x2 x3
6x1 4x2 x3 0
x1 2 x2 x3 0
x1 x2 1
5. On donne un problème de transport représenté par le programme linéaire ci-dessous :
Min Z 4x11 x12 2x13 6x21 4x22 3x23
Sous les contraintes :
x11 x12 x13 15
x11 x21 15
x12 x 22 20
x13 x23 10
xij 0, i 1, 2 ; j 1, 2, 3
y1 3 y3 4(1 )
y 2 2 y3 2
Dans quels intervalles de stabilité de appartiennent respectivement les solutions :
4
a. y1 0 ; y 2 0 ; y3 (1 )
3
b. y1 0 ; y2 0 ; y3 1
7. Dans un atelier de couture on confectionne pendant 26 jours ouvrables du mois 2 types
de chemises C1 et C2, et 2 types de blouses B1 et B2. Les bénéfices unitaires de ces
quatre sortes de vêtements sont respectivement 500 F, 400 F, 300 F et 600 F. Les
rendements journaliers pour ces vêtements C1, C2, B1 et B2 sont respectivement 4 ; 5 ;
6 et 3. L’approvisionnement en tissus et autres inputs est juste suffisant pour satisfaire
au plus les commandes mensuelles évaluées à 200 pour les chemises et 230 pour les
blouses. Ecrire le programme linéaire qui maximise le profit sous contrainte des
conditions exprimées ci-dessous.
8. Voici le problème dual d’un problème de fabrication industrielle : un fabricant
indépendant loue les machines M1, M2 et M3 pour la fabrication de trois articles A1, A2
et A3. Le fabricant cherche à minimiser le coût de location de ces trois machines dont
la fonction économique pour une activité d’un mois se présente comme suit : 300 x1 +
400 x2 + 300 x3 où x1, x2 et x3 sont respectivement le prix horaire de location des
machines M1, M2 et M3. Les contraintes du problème sont :
x1 2 x2 100
3x1 2 x2 x3 400
x2 4x3 200
Les coefficients techniques sont les temps de fabrication de chaque pièce de ces trois
articles sur chaque machine. La 1ère contrainte, par exemple, exprime que le coût de
fabrication d’une pièce de A1 sur les machines M1 et M2 doit être au moins égal à 100.
a. Résoudre par la méthode de la base artificielle le programme linéaire ci-dessus pour
trouver les valeurs de x1, x2 et x3 qui minimisent la fonction économique.
b. Ecrire le programme primal correspondant.
49
9. Une Brasserie dispose de deux usines qui produisent trois types de boissons (bière ,
sucré et eau gazeuse). L’usine A produit 4 hl de bières, 3 hl de sucrés et 2 hl d’eaux
gazeuses. L’usine B produit 1 hl de bières , 1hl de sucrés et 2 hl d’eaux gazeuses. Les
couts unitaires de production sont respectivement de 25 $ us pour l’usine A et 35 $ us
pour l’usine B. La satisfaction de la demande exige au moins 48 hl de bières, 45 hl de
sucrés et 31 hl d’eaux gazeuses. Soient x 1 le nombre d’heures de production de l’usine A
et x 2 le nombre d’heures de production de l’usine B.
a) Modélisez ce problème ?
b) Résoudre ce problème par la méthode de simplexe puis donner le temps minimum
de production ainsi que le cout minimum de production ?
c) Soient Y1 , Y2 et Y3 les variables duales, quelle est la valeur de la fonction
économique du programme dual si Y1 7 , Y2 8 et Y3 9 . Dire oui ou non si
cette solution est admissible puis justifiez votre réponse ?
10. Soit le programme linéaire qui consiste à minimiser la fonction d’achat
Z 400x1 320x2 sous contraintes :
x 1 3x 2 6
2x x 4
1 2
x 1 5
x 3
2
x 1 , x 2 0
a. Déterminez les valeurs de x 1 et x 2 qui rendent minimale la fonction des dépenses
d’achat ? (Méthode de Simplexe)
2
x 3
x 0
1
x 2 0
50
51
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.
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) = .
53
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
Matrice booléenne correspondante.
On associe au graphe G= (X, Г) la matrice carrée n x n telle que M = ( mij )
où mij 0 si l ' arc ( xi , x j ) n' existe pas
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 ;
54
si 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 convexe mais celui de la figure 1.1 ne l’est pas.
x2
x3
x1 x6
x4
x5
Figure 1.3
dire 1 ( x j ) est l’ensemble des précédents xj ou encore c’est l’ensemble des sommets xi tels
l’ensemble formé de xj et de tous les sommets d’où xj est accessible par un chemin.
- Une arête, un arc sans flèche. On dit qu’il existe une arête entre deux sommets xi et xj s’il
existe un arc de xi à xj et/ou de xj à xi. Cest le cas par exemple sur la figure 1.3 pour les
couples (x1, x5), (x6, x5) etc..., mais pas pour le couple (x1, x6).
Une arête est généralement notée avec une lettre minuscule surmontée d’une barre. Ainsi
u = (xi, xj) est un arc allant de xi à xj, mais u ( xi , x j ) est une arête entre xi et xj.
1°. C xi ;
2°. C xi C x j C xi C x j ;
3°. C xi X ;
xi X
v1 v5
v4
Figure 5.4
58
Questions Réponses
a. Combien des sommets y a-t-il ? a. 5
b. Combinaison 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).
59
2 3
1
4
2
1
1
0
u
2
2
v
4
1
3
Figure 6.1
x2 ^
x3 Г(x3)
1
2 x4
1 2
x6
f 0
x1
3
x5
11
2 3
x7 x8
x9
Figure 6.2
( x1 ) x1 , x2 , x3 , x4 , x5 , x7 , x8 , x9
Le chemin de longueur minimum entre x1 et x5 comporte 3 arcs. C’est le chemin : x1–x3–x8 – x5
ou le chemin x1 –x7 –x4 – x5.
61
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 .
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
64
x2 4
5 x3
G= 1
3 x5
x1
2
2
x4
Figure 7.1
65
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.
maximum).
Dans la théorie économique la recherche du chemin de valeur minimum ou
maximum permet de minimiser ou maximiser selon le cas, dans les problèmes de transport,
de vente…, le coût, la capacité, la distance, le flot, … Les valeurs lij représentent alors le
coût de transport, les capacités …
Pour résoudre ce problème de recherche de chemin de valeur optimum il existe
plusieurs algorithmes dont ceux de Ford et Bellman-Kalaba. Mais l’algorithme suivant
s’applique aisément pour les réseaux comportant un grand nombre de sommets.
Après avoir vérifié qu’il n’y a pas de circuit dans le graphe on peut donc appliquer
l’algorithme ci-après expliqué dans le cas de maximisation :
66
au point 2° ».
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
3 20
2
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
67
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 x0
à ce sommet.
b. Reprenons le même graphe pour la recherche du chemin de valeur minimale.
12
9
5
3
12
2 3
3 7
10 4 11
11
0 5 13
x0 8
9 7
8 8 4
4 15 2
3 9
4 5 15
4 3
xn
4 5
13
2 8
6
Figure 7.3
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
autres 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.
69
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é. (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 )
aux expéditions des Ai, rij étant la quantité transportée de Ai à Bj le tonnage global sera
m n
maximal si R rij est max imal avec 0 rij Cij , i 1, 2, ..., m ; j 1, 2, ..., n .
i 1 j 1
70
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
Am Cmn Bn
Figure 7.5
La quantité rij à faire passer de Ai à Bj s’appelle « flot ». Le problème consiste à maximiser
m n
le flot global R rij de transport soumis à des capacités limitées.
i 1 j 1
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)}
F . On peut dire que la coupe C ( F , F ) détermine une partition de tous les sommets en
( F ) C (v) C( x , x
i j )
vV ( F ) xi F x j F
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 ))
72
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
x3 10
7
2 9
Figure 7.7
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.
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
74
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
k ((i1,) j )
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
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é .
75
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
k ((i3, )j ) k ((i2, )j ) 2 si la capacité est sur le che min indiqué .
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
76
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
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
77
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
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
78
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
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
79
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
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 :
80
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.
+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
81
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 8
6 4 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
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
affectations peuvent être suivant la nature du problème considéré comme les coûts, des
durées etc. Certains Cij peuvent être infinis, ce qui signifie que l’affectation correspondante
est impossible. Affecter les n ouvriers aux n postes de manière que tous les ouvrier aient
chacun un poste et un seul et que chaque poste soit affecté à un et un seul ouvrier, ceci de
telle sorte que la valeur totale des affectations soit minimale, tel est l’énoncé du problème
d’affectation. L’algorithme hongrois permet de résoudre ce problème.
La méthode hongroise s’appuie sur le lemme suivant : on ne change pas la ou
les solutions optimales d’un problème d’affectation en diminuant ou augmentant d’une
même quantité λ tous les éléments d’une même ligne (ou d’une même colonne) de la
matrice Cij. Une telle opération diminue ou augmente de λ la valeur totale des affectations,
mais ne change pas la solution optimale.
L’algorithme hongrois se déroule en cinq phases :
Phase I : Obtention des zéros.
A tous les éléments d’une même colonne de la matrice des Cij enlever le plus
petit élément de la colonne ; puis dans la matrice obtenue enlever à tous les éléments d’une
même ligne le plus petit élément de la ligne. De cette façon, on est certain d’obtenir une
matrice C ij(1) ayant au moins un zéro par ligne et par colonne.
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)
83
(2) 0 ∞ ∞ 6 0 (2) 0 ∞ ∞ 6 0
X
(3) 0 2 0 3 ∞ (3) 0
X 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)
,
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.
84
solution optimale a été obtenue on s’arrête, sinon on continue jusqu’à ce qu’une phase II
donne une solution optimale. Cette solution optimale peut ne pas être unique.
( 2)
Sur le tableau (e) on a encadré C42 et barré C12( 2) , encadré C54( 2) , encadré C11( 2)
( 2)
et barré C21 et C31( 2) , encadré C 25
( 2)
, encadré C 33(1) . Chaque ligne et chaque colonne
contiennent un zéro encadré : une solution optimale est donc trouvée avec
C11( 2) C 25
( 2)
C33
( 2)
C 42
( 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 C ij = 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.
b) On calcule les valeurs Cij telles que Cij C Cij .
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 .
86
m
solution 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
P1 B1
P2 B2
P3 B3
P4 B4
B5
Figure 7.11
87
(B) 6 4 3 5 7
(C) 5 2 6 4 8
Dde 40 50 70 90 90
ss
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 ».
(B) 60 60 120
(C) 30 90 120
40 50 70 90 90
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
89
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
40 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
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 :
(1) (2) (3) y(4)
5 (5)
(A) 10 50 40 100
(B) 30 90 120
(C) 90 120
40 50 70 90 90
14 = 6 – 4 + 5 – 4 = 3 ; 24 = 5 – 4 + 5 – 4 + 2 - 3 = 1 ;
91
15 = 9 – 7 + 3 – 2 = 3 ; 32 = 2 - 1 + 4 – 5 = 0 ;
21 = 6 – 4 + 2 – 3 = 1 ; 33 = 6 – 5 + 4 – 2 = 3 ;
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 :
(1) (2) (3) y(4)
5 (5)
(A) 40 20 40 100
(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 :
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
5°. Le critère d’optimalité consiste à rendre la durée totale du travail minimum. Autrement
dit on s’efforce de minimiser la fonction économique tn – t0.
La mise en graphe du tableau ci-dessus par la méthode de potentiel nous conduit au graphe
ci-dessous :
0 4
x4 4
3
x1
x0 x9
0 33 x6 7
x5
3 3
0 2
x3 x8
Figure 8.1
Exemple.
Le graphe PERT de l’exemple précédent se présente comme suit :
7 (4)
2 (6) 4 (4)
1 (3) B E
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 :
x2 x7
x4
x1 x6
x0 x9
x5
x3 x8
Figure 8.3
97
7
2 4
1 B E
6
A
5 F
0 8
3
Figure 8.4.
« 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 de
j i
événements critiques, la date limite t i* est confondue avec la date attendue ti.
Exemple : déterminer le chemin critique, les dates attendues et les dates limites des
événements sur le graphe PERT ci-dessous.
33 (43)
17 (40) 3 5
9
48
9 5 9 10
8 (9) 4
8
2 6 5
23 (26) 13
8 4 3
10 6
13 8 29 6
0 1 3 12
6 5
13 61
13
9 9 17
7 8
6
4 11
10 7 42
20 4
37 (38)
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 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
100
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.
101
.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
102
supérieure au stock S.
Ces coûts permettent de se donner une fonction économique que l’on se proposera
d’optimiser ;
- Le volume des commandes de réapprovisionnement qui peut être constant ou
variable suivant la règle de gestion adoptée ;
- Les dates de réapprovisionnement t et les périodes de gestion T (intervalle de temps
qui sépare deux réapprovisionnements successifs), elles aussi constantes ou
variables suivant la règle de gestion adoptée ;
- Les contraintes qui peuvent être des interactions entre les divers produits, des
limitations des moyens (volume, poids, temps opératoires, disponibilités financières
…).
L’évolution du niveau d’un stock pendant une période T se présente, pour
chaque article, sous forme d’une fonction en escalier décroissante. Il est commode
de remplacer le tracé en escalier par une droite ou une courbe qui donnera une description
analytique plus commode de la demande.
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
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éapprovi-
sionnement
NR Nm = niveau minimal
Nm
temps
t0 t1 t2 t3
Figure 9.5
105
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é.
N Cl
Le coût global (n) sera minimum pour n no 2
Cs
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 20000articles.
CS 360 0,002
360
To no 20000 36 jours.
N 200000
o 2 N C S Cl 2 200000 360 720 0,002 14400F .
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
Reprendre l’exercice précédent en admettant une rupture de stock avec un coût de pénurie
de 0,008 F par jour et par article.
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
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 103 ; 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.
On démontre que le minimum de Г(S) a lieu pour une valeur So telle que :
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
de là (S o ) min .
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
r
S S
r
s-r
r-s
T
Figure 9.7a T1 T2
T
Figure 9.7b
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
(S o ) min
N.B. : a est la raison de la suite exprimant les valeurs de la demande.
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
0 0 0,1 ∞ 0,445 0,2225 0,1 0,3225
1 1 0,2 0,200 0,245 0,3675 0,3 0,6675
2 2 0,2 0,100 0,145 0,3625 0,5 0,8625
3 3 0,3 0,100 0,045 0,1575 0,8 0,9575
4 4 0,1 0,025 0,020 0,0900 0,9 0,9900
5 5 0,1 0,020 0,000 0,0000 1 1
≥6 ≥6 0 0,000 0,000 0,0000 1 1
20
Pour S = 3, on a : L(2) 0,8625 0,9524 L(3) 0,9575 ; Le stock optimum
21
est 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
113
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
0 S
dS 0 S 0
0
C1 F ( S ) C 2 1 F ( S ) (C1 C 2 ) F ( S ) C 2
où F ( S ) f (r )dr P(r S )
S
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
Alors F (r ) e r dr 1 e S
S
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 :
114
(r S )
2 2
r S
( S ) C S ( S ) f (r ) dr C S
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 S2 r S
C S f (r ) dr C S f (r ) C S r f (r )dr C S f (r ) C P
S
S
f (r )dr
dS 0 2 S 2S S r
C S f (r )dr C S f (r )dr C P f (r )dr C P
S
S S
f (r )dr
0 S r S S r
C S f (r )dr C S f (r )dr C P C P f (r )dr C P
S S
S S
f (r )dr
0 S r 0 S r
(C S C P ) f (r )dr (C S C P )
S
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 :
115
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 ;
qi = réapprovisionnement pour la période i ;
Alors :
S1 = So+q1 – r1
S2 = S1 + q2 – r2
S3 = S2 +q3 – r3
…………………………………………………………
Si = Si-1 + qi - ri
………………………………………………………….
Sn = Sn-1 +qn -rn
En additionnant membres à membres des égalités ci-dessus, on tire :
Sn = So + q1 + q2 + …. + qn – ( r1 + r2 + …. + rn )
Si S = So + q1 +q2+….+qn
r = r1 + r2 + …. + rn
Alors Sn = S – r : cette quantité peut être positive ou négative suivant que S > r ou S < r.
L’espérance mathématique du coût total pour l’intervalle θ = n T est donnée par :
S
(n) C1 ( S r ) P(r ) C 2 (r S ) P(r ) le cas d’une demande discrète
r 0 r S 1
ou ( S ) C1 ( S r ) f (r )dr C 2 (r S ) f (r )dr le cas d’une demande continue.
S
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*)
116
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 ?
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à :
>2000 0,004 1
EXERCICES
NB. Résolvez au brouillon et portez vos réponses finales ici sans rature ni surcharge, remettre le brouillon.
EXERCICES ET QUESTIONS REPONSES
1. La matrice suivante est associée à un graphe valué représentant un réseau 1.1
des routes reliant un ensemble des villes entre elles. La valeur placée dans -) Chemin entre A et G
une case exprime la distance(en km) entre les villes indiquées sur la ligne et
……………………
la colonne de la case. Une case vide signifie l’inexistence de la liaison entre
les villes concernées. -) Distance du chemin
entre A et G :
A B C D E F G
…………….
A 50 60 95 1.2
B 100 70 45 30 -) Chemin entre A et C :
……………………..
C 140
-) Distance du chemin
D 30 130
entre A et C :
E 80 80 …………………….
E 60 100 180
2.1
F
x 1 .......... ........
x 2 .......... ........
Déterminez le chemin de distance maximale et la valeur de ce chemin
entre : 2.2
Min Z .......... ........
a) Les villes A et G ?
b) Les villes A et C ?
x 1 3x 2 6
2x x 4
1 2
x 1 5
x 3
2
x 1 , x 2 0
3
13
9
10 5
15 10
4
10
2 3 5
5 18
9 3
16 6
10 8 8
1 3 12
15 4
13
6 9 19
7 5
10
4 11
8 7
6
Déterminer pour ce graphe :
La succession des sommets qui sont sur le chemin critique ainsi que sa valeur ?
L’intervalle de flottement des sommets 5, 7 ,8 et 9 ?
La marge libre des opérations 3-9 ; 6-9 et 4-7 ?
La marge totale des opérations 2-5 ; 6-8 et 9-10 ?
3. Dans trois usines A, B et C on dispose des tonnages d’un produit. Ces tonnages sont
respectivement 90, 90 et 110. Le produit est livré à 4 magasins M1 , M 2 , M3 et M 4 qui
doivent recevoir respectivement 60, 70 ,70 et 90. Le cout de transport unitaire du
produit d’une usine vers un magasin est donné dans le tableau qui suit :
M1 M2 M3 M4
A 3 2 1 4
B 5 1 3 6
C 7 4 2 8
A partir du plan de transport trouvé à partir de la méthode de stepping- stone, dites :
2.1 Quel tonnage faut-il transporter de A à M 2 ,de A à M 3 et de A à M 4 ?
119
2.2 Quelles sont les valeurs des couts marginaux 13 , 14 et 31 ?
2.3 Quelle est la valeur du cout de transport global de ce plan de transport ?
A partir du plan de transport de cout global minimal, dites :
2.4 Quel tonnage faut-il transporter de A à M 2 , de A à M 3 et de A à M 4 ?
2.5 Quelles sont les valeurs des couts marginaux 12 , 13 et 23 ?
2.6 Quelle est la valeur du cout minimal de transport global de ce plan de
transport ?
3 Dans une entreprise industrielle la consommation pour une année(52 semaines) d’une
matière importée est évaluée à 390 000 tonnes et est supposée être constante à chaque
semaine. Le cout fixe par importation s’élève à 720 000 dollars us. Le cout de stockage
d’une tonne par semaine représente 1% du prix d’achat de cette tonne. Celui-ci (prix
d’achat) s’élève à 300 dollars us la tonne.
3.1 Quelle doit être la quantité de la rafale économique à importer qui minimise la
dépense globale du stock de cette matière première ?
3.2 Déterminer cette dépense globale minimum devant englober les couts fixes de la
rafale, de stockage et d’achat ?
3.3 Par rapport à la rafale économique, quelle doit être la période de gestion T 0 ,
séparant deux réapprovisionnements ?
4 a) Comment appelle-t-on en Programmation linéaire tout point qui ne peut être obtenu par
aucune combinaison linéaire deux points quelconques du polyèdre convexe ?
b) Que représente chaque sommet du polyèdre convexe en Programmation linéaire ?
c) Que signifie « fonction objectif » utilisé en Programmation linéaire ?
5 Représenter graphiquement l’ensemble – solution du système d’inéquations linéaires
suivant puis déterminer les coordonnées des points – sommets :
2x1 x 2 8
x 2x 7
1 2
x 2 3
x 0
1
x 2 0
6 Un capital de 800 unités monétaires doit être placé selon les modalités M1, M2, M3 et
M4 procurant respectivement les intérêts de 4%, 2%, 3% et 1%. Au plus 60 % du capital
doit être placé selon les modalités M1 ou M2 et 80% au moins du capital doit être
placé selon les modalités M3 ou M4.
a) Ecrire le programme linéaire qui maximise l’intérêt des placements de ce
capital ;
b) Résoudre ce programme linéaire par la méthode de sélection et trouver les
différents montants placés selon les modalités précédentes qui maximisent
l’intérêt global. Quelle est alors la valeur maximale de cet intérêt ?
7 Soit un programme linéaire qui consiste à minimiser la fonction des dépenses d’achats
Z 400x1 320x2 sous les contraintes :
120
x 1 3x 2 6
2x x 4
1 2
1
x 5
x 3
2
x 1 , x 2 0
a) Résoudre ce programme par la méthode de balayage et trouver les valeurs de
x 1 et x 2 qui rendent minimale la fonction des dépenses d’achats ?
b) Quelles sont les coordonnées des points anguleux du polyèdre trouvé ?
8 Pourquoi les méthodes graphique et de dénombrement n’examinent-elles pas les points
intérieurs au polyèdre des solutions admissibles ?
REFERENCE BIBLIOGRAPHIQUE