Vous êtes sur la page 1sur 43

Université Sultan Moulay Slimane

Ecole supérieure de Technologie

Management Logistique et Transport

Optimisation logistique

Abdelkarim AARAM
1
Définitions

❑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
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.


Programmation linéaire

É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
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 8 6 10 9 35
1
Centrale 9 12 13 7 50
2
Centrale 14 9 16 5 40
3
Demand 45 20 30 30
e (GWH)
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
Exemple: Voilà la forme canonique
Fonction du programme
économique linéaire :
à maximiser :
2x+y ≤ 800
x+2y ≤ 700
Z = 30000x + 40000y
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
Variables de base
Fonction
Variables hors base
économique à maximiser :
Z = 30000x + 40000y

Valeur de
Taux marginaux de substitution (TMS)
l’optimum avec le
signe(-)
x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Les variables en base sont
Fonction celles pouràlesquelles
économique maximiser ne :figurent qu’un
seul 1 sur leur colonne,Zles= autres
30000xcoefficients
+ 40000y 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
Remarque : Si la fonction
Fonction objective a dans sonàexpression
économique maximiser un coefficient
:
constant, il faut le faire figurer dans l’avant-dernière colonne (celle des seconds
Z = 30000x + 40000y
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
Les étapes élémentaires à suivre
Fonction pour l’algorithme
économique à maximiser :
Étape 1: Détermination de la variable entrante c’es la variable de base dont le TMS
est le plus grand.
Z = 30000x + 40000y
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
Tableau1 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}
x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
▪ Variable entrante
Fonction économique à maximiser :
Z = 30000x + 40000y

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
▪ Calcul des ratios
Fonction économique à maximiser :
Z = 30000x + 40000y

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
Variable sortante
Fonction économique à maximiser :
Z = 30000x + 40000y

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
TransformationFonction
du tableau
économique à maximiser :
Z = 30000x + 40000y
▪ 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
Faire apparaître des 0 sur le reste
Fonction de la colonne
économique de la nouvelle: variable en base
à maximiser
Z = 30000x + 40000y
• 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 Pour la ligne de Z, il faut lui
ligne du pivot.. On retrancher 40000 fois la ligne
remplace L2 par L2-2L3. du pivot.. On remplace L4 par
L4 – 40000L3
x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Tableau 2
Fonction économique à maximiser :
Z = 30000x + 40000y

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
Variable entrante,Fonction
ratios et variable sortanteàdumaximiser
économique tableau 2 :
Z = 30000x + 40000y

Variable entrante x et sortante e2


x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
Transformations sur le tableau 2 x 0, y 0
Le pivot est déjà à 1. Fonction économique à maximiser :
Z = 30000x + 40000y
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
Variable entrante, ratios et variable
Fonction sortante du
économique à tableau 3
maximiser :
Z = 30000x + 40000y

Variable entrante e3 et sortante e1


x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Division
Division dupar
du pivot pivot
3 par 3Fonction économique à maximiser :
Z = 30000x + 40000y
x+2y ≤ 700
Deuxième étape : Application de l’algorithme du simplexe
x 0, y 0
Apparition
Divisiondesdu
0 sur le reste
pivot parde3Fonction
la colonne économique à maximiser :
Z = 30000x + 40000y

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
Tableau 4 du pivot par 3Fonction économique à maximiser :
Z = 30000x + 40000y

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
x+2y ≤ 700
ANALYSE DES SENSIBILITES DE LA SOLUTION OPTIMALE
OBTENUEDivision du pivot par 3Fonction économique à maximiser
Une entreprise fabrique trois pièces A B C:dans 3 ateliers : Découpage, Mesure et
Peinture. Chaque atelier dispose
Z =d’un nombre
30000x + limité
40000yd’heurs de travail sur ses
machines.
A B C Disponibilité
Découpage 1h 3/2h 3/2h 240h
Mesure 1/2h 0h 1h 120h
Peinture 2h 1h 1h 240h
Profit 3500 DH 4500 DH 4200 DH

Déterminer le nombre de pièces de chaque type à produire afin de maximiser le profit


total.
x+2y ≤ 700
ANALYSE DES SENSIBILITES DE LA SOLUTION OPTIMALE
OBTENUEDivision du pivot par 3Fonction économique à maximiser
max (𝑧=3500𝑥+4500𝑦+4200t)
:
𝑥+3/2𝑦+3/2t +𝑒1=240
1/2𝑥+t+𝑒2=120 Z = 30000x + 40000y
2𝑥+𝑦+t+𝑒3=240
𝑥,𝑦,t,𝑒1,𝑒2,𝑒3 ≥0
En appliquant le simplexe on arrive au tableau final suivant

x y t e1 e2 e3
Y 0 1 1 1 0 -1/2 120
e2 0 0 1 1/4 1 -3/8 90
x 1 0 0 -1/2 -1/2 ¾ 60
z 0 0 -3 -55/2 0 -15/4 -7500

𝑥=60, 𝑒1=0 𝑦=120, 𝑒2=90 t=0, 𝑒3=0


Z= 7500
x+2y ≤ 700
ANALYSE DES SENSIBILITES DE LA SOLUTION OPTIMALE
OBTENUEDivision du pivot par 3Fonction économique à maximiser
Interprétation d’une variable d’écart
:
L’entreprise doit produire 60 unités de type A, 120 l de type B, et aucune de type C
Z = 30000x
pour obtenir un profit global maximal + 40000y
de 7500 DH. D’autre part à l’optimum 𝑒1=0
et 𝑒3=0. Ainsi, les ateliers de découpage et peinture ont entièrement utilisé leurs
ressources tandis que puisque 𝑒2=90, il reste encore 90h disponibles dans l’atelier
Mesure à l’optimum.

Question : Quel serait l’impact sur le profit total maximal d’une variation
marginale au niveau de l’atelier découpage ? En d’autres termes, quel serait
l’optimum de la variation d’une unité de la quantité de ressource disponible dans
l’atelier découpage ?

La réponse est donnée par la valeur absolue du coefficient à l’intersection (∩) de la


ligne 𝐿𝑧 et de la colonne de 𝑒1.C’est à dire 55/2. Ce coefficient révèle de combien
d’unité monétaire l’on ferait varier la quantité de ressource disponible dans
l’atelier découpage d’une unité.
Nous dirons que la valeur marginale de l’atelier découpage est égale à 55/2 et nous
notons √𝑚(𝑒1)=55/2.
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
Dual d’un programme linéaire(P)

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.

Vous aimerez peut-être aussi