SlideShare une entreprise Scribd logo
1  sur  42
Télécharger pour lire hors ligne
Université Sultan Moulay Slimane
Ecole supérieure de Technologie
Management Logistique et Transport
Optimisation logistique
1
Abdelkarim AARAM
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
Définitions
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
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
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.
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
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.
É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
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
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
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
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
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
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
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.
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
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).
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.
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)
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
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).
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
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.
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
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.
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.
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.
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
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
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)
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
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)
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
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
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
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)
Résultat
Optimum : 17 000 000
X=300
Y=200
Vérification :
Z=30000X + 40000Y=30000*300 +
40000*200=17 000 000
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
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
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
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)

Contenu connexe

Similaire à optimisation logistique MLT_231102_155827.pdf

Programmation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexeProgrammation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexe
Jiijishady
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0
guest8b8369
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
ENSET, Université Hassan II Casablanca
 
Programmation Dynamique : Mise en œuvre et application à des problèmes en TAL
Programmation Dynamique : Mise en œuvre et application à des problèmes en TALProgrammation Dynamique : Mise en œuvre et application à des problèmes en TAL
Programmation Dynamique : Mise en œuvre et application à des problèmes en TAL
ECAM Brussels Engineering School
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlab
N NASRI
 

Similaire à optimisation logistique MLT_231102_155827.pdf (20)

optimisation cours.pdf
optimisation cours.pdfoptimisation cours.pdf
optimisation cours.pdf
 
Prog lin
Prog linProg lin
Prog lin
 
Machine Leargning_supérvisé.pptx
Machine Leargning_supérvisé.pptxMachine Leargning_supérvisé.pptx
Machine Leargning_supérvisé.pptx
 
csp_sir_C1_4.pptx
csp_sir_C1_4.pptxcsp_sir_C1_4.pptx
csp_sir_C1_4.pptx
 
Programmation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexeProgrammation lineaire algorithme_du_simplexe
Programmation lineaire algorithme_du_simplexe
 
4 si ds1 (algo)
4 si   ds1 (algo)4 si   ds1 (algo)
4 si ds1 (algo)
 
Correction série n 2 (nov 2013)
Correction série n 2 (nov 2013)Correction série n 2 (nov 2013)
Correction série n 2 (nov 2013)
 
Diviser Pour Régner
Diviser Pour RégnerDiviser Pour Régner
Diviser Pour Régner
 
M2 An 1986 20 3 371 0
M2 An 1986  20 3 371 0M2 An 1986  20 3 371 0
M2 An 1986 20 3 371 0
 
Tp2 matlab
Tp2 matlab Tp2 matlab
Tp2 matlab
 
Rapport
RapportRapport
Rapport
 
Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Programmation Dynamique : Mise en œuvre et application à des problèmes en TAL
Programmation Dynamique : Mise en œuvre et application à des problèmes en TALProgrammation Dynamique : Mise en œuvre et application à des problèmes en TAL
Programmation Dynamique : Mise en œuvre et application à des problèmes en TAL
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
TP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage MachineTP Fouille de données (Data Mining) et Apprentissage Machine
TP Fouille de données (Data Mining) et Apprentissage Machine
 
Ebook matlab
Ebook matlabEbook matlab
Ebook matlab
 
04 cours matrices_suites
04 cours matrices_suites04 cours matrices_suites
04 cours matrices_suites
 
chapitre-1_2.pdf
chapitre-1_2.pdfchapitre-1_2.pdf
chapitre-1_2.pdf
 
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdffr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
fr_Tanagra_Naive_Bayes_Classifier_Explained.pdf
 

optimisation logistique MLT_231102_155827.pdf

  • 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)
  • 38. Résultat Optimum : 17 000 000 X=300 Y=200 Vérification : Z=30000X + 40000Y=30000*300 + 40000*200=17 000 000
  • 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)