Vous êtes sur la page 1sur 7

F.

GALASSO 28/05/2018

Plan du cours

Programmation • La programmation linéaire c’est quoi et ça sert à


quoi ?

Linéaire • Un cas d’application en planification de production


• Éléments de modélisation
3iL Ecole d’ingénieurs • Algorithme du simplexe
• Dualité
François GALASSO – IUT de Rodez
galasso@iut-rodez.fr • Extensions à différents problèmes

F. Galasso 1 F. Galasso 2

La PL : c’est quoi ?

Programmation Linéaire
• Pour modéliser un • Relation linéaire entre
La Programmation problème
• Sous forme
des variables
• Sous contraintes
mathématique
Linéaire c’est quoi ? • La résolution de ce
• Avec une Fonction
d’Optimisation
problème
x2
Sous la forme
! savoir tracer des droites ! de droites

x1
F. Galasso 3 F. Galasso 4

La PL : c’est quoi ? En résumé


• Des variables non-négatives (soit ≥ 0) 1. Max z = 30x1 + 40x2
• x1, x2, x3.. xn (n étant le nombre de variables) On distinguera
• Par ex. x1 pour la quantité du produit A, x2, pour la quantité 2. 2x1 + 3x2 ≤ 1000 plusieurs formes
du produit B etc. d’écriture
• Des contraintes 3. x1, x2 ≥ 0
• m contraintes combinant les variables avec des coefficients
aij et comparées à des constantes bi (pour la variable j de la
contrainte i) • La ligne 1 représente l’objectif à maximiser (ici)
• Par ex. 2x1 + 3x2 ≤ 1000
• Si le produit pèse 2 kg et le produit B 2, le poids cumulé des
produits x1 et x2 ne doit pas dépasser 1000kg
• La ligne 2 représente la contrainte de capacité
• Une fonction objectif à Minimiser ou Maximiser selon • La ligne 3 représente les contraintes de non-
des coefficients cj négativité des variables
• Par ex. Max z = 30x1 + 40x2 (maximiser le bénéfice)

F. Galasso 5 F. Galasso 6

3IL - 2016-2017 1
F. GALASSO 28/05/2018

La PL : ça sert à quoi ? La PL : ça sert à quoi ????


• Résoudre tout problème qui correspond à la • Exemples :*
• La production à partir de composants : mélanges d’acier,
définition : aliments pour animaux, produits pétroliers, constitution d’un
lot de produits, etc.  meilleur dosage au moindre coût
• L’ordonnancement pour le pilotage de projets, de ligne
d’assemblage ou de transformation de produit ou encore de
« La programmation linéaire a pour objet l’étude […] machine  meilleur ordre au moindre coût
des problèmes où la fonction à optimiser (objectif) • La planification de chaînes logistiques, de production 
quelles quantités avec quelles ressources (ligne de
est une fonction linéaire, les liaisons entre les production, sous-traitant, heures supplémentaires…) à
variables (contraintes) étant également linéaires par moindre coût
• L’affectation de moyens de transports, la localisation
rapport aux variables »* d’entrepôts, le transport aérien, le dimensionnement d’un
réseau de transport, d’un réseau informatique à moindre
coût
• Et beaucoup d’autres !
*source : Algèbre linéaire et programmation linéaire, J. Acher et J. Gardelle, DUNOD, 2nd Eds, 1970 *source : Programmation linéaire avec Excel, C. Prins et M. Sevaux, Eyrolles, 2011
F. Galasso 7 F. Galasso 8

La PL : ça sert à quoi ? Cas d’application : planif. de prod.


Interprétation économique Sous-traitant : S Flux matière
Flux d’information
• Un acteur économique qui réalise n activités Composants Ordres sous-
traités
Produits finis

Ordres d’achats
• Chacune des n activités (indice j) est réalisée avec Fournisseurs Entreprise : E
Demande
Clients
une intensité xj Livraisons de Livraison de
composants produits finis
• Les activités utilisent m ressources (indice i)
• Plusieurs types de décisions
• La consommation unitaire des m ressources aij est n
• Production interne avec un coût nominal
• Sous-traitance d’une partie de la production
proportionnelle à l’intensité xj   a x i j 1
ij j
• Ajustements de capacités
• Heures supplémentaires
• Le coût ou le profit unitaire de chaque activité est cj • Ordres d’achats
• Gestion de plusieurs fournisseurs
• Les m ressources sont limitées par bi
F. Galasso 9 F. Galasso 10

Modèle de planification :
Hypothèses retenues
notations
• Indices • Variables de décisions
• p : produits finis ; c : composants • Xp,t : production interne Sous-traitant: STT
• t : périodes • STp,t : production sous-traitée
• Τ : date de planification • As,c,t : Achats par supplier et
composant STp,t
• Données
• HSt : nombre d’heures
• Dp,t : demande client supplémentaires par période
• LP : délai d’obtention de la As,c ,t Assembleur: M Dp ,t
production • Variables d’état Frs: {s} Composants : c
• Ip,t  p,t : Stock ;
I+ I-p,t
: Ruptures; 
As ,c,t 1 X p ,t  Lx  STp,t  LST
 Clients
• LS : délai d’obtention du sous- Produits finis : p
traitant • Jc,t : stocks de composants Capacité standard : CN
• Rp : temps de production par Jc,t Capacité additionnelle: SCa Ip,t
produit
Heures Supplémentaires: HSτt
• CN : capacité standard

3IL - 2016-2017 2
F. GALASSO 28/05/2018

Contraintes du modèle Objectif du modèle


 h I    hcc J c ,t   b p I p ,t   u p X p ,t
T  p p ,t

• Équilibre des stock de produits finis • Objectif : 
min  p st p ST p,tc   f s ,cpAs,c,t   opa Ba,t  eHS t 
I p,t  I p,t  I p,t 1  I p,t 1  X p,t LP  STp,t LS  Dp,t p, t  HP t 1  
 p c s a 
• Équilibre des stocks de composants
J c ,t  J c ,t 1    p ,c ( X p ,t  ST p ,t )   As ,c ,t p ,  c ,  s ,  t  HP • hp, hcc, bp, up, stp, fsc : sont les coûts unitaires
p s

• Nomenclatures associés à chaque variable (de décision ou d’état)


  ( X  ST p
p,c p ,t p ,t )  J c,t 1 c, p, t

• Gestion de la capacité
R X
p
p p,t  CN  (Ba,t  SCa )  HSt p, a, t  HP
a
HS t  HSMax

Simulation du processus de Schéma


planification général de Phase 1 Début

la Initialisation des paramètres de simulation Générer des profils de demande


• Possibilité de simuler, d’évaluer et de comparer simulation
(HP, PP...) et du modèle (τ, coûts…) sur HS

différents paramétrages (délais, horizons, coûts, etc.) τ=1


• Simulation du processus de planification à horizon
glissant
• Modélisation de l’acquisition dynamique de la demande Phase 2 Mise à jour des paramètres dynamiques :
 Décisions issues de τ-PP
• Résolution du modèle de planification à chaque pas de  État de l’en-cours
planification  Demande déterministe sur HPτ
• Prise en compte des demandes sur le nouvel horizon de
planification τ  τ + PP Résolution du modèle sur HP

• Permet de générer le plan réellement implémenté à la Non


fin du processus de simulation Fin de Simulation?

• (concaténation des décisions gelées à chaque pas de Oui


planification)
Construire le plan implémenté et la mise en forme des
Phase 3
résultats par indicateurs

15 Fin 16

l’envers du décor… La PL : ça sert à quoi ?


• Implémentation sous X-Press MP • Tous les problèmes sont-ils linéaires ?
•…
• Bien sûr que non !
• Temps de calcul : • Tarifs dégressifs en fonction des quantités,
• 2 produits, 5 composants, 5 fournisseurs, 12 périodes : • Délais variables,
• 0,08 secondes (516 variables, 180 contraintes) • Prise en compte de données aléatoires, incertaines,
imprécises
• 20 produits, 30 composants, 30 fournisseurs, 12 périodes :
• 0,5 secondes (12 396 variables, 1 212 contraintes)
• Multiplication de au moins 2 variables (quadratique)
• 100 produits, 200 composants, 200 fournisseurs, 12 périodes :
• 215 secondes (3 minutes, 35 secondes) (488 472 variables, 7 212 • Que faire ? Linéariser par l’ajout de variables quand
contraintes) c’est possible… (variables artificielles)
F. Galasso 17 F. Galasso 18

3IL - 2016-2017 3
F. GALASSO 28/05/2018

La PL : ça sert à quoi ? La PL : ça sert à quoi ?


Ça ne résout pas le
problème mais ça
• Toutes les variables sont positives ? permet d’écrire un
programme
résoluble « La programmation linéaire a pour objet l’étude […]
• Bien sûr que non ! des problèmes où la fonction à optimiser (objectif)
• Enfin, quantités, coûts, poids, volumes… c’est déjà pas mal est une fonction linéaire, les liaisons entre les
• Mais… températures, positions ou dates relatives… variables (contraintes) étant également linéaires par
rapport aux variables »*
• Que faire ? Quelques astuces mathématiques simples !
• Multiplier toute la relation par -1 (si un bi est négatif)
• Par ex. 3x1 + 2x2 ≥ -500 à minimiser
• Quand on est pas dans ce cadre, on peut chercher à
• Transformer une variable en la soustraction de deux variables
s’y ramener
positives par ex. x1 = x’1 – x’’1 (-6 = 2 – 8 ou 4 – 10 etc.)
F. Galasso 19 F. Galasso 20

Plan du cours
• La programmation linéaire c’est quoi et ça sert à
quoi ?
• Éléments de modélisation
• Méthode graphique
• Résolution algébrique
Éléments de
• Algorithme du simplexe modélisation
• Dualité Méthode Graphique  c’est facile !
• Extensions à différents problèmes

F. Galasso 21 F. Galasso 22

PL à 2 variables PL à 2 variables
• Simple comme des droites… • Simple comme des droites…
• 1 droite pour chaque contrainte • 1 droite pour chaque contrainte
• 1 droite « glissante » pour l’objectif à optimiser
1. On éloigne la
x2 x2 droite le plus
possible de
Sachant que : l’origine
Polygone des Ax ≤ B 2. On trouve le
contraintes Et : x ≥ 0 sommet
intersections correspondant
de demi-plans 3. On résout le
système à 2
équations et
x1 x1
inconnues
F. Galasso 23 F. Galasso 24

3IL - 2016-2017 4
F. GALASSO 28/05/2018

En résumé Exemple
• Représenter le polyèdre des contraintes • À la main… (la main pouvant être aidée avec une grille
Excel)
• Dessiner la fonction objectif • Une ligne de production peut réaliser les produits P1 et
• au moins sur 2 niveaux pour vérifier le sens de P2.
« glissement »
• La capacité de production par jour est de 500 P1 ou
• Déterminer visuellement le sommet faisant sortir 1000 P2 (P1, prends 2 fois le temps de fabrication de
la droite objectif du polygone P2)
• Résoudre analytiquement le système linéaire 2*2 • L’approvisionnement en composant commun permet
de fabriquer 800 produits en tout par jour
(2 équations, 2 inconnues) composé des 2
équations des droites définissant ce sommet • D’autres composants limitent la production de P1 à 400
et de P2 à 700
• Les valeurs de x1 et x2 sont les valeurs exactes d’une • Le profit généré par P1 est 20€ celui de P2 est 15€
solution optimale
F. Galasso 25 F. Galasso 26

Exemple Exemple
• Problème : on cherche à optimiser le programme de • On trace : (il suffit de deux points par droite)
production x2
• Quelles sont les variables de décision ? 1000

• x1 : quantité de produit A 2x1 + x2 ≤ 1000


900

• x2 : quantité de produit B x1 + x2 ≤ 800


• Quelles sont les contraintes : x1 ≤ 400 700

• 2x1 + x2 ≤ 1000 (2 fois + de temps pour x1 que pour x2) x2 ≤ 700 Optimum à
Max z = 20 x1 + 15 x2 l’intersection
• x1 + x2 ≤ 800 500

• x1 ≤ 400 droites rouge


• x2 ≤ 700 Choisir une 300 et verte
valeur de z
• Objectif : maximiser le profit pour tracer : 100
• Max z = 20 x1 + 15 x2 par ex. 6000
100 300 500 700 900 1000 x1
6000 = 20 x1 + 15 x2 <=> 1200 = 4 x1 + 3 x2 ; si x1 = 0 alors x2 = 400, si x2 = 0 alors x1 = 300
F. Galasso 27 F. Galasso 28

Exemple Exemple
• La solution optimale exacte se trouve à l’intersection de • En utilisant Géogebra*
• 2x1 + x2 = 1000 et, • Mêmes équations…
• x1 + x2 = 800
• Un si petit système peut se résoudre par substitution 2x1 + x2 ≤ 1000
(exprimer x1 en fonction de x2 dans une équation et le x1 + x2 ≤ 800
remplacer dans l’autre) MAIS… x1 ≤ 400
• Pour s’entrainer, on va pivoter : x2 ≤ 700
• L1 L1-L2 : x1 = 200 d’où x2 = 600 Max z = 20 x1 + 15 x2
• C’est la solution optimale : produire 200 P1 et 600 P2
• Le profit est : 20*200 + 15 * 600 = 13000€
*https://www.geogebra.org/
F. Galasso 29 F. Galasso 30

3IL - 2016-2017 5
F. GALASSO 28/05/2018

PL à 3 variables PL à 3 variables
• On passe de 2 à 3 axes  les droites deviennent • Plans : x1 + 2x2 + 2x3 ≤ 1000 ; x1, 2x2, 2x3 ≥ 0
des plans : x1 + 2x2 + 2x3 ≤ 1000 ; x1, x2, x3 ≥ 0 • Fonction économique : Max z = 10x1 + 4x2 + 1,5x3
x2 x2
On parle de
500 Polyèdre des 500
contraintes

x1 x1
1000 1000

500 500
x3 x3
F. Galasso 31 F. Galasso 32

Théorème PL à 4 variables ?

Si l’ensemble des contraintes d’un • C’est beaucoup moins pratique à dessiner

programme linéaire forme un • Modélisation générale


polyèdre non vide, il existe une
solution optimale qui est un • Méthodes algébriques (Simplexe, Branch & Bound)
sommet de ce polyèdre
Mais avant ça…

F. Galasso 33 F. Galasso 34

Quelques cas particuliers Quelques cas particuliers


• Domaine des solutions non borné : • Domaine des solutions non borné :
x2 x2
1000 1000

900 900
Cela s’appelle la
2x
-2x11++xx22≤≤1000
100 2x1 + x2 ≤ 1000
x1 + x2 ≤ 800 Dans quels cas ? x1 + x2 ≤ 800 dégénérescence
x1 ≤ 400 700 x1 ≤ 400 700

x2 ≤ 700 x2 ≤ 700
Max z = 20 x1 + 15 x2 500 Max z = 20 x1 + 10 x2 500
Pourquoi cela
peut me poser
Choisir une 300 300 problème ?
valeur de z
pour tracer : 100 100
par ex. 6000
100 300 500 700 900 1000 x1 100 300 500 700 900 1000 x1
6000 = 20 x1 + 15 x2 <=> 1200 = 4 x1 + 3 x2 ; si x1 = 0 alors x2 = 400, si x2 = 0 alors x1 = 300
F. Galasso 35 F. Galasso 36

3IL - 2016-2017 6
F. GALASSO 28/05/2018

Synthèse Méthode graphique


• La programmation linéaire traduit des relations
linéaires entre des variables
• Ces relations traduisent des phénomènes réels
(souvent liés à des considérations économiques)
• On retrouve des variables non négatives, des
contraintes et une fonction objectif à optimiser
• Une résolution géométrique permet de traiter
facilement les problèmes à 2 ou 3 variables  sommet
• Certains cas peuvent conduire à l’absence de solution
réalisable ou à une infinité de solutions (domaine non
borné, dégénérescence)
• Au-delà, il faut passer par une formulation
mathématique
F. Galasso 37

3IL - 2016-2017 7

Vous aimerez peut-être aussi