1. Chapitre 2
Programmation Linéaire
Master Informatique Décisionnelle et Intelligence appliquée à la gestion
Hend Bouziri
Maître Assistant, ESSEC de Tunis
LARODEC ISG
Laboratoire de Recherche Opérationnelle, de DEcision et de
Contrôle de processus
1
2. Définition d’un PL
• Un programme linéaire (PL) est:
– un problème d’optimisation
– consistant à maximiser (ou minimiser) une fonction objectif
linéaire de n variables de décision
– soumises à un ensemble de contraintes exprimées sous
forme d’équations ou d’inéquations linéaires.
• À l’origine, le terme programme a le sens de
planification opérationnelle
• mais il est aujourd’hui employé comme synonyme de
problème (d’optimisation).
• La terminologie est due à Dantzig, inventeur de
l’algorithme du simplexe. 2
4. Terminologie (1)
• Les variables x1, . . . , xn sont appelées variables
de décision du problème.
• La fonction linéaire à optimiser est appelée
fonction objectif (ou fonction économique ou
fonction de coût).
• Les contraintes prennent la forme d’équations et
d’inéquations linéaires.
• Les contraintes de la forme:
sont appelées des contraintes de bornes.
4
5. Terminologie (2)
• Une solution est une affectation de valeurs aux
variables du problème.
• Une solution est admissible si elle satisfait toutes
les contraintes du problème (y compris les
contraintes de bornes).
• La valeur d’une solution est la valeur de la
fonction objectif en cette solution.
• Le domaine admissible D d’un PL est l’ensemble
des solutions admissibles du problème.
5
9. Représentation graphique des
contraintes d’inégalité
• L’intersection d’un nombre fini de demi-plans est
un ensemble convexe.
• L’ensemble des solutions d’un système
d’équations et d’inéquations (linéaires)
correspond à l’intersection des demi-espaces et
des hyperplans associés à chaque élément du
système.
• Cette intersection, appelée domaine admissible,
est convexe et définit un polyhèdre dans IRn (une
région polygonale dans IR2).
9
10. Hypothèses de la programmation
Linéaire
• La linéarité des contraintes et de la fonction
objectif.
– L’additivité des effets.
– La proportionnalité des gains/coûts et des
consommations de ressources.
• La divisibilité des variables.
• Lors de la modélisation d’un problème réel,
l’impact de ces hypothèses sur la validité du
modèle mathématique doit être étudié.
• Cette analyse peut mener à choisir un modèle
différent (non linéaire, stochastique, ...) et est
essentielle pour la phase d’interprétation des
résultats fournis par le modèle.
10
11. Intérêts de la PL
• Malgré les hypothèses sous-jacentes assez restrictives,
de nombreux problèmes peuvent être modélisés par des
programmes linéaires.
• Exemples
– la gestion de production,
– l’économie,
– la distributique,
– les télécommunications,…
• Il existe des algorithmes généraux (et des codes les
mettant en oeuvre) permettant de résoudre efficacement
des programmes linéaires (même lorsque le nombre de
variables et de contraintes est important).
• Exemple Cplex
11
13. Le problème de transport
• On désire acheminer des marchandises de n
dépôts à m points de vente
• On connaît :
– cij , i = 1..n et j = 1..m, coût de transport (i, j),
– Xi, i = 1..n, stocks des dépôts,
– Dj , j = 1..m, niveaux de demande aux points de vente.
• On recherche, pour chaque couple (i, j), la
quantité (positive) xij à transporter du dépôt Xi au
point de vente Dj .
13
14. Formulation en PL
• Programme linéaire
Critère: coût total de transport
Demande de
chaque dépôt
Offre de chaque
point de vente
14
15. Modélisation d’un problème en PL
• Une usine est machine Main d'oeuvre Profit
spécialisée dans la
production de deux P1 2h/unité 3h/unité 25DT/unité
produits P1 et P2.
• Chaque produit P2 2h/unité 1h/unité 15DT/unité
nécessite
– un certain nombre total 240 140
d’heures de machine
– et un certain nombre Stratégie de production
d’heures de main pour maximiser le profit ?
d’œuvre.
15
16. Formulation du programme linéaire
• Variables de décision
– x1: nombre d’unités de produits P1
– x2: nombre d’unités de produits P2
• Fonction objectif:
– z=25x1+15x2
• Contraintes:
– 2x1+2x2≤240
– 3x1+x2≤140
• Contraintes de borne (non négativité des
variables)
– x1≥0 et x2≥ 0
16
17. Programme linéaire: forme
canonique
Max Z=f(x1,x2)=25x1+15x2 Formulation matricielle
sc
x1
2x1+2x2≤240
3x1+x2≤140
Max f ( x 1 ,x 2 )=( 25 15 )
()
x2
x1≥0 et x2≥ 0 2 2 x 1 ≤ 240
sous ( )( ) ( )
3 1 x 2 140
avec x 1 ≥0 et x 2 ≥0
17
18. Résolution graphique d’un PL dans
le plan
• Les lignes de niveau de la fonction objectif sont des
droites parallèles dans IR2.
• Il existe des solutions admissibles de valeur z si la ligne
de niveau associée à cette valeur intersecte le domaine
admissible D du problème.
• Pour déterminer la valeur maximale atteignable par une
solution admissible,
– il suffit de faire glisser le plus loin possible une ligne de niveau
de la fonction objectif, dans le sens du gradient, jusqu’à ce
qu’elle touche encore tout juste D.
– Les points de contact ainsi obtenus correspondent aux solutions
optimales du PL.
18
19. Exemple de résolution graphique
• Max z = x1 + 4x2
• s.c.
x1 − x2 ≤ 2
2x1 + x2 ≤ 5
x2 ≤ 3
x1 ≥0, x2 ≥0
• de solution optimale :
x1 = 1, x2 = 3 et z = 13.
19
20. Algorithme de simplexe
●
Transformer le modèle sous forme standard :
Max Z=f(x1,x2)=25x1+15x2+0 S1+0 S2
sc
2x1+2x2+S1=240
3x1+x2+S2=140
x1≥0 et x2≥ 0
●
S1 : valeur d'heures machines non utilisées
●
S2 : valeur d'heures mains d'oeuves non utilisées
20
21. Définitions
●
La variable d'écart est la quantité qui ajoutée au
membre gauche d'une contrainte, permet de
transformer la contrainte en égalité.
●
Dans le modèle, on dispose de n+m variables.
●
On appelle variables hors base les variables fixées à
0. Les variables restantes sont dites de base.
●
Une solution de base réalisable est une solution de
base qui en plus vérifie les contraintes de positivité.
●
Graphiquement un sommet du polygne correspond à
une solution de base réalisable
21
22. Algorithme de simplexe
● Idée : se déplacer d'une solution de base réalisable
vers une autre qui lui est adjacente.
● Comment choisir le point de départ ?
● Le point d'origine : (x1=0, x2=0, S1=240, S2= 140) : la
base
● Se déplacer vers une autre extrémité du polygone :
● Choisir la variable avec le coef objectif le plus élevé.
● D'où le sens de déplacement.
22
23. Avantage de passer de la forme canonique
à la forme standard
• On obtient immédiatement une solution de
base réalisable qui sert de solution de
départ pour l’algorithme du simplexe.
• Tableau initial :Les variables de base sont
les variables d’écart.
23
24. Algorithme de simplexe tabulaire
• Si un problème est solvable par la méthode de simplexe alors
• Transformer le programme en forme standard.
• (*)Représenter le tableau simplexe initial à l’origine.
– Variables de bases
– Quantité
– Matrice des coefficients
Si (∀j, cj-zj≤0) alors
Retourner la solution optimale (donnée par le dernier tableau)
Choisir colonne pivot (variable entrante à la base)
Choisir ligne pivot (variable sortante de la base)
Développer un nouveau tableau simplexe (VB, Qté, Matrice des
coefs)
Revenir à l'étape (*)
24
25. Algorithme de simplexe tabulaire
• Itérations sur les tableaux
– NP: nombre pivot
– LP ligne pivot
– L: ligne de la matrice de coefficients (!=ligne
pivot)
– TLP=LP/NP: transformée de la ligne pivot
– aL: coef de la matrice se trouvant à l’intersection
de la ligne transformée (!= ligne pivot) avec la
colonne pivot
25
26. Simplexe pour pb de minimisation
avec contraintes ≥
• Min C=24x1+20x2
• Sc
Sc
x1+x2 ≥30
x1+x2-S1+A1=30
x1+2x2≥40
x1≥0 et x2≥0 x1+2x2-S2+A2=40
• Première étape: x1≥0 x2≥0 S1≥0 S2≥0 A1≥0 A2≥0
– Transformer le problème sous une forme standard
– A l’origine (0,0), x1+x2-S1=30 donne S1=-30
– Non conforme à l’hypothèse de non négativité des variables
d’écart.
– Utiliser une variable artificielle: x1+x2 ≥30 x1+x2-S1+A1=30
26
27. – Transformer les inégalités sup en égalité
• Variables d’écart (Si) et des variables artificielles (Ai)
• Les variables d’écart ont un effet nul sur la
fonction objective.
• Les variables artificielles ont un coefficient =M
– M : un nombre entier positif très élevé pour s’assurer
de son élimination de la base.
• Min C=24x1+20x2+0S1+0S2+MA1+MA2
• Sc
x1+x2-S1+A1=30
x1+2x2-S2+A2=40
x1≥0 x2≥0 S1≥0 S2≥0 A1≥0 A2≥0
27
28. Application de la méthode simplexe
• Initialement ( à l’origine) A1 et A2 sont les
variables de base
• Sélectionner la variable entrante par
rapport à zj-cj maximal (⇔ cj-zj minimal)
28
29. Maximisation avec contraintes
mixtes
• Max Z=4x1+3X2
Sc x1+x2=10
x1 + 3x2≤20
2x1-x2≥15
x 1 ≥0 x 2 ≥0
• Forme standard
• Max Z=4x1+3X2+0S1+0S2-MA1-MA2
Sc x1+ x2 + A1 =10
x1 +3x2 + S1 = 20
2x1 -x2 -S2 +A2 =15
x1≥0, x2≥0 , S1≥0, S2≥0, A1≥0, A2≥0
• On utilise les cj-zj pour critère d’entrée des variables
•
29
30. Cas de quantités négatives
• Simplexe ne s’applique plus
• Se ramener à des quantités positives
• Exemple
• x1+x2≥-8 devient -x1-x2≤8
30
31. Cas d’un problème impossible
• Ensemble des solutions réalisables est vide
• Exemple:
Min x1+x2
Sc x1-x2 ≥1
-x1+x2≥1
x1≥0, x2≥0
• Simplexe:
– Solution optimale avec des variables artificielles non
nulles
• graphiquement
31
32. Cas d’une solution infinie
• Pas de solution
• Dans le cas d’un problème de maximisation
– la fonction objectif peut être augmentée indéfiniment
• Exemple
• Max Z=x1+x2
Sc 5x1-x2 ≥10
3x1-x2 ≤9
x1≥ 0, x2 ≥0
• Graphiquement
• Simplexe:
– tous les ratio-tests sont négatifs ou nuls
– la variable entrante n’a pas de limite sur sa valeur d’entrée
32
33. Cas de solutions multiples
• Plusieurs solutions mais toutes optimales de même
valeur
– Convexité
• Exemple
– Max z=45x1+15x2 (de pente -3)
Sc 2x1+2x2 ≤240 (de pente -1)
3x1+ X2≤140 (de pente -3)
x1≥0, x2≥0
• Graphiquement
• Simplexe:
– Dans le tableau optimal, l’une des variables hors base admet un
cj-zj nul
– Existence d’autres solutions en entrant cette variable dans la
base.
33
35. Étude de sensibilité
• L’étude du comportement de la solution
optimale d’un PL si on varie ses données.
• Analyse de sensibilité sur les coefficients de
variables dans la fonction objective (les cj).
• Analyse de sensibilité sur le second membre
des contraintes.
• Analyse de sensibilité sur les coefficients de
la matrice des contraintes.
35
38. Autres méthodes
• Simplexe : se déplace de point extrême en point
extrême le long de la frontière du polyèdre. Il y a un
nombre fini de points extrêmes
– L’algorithme du simplexe n’est pas un algorithme
polynomial pour la programmation linéaire.
• En 1979, Khachiyan a développé le premier
algorithme polynomial pour la programmation linéaire
: la méthode de l’ellipsoïde.
– Impact théorique important, mais performances pratiques
mauvaises.
• En 1984, Karmarkar propose les méthodes de points
intérieurs : polynomiales et efficaces en pratique sur
des problèmes creux de grande taille.
38