1. Université Sultan Moulay Slimane
Ecole supérieure de Technologie
Management Logistique et Transport
Optimisation logistique
1
Abdelkarim AARAM
2. Optimisation logistique:
Il s'agit d'optimiser tous les composants de la supply chain (chaine
logistique) qui permettent à une entreprise de gérer efficacement le
cycle qui conduit de la conception à la commande et à la livraison.
Un seul objectif : livrer aux clients, en temps et en heure, des
produits de qualité au meilleur prix.
Le mot optimisation est employé partout, tout le monde optimise
... Optimisation des Achats, optimisation des
approvisionnements, optimisation des flux de production,
optimisation de la configuration logistique, optimisation de
l'activité stockage entreposage, optimisation des tournées de
livraison, optimisation des transports, optimisation des, ...
Définitions
4. Les enjeux de l’optimisation logistique
Les enjeux des optimisations souhaitées peuvent être relativement différents:
Optimiser les flux d’approvisionnement ( approvisionnement direct, cross docking,…)
Optimiser les coûts de distribution (des usines vers entrepôts, des usines vers clients de
entrepôts vers clients)
Optimiser les processus et organisations qui contribuent à livrer les produits à la date promise
Optimiser les délais de fabrication et de distribution des produits
Optimiser le coût, le délai, la qualité
Optimiser les niveaux de stocks
5. Les outils de l’optimisation
L’ensemble des techniques de l’optimisation logistique rentre dans
le cadre du domaine de la « Recherche opérationnelle : RO »
Définition de la recherche opérationnelle:
L’ensemble des méthodes et techniques rationnelles d’analyse et de
synthèse des phénomènes d’organisation utilisables pour élaborer de
meilleures décisions.
Les technique de l’optimisation en RO:
Programmation linéaire et non linéaire.
Théorie des graphes
Optimisation multicritère
Simulation
Programmation dynamique
Optimisation stochastique
6. La pratique de la RO
Découvrir le problème
En général, la découverte du sujet passe par des discussions orales
avec les intervenants. Il s'agit de cerner la/les questions au cours de
réunion et de discussion autour d'un texte qui devient vite un cahier
des charges du projet.
Modéliser le problème
Choix de la méthode à utiliser pour modéliser le problème.
Répondre au problème
Résoudre et optimiser le modèle.
Validation:
Validation des solutions trouvées.
7. Programmation linéaire
Définition :
C’est un outil mathématique permettant de résoudre un programme linéaire
satisfaisant aux hypothèses de linéarité, et de non négativité des variables.
L’objectif à optimiser est une fonction linéaire.
Les contraintes du problème sont des fonctions linéaires.
Un programme linéaire consiste à trouver un extremum (maximum ou
minimum) d'une fonction linéaire de plusieurs variables de décision (fonction
objectif ou fonction économique), ces variables devant en outre vérifier un
système d'équations et/ou d'inéquations linéaires (les contraintes).
MAX (ou MIN): c1X1 + c2X2 + … + cnXn
Sujet à: a11X1 + a12X2 + … + a1nXn <= b1
:
ak1X1 + ak2X2 + … + aknXn >= bk
am1X1 + am2X2 + … + amnXn = bm
8. Programmation linéaire
Exemple 1:
Une entreprise produit deux types de chargeuses: A et B à partir des ressources suivantes:
Il y a 200 pompes, 1566 heures en M-O, et 2880 mètres de tuyaux disponibles.
A B
Pompes 1 1
M-O 9 6
Tuyaux 12h 16h
Profit unitaire 350 dh 300 dh
Quel est le nombre de chargeuses A et B à produire afin de maximiser le profit total.
9. Étapes pour la formulation du problème
1. Comprendre le problème.
2. Identifier les variables décisionnelles.
X1 = nbre de chargeuses A produites
X2 = nbre de chargeuses B produites
3. Définir la fonction objectif en une combinaison linéaire de variables décisionnelles.
MAX: 350X1 + 300X2
4. Définir les contraintes en une combinaison linéaire de variables décisionnelles.
1X1 + 1X2 <= 200 } pompes
9X1 + 6X2 <= 1566 } M.-O.
12X1 + 16X2 <= 2880 } tuyaux
Le programme linéaire à résoudre est:
MAX: 350X1 + 300X2
S.T.: 1X1 + 1X2 <= 200
9X1 + 6X2 <= 1566
12X1 + 16X2 <= 2880
X1 >= 0 ; X2 >= 0
Programmation linéaire
10. Programmation linéaire
Exemple 2 (Production de peinture)
Une société produit de la peinture d’intérieur et d’extérieur à partir de deux produits de base
M1 et M2.
Contraintes supplémentaires
– Demande maximum en peinture d’intérieur : 2 tonnes / jour.
– La production en peinture d’intérieur ne dépasser que d’une tonne celle d’extérieur
Déterminer le nombre de tonne de peinture extérieure et intérieure à produire par jour afin de
maximiser le profit total.
Extérieure Intérieure Quantité
dispo/jour
M1 6 4 24
M2 1 2 6
Profit/tonne 5 4
11. Programmation linéaire
Variables:
x1 = tonnes de peinture d’extérieur produites par jour
x2 = tonnes de peinture d’intérieur produites par jour
Fonction objectif à optimiser
max z = 5x1 + 4x2
Contraintes
6x1 + 4x2 ≤ 24
x1 + 2x2 ≤ 6
x2 ≤ 2
x2 − x1 ≤ 1
x1, x2 ≥ 0
12. Programmation linéaire
Exemple 3:
Une société de jouets produit des trains, des camions et des voitures, en utilisant 3
machines.
– Les disponibilités quotidiennes des 3 machines sont 430, 460 et 420 minutes, et les profits
par train, camion et voiture sont respectivement 3 DH, 2 DH et 5 DH.
– Les temps nécessaires sur chaque machine sont :
Déterminer le nombre de train, voiture et camion à produire pour maximiser le profit total.
Machine Train Camion Voiture
1 1 2 1
2 3 0 2
3 1 4 0
13. Programmation linéaire
Variables :
X1: nombre de train à produire.
X2: nombre de camion à produire.
X3 : nombre de voiture à produire.
max z = 3x1 +2x2 +5x3
s.c. x1 +2x2 +x3 ≤ 430 ( contrainte sur machine 1)
3x1 +2x3 ≤ 460 (contrainte sur machine 2)
x1 +4x2 ≤ 420 (contrainte sur machine 3)
x1, x2, x3 ≥ 0
14. Programmation linéaire
Exemple 4:
Soit un série de villes alimentées en électricité par des centrales. La situation est résumée par
la table suivante :
Ici, les coût au milieu de la table sont ceux de production pour 1GWh.
Formulez le problème pour minimiser le coût pour alimenter
toutes les villes.
Ville1 Ville2 Ville3 Ville4 Puissance
fournie
(GWH)
Centrale
1
8 6 10 9 35
Centrale
2
9 12 13 7 50
Centrale
3
14 9 16 5 40
Demand
e (GWH)
45 20 30 30
15. Programmation linéaire
Variables: xij = nombre de GWh produits à la centrale i et envoyé à la ville j.
Fonction objective : Coût d’acheminement depuis les centrales = coût total =
= 8x11 + 6x12 + 10x13 + 9x14
+ 9x21 + 12x22 + 13x23 + 7x24
+ 14x31 + 9x32 + 16x33 + 5x34
Contraintes de production
x11 + x12 + x13 + x14 ≤ 35
x21 + x22 + x23 + x24 ≤ 50
x31 + x32 + x33 + x34 ≤ 40
Contraintes de consommation
x11 + x21 + x31 ≥ 45
x12 + x22 + x32 ≥ 40
x13 + x23 + x33 ≥ 30
x14 + x24 + x34 ≥ 30
16. Algorithme du simplexe
Cet algorithme permet de déterminer la solution
optimale, si elle existe, d’un problème de
programmation linéaire à n variables.
Le principe de la méthode est de transformer les
contraintes qui sont des inéquations en équations en
ajoutant des variables positives que l’on appelle
variables d’écart. Puis on transforme ce système
d’équations linéaires jusqu’à trouver la solution
optimale.
17. Les étapes de la méthode
Première étape : Mise sous
forme standard du problème
Deuxième étape : Application
de l’algorithme du simplexe
18. Première étape : Mise sous forme standard du problème
Un problème de programmation linéaire est dit sous forme standard
s’il vérifie les conditions suivantes :
Les variables du problème doivent toutes être positives.
Le type d’optimisation doit être une recherche de maximum.
Les contraintes sont des contraintes d’égalité.
Important: Si le type d’optimisation est une recherche de
minimum pour la fonction objective Z, on procède à un changement
de fonction objective en considérant –Z (qui est toujours une
fonction linéaire des variables).
On a la propriété min(Z) = - Max(-Z).
19. Première étape : Mise sous forme standard du problème
Transformation des inégalités en égalités
Pour cela, il faut ajouter des variables dites variables d’écart qui doivent être
également positives.
On suppose qu’initialement les variables sont : x1, x2, … , xn.
Cas d’une contrainte de type ≤ ou <:
Au départ on a la contrainte :
a1x1 + a2x2 + …. + anxn ≤ b
On ajoute une variable d’écart e positive, la contrainte devient :
a1x1 + a2x2 + …. + anxn + e = b
Les nouvelles variables sont : x1, x2, … , xn, e.
Cas d’une contrainte de type ≥ ou >:
Au départ on a la contrainte :
a1x1 + a2x2 + …. + anxn ≥ b
On retranche une variable d’écart e positive, la contrainte devient :
a1x1 + a2x2 + …. + anxn - e = b
Les nouvelles variables sont : x1, x2, … , xn, e.
20. x+2y ≤ 700
Première étape : Mise sous forme standard du problème
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Exemple: Voilà la forme canonique du programme linéaire :
2x+y ≤ 800
x+2y ≤ 700
y ≤ 300
x ≥0, y ≥0
Fonction objective à maximiser :
Z = 30000x + 40000y
Le problème est mis sous forme standard en ajoutant trois variables d’écart positives,
e1, e2, e3.
2x+y+e1 = 800
x+2y+e2 = 700
y+e3 = 300
x ≥0, y ≥0, e1 ≥0, e2 ≥0, e3 ≥0
Max(30000x+40000y)
21. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Variables hors base
Taux marginaux de substitution (TMS)
Valeur de
l’optimum avec le
signe(-)
Variables de base
22. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Les variables en base sont celles pour lesquelles ne figurent qu’un
seul 1 sur leur colonne, les autres coefficients sont nuls sur la
colonne (e1, e2, e3).
Les variables hors base sont les autres variables les non en base (
x,y).
Les taux marginaux de substitution (TMS) sont les coefficients
de la fonction objective. (Ici 30000 et 40000).
23. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Remarque : Si la fonction objective a dans son expression un coefficient
constant, il faut le faire figurer dans l’avant-dernière colonne (celle des seconds
membres) avec le signe opposé. (exemple: si la fonction objective est
30000x+40000y+3 nous devons faire figurer -3 dans la,collone 2 eme membre
-3 au lieu de 0
24. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Les étapes élémentaires à suivre pour l’algorithme
Étape 1: Détermination de la variable entrante c’es la variable de base dont le TMS
est le plus grand.
Etape 2: Calcul des ratios pour chaque ligne des variables de base
= 2 eme membre / Coefficient de variable entrante.
Etape 3: Détermination de la variable sortante C’est la variable dont le ratio est le
plus petit.
Etape 4 : Détermination de pivot c’est l’intersection de la ligne et la colonne de la
variable entrante et sortante.
Etape5 : Il faut mettre un 1 à la place du pivot et un 0 ailleurs dans la colonne du
pivot.
L’optimum est atteint lorsque tous les TMS sont négatifs et dans ce cas l’algorithme
s’arrete.
Remarque importante: Si le pivot est différent de 1 il faut diviser toute la ligne
par le pivot.
25. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
A ce stade les variables en base sont e1, e2 et e3. On remarque que pour
chaque variable en base on a un seul 1 sur la colonne et que les autres
coefficients sont nuls.
Base={e1, e2, e3}
Les variables hors base sont x et y.
HorsBase={x, y}
Tableau1
26. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Variable entrante
Variable entrante = Celle qui correspond au plus grand TMS
strictement positif (taux marginal de substitution) coefficient >0
de la fonction objectif. Ici y est la variable entrante.
27. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Calcul des ratios
On calcule les ratios en divisant pour chaque variable de la base
(pour chaque ligne), le coefficient du second membre par le
coefficient de la colonne de la variable entrante.
28. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Variable sortante
Variable sortante = Celle correspondant au plus petit ratio strictement positif
(coefficient du 2ème membre/coefficient colonne de la variable entrante).
Ici e3 est la variable sortante.
29. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Transformation du tableau
Pivot = intersection variable entrante et sortante
Dans la colonne du pivot : Il faut mettre un 1 à la place du pivot et un 0 ailleurs.
En effet, il s’agit de la nouvelle variable en base.
Si le pivot n’est pas égal à 1, il faut diviser toute la ligne par le pivot. Ici le
pivot est déjà à 1.
Dans l’exemple le pivot est différent de 1 donc diviser toute la ligne de e3 par
2;
2 2
Diviser cette ligne par le pivot qui est 2
30. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Faire apparaître des 0 sur le reste de la colonne de la nouvelle variable en base
• Il faut retrancher à chaque
ligne (e1 et e2) un certain
nombre de fois la ligne du
pivot (e3) pour faire
apparaître un 0.
• Pour la ligne de e1, il faut
lui retrancher la ligne du
pivot. On remplace la ligne
L1 par L1-L3
• Pour la ligne de e2, il faut
lui retrancher deux fois la
ligne du pivot.. On
remplace L2 par L2-2L3.
Pour la ligne de Z, il faut lui
retrancher 40000 fois la ligne
du pivot.. On remplace L4 par
L4 – 40000L3
31. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Tableau 2
L’optimum n’est pas atteint (un TMS est >0)
32. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Variable entrante, ratios et variable sortante du tableau 2
Variable entrante x et sortante e2
33. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Transformations sur le tableau 2
Le pivot est déjà à 1.
Il faut remplacer L1 par L1 - 2*L2
L3 ne doit pas être changée (il y a déjà un 0)
L4 doit être remplacée par L4 – 30000*L2
Tableau 3:
L’optimum n’est pas atteint (1 TMS est >0)
34. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Fonction économique à maximiser :
Z = 30000x + 40000y
Variable entrante, ratios et variable sortante du tableau 3
Variable entrante e3 et sortante e1
35. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Division du pivot par 3Fonction économique à maximiser :
Z = 30000x + 40000y
Division du pivot par 3
36. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Division du pivot par 3Fonction économique à maximiser :
Z = 30000x + 40000y
Apparition des 0 sur le reste de la colonne
Il faut remplacer L2 par L2 + 2*L1, L3 par L3-L1 et L4 par L4 -
20000*L1
37. x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Division du pivot par 3Fonction économique à maximiser :
Z = 30000x + 40000y
Tableau 4
L’optimum est atteint (Tous les TMS sont négatifs)
39. Dual d’un programme linéaire(P)
Une entreprise fabrique 2 produits A et B à partir de 3 matières première M1,M2 et M3,
La vente d’une unité de A procure un profit de 600 DH et pour B 400 DH
Les matière M1, M2 et M3 sont disponibles en quantités limitées : 250 pour M1, 300 pour
M2 et 500 pour M3
Pour produire une unité de A on a besoin de 2 M1, 1 M2 et 3 M3
Pour produire une unité de B on a besoin de 1 M1, 2M2 et 1 M3
Le programme linéaire correspondant à ce problème est:
Max z= 600 X+400 Y
2X+Y≤ 250
X+2Y≤300
3X+Y≤500
X≥0 Y≥
Supposons maintenant que cette entreprise est la filiale d’une entreprise mère. Cette
dernière ne peut pas surveiller de près l’activité de sa filiale, mais elle veut contrôler les prix
de transfert des matières premières pour récupérer la profit maximal de sa filiale.
Notons Ui le prix de transfert de la matière Mi. L’objectif étant de minimiser les couts afin de
récupérer la maximum de profit, Le programme linéaire correspondant est
40. Dual d’un programme linéaire(P)
Min z= 250 U1+300U2+500U3
2U1+U2+3U3≥600
U1+2U2+U3≥400
U1≥0 U2≥0 U3≥0
Ce programme est dit programme dual
41. Dual d’un programme linéaire(P)
Soit un programme linéaire (P) sous sa forme canonique
𝑀𝑖𝑛(𝑍=4𝑥+2𝑦+6𝑧)
2𝑥+4𝑦+2𝑧≥24
5𝑥+𝑦+𝑧≥8
𝑥,𝑦,𝑧≥0
Ce dernier est dit programme primal
On appel dual du programme linéaire (P), le programme linéaire (D) suivant.
𝑀𝑎𝑥(Δ= 24𝑥1 + 8x2)
2𝑥1 + 5𝑥2 ≤ 4
4𝑥1 + 𝑥2 ≤ 2
2𝑥1 + 𝑥2 ≤ 6
𝑥1, 𝑥2 ≥ 0
42. De façon plus pratique, voici les règles de passage du primale au dual. Soit(P) un
programme linéaire de fonction économique notée 𝑍. Pour écrire le programme
linéaire dual (D) de (P), on doit suivre les cinq règles suivantes :
1. Le sens de l’optimisation est inversé mais les contraintes de non négativité des
variables de décision restent inchangées.
2. La matrice des coefficients de la fonction objective du dual est la transposée du
vecteur colonne des seconds membres des contraintes principales du primal.
3. La matrice des constantes des seconds membres des contraintes principales du
dual est la transposée du vecteur ligne des coefficients de la fonction objective du
primal.
4. La matrice des coefficients des contraintes principales du dual est la transposée
de son homologue du primale.
5. Ne jamais garder les mêmes noms pour les fonctions objectives et les variables
des deux programmes.
Dual d’un programme linéaire(P)