CHAPITRE 1
Formulation d’un programme linéaire (PL) I. Introduction L’importance L’importance de l’optimisation l’optimisation et la nécessité nécessité d’un outil simple pour modéliser modéliser des problèmes de décision que soit économique, militaire ou autres on fait de la programmation linéaire un des champs de recherche les plus actifs au milieu du siècle précédent. Les premiers travaux 1 (1947) sont celle de George B. Dantzig et ses associés du département des forces de l’air des Etats Unis d’Amérique. Les Les prob problè lèmes mes de progra programma mmatio tions ns linéa linéaire iress sont sont génér générale alemen mentt liés liés à des des problèmes d’allocations de ressources limitées, de la meilleure façon possible, afin de maximiser un profit ou de minimiser un coût. Le terme meilleur fait réfé référen rence ce à la po poss ssibi ibilit litéé d’avo d’avoir ir un ense ensemb mble le de décis décision ionss po poss ssibl ibles es qu quii réalisent la même satisfaction ou le même profit. Ces décisions sont en général le résultat d’un problème mathématique.
1
De nombreux mathématiciens, parmis eux le Russe L. V. Kantorovich, se sont penchés sur le problème de programmation linéaire avant 1947. 1
II. Les conditions de formulation d’un PL La programmation linéaire comme étant un modèle admet des hypothèses (des cond conditi ition ons) s) qu quee le déci décide deur ur do doit it valide validerr avan avantt de po pouv uvoi oirr les les utili utilise serr po pour ur modéliser son problème. Ces hypothèses sont 2 : 1. Les variables variables de décision décision du problème problème sont positives positives 2. Le critère critère de de sélectio sélection n de la meille meilleure ure décis décision ion est décrit décrit par par une fonct fonction ion linéaire de ces variables, c’est à dire, que la fonction ne peut pas contenir par exem exempl plee un prod produi uitt croi croisé sé de deux deux de ces ces vari variab able les. s. La fonc foncti tion on qu quii représ représen ente te le critè critère re de sélec sélectio tion n est est dite dite fonc fonctio tion n ob objec jecti tiff (ou (ou fonct fonction ion économique). 3. Les restricti restrictions ons relatives relatives aux variable variabless de décision décision (exemple: (exemple: limitati limitations ons des ressources) peuvent être exprimées par un ensemble d’équations linéaires. Ces équations forment l’ensemble des contraintes. 4. Les paramèt paramètres res du probl problème ème en deho dehors rs des des varia variable bless de décis décision ionss on ontt un unee valeur connue avec certitude
III. Les étapes de formulation d’un PL : Généralement il y a trois étapes à suivre pour pouvoir construire le modèle d'un programme linéaire : 1. Iden Identif tifier ier les varia variabl bles es du prob problè lème me à valeu valeurr non connu connues es (vari (variab able le de décision) et les représenter sous forme symbolique (exp. x1, y1 ). 2. Identifier Identifier les restrictions restrictions (les (les contraintes) contraintes) du problème problème et et les exprimer exprimer par un système d’équations linéaires. 3. Identifier Identifier l’objectif l’objectif ou le critère critère de sélection sélection et le représenter représenter sous une une forme linéa linéaire ire en fonc fonctio tion n des des varia variable bless de déci décisio sion. n. Spéci Spécifie fierr si le critè critère re de sélection est à maximiser ou à minimiser.
IV. Présentation Théorique Un programme linéaire consiste à trouver le maximum ou le minimum d’une forme forme liné linéair airee dite dite foncti fonction on ob obje jecti ctiff en satis satisfai faisa sant nt certa certain ines es équa équatio tions ns et inég inégali alité téss dites dites cont contrai raint ntes es.. En lang langag agee mathé mathémat matiqu ique, e, on décri décrira ra de tels tels modèles de la manière suivante : Soient N variables de décision x1, x2,…, xn, l’hypothèse que les variables de décision sont positives implique que x1 ≥ 0, x 2 ≥ 0, , x N ≥ 0 .
2
Ces hypothèses résument celles qui ont été donné par G. B. Dantzig : La proportionnalité, La non-négativité, l’additivité et la linéarité de la fonction objectif 2
La fonction objectif est une forme linéaire en fonction des variables variables de décision décision de type z = c1 x1 + c2 x2
+ + c N x N
où les coefficients c1 ,…,c ,…,c N doivent avoir une valeur bien déterminée (avec certitude) certitude) et peuvent peuvent être positifs, négatifs ou nuls. Par exemple le coefficient ci peut représenter un profit unitaire lié à la production d’une unité supplémentaire du bien xi, ainsi la valeur de z est le profit total lié à la production des différents biens en quantités égales à x1 , x 2 , , x N . Supposons que ces variables de décision doivent vérifier un système d’équations linéaires définis par M inégalités a11 x1
+ a12 x2 + + a1 N x N ≥ b1
a21 x1
+ a22 x2 + + a2 N x N ≥ b2
a M 1 x1
+ aM 2 x2 + + aMN x N ≥ bM
où les coeffic coefficien ients ts a1M ,…, doive ivent nt avoir avoir un unee valeu valeurr bien bien ,…, aMN et b1 ,…, ,…, bM do déte détermi rminée née (avec (avec certi certitud tude) e) et peuv peuven entt être être po posit sitifs ifs,, néga négatif tifss ou nu nuls ls.. Le paramètre b j représente la quantité de matière première disponible dont le bien x i utilise une quantité égale à aij xi . En suivant les étapes de formulation ci-dessus, on peut représenter le PL comme suit : Max
c1 x1 + c2 x2
+ + c N x N
s.c
a11 x1
+ a12 x2 + + a1 N x N ≥ b1
a21 x1
+ a22 x2 + + a2 N x N ≥ b2
a M 1 x1 x1
+ a M 2 x2 + + aMN x N ≥ b N
≥ 0, x2 ≥ 0, , x N ≥ 0
V. Exemples de formulations Limité au départ aux problèmes industriels et militaires, de nos jours plusieurs problèmes de divers domaines sont représentés ou approximés par des modèles de PL. L’utilisation de ces techniques de modélisation s’est renforcée encore après avoir construit des algorithmes et des logiciels capables de résoudre de plus larges problèmes avec autant de variables de décision que de contraintes. La tâche tâche de formu formulat latio ion n deman demande de géné général raleme ement nt une certa certaine ine expe experti rtise se et conn connai aiss ssan ance ce du prob problèm lèmee po pour ur po pouv uvoi oirr relev relever er facile facilemen mentt les diffé différe rente ntess composantes du problème et ainsi donner un programme qui modélise au mieux
3
la situa situatio tion n réelle réelle.. Dans Dans ce qu quii suit, suit, on prése présent ntera era qu quel elque quess exem exemple pless de formulation en programme linéaire liés à différents problèmes de décision : Exemple 1 : Problème d’agriculture
3
Un agriculteur veut allouer 150 hectares de surface irrigable entre culture de tomates et celles de piments. Il dispose de 480 heures de main d’œuvre et de 440 m3 d’eau. Un hectare de tomates demande 1 heure de main d’œuvre, 4 m 3 d’eau et donne un bénéfice net de 100 dinars. Un hectare de piments demande 4 heures de main d’œuvre, 2 m 3 d’eau et donne un bénéfice net de 200 dinars. Le bureau du périmètre irrigué veut protéger le prix des tomates et ne lui permet pas de cultiver plus de 90 hectares de tomates. Quelle est la meilleure allocation de ses ressources ?
Formulation Formulat ion du problème en un PL :
Etape Etape 1 : Iden Identif tific icati ation on des des varia variable bless de déci décisio sion. n. Les deux deux activ activité itéss qu quee l’ag l’agric ricult ulteu eurr do doit it déte détermi rmine nerr sont sont les surfa surface cess à allou allouer er pou pourr la cultu culture re de tomates et de piments : • x1 : la surface allouée à la culture des tomates • x2 : la surface allouée à la culture des piments On véri vérifi fiee bien bien qu quee les les vari variab able less de déci décisi sion on x1 et x2 sont sont positiv positives es : x1 ≥ 0, x2 ≥ 0 . Etape Etape 2 : Iden Identif tifica icatio tion n des des cont contrai raint ntes es.. Dans Dans ce prob problè lème me les contr contrain aintes tes représentent la disponibilité des facteurs de production : • Terrain : l’agriculteur dispose de 150 hectares de terrain, ainsi la contrainte liée à la limitation de la surface de terrain est x1 + x2 ≤150 • Eau : la culture d’un hectare de tomates demande 4 m 3 d’eau et celle d’un hectare de piments demande 2m 3 mais l’agriculteur ne dispose que de 440m 3. La cont contra rain inte te qu quii expr exprim imee les les limi limita tati tion onss des des ress ressou ourc rces es en eau eau est est 4 x1 + 2 x2 ≤ 440 440 . • Main d’œuvre : Les 480 heures de main d’œuvre seront départager (pas nécessairement en totalité) ente la culture des tomates et celles des piments. Sachant qu’un hectare de tomates demande une heure de main d’œuvre et un hectare de piments demande 4 heures de main d’œuvre alors la contrainte représentant les limitations des ressources humaines est x1 + 4 x2 ≤ 480
3
Exemple du cours du Prof. Mohamed Saleh Hannachi 4
• Les limitations du bureau du périmètre irrigué : Ces limitations exigent que l’agriculteur ne cultive pas plus de 90 hectares de tomates. La contrainte qui représente cette restriction est x1 ≤ 90 . Etape 3 : Identification de la fonction objectif. La fonction objectif consiste à maxim maximis iser er le prof profit it apporté apporté par la cultu culture re de tomat tomates es et de piments piments.. Les contributions respectives 100 et 200, des deux variables de décision x1 et x2 sont proportionnelles à leur valeur. La fonction objectif est donc z = 100 x1
+ 200
x2 .
Le programme linéaire qui modélise le problème d’agriculture est : Max s.c.
100 x1 +200 x2 x1 + x2 ≤150 4 x1 +2 x2 x1 +4 x2 x1 x1
Exemple 2 : Problème de médecine
≥0,
≤ 440
≤ 480 ≤90
x2
≥0
4
Un spécialiste en médecine a fabriqué un médicament (des pilules) pour guérir les sujets atteints d’un rhume. Ces pilules sont fabriquées selon deux formats : • Petite taille : elle contient 2 grains d’aspirine, 5 grains de bicarbonate et 1 grain de codéine. • Grande taille : elle contient 1 grain d’aspirine, 8 grains de bicarbonate et 6 grains de codéine. Pour guérir la maladie, le sujet a besoin de 12 grains d’aspirine, 74 grains de bicarbonate bicarbonate et 24 grains de codéine. codéine. Déterminer Déterminer le nombre de pilules minimales à prescrire au sujet pour qu’il soit guérit. Formulation Formulat ion du problème en un PL :
Le problème de médecine présente certaines ressemblances avec le problème de l’agriculture, dans les deux cas c’est un problème d’allocation de ressources. Les variables de décision décision qui représentent représentent des valeurs inconnues par le décideur qui est dans ce cas le spécialiste en médecine sont : • x1 : le nombre de pilules de petite taille à prescrire. • x2 : le nombre de pilules de grande taille à prescrire. On véri vérifi fiee bien bien qu quee les les vari variab able less de déci décisi sion on x1 et x2 sont sont positiv positives es : x1 ≥ 0, x2 ≥ 0 . Les contraintes imposées par le problème sur les valeurs possibles de x1 et x2 sont : 4
An introduction to linear programming and the theory of games, A. M. Glicksman 5
• La prescription doit contenir des pilules avec au moins 12 grains d’aspirine. Sachant qu’une petite pilule contient 2 grains d’aspirine et qu’une grande pilule contient un seul grain d’aspirine, on obtient la contrainte suivante : 2 x1 + x2 ≥ 12 . • De la même façon que pour l’aspirine, la prescription du spécialiste en médecine doit contenir au moins 74 grains de bicarbonate. Ainsi la contrainte suivante doit être satisfaite : 5 x1 + 8 x2 ≥ 74 . • Finalement la contrainte imposée par le fait que la prescription doit contenir au moins 24 grains de codéine est x1 + 6 x2 ≥ 24 . Etape 3 : Identification de la fonction objectif. On remarque qu’il y a plusieurs couples de solutions ( x1 , x 2 ) qui peuvent satisfaire les contraintes contraintes spécifiées à l’étape 2. La prescription doit contenir le minimum possible de pilules. Donc le critère de sélection de la quantité de pilules à prescrire est celle qui minimise le nombre total des pilules z = x1 + x 2 .
Le programme linéaire qui modélise ce problème médical est donc le suivant : Min
x1 + x2
s.c.
2 x1 5 x1
+ x 2 ≥ 12 + 8 x 2 ≥ 74
x1 + 6 x2 x1
Exemple 3 : problème de production
≥ 24
≥ 0, x 2 ≥ 0 5
Pour fabriquer deux produits P1 et P2 on doit effectuer des opérations sur trois machines M1, M2 et M3, successivement mais dans un ordre quelconque. Les temps unitaires d’exécution sont donnés par le tableau suivant : M1 M2 M3 P1 11 mn 7 mn 6 mn P2 9 mn 12 mn 16 mn On supposera que les machines n’ont pas de temps d’inactivité. La disponibilité pour chaque machine sont : • 165 heures (9900 minutes) pour la machine M1 ; • 140 heures (8400 minutes) pour la machine M2 ; • 160 heures (9600 minutes) pour la machine M3 . Le produit P1 donne un profit unitaire de 900 dinars et le produit P2 un profit unitaire de 1000 dinars. Dans ces conditions, combien doit-on fabriquer mensuellement de produits P1 et P2 pour avoir un profit total maximum ? 5
Méthodes et modèles de la recherche opérationnelle, A. Kaufmann, pp 22-23 6
Formula For mulatio tion n en un PL :
Les variables de décisions sont : • x1 : le nombre d’unités du produit P1 à fabriquer • x2 : le nombre d’unités du produit P2 à fabriquer Les contraintes outre les contraintes de non-négativité sont : • 11 x1 + 9 x 2 ≤ 9900 pour la machine M1 • 7 x1 + 12 x 2 ≤ 8400 pour la machine M2 • 6 x1 + 16 x2 ≤ 9600 pour la machine M3 900 x1 + 1000 x 2 Le profit à maximiser est : z = 900
Le programme linéaire résultant est : Max
900 x1 +1000 x2
s.c.
11 x1 + 9 x2
≤ 9900
7 x1 +12 x2
≤ 8400
6 x1 +16 x2 x1
≤ 9600
≥ 0, x2 ≥ 0
Exemple 4 : Problème d’alimentation
6
On se propose de réaliser une alimentation économique pour des bestiaux, qui cont contie ient nt ob obli liga gato toir irem emen entt 4 sort sortes es de comp compos osan ants ts nu nutr trit itif ifs, s, A, B, C et D. L’in L’indu dust stri riee alim alimen enta tair iree prod produi uitt préc précis isém émen entt deux deux alim alimen ents ts M et N qu quii contiennent ces composants : 1 Kg d’aliment M contient 100 g de A, 100 g de C, 200 g de D ; 1 Kg d’aliment N contient 100 g de B, 200 g de C, 100 g de D. Un animal doit consommer par jour au moins : 0.4 Kg de A ; 0.6 Kg de B ; 2 Kg de C ; 1.7 Kg de D. L’aliment M coûte 10 DT le Kg et N coûte 4 DT le Kg. Quelles quantités d’aliments M et N doit-on utiliser par jour et par animal pour réaliser l’alimentation la moins coûteuse ?
Formula For mulatio tion n en un PL :
On peut résumer toutes les données du problème dans le tableau suivant 6
Méthodes et modèles de la recherche opérationnelle, A. Kaufmann, pp 24-25 7
M N Quantités prescrites A 0.1 0 0.4 B 0 0.1 0.6 C 0.1 0.2 2 D 0.2 0.1 1.7 Coût 10 4 Ce genre de tableau peut aider à mieux analyser le problème et ainsi formuler le programme linéaire correspondant. Les variables de décision sont • xM : la quantité d’aliments M à utiliser pour l’alimentation des deux bestiaux • x N : la quantité d’aliments N à utiliser pour l’alimentation des deux bestiaux Les contraintes de non-négativité sont x1 ≥ 0, x2 ≥ 0. Le choix de cette quantité est contraint à la présence dans l’alimentation du composant x1 ≥ 4 • A : 0.1 x1 ≥ 0.4 ⇒ x2 ≥ 6 • B : 0.1 x 2 ≥ 0.6 ⇒ x1 + 2 x 2 ≥ 20 • C : 0.1 x1 + 0.2 x 2 ≥ 2 ⇒ 2 x1 + x 2 ≥ 17 • D : 0.2 x1 + 0.1 x2 ≥ 1.7 ⇒ La fonction objectif est une fonction coût : z = 10 x1 + 4 x 2 . Le programme linéaire est un programme de minimisation : 10 x1 + 4 x2
Min s.c.
x1
≥4
x2
≥6
x1 + 2 x2
≥ 20
2 x1 + x2
≥ 17
x1
Exemple 5 : Problème de mélange
≥ 0, x2 ≥ 0
7
Un industriel veut produire un alliage Z à 30% de plomb, 30% de zinc et 40% d’étain. Supposons qu’il puisse se procurer sur le marché des alliages A, B, C, D, E, F, G, H, I dont les compositions et les prix respectifs sont donnés dans le tableau suivant : Compositions des allia liages (en %) Plomb Zinc 7
A
B
C
D
E
F
G
H
I
Alliage à fabriquer
10 10
10 30
40 50
60 30
30 30
30 40
30 20
50 40
20 30
30 30
G. B. Dantzig applications et prolongements de la programmation linéaire pp :13-14 8
Etain Coût au Kilo
80 60 10 4.1 4.3 5.8
10 40 30 50 10 50 6 7.6 7.5 7.3 6.9 7.3
40
Combien doit-il acheter de chaque alliages A, B, C, D, E, F, G, H et I pour obtenir au prix de revient minimum un 1 Kg de l’alliage Z ? Formula For mulatio tion n en un PL :
La décision à prendre : Combien acheter de chaque alliage A, B, …, I ? Les variables de décision sont : • xi : la quantité d’alliage i, i= A, B, …, I, à acheter. On vérifie bien que les variables de décision xi , i= A, B, …, I, sont positives : x A ≥ 0, x B ≥ 0, xC ≥ 0, x D ≥ 0, x E ≥ 0, x F ≥ 0, xG ≥ 0, x H ≥ 0, x I ≥ 0 . Les contraintes relatives au problème sont : • Equation de la conservation de la matière : x A
≥ 0,
x B
≥ 0, xC ≥ 0,
x D
≥ 0, x E ≥ 0,
x F ≥ 0, xG
≥ 0,
x H ≥ 0, x I ≥ 0
• Equation de la satisfaction des proportions en Plomb : x A
+ 0.3 x B + 0.5 xC + 0.3 x D + 0.3 x E + 0.4 x F + 0.2 xG + 0.4 x H + 0.3
x I
= 0.3
• Equation de la satisfaction des proportions en Zinc :
0.1 x A + 0.3 x B + 0.5 x C + 0.3 x D + 0.3 x E + 0.4 x F + 0.2 x G + 0.4 x H + 0.3 x I = 0.3
• Equation de la satisfaction des proportions en Etain : 0.8 x A
+ 0.6 x B + 0.1 xC + 0.1 x D + 0.4 x E + 0.3 x F + 0.5 xG + 0.1 x H + 0.5 x I = 0.4
La fonction objectif dans cet exemple représente le coût d’achat des différents alliages A, B, C, D, E, F, G, H et I. Donc l’expression l’expression de la fonction objectif est la suivante : z = 4.1 x A
+ 4.3 x B + 5.8 xC + 6 x D + 7.6 x E + 7.5 x F + 7.3 xG + 6.9 x H + 7.3 x I
Le programme linéaire qui modélise ce problème mélange s'écrit : Min s.c.
4.1 x A
x A
+ 4.3 x B + 5 .8 xC + 6 x D + 7.6 x E + 7.5 x F + 7.3 xG + 6.9 x H + 7.3 x I
+ x B + xC + x D + x E + x F + xG + x H + x I = 1
0.1 x A 0.1 x A 0.8 x A
+ 0.1 x B + 0.4 xC + 0 .6 x D + 0.3 x E + 0.3 x F + 0.3 xG + 0.5 x H + 0.2 x I = 0.3 + 0.3 x B + 0.5 xC + 0.3 x D + 0.3 x E + 0.4 x F + 0 .2 xG + 0.4 x H + 0.3 x I = 0 .3 + 0.6 x B + 0 .1 xC + 0.1 x D + 0.4 x E + 0.3 x F + 0.5 xG + 0.1 x H + 0.5 x I = 0.4
x A , x B , xC , x D , x E , x F xG , x H , x I
Exemple 6 :
≥0
Sélection de Médias
8
Une entreprise désire effectuer une campagne publicitaire dans la télévision, la radio et les journaux pour un produit lancé récemment sur le marché. Le but de la campagne est d’attirer le maximum possible de clients. Les résultats d’une étude de marché sont donnés par le tableau suivant : 8
Operations research principles and practice, pp17-18 9
Télévision Locale Par satellite Coût d’une publicité 40 DT 75 DT Nombre de client 400 900 potentiel par publicité Nombre de client 300 400 potentiel femme par publicité
Radio
Journaux
30 DT 500
15 DT 200
200
100
Pour la campagne, on prévoit de ne pas payer plus que 800DT pour toute la campagne et on demande que ces objectifs soient atteints : 1. Au minimum minimum 2000 femmes femmes regardent, regardent, entenden entendentt ou lisent lisent la publicité publicité ; 2. La campa mpagne public licita itaire ire dans la télév lévisi ision ne doit pas dépasser 500 DT ; 3. Au moins 3 spots spots public publicita itaire iress seron serontt assu assurer rer par la télévis télévision ion locale locale et au moins de deux spots par la télévision par satellite. 4. Le nombre des publicités publicités dans dans la radio ou dans les les journaux journaux sont pour pour chacun chacun entre 5 et 10. Formula For mulatio tion n en un PL :
Les variables de décision du problème sont • x1 : le nombre de spots publicitaires dans la télévision locale • x2 : le nombre de spots publicitaires dans la télévision par satellite • x3 : le nombre de spots publicitaires dans la radio • x4 : le nombre d’affiches publicitaires dans les journaux Les contraintes de non-négativité sont vérifiées. Les contraintes du problème sont : • Coût total de la compagne publicitaire : 40 x1 + 75 x2 + 30 x3 +15 x 4 ≤ 800 • Nombre de clients femmes potentiels par publicité : 300 x1
+ 400 x 2 + 200 x3 + 100
x4
≥ 2000
500 , x1 ≥ 3 et x 2 ≥ 2 • Contraintes de la télévision : 40 x1 + 75 x 2 ≤ 500 • Contraintes sur le nombre de publicités dans la radio et dans les journaux 5 ≤ x3 ≤ 10 et 5 ≤ x 4 ≤ 10 . La fonction objectif à maximiser représente le nombre de clients potentiels par publicité z = 400 x1 + 900 x2 + 500 x3 + 200 x4 . Le programme linéaire résultant est :
10
Max
400 x1 + 900 x2
s.c.
40 x1 + 75 x2 30 x1 + 40 x2
+ 500
x3 + 200 x4
+ 30 x3 +15 x4 ≤ 800 800 + 20 x3 +10 x4 ≥ 2000
40 x1 + 75 x2
≤ 500
x1
≥3
x2
x1 ≥ 0, x2
≥2
x3
≥5
x3
≤ 10
x4
≥5
x4
≤ 10
≥ 0, x3 ≥ 0,
CHAPITRE 2
11
x4
≥0
Formulation d’un programme linéaire (PL) I. Introduction Après avoir illustrer par des exemples, comment un problème problème pratique peut être modélisé par un programme linéaire, l’étape qui va suivre sera certainement celle de la résolution de ce problème mathématique. La méthode graphique est l’une des premières méthodes utilisées à ce sujet. Si on parle de résolution graphique alors on doit se limiter à une représentation à deux variables et au plus à trois variables. Ceci indique que dans ce chapitre on examinera seulement les programmes linéaires à deux variables de décision.
II. Système d’axes Une des conditions de la réussite de notre représentation graphique est le choix d'un système d’axes. Un mauvais choix peut rendre notre représentation non claire et imprécise.
A cause des contraintes de non-négativité des variables de décision, nous nous intéressons seulement au cadran positif (voir figure ci-dessus). Cette région s’appelle la région des solutions possibles du problème. Prenons l’exemple 2 relatif au problème de médecine. Le programme linéaire est le suivant :
12
Min
x1 + x2
s.c.
2 x1 + x2
≥ 12
5 x1 + 8 x2
≥ 74
x1 + 6 x2
≥ 24
x1
≥ 0, x2 ≥ 0
Un bon choix se base sur une lecture des différents paramètres du programme linéair linéaire. e. Dans notre notre cas, on ne peut qualifi qualifier er de bon, le choix choix de 20 comme unité dans les deux axes. Pour l’exemple, on peut choisir le système d’axes suivant : x2 12 6 3 6
12
24
x1
III. Représentation graphique des contraintes Parmi les solutions possibles d’un problème, il y a ceux qui vont satisfaire toutes les contraintes du programme, appelés solutions réalisables, et ceux qui vont satis satisfa faire ire un unee parti partiee ou aucun aucunee de ces ces contr contrain aintes tes,, appe appelés lés solut solutio ions ns no non n réalisables. Une représentation graphique des inégalités (des contraintes) va nous permettre de déterminer l’ensemble des solutions réalisables. Revenons à l’exemple 2 du problème de médecine. Une des contraintes de ce problème est ce lle relative au grain d’aspirine :
. L’ensemble des solutions qui vérifient cette inégalité est le même que celui qui vérifie 2 x1 + x2 = 12 et 2 x1 + x 2 > 12 . 2 x1 + x2
≥ 12
x2 12 6 3 6
12
24
x1
L’ensemble des solutions qui correspond à l’équation est l’ensemble des points de la droite l définie par x 2 = −2 x1 + 12 . Cette droite admet une valeur de la pente égale à –2 et intercepte l’axe des ordonnées en 12 (voir (voir figure ci-dessus).
13
L’inégalité
corr corres espo pond nd à un demi demi-p -pla lan n limi limité té par par la droit roitee x 2 = −2 x1 + 12 . Or cette droite divise le plan en deux demi-plans ouverts donc quel est le demi-plan à choisir ? 2 x1 + x 2
> 12
x2 12
1
6 3 6
12
24
x1
Pour ce faire, il suffit de prendre un point de l’un des demi-plans (c’est à dire n’ap n’appa parte rtena nant nt pas pas à la droite droite x 2 = −2 x1 + 12 ) et vo voir ir s’il s’il véri vérifi fiee l’in l’inég égal alit itéé 2 x1 + x 2 > 12 . Par exemple le point de coordonnées (0,0) ne vérifie pas l’inégalité 2 x1 + x 2 > 12 donc le demi-plan π 1 au-dessus de la droite est celui recherché (voir figure ci-dessus). L’espace hachuré représente le demi-plan fermé des solutions qui vérifient la contrainte 2 x1 + x 2 > 12 . Si on fait de même pour les deux autres contraintes du problème (voir figures ci-de ci-dess ssous ous), ), on ob obtie tient nt les deux deux autre autress demidemi-pla plans ns π 2 et π 3 relatifs relatifs aux solutions vérifiant respectivement les contraintes 5 x1 + 8 x2 ≥ 74 et x1 + 6 x2 ≥ 24 . 3
2
9.25 6
4
3 6
12
24
x1
6
14,8
24
x1
Une solution possible du problème est dite réalisable si et seulement si elle vérifie toutes les contraintes, c’est à dire si elle appartient aux trois demi-plans rela relati tifs fs à chaq chaque ue cont contra rain inte te du prog progra ramm mmee liné linéai aire re,, en d’au d’autr tree term termee à π 1 ∩ π 2 ∩ π 3 (voir figure). x2 Ensemble des solutions réalisables
12
3
6
12
24
x1
seulement si pour tout Défini Déf initio tion n : Un ensemble E non vide est dit convexe si et seulement élément x et y de E et pour tout λ ∈ [0,1], λ x + (1-λ ) y∈ E.
14
On peut vérifier facilement que chacun des demi-plans π 1, π 2 , π 3 est convexe en vérifiant que pour toute paire de points P 1 et P2, l’ensemble des points qui forment le segment [P 1P2] appartient au demi-plan. Théo Théorè rème me : L’intersection d’ensembles convexes (non vide) est convexe. Propo Proposi sitio tions ns : L’ensemble des solutions réalisables (non vide) est convexe.
IV. Représentation de la fonction objectif ob jectif Soit z la valeur de la fonction objectif du problème de médecine z = x1 + x 2 . Pour z=0, la fonction objectif est représentée de la manière suivante : x2 12
3
6
24
x1
x
x1
0
+ 2 =
Pour z=6, c’est à dire que le nombre de pilules à prescrire est égale à 6 pilules. La fonction objectif est représentée comme suit : x2 12
3
6
24
x1
x1
+ x 2 =6
Chaq Chaque ue po poin intt du segme segment nt qui relie relie les les po poin ints ts (6,0) (6,0) à (0,6) (0,6) repr représ ésen ente te des des solutions qui engendrent une prescription avec 6 pilules des deux tailles. On peut tracer une infinité de droites qui représentent les différentes valeurs de la fonction objectif, toutes ces droites ont le même coefficient directeur (-1). Par suite elles sont parallèles entre elles. De plus on peut diminuer la valeur de z indéfiniment dans le sens indiqué dans la figure ci-dessous. x2 12
3 x1 6
z =6 z =12
z =18
Le problème est de connaître qu’elle est la droite qui correspond à la valeur minimal de la fonction objectif ?
15
V. Recherche de la solution optimale a. Résolution graphique Si nous retraçons l’ensemble des droites parallèles relatives à différentes valeurs de la fonction objectif sur la figure qui représente l’ensemble des solutions réalisables, on peut localiser la solution optimale. Elle correspond à la solution réalisable qui intercepte la droite à la plus petite valeur de z . x2 12 B 3
6
x1
12 Z=10
Dans notre exemple, la solution optimale est l’intersection des deux contraintes 2 x1 + x2 ≥ 12 et 5 x1 + 8 x2 ≥ 74 . Une évaluation des coordonnées de ce point revient à résoudre le système linéaire suivant :
2 x1 + x2 = 1 5 x1 + 8 x2 = 7 Elle Elle corre corresp spon ond d d’aprè d’aprèss le graph graphiq ique ue au po point int (2,8) (2,8).. Donc Donc la pres prescr cript iptio ion n optimale est de 2 pilules de petite taille et 8 pilules de grande taille. Le nombre de pilules (la valeur de la fonction objectif) est égale à 10. b. Résolution par énumération : On remarque que la solution optimale du problème de médecine est un point extrême qui se trouve sur le bord de l’ensemble des solutions. Une telle solution est dite solution réalisable de base. On peut admettre le résultat suivant : « Si un programme linéaire admet une solution optimale alors il existe une solution réalisable de base pour laquelle la fonction objectif atteint la valeur optimale » Une méthode de résolution du programme linéaire consiste donc à déterminer les solutions réalisables de base (les points d’intersection des droites qui forment les contraintes) et à calculer pour chaque point la valeur de la fonction objectif. La solution du programme linéaire est la solution à qui on associe la valeur optimale de la fonction objectif.
16
x2 12
A B
3
C
6
D x1
12
Dans le problème de médecine, l’ensemble des solutions réalisables de base présente 4 points extrêmes A(0,12), B(2,8), C(23/11,126/11) C(23/11,126/11) et D(24,0). La valeur de la fonction objectif associée respectivement à A, B, C et D est 12, 10, 149/11 et 24. On vérifie bien que B est la solution optimale du problème avec une valeur optimale égale à 10.
VI. Exemples Dans cette section on donne quelques exemples de résolution graphique de problèmes linéaires relatifs au différents cas possibles :
Problème de maximisation Max
100 x1 + 200 x2
s.c.
x1 + x2 ≤150
(1)
4 x1 + 2 x 2 ≤ 440
(2)
x1 + 4 x2 ≤ 480
(3)
x1
≤ 90
x2
(2)
(4)
B 110
(4)
Z=0
C
30
D
x1 ≥ 0, x 2 ≥ 0
(3) (1)
E
40
x1
la solution optimale est B(40,110)
Problème avec solution non bornée Max
- 2 x1 + 3 x 2
s.c.
x1 ≤ 5
(1)
2 x1 − 3 x 2 ≤ 6
(2)
x2
(2)
x1 ≥ 0, x 2 ≥ 0
Z=0
5
x1
(1)
On peut augmenter la valeur de la fonction objectif dans la direction des flèches indéfiniment donc la solution est non bornée
17
Problème impossible Min
3 x1 + 2 x 2
s.c.
x1 + 2 x 2 ≤ 2
(1)
2 x1 + 4 x 2 ≥ 8
(2)
x2
x1 ≥ 0, x 2 ≥ 0
x1
(2) (2) (1) (1)
L’espace des solutions réalisables est vide, il est l’intersection des deux zones grises de la figure ci-dessus
Problème à solutions multiples Max
x1
+ 3 x 2
s.c.
2 x1
+ 6 x 2 ≤ 30
x1
≤ 10
x 2
≤4
x1
≥ 0, x 2 ≥ 0
x2
(1) (1)
(2)
(1) (1)
(2) (2)
(3)
(3) (3)
B
10
x1
Z=0
L’ensemble des points décrit par le segment [AB] représente les solutions optimales du problème linéaire
Problème de dégénerescence Max
x1
+ x 2
s.c.
3 x1
+ 2 x 2 ≤ 40
x2
(1) (1)
x1
≤ 10
(2)
x 2
≤5
(3)
x1
≥ 0, x 2 ≥ 0
(2)
(1) (1) B
O
C
(3)
x1
Z=0
La solution optimale B(10,5) est dite dégénérée si trois contraintes concourent en ce point.
18
VII. Analyse de sensibilité Une analyse de sensibilité se résume à la recherche des intervalles de variations possibles des paramètres du programme linéaire sans que la solution optimale ne soit modifiée. Quest Que stio ion n : De combien peut-on faire varier la quantité de codéine dans le
problème de médecine sans changer la solution optimale. Répo Ré pons nsee : x2 12 B 3
6
x1
12 Z=10
On peut changer la valeur du second membre de la troisième contrainte jusqu'à ce que la droite de coefficient directeur directeur –1/6 touche le point optimal (2,8). C’est à dire qu’on peut varier le second membre de la troisième contrainte de 24 jusqu'à 50 sans changer la solution optimale. Quest Que stio ion n : De combien peut-on faire varier le profit engendré par la culture
d’un hectare de tomates, dans le problème de l'agriculture, sans changer la solution optimale ? Répo Ré pons nsee : x2
(2)
(4)
B 110
Z=0
C
30
D E
40
(3) (1) x1
Soit λ la variation du profit engendré par la culture d’un hectare de tomate. La 200 x2 fonction objectif est égale à (100 + λ ) x1 + 200 La solution demeure optimale si la pente de la fonction objectif reste toujours comprise entre la pente de la contrainte (1) et (3). Ceci est équivalent à dire que : −1 ≤ −
200 200 100
+ λ
≤−
1
⇔
4
On peut vérifier aussi que si : λ < −50 alors la solution optimale est A • 19
100 − 50 ≤ λ ≤ 100
• • • • • •
λ = −50
alors le problème est à solutions multiples : [AB] − 50 < λ < 100 alors la solution optimale est B λ = 100 alors le problème est à solutions multiples : [BC] 100 < λ < 300 alors la solution optimale est C λ = 300 300 alors le problème est à solutions multiples : [CD] λ > 300 300 alors la solution optimale est D
CHAPITRE 3
La Méthode de Simplexe I. Introduction On a présenté dans le chapitre précédent une procédure graphique pour résoudre un prog progra ramm mmee liné linéai aire re à deux deux vari variab able les. s. Par Par cont contre re,, dans dans la plup plupar artt des des 20
problèmes réels, on a plus que deux variables à déterminer. Une procédure algébrique pour résoudre les programmes linéaires avec plus que deux variables fera l’objet de ce chapitre. C'est la méthode de simplexe. Une implémentation de cette procédure à permis de résoudre des programmes avec un peu plus de quelques milliers de variables. Le programme Lindo qu’on présentera dans le chapitre 7 (en version pour étudiant) supporte au plus 200 variables et 100 contraintes. Dans ce chapitre la méthode de simplexe est présentée pour les problèmes t
Max
c x
s.c
A x
≤b
et en utilisant le problème de l’agriculteur :
X ≥0
100 x1 +200 x2 x1 + x2 ≤150
Max s.c.
4 x1 +2 x2 x1 +4 x2 x1 x1
≥0,
≤ 440
≤ 480 ≤90
x2
≥0
II. Mise sous forme standard La mise sous forme standard consiste à introduire des variables supplémentaires (une pour chaque contrainte) de manière a réécrire les inégalités ( ≤ ) sous la forme d'égalités. Chacune de ces variables représente le nombre de ressources non utilisés. On les appelle variable d'écart. La forme standard s'écrit donc : Max c1 x1 + c2 x2 + + c N x N s.c a11 x1 + a12 x2 + + a1 N x N + S 1 Max
c t x
s.c
A x +S ≤b X ≥0, S ≥0
a21 x1 + a 22 x2
= b1
+ + a 2 N x N + S 2 = b2
a M 1 x1 + a M 2 x2 x1 ≥ 0, x2 S 1 ≥ 0, S 2
+ + a MN x N + S M = bM
≥ 0, , x N ≥ 0 ≥ 0, ,
S M ≥ 0
La forme standard du programme linéaire de l'agriculteur est : Max s. c
100x1 + 200x2 x 1 + x2 + S 1 = 150 4x1 + 2x2 + S 2 = 440 x1 + 4x2 + S 3 = 480(3.4) x1 + S 4 = 90 (3.5) x1 , , x2, S 1 , , S 2 , , S 3 , , S 4 ≥ 0
(3.1) (3.2) (3.3)
(3.6)
L'impact de ces variables d'écart sur la fonction objectif objectif est nulle. Ceci explique explique le fait que leur existence soit tout simplement liée à une mise en forme du programme linéaire initial. Ces variables d'écart peuvent prendre des valeurs 21
nonnegatives. Le fait de donner la valeur des variables d'écart a l'optimum donne une idée du nombre des ressources non utilisées.
III. Revue algébrique de la méthode du simplexe La question qui se pose : que demande-t-on d’une procédure algébrique ? En premier lieu, on note que les contraintes contraintes du problème (3.2)-(3.5), forment un système de 4 équations et de 6 variables. variables. Or il y a un nombre infini de solutions de ce système d’équations. Donc une procédure algébrique, pour la résolution d’un d’un prog program ramme me linéa linéaire ire do doit it être être capa capable ble de retro retrouv uver er les solu solutio tions ns des des systèmes d’équations où il y a plus de variables que de contraintes. En deuxième lieu, ce ne sont pas toutes les solutions qui vérifient (3.2)-(3.5) qui sont des solutions du programme linéaire ; ils doivent en plus satisfaire les contraintes de nonnégativité. Ainsi une procédure algébrique doit être capable d’él d’élimi imine ner, r, de l’ens l’ensem emble ble des des solut solution ionss qu quii satis satisfai faitt (3.2) (3.2)-(3 -(3.1 .1)) celle celless qu quii n’arrivent pas à satisfaire les contraintes de nonnégativité. Finalement, une procédure algébrique pour résoudre les programmes linéaires doit do it être être en mesu mesure re de choi choisi sirr parm parmii les les solu soluti tion onss réal réalis isab able less ceux ceux qu quii maximisent la fonction objectif. La méthode de simplexe est une procédure algébrique qui tient compte de ces trois considérations. Pour illustrer cette procédure, devient x1 = 150 x1 + S 2 = 440 4x1 + S 3 = 480 x1 + S 4 = 90
supposons que x2 = 0 et S 1 = 0. Notre système x1 = 150 S2 = 340 S3 = -120 S4 = -60
Les variables x1 , , S 2 , , S 3 et S 4 (non nulles) sont dites variables de base et les variables S 1 , , x2, (nulles) sont dites variables hors base. Généralement, si on a un programme linéaire standard constitué de n variables et m contraintes (n ≥ m) alors une solution de base (extrême) est obtenue, en annulant (n-m) variables et en résolvant les m contraintes pour déterminer les valeurs des autres m variables.
22
On note qu’une solution de base n’est pas toujours réalisable. C’est le cas de la solution qu’on vient de retrouver. Une solution réalisable de base serait celle où x1 = x2 = 0, ainsi on a : S 1 = 150 S 2= 440 S 3 = 480 S 4 = 90 Cette Cette solut solutio ion n corre corresp spon ond d à un po point int extrê extrême me de l’ens l’ensemb emble le des des solut solutio ions ns réalisables qui est l’origine O. Pour Pour la méth méthod odee de simp simple lexe xe un unee solu soluti tion on réal réalis isab able le de base base init initia iale le est est demandée. Une telle solution peut être retrouvée en annulant toutes les variables de décision. Ce qui correspond dans notre exemple au point d’origine O. A partir de ce point la méthode de simplexe va générer successivement des solutions réalisables de base pour notre système d’équations en s’assurant que la vale valeur ur de la fonc fonctio tion n ob obje jecti ctiff est est en train train d’aug d’augmen mente terr jusq jusqu'à u'à loca localis liser er la solution optimale du problème qui est un point extrême de l’espace des solutions réalisables donc une solution réalisable de base. Ainsi, on peut décrire la méthode de simplexe comme étant une procédure itérative qui passe d’une solution réalisable de base à une autre jusqu’à atteindre la solution optimale. La description mathématique de ce processus fera l’objet de la section suivante.
IV. La méthode des tableaux La méthode de simplexe commence par l'identification d'une solution réalisable de base et ensuite, elle essaye de trouver d'autres solutions réalisables de base jusqu’à atteindre à la solution optimale. Ainsi, on doit, tout d’abord, retrouver cette solution réalisable de base.
Généralement si le programme linéaire satisfait ces deux propriétés : P1/ Parmi les variables du problème standard, il y a m variables qui apparaissent avec un coefficient non nul dans chaque contrainte (dans notre exemple : S 1 , , S 2 , , S 3 et S 4). P2/ Les valeurs du second second membre des des contraintes contraintes (les composants composants du vecteur vecteur b) sont positives.
23
Alors une solution réalisable de base est obtenue en annulant les (n-m) variables de décision et la valeur des variables d'écart est directement donnée par le second membre. La deuxième propriété assure la satisfaction des contraintes de nonnégativité des variables d'écart. Dans notre exemple, la forme standard du programme linéaire vérifie ces deux propriétés. a. Tableau de simplexe initial Après avoir mis le programme linéaire sous une forme qui vérifie les deux propriétés P1 et P2, l’étape suivante est de tracer le tableau de simplexe initial. Le modèle général des tableaux de simplexe est : c j coefficient correspond aux variables
Toutes les variables
e d st
s
n ei ci
el b ai r a v
ff
e o c
C
i
s
e d
r
e s a b e d
Q
el b ai r a v
e d s
e d
s
e s a b
el b ai r a v B V
e s a b
s
u el a V i
A = (a ij ) ,i j matrice des coefficients des contraintes du programme standard
Pour notre exemple le tableau de simplexe initial est le suivant : 100 200 0 0 0 0 x1 x2 S 1 S 2 S 3 S 4 0 S 1 150 1 1 1 0 0 0 0 S 2 440 4 2 0 1 0 0 0 S 3 480 1 4 0 0 1 0 0 S 4 90 1 0 0 0 0 1 On remarque qu’on a placé en première ligne les contributions unitaires de toutes toutes les variable variabless de décisio décision n x1 ,..., S 4 dans la fonction objectif. Dans la troisième troisième ligne, on retrouve la première contrainte contrainte x1 + x2 + S 1 = 150. La valeur 150 représente ici la valeur de S 1 relative à la solution réalisable de base initiale. Dans la première colonne on trouve les contributions nulles des variables d'écart qui forment la solution de base initiale. Exemple : 24
Question : Quelles sont les contraintes et la fonction objectif du programme linéaire décrit par le tableau de simplexe suivant :
0 0
S1 S2
150 440
6 x1 4 1
7 x2 2 5
0 S1 1 0
0 S2 0 1
Réponse : Les contraintes du programme sont : 4 x1 + 2x2 + S 1 = 50 x1 + 5x2 + S 2 = 40 et la fonction objectif est : 6x1 + 7x2 + 0S 1 + 0S 2 Remarque : Les variables qui figurent dans la deuxième colonne sont dites
vari variab able less de base base.. A chac chacun unee de ces ces vari variab able les, s, on asso associ ciee la vale valeur ur 1 à l’intersection l’intersection de la ligne et de la colonne relative à cette variable et dans le reste de la colonne on trouve des zéros. Jusq Jusqu’ u’àà ici ici on a vu comme comment nt retro retrouv uver er un unee solut solution ion réali réalisa sable ble de base base et comment présenter le tableau de simplexe initial. Dans la section suivante, on examinera la procédure liée à la méthode de simplexe qui permet de passer de cette solution réalisable de base initiale à une autre solution réalisable de base qui donne une meilleure valeur de la fonction objectif. b. Amélioration de la solution Pour améliorer la solution il faut générer une autre solution de base (point extrême) qui augmente la valeur de la fonction objectif. C’est à dire, qu’on doit sélectionner une variable hors base et une variable de base et les permuter de telle façon que la nouvelle nouvelle solution donne une plus grande valeur de la fonction objectif. Pour savoir si on peut améliorer notre solution réalisable de base initiale nous allons introduire deux nouvelles lignes au-dessus du tableau de simplexe. La première ligne, notée z j, représente la variation de la valeur de la fonction objectif qui résulte du fait qu’une unité de la variable correspondante à la j ème colonne de la matrice A est amenée dans la base. Par exemple z 1 représente représente la diminution du profit qui résulte de l’ajout d’une unité à la valeur de x1. En effet, si on produit un hectare supplémentaire de x1, la valeur de quelques variables de base vont changer vu qu’on a : x1 + S 1 = 150 4x1 + S 2 = 440 25
x1 + S 3 = 480 x1 + S 4 = 90 Donc, une augmentation de x1 de 0 vers 1 va être accompagnée d'une diminution des variables de base S 1 , , S 2 , , S 3 , , S 4 respectivement de 1, 4, 1 et 1. L’effet de cette diminution sur la fonction objectif est nul car les coefficients des variables d’écarts dans cette fonction sont nulles z 1 = 0 × S 1 + 0 × S 2 + 0 × S 3 + 0 × S 4 =0 × 1 + 0 × 4 + 0 × 1 + 0 × 1 = 0 La valeur z z 1 est calculée en multipliant les coefficients de la première colonne de la matrice A relatifs à la variable x1 par les coefficients ci de la première colonne. Généralement, on a : aij × ci z j = ∑ i
La deuxième ligne, notée c j - z j, représente l’effet net de l’augmentation d’une unité de la j ème variable. Dans Dans no notr tree exem exempl ple, e, l’ef l’effe fett net net sur sur la fonc foncti tion on ob obje ject ctif if enge engend ndré ré par par l’augmentation d’une unité dans la valeur de x1 est c1 - z 1 = 100 - 0 = 100 Si on reprend la même opération pour le reste des variables, on trouve le tableau suivant :
0 0 0 0
S 1 S 2 S 3 S 4
150 440 480 90 z j c j - z j
100 x1 1 4 1 1 0 100
200 x2 1 2 2 0 0 200
0 S 1 1 0 0 0 0 0
0 S 2 0 1 0 0 0 0
0 S 3 0 0 1 0 0 0
0 S 4 0 0 0 1 0 0
En analysant la ligne relative à l’évaluation nette c j - z j, on remarque qu’une augmentation d’une unité de la valeur de x1 engendre engendre un profit de 100 dinars, et qu’u qu ’une ne augm augmen enta tati tion on d’un d’unee un unit itéé de la vale valeur ur de x2 engen engendr dree un profi profitt supplémentaire de 200 dinars. Donc, si on a à choisir, on va opter pour une augmentation de la valeur de x2. On dit que x2 est la variable entrante. Le problème est maintenant, jusqu’où peut-on augmenter x2 ? Cette augmentation ne peut pas se faire infiniment, sous l’hypothèse que x1 reste nulle. On a x1 + S 1 = 150 26
2x2 + S 2 = 440 4x2 + S 3 = 480 x4 + S 2 = 90 On peut voir que x2 peut prendre comme valeur maximale la valeur de 100 (il ne faut pas oublier que les S i,i, i=1, 2, 3, 4 sont des variables variables positives). Cette valeur est obtenue en choisissant la plus petite valeur positive des divisions de 100/1, ). 440/2, 480/4 et 90/0 (on suppose que 90/0 est égale à l’infini ∞ ).
En général, la valeur maximale de la variable entrante x j est le minimum des valeurs positives des rapports de Qi par les coefficients de la colonne de la matrice A relatif à la j ème variable. Ces rapports feront l’objet d’une autre colonne à droite de la matrice A. Dans notre exemple, on aura :
0 0 0 0
S 1 S 2 S 3 S 4
100 440 480 90
100 X 1 1 4 1 1 0 100
200 x2 1 2 4 0 0 200
0 S 1 1 0 0 0 0 0
0 S 2 0 1 0 0 0 0
0 S 3 0 0 1 0 0 0
0 S 4 0 0 0 1 0 0
150 220 120
∞
Le fait d’augmenter x2 jusqu’à la valeur 100 va engendrer l’annulation de la valeur du variable d’écart S 3, ce qui élimine S 3 de la base. On appelle S 3 variable sortante. L’élément 4, à l’intersection de la ligne relative à la variable sortante S 1 (dite ligne pivot) et de la colonne relative à la variable entrante x2 (dite colonne pivot) est l’élément pivot. (C’est l’élément cerclé dans le tableau).
27
c. Calcul des tableaux suivants Dans le nouveau tableau de simplexe on va remplacer S 3 par x x2 et l’ensemble des variables variables de base deviendra S 1 , , S 2 , , x 2 , , S 4. On exige que x2 prenne la même place dans la colonne des variables de base que celle de la variable sortante S 3. Jusqu’à maintenant on ne peut pas remplir le tableau relatif à cette nouvelle solution de base : 100 x1
200 x2
0 S 1
0 S 2
0 S 3
0 S 4
0 S 1 0 S 2 200 x2 0 S 4 Ce qui reste à déterminer sont les coefficients aij de la nouvelle matrice A et les valeurs Qi des variables de base. Ceci est réalisé en utilisant la règle de pivot :
1. Diviser Diviser le ligne ligne de pivot pivot par la valeur valeur de l’élément l’élément de pivot pivot pour pour trouver trouver la ligne transformée de la ligne de pivot.
0 0 200 0
S 1 S 2 x2 S 4
120
100 x1
200 x2
0 S 1
0 S 2
0 S 3
0 S 4
1/4
1
0
0
-1/4
0
2. A chacune chacune des variables variables de base, base, on associe associe la valeur valeur 1 à l’intersection l’intersection de la la ligne et de la colonne relative à cette même variable et dans le reste de la colonne on trouve des zéros. 100 x1 0 0 200 0
S 1 S 2 x2 S 4
120
1/4
200 x2 0 0 1 0
0 S 1 1 0 0 0
0 S 2 0 1 0 0
0 S 3
-1/4
0 S 4 0 0 0 1
3. Pour Pour calculer calculer le reste des valeurs valeurs du tableau, tableau, on opère à des combinais combinaisons ons linéaires linéaires dans le précèdent tableau de simplexe. Par exemple pour calculer la nouvelle valeur qui va prendre la place de la valeur 100 devant la variable de 28
base S1: On multiplie 100 par le pivot (4), on retranche de ce produit le produit de la projection de la valeur 100 sur la ligne pivot par la projection de la valeur 100 sur la colonne pivot, et on divise le tout par la valeur du pivot (4).
0 0 0 0
S 1 S 2 x2 S 4 150
150 440 480 90 ×4 −480 ×1
4
100 x1 1 4 1 1
S 1 S 2 S3 S 4
30
120
0 S 1 1 0 0 0
1/4
0 S 2 0 1 0 0 0 ×4
=30
100 x1 0 0 200 0
200 x2 1 2 4 0
−1 ×1
4
200 x2 0 0 1 0
0 S 1 1 0 0 0
0 S 2 0 1 0 0
0 S 3 0 0 1 0
0 S 4 0 0 0 1
0 S 3 -1/4
0 S 4 0 0 0 1
1
=−
4
-1/4
En appliquant cette règle sur notre exemple, on trouve le tableau suivant : 100 200 0 0 0 0 x1 x2 S 1 S 2 S 3 S 4 0 S 1 30 3/4 0 1 0 -1/4 0 0 S 2 200 7/2 0 0 1 -1/2 0 200 S3 120 1/4 1 0 0 -1/4 0 0 S 4 90 1 0 0 0 0 1 Remarques:
a) On vérifie vérifie toujou toujours rs que les les colo colonn nnes es de la matric matricee relat relativ ivee à chac chacun unee des des variables de base sont formées par des zéros sauf 1 dans l’intersection avec la ligne relative aux mêmes variables de base. b) On peut vérifier vérifier aussi que que l’ensemble l’ensemble des solutions solutions réalisables, réalisables, induit par par les contraintes décrites dans le dernier tableau de simplexe, est le même que celui celui représ représen enté té par par les cont contrai raint ntes es initi initiale ales. s. La règle règle de pivot pivot est est un unee combinaison linéaire des contraintes du programme linéaire donc elle ne change pas l’ensemble des solutions réalisables. c) La nouvel nouvelle le solution solution réalis réalisabl ablee de base base est x1 = 0 x2 = 120 S 1 = 30 S 2 = 200 29
S 3 = 0 S 4 = 90 Cette nouvelle solution correspond au point A(voir graphique). On vérifie bien que la valeur de la fonction objectif est passer de 0 à 120 x 200. La valeur de la fonction objectif peut être facilement calculer en multipliant membre à membre les ci de la première colonne par les valeurs des variables de base Qi dans la 3 ème colonne. d) La solution de départ correspond au point O. La première itération nous a amené dans le sens de l'amélioration du profit (fonction objectif), objectif), c’est à dire le long de l’axe des ordonnées.
Ayan Ayantt retrou retrouvé vé un unee no nouv uvell ellee solut solutio ion, n, on veut veut savo savoir ir s’il s’il est est po poss ssibl iblee de retrouver une solution réalisable de base meilleure. Pour arriver à cette fin, on doit ajouter les deux lignes relatives au choix de la variable entrante, et la colonne relative au choix de la variable sortante.
0 0 200 0
S 1 S 2 x2 S 4
30 200 120 90
100 x1 3/4 7/2 1/4 1 50 50
200 x2 0 0 1 0 200 0
0 S 1 1 0 0 0 0 0
0 S 2 0 1 0 0 0 0
0 S 3 -1/4 -1/2 1/4 0 50 -50
0 S 4 0 0 0 1 0 0
40 400/7 480 90
La variable entrante est x1 ; elle présente la plus grande valeur c j- z j. Si on calcule les quotients Q /c i i1, on retrouve que la variable sortante est S 1 à qui on associe la plus petite valeur du ratio Q1 /c /c11=40. L’élément pivot dans ce tableau est 3/4. La nouvelle base est composée de x1 , , S 2 , , x2 , , S 4. Le tableau de simplexe suivant issu de l’application de la règle de pivot est :
100 x1 40 0 S 2 60 200 x2 110 0 S 4 50 Cette nouvelle solution
100 x1 1 0 0 0
200 x2 0 0 1 0
0 S 1 4/3 -14/3 -1/3 -4/3
30
0 S 2 0 1 0 0
0 S 3 -1/3 2/3 1/3 1/3
0 S 4 0 0 0 1
x1 = 40 x2 = 120 S 1 = 0 S 2 = 60 S 3 = 0 S 4 = 50 correspond au point B qui est, d’après les résultats retrouvée par la méthode graphique, graphique, la solution optimale du problème. Ainsi, il faut s’attendre à ce que la métho méthode de de simpl simplex exee reco reconn nnai aiss ssee cette cette soluti solution on comme comme étant étant la solut solutio ion n optimale.
Ajoutons la ligne relative au calcul de l'effet net d’une augmentation unitaire d’une des variables du problème, on a :
100 0 200 0
x1 S 2 x2 S 4
40 60 110 50
100 x1 1 0 0 0 100 0
200 x2 0 0 1 0 200 0
0 S 1 4/3 14/3 -1/3 -4/3 200/3 -100/3
0 S 2 0 1 0 0 0 0
0 S 3 -1/3 2/3 1/3 1/3 100/3 -100/3
0 S 4 0 0 0 1 0 0
L’effet net associé aux variables hors base S 1 et S 2 est négatif. Ceci nous oblige à dire que faire entrer une de ces deux variables dans la base va engendrer une diminution dans la valeur de la fonction objectif. Donc il n’y a pas une autre solution réalisable de base qui peut engendrer un profit meilleur. Par suite cette dernière solution est la solution optimale. Ce dernier tableau de simplexe est donc dit tableau optimal. On peut peut géné généra rali lise serr ce résu résult ltat at en disa disant nt qu quee la solu soluti tion on op opti tima male le d’un d’un programme linéaire est atteinte s’il n’y a aucune valeur positive dans la ligne c j-z j du tableau du simplexe.
31
V. Résumé de la procédure de la méthode du d u simplexe (dans le cas d'un problème de maximisation sous contraintes ≤ et avec un second membre positif)
Etapes 1. Form Formul uler er un prog progra ramm mmee liné linéai aire re pour le problème réel. 2. Vérifier que le second membre du programme linéaire est positif 3. Ecrire Ecrire le prog progra ramme mme linéa linéaire ire sous sous une forme standard 4. Cons Constr trui uire re le prem premie ierr tabl tablea eau u de simplexe 5. Choi Choisi sirr comm commee vari variab able le entr entran ante te dans la base celle qui admet le plus grand effet net positif c j-z j. 6. Choi Choisi sirr la vari variab able le sort sortan ante te de la base celle qui admet le plus petit ratio supérieur à zéro. 7. Cons Constr trui uire re le no nouv uvea eau u tabl tablea eau u en utilisant la règle de pivot 8. Faire le test d’op ’optimali malité té.. Si (c j-z j) ≤ 0 po pour ur tout toutes es les les vari variab able less (hor (horss base base), ), la solu soluti tion on ob obte tenu nuee est est donc optima imale. Sino inon ret retourner à l’étape 5.
Justification Pour obtenir une représentation mathématique du problème Ceci est nécess nécessaire aire pou pourr obtenir obtenir comme comme variable de base initiale l’origine Mettre Mettre toutes toutes les contrai contrainte ntess sous sous forme forme d’égalité Ce tableau correspond à la solution initiale de base La valeur de c j-z j indiq indique ue la qu quan antit titéé d’augmentation de la fonction objectif si on augmente la valeur de x j d’une unité. La plus petite valeur de Q /a i ij indique le nombre maximal d’unité de x j qu’on peut introduire avant que la variable de base de l’ième ligne ne soit égale à zéro. Cett Cettee règl règlee no nous us perm permet et entr entree autr autree de calculer les valeurs des nouvelles variables de décision Si (c j-z j) ≤ 0 alors on n’a pas d’intérêt à faire entrer dans la base aucune de ces variables. Une telle introduction engendra une diminution de la fonction objectif.
VI. Exemple Résoudre le programme linéaire suivant en utilisant la méthode de simplexe. Max 3x1 + 2x2 SC - x1 + 2x2 ≤ 4 3x1 + 2x2 ≤ 14 x1 + x2 ≤ 3 x1 ≥ 0 x2 ≥ 0 → La forme standard du programme linéaire s'écrit comme suit : Max 3x1 + 2x2 SC - x1 + 2x2 + S 1 = 4 32
3x1 + 2x2 + S 2 = 4 x1 - x2 + S 3 = 3 x1 , , x2, S 1 , , S 2 , , S 3≥ 0
→ Tableau de simplexe initial (1ère itération)
0 0 0
S 1 S 2 S 3
4 14 3
3 x1 -1 3 (1) 0 3
2 x2 2 2 -1 0 2
0 S 1 1 0 0 0 0
0 S 2 0 1 0 0 0
0 S 3 0 0 1 0 0
-4 14/3 3
La variable entrante est x1 puisqu’elle présente le plus grand effet net positif. La variable sortante est S 3 car elle correspond au plus petit quotient positif.
→ 2ème itération
0 0 3
S 1 S 2 x1
7 5 3
3 x1 0 0 1 3 0
2 x2 1 (5) 1 0 2
0 S 1 1 0 0 0 0
0 S 2 0 1 0 0 0
0 S 3 1 -3 1 3 -3
La variable entrante est x2 et la variable sortante est S 2 → 3ème itération
0 2 3
S 1 x2 x1
6 1 4
3 x1 0 0 1 3
2 x2 0 1 0 2
0 S 1 1 0 0 0 33
0 S 2 -1/5 1/5 1/5 1
0 S 3 8/5 -3/5 2/5 0
7 1 3
0
0
0
-10
0
Tous les c j-z j≤ 0 donc le tableau de simplexe est optimal et la solution optimal du programme linéaire est x1 = 4 x2 = 1 S 1 = 6 S 2 = 0 S 3 = 0 La valeur de la fonction objectif est 14. Remar Rem arque que : L’effe L’effett net net de l’aug l’augmen mentat tation ion d’un d’unee un unité ité de la valeu valeurr de S 3 (variable hors base) est nul. Donc si on introduit S 3 dans la base, on ne modifie
pas la valeur de la fonction objectif. Ainsi une autre solution optimale peut être trouvée pour notre programme linéaire. Ceci confirme le résultat de la méthode graphique qui indique que ce problème admet un ensemble de solution optimale décrit par le segment [BC]. La solution optimale donnée par le dernier tableau de simplexe correspond au point C. Le tableau du simplexe suivant est :
0 2 3
S 3 x2 x1
15/4 13/4 5/2
3 x1 0 0 1 3 0
2 x2 0 1 0 2 0
0 S 1 5/8 3/8 -1/4 0 0
0 S 2 -1/8 1/8 1/4 1 -1
0 S 3 1 0 0 0 0
Le tableau est optimal et la solution correspondante est : x1 = 5/2 x2 = 13/4 S 1 = 0 S 2 = 0 S 3 = 15/4 La valeur de la fonction objectif est 14.
34
CHAPITRE 4
Problèmes de Minimisation et Problèmes Irréguliers 35
I. Introduction Dans le chapitre précédent tous les programmes linéaires qu’on a traité sont du type : Maximiser une fonction linéaire sous contraintes de type inférieur ou égale (et avec un second membre positif). Or dans beaucoup de problèmes réels, on peut retrouver des contraintes de type supérieur ou égale et/ou de type égale, ainsi que des problèmes où on a à minimiser au lieu de maximiser. Dans ce chapitre, on étudiera les modifications à apporter à la méthode du simplexe pour qu’elle puisse résoudre tous ces types de programmes.
II. Les variables artificielles Considérons le programme linéaire suivant : Max 5x1 + 6x2 S.c -x1 + x2 ≤ 4 5x1 + 3x2 = 60 x2 ≥ 5 x1 ≥ 0 , x2 ≥ 0
L'introduction des variables d'écart dans le programme linéaire donne Max 5x1 + 6x2 + 0S 1 + 0S 2 S.c -x1 + x2 + S 1 = 4 5x1 + 3x2 = 60 x2 - S 2 = 5 x1≥ 0 , x2≥ 0, S 1≥ 0, S 2≥ 0 Afin de générer une solution réalisable de base initiale pour la méthode de simplexe, on a annulé les variables de décision x1 et x2 . Ceci nous permet de commencer à partir de l’origine O. Or, on vérifie bien que l’origine n’est pas une solution réalisable. La question qui se pose est comment nous allons réécrire le programme de manière qu’on puisse construire le tableau de simplexe initial à l’origine. Pour arriver à cette fin, on doit ressortir ressortir une astuce mathématique qui se résume à l’introduction de nouvelles variables, dite variables artificielles A1 et A2. Ces variables n’ont aucune interprétation, comme leur nom l’indique, ils sont conçus artificiellement pour nous aider à utiliser la procédure de simplexe et à formuler le tableau initial à partir de l'origine. Si on ajoute ces deux variables artificielles A1 et A2 respectivement à la 2 ème et 3ème contrainte, le programme devient le suivant. Max 5x1 + 6x2 +... 36
S.c
-x1 + x2 + S 1 = 4 5x1 + 3x2 + A1 = 60 x2 -S 2 + A2 = 5 x1≥ 0, x2≥ 0, S 1≥ 0, S 2≥ 0 , a1 ≥ 0, a2≥ 0 Maintenant on peut obtenir une solution initiale de base du système d’équations, si on pose x1 = x2 = 0. La solution initiale est x1 = 0 x2 = 0 S 1 = 4 S 2 = 0 A1 = 60 A2 = 5 Cette solution n’est pas réalisable puisque x2 n’est pas supérieur à 50. Ainsi, il est est impor importan tantt de distin distingu guer er entre entre un unee solut solutio ion n réell réelleme ement nt réalis réalisab able le et un unee solution du programme linéaire réécrit pour la procédure du simplexe. Certes, une solution réalisable du problème réel reste toujours une solution réalisable pour le programme linéaire transformé, le contraire n’est pas toujours vrai.
On peut conclure que tant que les variables artificielles restent dans la base, la solution demeure non réalisable réellement pour notre programme. Une manière pour garantir que ces variables artificielles sortent de la base avant d’atteindre la solution optimale est de leur associée un grand coût -M dans la fonction objectif. Ainsi, si ces variables restent dans la base ils vont causer une dimi diminu nuti tion on impo import rtan ante te de la vale valeur ur de la fonc foncti tion on ob obje ject ctif if.. Ce qu quii no nous us contraignent à les faire sortir le plutôt possible de la base. La fonction objectif s’écrit donc : Max z = 5x1 + 6x2 - M A1 - M A2 avec M un très grand nombre (exemple: M ≥ 1010) . En appliquant de ces modifications, le tableau de simplexe initial est
0 -M -M
S 1 A1 A2
4 60 5
5 x1 -1 (5) 0
6 X 2 1 3 1
0 S 1 1 0 0
37
0 S 2 0 0 -1
-M A1 0 1 0
-M A2 0 0 1
De la même même manièr manièree qu quee préc précéd édemm emmen entt essa essayo yons ns de retro retrouv uver er la varia variable ble entrante te la variable sortante : 5 6 0 0 -M -M x1 x2 S 1 S 2 A1 A2 0 S 1 4 -1 1 1 0 0 0 -4 -4 -M A1 60 (5) 3 0 0 1 0 12 -M A2 5 0 1 0 -1 0 1 ∞ -5M -4M 0 M -M -M 5+5 6+4 0 -M 0 0 M M ↑ La variable entrante est x1 (5 +5M ≥ 6 + 4M avec M assez grand) et la variable sortante est A1 . Le tableau de simplexe qui suit est : 5 6 0 0 -M -M x1 x2 S 1 S 2 A1 A2 0 S 1 16 0 8/5 1 0 1/5 0 10 5 x1 12 1 3/5 0 0 1/5 0 20 -M A2 5 0 (1) 0 -1 0 1 5 5 3-M 0 M 1 -M 0 3+M 0 -M -M-1 0 ↑ Le tableau de simplexe après la deuxième itération indique que la variable sortante est A2. Remarque: Simplification du tableau
Les deux première itérations on fait sortir de la base les variables artificielles A1 et A2. Leurs effets nets est maintenant négatif et très élevé, elles ne pourront donc do nc pas pas être être séle sélecti ction onnée néess à l’itér l’itérat ation ion suiva suivante nte,, ni même même ultér ultérie ieure uremen mentt comme on peut facilement le constater. Donc on peut supprimer du tableau la colonne relative à A1 et A2. En appliquant la règle ci-dessus, on obtient le tableau de simplexe suivant :
0 5 6
S 1 x1 x2
8 9 5
5 x1 0 1 0 5
6 x2 0 0 1 6
0 S 1 1 0 0 0 38
0 S 2 8/5 3/5 -1 -3
5 15 -5
0 5 6
S 2 x1 x2
5 6 10
0
0
0
3 ↑
5 x1 0 1 0 5 0
6 x2 0 0 1 6 0
0 S 1 5/8 -3/8 5/8 15/8 -15/8
0 S 2 1 0 0 0 0
Le tableau ci-dessus est optimal car tous les effets nets sont négatifs ou nuls. Donc la solution optimale est : x1 = 6 x2 = 10 S 1 = 0 S 2 = 5
Remarque: cas où le second membre négatif
Le problème qui peut se poser est que l’une des variables du second membre soit négative. Par exemple supposons que lors de la formulation on trouve une contrainte de ce type : x1 - x2 ≥ -4 La condition qu’il faut vérifier avant de se lancer dans la réécriture de cette contrainte, en vue de construire le programme standard, est la nonégativité du second membre. Ainsi, on doit modifier la contrainte avant de commencer la standardisation et la réécrire comme suit : -x1 + x2 ≤ 4 Exer Ex erci cice ce :
Réécrire convenablement ces contraintes: (1) x1 + 3x2 - 5x3 = - 20 (2) -x1 + 3x2 ≥ - 5 (3) 5x1 - 2x2 ≤ - 10
III. Les problèmes de minimisation Il y a deux manières de résoudre un problème de minimisation en utilisant la méthode de simplexe.
39
La première méthode nécessite le changement de la règle de choix de la variable entrante. Dans un problème de maximisation la règle est de choisir comme variable entrante celle qui a le plus grand effet net positif non nul. Ceci parce que notre objectif est de choisir la variable qui en entrant dans la base va engendrer un profit supplémentaire et ainsi accroître la valeur de la fonction objectif. Pour un problème de minimisation, on va utiliser la règle inverse. C’est-à-dire la variable entrante est celle à laquelle on associe la plus petite valeur négative non nulle de l’effet net c j - z j. Ceci va nous amener aussi à changer notre règle d’arrêt de la procédure de simplexe et de définir le tableau optimal, comme celui où tous les effets nets c j - z j sont positifs ou nuls. Essayons d’appliquer la méthode de simplexe sur le problème de médecine : Min x1 + x2 Sc 2x1 + x2 ≥ 12 5x1 + 8x2 ≥ 74 x1 + 6x2 ≥ 24 x1 ≥ 0 , x2 ≥ 0 Pour permettre à la méthode de simplexe de démarrer de l’origine, il faut comme on l’a déjà vu dans le cas de problème de maximisation, introduire les variables artificielles. Avec les problèmes de maximisation on attribue à ces variables un coefficient -M dans la fonction objectif pour les contraindre à quitter la base rapidement. Dans le cas de problèmes de minimisation, on a intérêt à changer le coefficient de ces variables en M (M très grand) afin d’arriver au même résultat et de les faire sortir de la base. Avant de construire le tableau de simplexe initial, on réécrit le programme linéaire relatif au problème de médecine avec les variables artificielles. Min x1 + x2 + MA1 + MA2+ MA3 Sc 2x1 + x2 - S 1 + A1 = 12 5x1 + 8x2 - S 2 + A2 = 74 x1 + 6x2 - S 3 + A3 = 24 x1 , x2 , S 1 , S 2 , S 3 , A1 , A2 ≥ 0
Le tableau de simplexe initial est : 5 x1
6 x2
0 S 1
0 S 2 40
0 S 3
M A1
M A2
M A3
M M M
A1 A2 A3
12 74 24
2 1 -1 0 0 1 0 0 12 5 8 0 -1 0 0 1 0 37/4 1 6 0 0 -1 0 0 1 4 8M 15 -M -M -M M M M 1-8M 1-15M M M M 0 0 0 ↑ Après 4 itérations, on trouve le tableau de simplexe optimal suivant : 5 6 0 0 0 x1 x2 S 1 S 2 S 3 1 x1 8 1 0 -8/11 1/11 0 0 S 3 26 0 0 2 -1 1 1 x2 2 0 1 5/11 -2/11 0 1 1 -3/11 -1/11 0 0 0 3/11 1/11 0
On retrouve la même solution obtenue par la méthode graphique : x1 = 8 x2 = 2 S 1 = 0 S 2 = 0 S 3 = 26 Z = 10 Après avoir vérifier que le second membre des contraintes est positif, le tableau suivant résume les transformations à faire subir à notre programme linéaire avant de le résoudre par la méthode de simplexe : Quand la contrainte est
Pour la fonction objectif d’un problème de
Maximisation
Minimisation
Attribuer un coefficient nul pour la variable d’écart de type « ≤ » Ajouter une variable d’écart II- de type « = » Attribuer un coefficient -M Attribuer un coefficient M Ajouter une variable pour variable artificielle pour la variable artificielle d’écart et une variable artificielle I-
41
III- de type « ≥ » Ajouter une variable arti rtific ficielle lle et une variable d’écart avec un signe "-"
Attribuer un coefficient nul pour la variable d’écart et un coefficient - M pour variable artificielle
Attribuer un coefficient nul pour la variable d’écart et un coefficient M pour variable artificielle
Le tableau suivant résume les étapes de la méthode de simplexe relatif aux problèmes de maximisation et minimisation : Etape Maximisation Minimisation 1 Formuler un programme linéaire Formu Formuler ler un prog program ramme me linéa linéaire ire pour le problème réel. pour le problème réel. 2 Vérifier que que le se second mem membre du du Vérifier que le second membre du pro progr gram amme me liné linéai aire re est est po posi siti tif f programme linéaire est positif sinon sinon modifier les contraintes modifier les contraintes 3 Ecrire le pr programme lin linéaire sou sous Ecrire le programme linéaire sous une forme standard une forme standard 4 Construire le premier tableau de Constr Construir uiree le premie premierr table tableau au de simplexe simplexe 5 Choisir comme variable entrante Choisi Choisirr comme comme varia variable ble entra entrant ntee dans la base celle qui admet le plus dans la base celle qui admet le plus grand effet net positif c j-z j. petit effet net négatif c j-z j. 6 Choisir la var variable sor sortante de la la Choisi Choisirr la varia variable ble sorta sortante nte de la base celle qui admet le plus petit base celle qui admet le plus petit ratio supérieur à zéro. ratio supérieur à zéro. 7 Construire le nouveau tableau en Constr Construir uiree le no nouv uvea eau u table tableau au en utilisant la règle de pivot utilisant la règle de pivot 8 Faire le test d’optimalité. Si Fai Faire le tes test d’op ’optima timali lité té.. Si (c j-z j ) ≤ 0 pour toutes les variables (c j-z j ) ≥ 0 pour toutes les variables (hors base) donc la solution (hors base) donc la solution obtenue obtenue est optimale. Sinon est est op opti tima male le.. Sino Sinon n reto retour urne nerr à retourner à l’étape 5. l’étape 5. La deuxième méthode pour résoudre un problème de se base sur le résultat t suivant « Résoudre un problème min c x sujet à un ensemble de contraintes est t équi équiva valen lentt à résou résoudre dre un prob problèm lèmee max suje sujett au même même ense ensemb mble le de max -c x cont contra raint intes es ». Ces Ces deux deux prob problèm lèmes es sont sont équi équival valen ents ts dans dans la mesur mesuree où ils donnent donnent le même vecteur des solutions optimales. La seule différence différence est que la t t t valeur de la solution max -c x est l’opposé de la solution de min c x; (i.e. min c x t ). = - max -c x
42
Donc pour résoudre le programme linéaire relatif au problème de médecine, on peut résoudre le problème de maximisation suivant: Max - x1 - x2 S.c. 2x1 + x2 ≥ 12 5x1 + 8x2 ≥ 74 x1 + 6x2 ≥ 24 x1 , x2 ≥ 0 On peut peut véri vérifi fier er faci facile leme ment nt qu quee la méth méthod odee de simp simple lexe xe appl appliq iqué uéee au programme ci-dessus, engendre le même vecteur de solutions optimales.
IV. Les problèmes irréguliers Après avoir examiné comment on peut résoudre un programme linéaire par la méth méthod odee de simp simple lexe xe,, on s’in s’inté tére ress ssee dans dans cett cettee sect sectio ion n aux aux prob problè lème mess irréguliers, irréguliers, qu'on peut rencontrer rencontrer lors de la résolution résolution d’un programme programme linéaire linéaire par la méthode de simplexe. simplexe. Donc, l’objet de cette section est de reconnaître ces problèmes et de les résoudre par la méthode de simplexe. a. Les problèmes impossibles Graphiquement, on a caractérisé ces problèmes par un ensemble de solutions réalisables réalisables vide. Avec la méthode de simplexe, on reconnaît que le problème est impossible si une ou plusieurs variables artificielles sont présentes dans la base dans le tableau de simplexe optimal, ce qui signifie que la solution donnée par ce tableau n’est pas réellement réalisable. Exemple:
Vérifions à l’aide de la méthode de simplexe, que le problème suivant est réellement impossible : Max 4 x1 + 3x2 Sc x1 + x2 ≤ 2 3x1 + x2 ≥ 10 x1 , x2 ≥ 0 En introduisant les variables d’écarts et les variables artificielles le programme s’écrit: Max 4x1 + 3x2 - MA1 Sc x1 + x2 - S 1 = 2 3x1 + x2 - S 2 + a1 = 10 x1 , x2 , S 1 , S 2 , A1 ≥ 0
4 x1
3 x2
0 S 1 43
0 S 2
-M a1
0 -M
4 -M
S 1 a1
x1 a1
2 10
2 5
(1) 3 -3M 3M+4 ↑
1 1 -M M+3
4 x1 1 0 4 0
3 x2 1 -2 4+2M -1-2M
1 0 0 0
0 S 1 1 -3 1+3M -1-3M
0 -1 M -M
0 S 2 0 -1 M -M
0 1 1 -M-1
2 10/3
-M a1 0 1 -M 0
Le tableau de simplexe ci-dessus est optimal avec une variable artificielle dans la base. progra ramm mmee de maxi maximi misa sati tion on ou de mini minimi misa sati tion on avec avec Remar Rem arque que : Un prog seulement des contraintes de type « ≤ » ne peut pas être impossible (sous l’hypothèse que le second membre b est positif). Ceci est dû au fait que lors de la résolution de ce genre de programme par la méthode de simplexe on n'utilise pas des variables artificielles. Donc il est impossible de les retrouver dans la solution optimale. b. Les problèmes à solutions multiples Graphiquement, ce problème est caractérisé par le fait que la pente de la droite repr représ ésen enta tant nt la fonc foncti tion on ob obje ject ctif if (z = 0) est est égal égalee à la pent pentee de l’un l’unee des des contraintes restrictives. Lorsqu’on utilise la méthode de simplexe, on identifie ce problème lorsqu’un des effets nets (relatif à une variable hors base) est nul. L’exemple de la section 3 du précédent chapitre représente un problème avec solutions multiples. c. Les problèmes à solution infinie Graphiquement, ce problème est caractérisé par le fait qu’on peut déplacer la droite de la fonction objectif indéfiniment de manière à accroître la valeur, en gard gardant ant toujo toujours urs un unee inters intersec ectio tion n no non n vide vide avec avec l’ens l’ensem emble ble des des solu solutio tions ns réalisables. Avec la méthode de simplexe, on reconnaît ce problème lorsque la variable entrante n’admet aucune limite sur sa valeur d’entrée, c’est à dire que tous les ratios Q /a i ijo sont négatifs ou nuls. Exemple
Max x1 + 2x2 44
x1 + x2 ≥ 2 x2 ≤ 3 x1 , x2 ≥ 0 On introduit les variables d’écart et les variables artificielles, le programme linéaire devient : Max x1 + 2x2 + 0S 1 + 0S 2 - Ma1 Sc x1 + x2 - S 1 + a1 = 2 x2 + S 2 = 3 x1 , x2 , S 1 , S 2 , a1 ≥ 0 Les tableaux de simplexe sont : Sc
-M 0
a1 S 2
2 3
1 x1 1 0 -M 1+M
2 x2 (1) 1 -M 2+M
0 S 1 -1 0 M -M
0 S 2 0 1 0 0
-M a1 1 0 -M 0
-2 1
2 3
↑
2 0
2 0
x2 S 2
2 1
x2
3
S 1
1
1 x1 1 -1 2 -1
2 x2 (1) 0 2 0
0 S 1 -1 (1) -2 2 ↑
0 S 2 0 1 0 0
1 x1 0
2 x2 1
0 S 1 0
0 S 2 1
∞
-1 0 1 1 -1 0 2 0 2 1 0 0 -2 ↑ Le dernier tableau montre que la variable x1 n’admet aucune limite sur sa valeur de sortie.
45
d. Les problèmes à solution dégénérée Graphiquement, on appelle solution dégénérée le point où plusieurs contraintes concourent (un nombre supérieur ou égale à trois contraintes). Un programme linéaire est dit dégénérée si une ou plusieurs variables dans la base optimale sont nulles. Dans la résolution graphique ce problème n’est pas difficile à résoudre, mais avec la méthode de simplexe il peut causer des difficultés. Exemple Max z = 2x1 + 0 x2 + 3/2 x3 s.c. x1 - x2 ≤ 2 2x1 + x3 ≤ 4 x1 + x2 + x3 ≤ 3 x1 , , x2 , , x3 ≥ 0
La solution optimale de ce problème est : x1 = 1 x2 = 0 x3 = 2 z =5
La forme standard du programme linéaire est Max 2x1 + 0 x2 + 3/2x3 + 0 S 1 + 0 S 2 + 0 S 3 Sc x1 - x2 + S 1 = 2 2x1 + x3 + S 2 = 4 x1 + x2 + x3 + S 3 = 3 x1, x 2 , , x3 , , S 1 , , S 2,2, S 3 ≥ 0 Le tableau de simplexe initial est :
0 0 0
S 1
2
S 2 S 3
4 3
2 x1 1
0 x2 -1
3/2 x3 0
0 S 1 1
0 S 2 0
0 S 3 0
2
2 8 0 -1 -1 0 0 2 1 6 0 0 -1 0 3 0 15 -M -M -M M 2 0 3/2 0 0 0 ↑ La variable entrante est x1, mais les deux premières contraintes donnent la même valeur minimale du ratio. Ceci indique que lorsque x1 passe à 2, les variables 46
d’écart S 1 et S 2 vont s’annuler malgré que l’un des deux demeure encore encore dans la base. Choisissons arbitrairement de faire sortir de la base la variable d’écart S 1.
2 x1 1 0 0 2 0
0 3/2 0 0 0 x2 x3 S 1 S 2 S 3 2 x1 2 -1 0 1 0 0 -2 0 S 2 0 2 1 -2 -2 1 0 0 0 S 3 1 2 1 -1 0 1 1/2 -2 0 2 0 0 2 3/2 -2 0 0 ↑ La nouvelle solution réalisable de base est : x1 = 0 x2 = 0 x3= 1 S 1 = 2 S 2 = 0 S 3 = 0 et la valeur de la fonction objectif z = 4. Cette solution de base est dite dégénérée. Continuons les itérations relatives à la méthode de simplexe. La variable entrante est x2. Le problème est qu’un des ratios est nul ce qui indique qu’on ne peut pas augmenter la valeur de x2 puisque la valeur de la fonction objectif ne va pas augmenter et reste égale à 4. Si on réitère une autre fois, en remplaçant S 2 par x x2 dans la base on obtient : 2 x1 1 0 0 2 0
0 x2 0 1 0 0 0
3/2 0 0 0 x3 S 1 S 2 S 3 2 x1 2 1/2 0 1/2 0 4 0 x2 0 1/2 -1 1/2 0 0 0 S 3 1 0 1 -1 1 ∞ 0 0 1 0 1/2 0 -1 0 ↑ Ce tableau n’est pas optimal, la variable entrante est x3 et la variable sortante sortante est marqu ue auss ussi que ce passage d’un ’une solutio ution n à une autre tre ne x2. On remarq s’accompagne pas d’une augmentation de la valeur de la fonction objectif.
On peut facilement vérifier que nous somme en train de cycler sans atteindre la solu soluti tion on op opti tima male le.. Ce genr genree de cycl cyclag agee dans dans la méth méthod odee de simp simple lexe xe est est 47
dangereux et on doit l’identifier avant de commencer à résoudre le problème, sinon on passera un temps énorme sans atteindre la solution optimale. Pour terminer cette section, il faut noter que ce n'est pas tout problème de dégénérescence qui peut conduire à un cyclage. Exemple
Max 10 x1 + 9x2 Sc 7/10x1 + x2 ≤ 630 1/2 x1 +5/6x2 ≤ 480 x1 + 2/3x2 ≤ 708 1/10 x1 +1/4x2 ≤ 135 x1 ,, x2 ≥ 0 Essayer de résoudre ce programme par la méthode de simplexe (choisir en cas de deux quotients égaux, celui qui se trouve dans la ligne supérieure).
CHAPITRE 5
Dualité et analyse de sensibilité I. Introduction Dans ce chapitre, on va étudier des notions relatives au programmes linéaires tels que le programme dual, les coûts marginaux ainsi que des techniques de validation de la solution d’un programme linéaire, c’est à dire l’analyse de sensibilité.
48
Nous allons commencer ce chapitre par donner quelques termes clés du jargon utilisé pour interpréter économiquement les différents résultats du programme linéaire.
II. Interprétation économique Les éléments clés d’un programme linéaire standard sont : - La fonction objectif dite fonction économique. Cette fonction peut représenter un coût, un profit, etc... - Les contrai contraintes ntes sont sont composé composées, es, des coeffici coefficients ents aij de la matrice A, dite matrice technologique, et des constantes b ,i qui forment le vecteur du second membre. Le second membre peut représenter la disponibilité disponibilité des ressources, ressources, les niveaux de demande etc... - Les variables d’écart peuvent représenter, par exemple dans le problème de l’agric l’agriculte ulteur, ur, l’excéd l’excédent ent de chacun chacunee des ressour ressources ces : terrain terrain,, eau, eau, heures heures de travail, bureau d’irrigation. Elles sont aussi dites variables de surplus. Quand une variable d’écart est nulle, on dit que la contrainte contrainte correspondante correspondante est satu saturée rée.. Dans Dans le prob problèm lèmee de l’agr l’agricu iculte lteur ur les les cont contrai raint ntes es terra terrain in et main main d’œuvre sont saturées. Elles sont dites aussi restrictives car une variation du second membre (par exemple) engendre un changement dans la valeurs de la solution optimale. Toute contrainte contrainte non saturée à l’optimum n’est pas restrictive pour le problème, problème, c’est à dire qu’elle n’a aucune influence sur la solution considérée. Définition: Coût marginal
Par définition, on appelle coût marginal d’un bien l’augmentation minimale de dépenses, dépenses, par rapport rapport à la solution optimale, qui résulterait de l’utilisation d’une unité supplémentaire de ce bien, lorsque le problème posé consiste à produire des biens au moindre coût. Si le problème posé consiste à transformer des biens pour vendre une production avec un meilleur profit et l’augmentation maximale de revenu qui résulte de la possibilité de disposer d’une unité supplémentaire de l’un des biens, est la valeur marg margina inale le de ce bien. bien. Très Très souv souven ent, t, on emplo emploie ie égal égaleme ement nt dans dans ce cas cas le qualificatif coût marginal. Remarque : Les coûts marginaux sont donc les effets nets associés aux variables d’écart, puisque ce sont ces variables qui déterminent les excédents (ou les insuffisances) de biens. Si une variable d’écart n’est pas nulle, dans la solution optimale, c’est que le bien correspondant est déjà excédentaire. Par conséquent, le fait de disposer d’une unité supplémentaire de ce bien n’aura aucune influence sur le revenu. On 49
dit alors que ce bien à une valeur marginale nulle, ou par extension, que la variable d’écart associée à ce bien a une valeur marginale nulle. Par contre, si une variable d’écart est nulle dans la solution optimale, c’est que le bien bien corr corres espo ponda ndant nt est est tota totalem lemen entt utili utilisé sé.. Par Par la suite suite un unee varia variatio tion n de la disponibilité aura généralement une influence sur le revenu. C’est pourquoi cette variable d’écart nulle dans la solution optimale à une valeur marginale non nulle, et cette valeur marginale précise la variation de la fonction économique résultant de l’utilisation d’une unité supplémentaire du bien associé. Exem Ex empl plee : Dans le problème de l’agriculteur on a
Le coût marginal lié à S 1 est 200 3 ⇒ Une augmentation de S 1 d’une unité entraîne une diminution de 200 3 de la valeur de la fonction économique. • Le coût marginal lié à S 2 est 0 et à l'optimum S 2 =0 ⇒ on a déjà 60 m 3 d’eau de plus donc si on ajoute 1m 3 ca ne va pas changer la solution optimale ni la valeur de la fonction économique Le système de contraintes dans le programme linéaire relatif au tableau de simplexe optimal du problème de l’agriculteur est •
x1 + 4 3 S 1 − 1 3 S 3 = 40 S − 14 3 S + 2 3 S = 60 2 1 3 x2 − 1 3 S 1 + 1 3 S 3 = 110 S 4 − 4 3 S 1 + 1 3 S 3 = 50
La fonction économique s’écrit z = 100 x1
+ 200 x 2
Si on exprime z en fonction de S 1 et S 3 (variables hors base) en utilisant le système d’équation ci dessus on a z = 100 100 ( − 4 3 S 1 + 1 3 S 3 + 40) + 200 200 (1 3 S 1 − 1 3 S 3 + 110 110 ) z = 26000
− 200
3 S 1
−100
3 S 3
La valeur 26000 correspond à la valeur optimale de la fonction économique. Si S 1 = 1 alors un hectare de terrain de moins à utiliser, donc une réduction de 200 3 dinars de la valeur de la fonction objectif. Si on ajoute 3 hectares de terrains ( S 1 = −3) , avec l’hypothèse que les autres quantités restent inchangées alors le revenu augmente de ( 200 3) × 3 = 200 dinars On vérifie ceci, si on résout le programme linéaire Max S .C
100 x1 x1
+ 200
x2
+ x 2 ≤ 153 153
4 x1
+ 2 x2 ≤
x1
+ 4 x2 ≤
x1
≤ 90
440 440
480 480
50
, x 2 ≥ 0 On trouve que la valeur optimale va augmenter de 200 dinars est devient 26 200 dinars. x1
≥0
Exercice : Expliquer graphiquement que si on ajoute des m 3 d’eau, on aura
aucune amplification dans la fonction objectif. Remarque : Dans le cas où on diminuerait 60 m 3 d’eau, la solution optimal
devient dégénérée. Les Les valeu valeurs rs margi margina nale less appor apporten tentt do donc nc des des rense renseign ignem emen ents ts écon économi omiqu ques es particulièrement intéressantes, mais il faut les utiliser avec prudence car leur domaine de validité est limité. Par exemple, si on ajoute 30 hectares de terrains aux 150 déjà disponibles dans le problème de l’agriculteur, le revenu augmentera de ( 200 3) × 3 = 200 dinars . Ceci n’est pas vrai, parce que si on résout le programme linéaire suivant : Max S .C
100 x1 x1
+ 200
x2
+ x 2 ≤ 180 180
4 x1
+ 2 x2 ≤
x1
+ 4 x2 ≤
x1
≤ 90
440 440
480 480
, x 2 ≥ 0 La valeur optimale du programme linéaire ci-dessus est de 26 875,14 donc le revenu n’a pas augmenté de 2000 dinars comme prévu. x1
≥0
II. Dualité a. Définition La forme d’un programme linéaire de type maximisation est Max S .C
z = c t x Ax Ax ≤ b x ≥ 0
( PL 1)
avec x, b , c des vecteurs de dimensions respectives matrice de dimension ( m, n )
n, m et n , et A une
On appelle programme dual de ( PL 1) , le programme linéaire suivant : Min
w = b t y
S .C
t
A.Y ≥ c
y ≥ 0
avec y un vecteur de dimension m et t A la transposée de la matrice A . Le programme ( PL 1) est appelé programme Primal. Pour passer du primal au dual, on remarque que : 51
a ) Les termes du second membre deviennent les coefficients de la fonction
objectif et réciproquement. b ) Le problème de maximisation devient un problème de minimisation. c ) Les inégalités " ≤ " deviennent des inégalités " ≥ " d ) La matrice A se transforme en sa transposée. Exemple : Le programme primal (problème de l’agriculteur) est Max S .C
z = 100 x1
x1
+ 200 x 2
+ x 2 ≤ 150 150
4 x1
+ 2 x2 ≤
x1
+ 4 x2 ≤
x1
≤ 90
x1
≥0
440 440
480 480
, x 2
≥0
Donc le programme dual est w = 150 y1
Min S .C
+ 440 y 2 + 480 y 3 + 90
y1
+ 4 y 2 + y 3 +
y1
+ 2 y 2 + 4 y 3 ≥
y1
≥
0
, y 2
≥
y4
y4
≥ 100 100
200 200
0
b. Propriétés et signification économique du programme dual Pour expliquer la signification du problème dual on va se baser sur l’exemple de l’agriculteur. Supp Suppos oson onss qu qu’u ’un n agri agricu cult lteu eurr (cli (clien ent) t) vo voud udra rait it ache achete terr la tota totali lité té de no noss ress ressou ourc rces es disp dispon onib ible les. s. Notr Notree agri agricu cult lteu eurr acce accept pter eraa cert certai aine neme ment nt cett cettee proposition si le prix offert par ce client lui procure le même profit. soit
y1 y 2 y 3
y 4
le prix d'un hectare de terrain le prix d’un m 3 d’eau le prix d’une heure de main d’œuvre le prix de la permission de la culture d’un hectare de tomates.
Le problème du client consiste à minimiser les frais d’achat des ressources : c’est à dire 150 y1 + 440 y 2 + 480 y 3 + 90 y 4 sous la contrainte que les prix satisfont notre agriculteur. Pour notre agriculteur un hectare de terrain 4m 3 d’eau, une heure de travail et un hectare de permission du bureau est équivalent a un revenu de 100 dinars. Tand Tandis is qu que, e, un hect hectare are de terra terrain in,, 2m 3 d’ea d’eau u et 4 heur heures es de trava ravail il lui lui engendrent un revenu de 200 dinars.
52
Il n’est prêt à vendre ses ressources que si y1 + 4 y 2 + y3 + y 4 lui rapporte un revenu supérieur ou égale à 100 DT et que si y1 + 2 y 2 + 4 y 3 lui rapporte un revenu supérieur ou égal à 200 DT. Ainsi le problème du client est 150 y1
Min S .C
+ 440 y 2 + 480 y 3 + 90
y1
+ 4 y 2 + y 3 +
y1
+ 2 y 2 + 4 y 3 ≥
y1
≥
0
, y 2
≥
y4
y4
≥ 100 100
200 200
0
Donc le problème du client peut être modélisé par le programme dual. Le tableau de simplexe final du programme dual est :
480 150
y3 y1
100/3 200/3
150 y1 0 1 150 0
440 y2 -2/3 14/3 380 60
480 y3 1 0 480 0
90 y4 -1/3 4/3 40 50
0 L1 1/3 -4/3 -40 40
0 L2 1/3 1/3 -110 110
Avec L1 et L2, les variables d’écart à la 1 ère et la 2 ème contrainte du programme dual. On remarque que la solution optimale du dual peut être déduite du primal de la manière suivante : y1 = 200/3 ↔ C 3 - z 3 = - 200/3 ↔ C 2 - z 4 = y2 = 0 0 y3 = 100/3 ↔ C 5 - z 5 = - 100/3 y4 = 0 ↔ C 6 6 - z 6 6 = 0 L1 = 0 ↔ C 1 - z 1 = 0 L2 = 0 0 ↔ C 2 - z 2 = C 1 - z 1 = 0 ↔ S 1 = 0 C 2- z 2 = 60 ↔ S 2 = 60 C 3- z 3 = 0 ↔ S 3 = 0 C 4 - z 4= 50 ↔ S 4 = 50 C 5 - z 5= 40 ↔ x1 = 40 C 6 6 - z 6 6= = 110 110 ↔ x2 w = 26000 ↔ z = 260000 On peut généraliser ce résultat dans le tableau suivant : Primal (Max)
Dual (Min) 53
x j = 0 x j > 0 S j = 0 S j > 0
Variables de décision ⇒ C C j - z j < 0 ⇒ C C j - z j = 0 variables d’écart ⇒ C j - z j ≠ 0 ⇒ C j - z j = 0
variables d’écart Li = | C j - z j | ≠ 0 ⇒ C C j - z j = 0 Li = 0 ⇒ C j - z j = x j Variables de décision
yi = | C i - z j | ≠ 0 ⇒ C C j - z j = 0 yi = 0 et C j – z j = S j
On remarque aussi qu’à l’optimum la valeur de la fonction objectif du dual est égale à la valeur de la fonction objectif du primal. Proposi Prop ositio tion n : Le dual du programme dual est le programme primal.
c. Tableau de correspondance primal-dual
- Second membre des contraintes - Coefficient de la fonction objectif Nombre de contraintes i ème contrainte de type « ≤ » i ème contrainte de type « ≥ » i ème contrainte de type « = »
Min - Transposée de la matrice des contraintes (n, m) - Coefficient de la fonction objectif - Second membre des contraintes Nombre de variables principales i ème variable de type « ≥ 0 » i ème variable de type « ≤ 0 » i ème variable qcq « ∈ IR »
Nombre de variables j ème variable « ≥ » j ème variable « ≤ » j ème variable qcq « ∈ IR »
Nombre de contraintes j ème contrainte de type « ≥ » j ème contrainte de type « ≤ » i ème contrainte de type « = »
-
Max Matrice des contraintes (m, n)
Exemples
Primal
Max ½ x1 + x2
Dual Min 3y1 + y2 + 2y3 54
S.c x1 + x2 ≤ 3 - x1 + x2 ≤ 1 x1 ≤ 2 x1 ≥ 0, x2 ≥ 0 Min - x1 + x2 S.c 2x1 - x2 ≥ 2 - x1 + 2x2 ≥ -2 x1 + x2 ≤ 5 x1 ≥ 0, x2 ≥ 0 Max 2x1 - x2 S.c x1 - x2 = 3 x1 ≤ 4 x1 ≥ 0, x2 ≥ 0 Max 2x1 - x2 S.c x1 - 2x2 ≤ 2 x1 + x2 = 6 x2 ≤ 5 x1∈ IR, x 2∈ IR
S.c y1 - y2 + y3 ≥ ½ y1 + y2 ≥ 1 y1 ≥ 0, y2 ≥ 0, y3 ≥ 0 Max 2y1 - 2y2 + 5y3 S.c 2y1 - y2 + y3 ≤ -1 - y1 + 2y2 + y3 ≤ 1 y1 ≥ 0, y2 ≥ 0, y3 ≤ 0 Min 3 y1+ 4 y2 S.c y1+ 2 y2 ≥ 2 - y1 ≥ -1 y1∈ IR, y2 ≥ 0 Min - 2y1 + 6y2 - 5y3 S.c y1 + y2 = 2 - 2y1 + y2+ y3 = -1 y1 ≥ 0, y2 ∈ IR, y3 ≥ 0
III. Analyse de sensibilité Définition: Une solution de base optimale est dite stable si l’ensemble des
variables de base à l’optimum ne changent pas, même si les valeurs de ces variables de base sont modifiées. Dans cette section on examinera la stabilité de la solution optimale d’un programme linéaire suite à la variation de l’un des paramètres de ce programme. On utilisera pour présenter l’analyse de sensibilité sur ces différents paramètres du programme linéaire l’exemple de l’agriculteur. Max 100x1 + 200x2 S.c x1 + x2 ≤ 150 4x1 + 2x2 ≤ 440 - x1 + 4x2 ≤ 480 x1 ≤ 90 x1 ≥ 0 , x2 ≥ 0 a. Analyse de sensibilité sur les Cj On cherche à déterminer un intervalle dans lequel peut varier C j sans que la solution optimale ne change. Considérons une variation du coefficient C j de 100 à 100 + ∆ 55
En remplaçant dans le tableau optimal 100 par 100 + ∆ , on obtient le tableau suivant : 100+
100+∆ 0 200 0
x1 S 2 x2 S 4
40 60 110 50
∆ x1 1 0 0 0 100+ ∆ 0
20 0 x2 0 0 1 0 20 0 0
0
0
0
0
S 1 4/3 -14/3 -1/3 -4/3 (200+4∆ )/ 3 (200+4∆ )/ 3
S 2 0 1 0 0 0
S 3 -1/3 2/3 1/3 1/3 (100∆ )/3 ∆ -100/3
S 4 0 0 0 1 0
0
0
La solution donnée par le tableau reste optimale si
(2 + 4∆ 0) 0 − ≤ 0 3 ∆ ≤ −5 0 ⇔ ⇔ − 5 ≤ ∆ ≤ 01 ∆ − 1 ≤ 00 0 ∆ ≤ 1 0 0 3 Donc la solution optimale est stable et prend la même valeur (x1 x , x2 )=(40,110) )=(40,110) tant que 50 ≤ C 1 ≤ 200 Exercice : Supposons que le coefficient C j d'une variable hors base dans la solution optimale, optimale, est modifié. Dans quel intervalle, C j peut-il varier sans que la
base optimale soit modifiée ? (Aide : différencier le cas d’un programme de maximisation et le cas d’un programme de minimisation). Solut So lutio ion n: - ∞ < C j ≤ z j z j ≤ C j < - ∞
cas d’un programme de maximisation cas d’un programme de minimisation
56
b. Analyse de sensibilité sur les b j Déterminer l’intervalle pour lequel, la solution optimale reste stable, pour une variation du second membre de la ième contrainte bi . Considérons une variation de b 1 de 150 à 150 + ∆ . Sachant que dans le premier tableau de simplexe b1 n’est présent que dans la première contrainte. On obtient ainsi une correspondance entre la colonne des quantités Qi et la colonne de S 1.
0
S 1
0
S 2
0
S 2
0
S 4
150+1×
∆ 440+0× ∆ 480+0× ∆ 90+0× ∆ 0+1× ∆
100 x1 1
200 x2 1
0 S 1 1
0 S 2 0
0 S 3 0
0 S 4 0
4
2
0
1
0
0
1
4
0
0
1
0
1 0 100
0 0 100
0 0 0
0 0 0
0 0 0
1 0 0
Dans Dans le tabl tablea eau u opti optima mal, l, la colo colonn nnee corr corres espo pond ndan antt à S 1 no nous us do donn nnee les les coefficients de ∆ dans la colonne des quantités.
100 0 200 0
x1 S 2 x2 S 4
40+4/3∆ 60-14/3∆ 110-1/3∆ 50-4/3∆ 26000+200∆ / 3
100 x1 1 0 0 0 100
200 x2 0 0 1 0 200
0 S 1 4/3 -14/3 -1/3 -4/3 200/3
0 S 2 0 1 0 0 0
0 S 3 -1/3 2/3 1/3 1/3 100/3
0 S 4 0 0 0 1 0
0
0
-200/3
0
-100/3
0
La base reste optimale tant que :
57
4 + 4/03∆ ≥ 0 ∆ 1 ≥ − 3 6 − 1 0/3∆ 4≥ 0 ∆ ≤ 9 /7 1 ⇔ - 30 ≤ ∆ ≤ 90/7 ⇔ 1 − 1/ 3∆ ≥ 0 ∆ 1 ≤ 3 5 − 4/03∆ ≥ 0 ∆ 1 ≤ 7 /2 Donc tant que 120 ≤ b1 ≤ 160,85 la base demeure la même et la solution optimale est stable mais elle change en valeur (exemple: pour ∆ = 3 le vecteur de solutions optimale est (x1 x , x2 ,S ,S 1 ,S ,S 2 ,S ,S 3 ,S ,S 4 )=(44,109,0,46,0,46) )=(44,109,0,46,0,46)) Remar Rem arque que : D’après le résultat ci-dessus on peut conclure que le coût marginal de 200/3 par hectare de la première ressource n’est valide que si la solution de base demeure stable. Donc si et seulement si 120 ≤ b1 ≤ 160,85. Ceci est appelé
le domaine de validité du coût marginal. Exercice 1:
Sans faire de calcul, de combien peut-on modifier la quantité de m 3 d’eau sans nuire à la solution optimale ? confirmez votre résultat a l'aide de la méthode d'analyse de sensibilité exposé ci-dessus ? Exercice 2 :
Déterminer l’intervalle dans lequel peut varier b 1 et b3 (les ressources en surface et en main d’œuvre) sans que la base optimale change. Réponse 2 :
58
4 + 4/03∆ 1 − 1/3∆ 2 ≥ 0 6 + 1 0/3∆ 4+ 2/3∆ ≥ 0 1 2 ⇔ 1 + 1/13∆ 1 + 10/3∆ 2 ≥ 0 5 + 4/03∆ 1 − 1/3∆ 2 ≥ 0
4∆ 1 − ∆ 2 ≥ − 1 7∆ + ∆ ≤ 9 12 ∆ 1− ∆ 2 ≤ 3 4∆ 1 − ∆ 2 ≤ 1
Pour ∆ 1 = 0 (variation nulle de la surface en hectare), la solution optimale est stable pour une variation ∆ 2 des ressources en main d’œuvre entre 570 et 730 heures (-150 ≤ ∆ 2 ≤ 90). Le coût marginal de 100/3 par heure de main d’œuvre de la 3ème ressource n’est valide que dans l’intervalle [570, 730]. c. Analyse de sensibilité sur les coefficients c oefficients a ij Supposons que dans le problème de l’agriculteur, le nombre d’unités de la ième ressources nécessaire pour produire une unité de produit j, soit (aij + δ ) ou lieu de aij. Ainsi, on se pose la question si la solution optimale demeure stable suite à un tel changement. i) x j est une variable de base et la ième ressource est totalement utilisée.
Par ex exemple :
x 1 + (4+ )x 2
480
x 1 + (4 +
)x 2 + S3 =
480
A l’optimum, la base est inchangée donc x1*
S*3
•
•
*
*
+ ( 4 + ∂ ) x 2 + S 3 =
*
480
*
= 0, x1 ≥ 0, x 2 ≥ 0
Si δ ≥ 0 , alors l’équation ne peut pas être satisfaite sinon S*3 < 0 puisque * * * 480 et ∂ x 2 + S3 = 0 , x 2 ≥ 0 . x1* + 4 x * 2 = 480 Si δ ≤ 0 , alors on a un excèdent de la 3ème ressource ressource ( S 3 ≠ 0), ce qui nous contraint à changer la base (la solution optimale n’est plus stable).
Conclusion: Dans le cas où x j est une variable de base optimale et la ième ress ressou ource rce est est total totaleme ement nt utili utilisé sée, e, il est est impos impossi sible ble de modif modifier ier le coefficient aij sans que la base dans la solution optimale ne change pas (la solution optimale n'est pas satable). ii) x j est une variable de base et la ième ressource n’est pas totalement utilisée. 59
Par exemple: (4 +δ ) x1 + 2x2 ≤ 440 ⇒ (4 (4 + δ )x1 +2x2 + S 2 = 440 A l’optimum, la solution est inchangée donc *
*
*
(4 + ∂ ) x1 + 2 x2 + S 2 = 440 440 *
*
*
S 2 = 60, x1 ≥ 0, x2 ≥ 0
Pour que la base demeure toujours optimale il faut f aut et il suffit que
∂ x2* + S 2* = 6 0 6 0 * * ⇒ 6 − ∂0 x2 ≥ 0 ⇒ ∂ ≤ * ⇒ δ ≤ 3/ 2 x2 S 2 ≥ 0 Conclusion: Dans le cas où x j serait une variable de base optimale et où la ième ressource n’est pas totalement utilisée, il est possible de modifier le coefficient aij d’une valeur δ ij égale à
− ∞ ≤ δ ij ≤
S i x j*
et la solution optimale demeure stable.
iii) Si x j est une variable hors base ( x j = 0). Ceci implique qu’on ne va pas produire le produit j • Si δ ij ≥ 0, alors il est encore moins économique de fabriquer ce produit si le coefficient technologique a ij augmenterait de δ ij • Si δ ij ≤ 0 , alors la fabrication du produit j peut devenir économique si on
utilise moins de ressources.
IV. Introduction d’une nouvelle nou velle activité On sait déjà que la valeur optimale de la variable duale représentent les coûts marginaux (d’opportunité) associés à l’utilisation de ressources limitées. On peut peut égale égaleme ment nt utili utilise serr ces ces coûts coûts margi margina naux ux po pour ur évalu évaluer er des décis décisio ion n concernant l’introduction de nouveaux produits ou de nouveaux procédés de fabrication. a. Introduction d’une nouvelle variable de décision L’agriculteur prévoit de produire des pommes de terre. Un hectare de pomme de terre demande 3 m3 d’eau et 2 heures de travail pour un revenu de C 3 dinars. La question est pour qu’elle valeur de C 3, l’agriculteur a-t-il intérêt à introduire cette nouvelle production ? Sans résoudre le nouveau programme linéaire suivant: 60
Max 100x1 + 200x2 + C 3 x x3 S.c x1 + x2 + x3 ≤ 150 4x1 + 2x2 +3x3 ≤ 440 x1 + 4x2 + 2x3 ≤ 480 x1 ≤ 90 x1 , , x2 , , x3 ≥ 0
On peut déterminer si l’agriculteur a un intérêt à introduire la production ou pas. En d’autres termes, s’il n’a pas intérêt à le faire, la solution optimale du programme linéaire ci-dessus donne x3 = 0. Ce qui revient à dire, que pour l’agriculteur l’utilisation d’un hectare de terrain, de 3 mètres cube d’eau et de deux heures de travail lui procurent plus de gain s’ils va les mettre au service de la production de tomates et/ou de piments plutôt que dans la production de pommes de terre. Ceci est équivalent au fait que la contrainte suivante: * * y1* + 3 y 2* + 2 y3* ≥ C 3 n’est pas satisfaite (avec y1* , y 2 et y3 sont les prix minimaux des ressources pour notre agriculteur). Cett Cettee cont contra rain inte te corr corres espo pond nd à la 3 ème cont contra rain inte te du prog progra ramm mmee du dual al du programme linéaire ci-dessus : * On a : y1 =
• • •
200 * 100 100 ,y 2 = 0 et y *3 = 3 3
, donc :
Si C 3 < 200/3, l’agriculteur n’a pas intérêt à introduire la nouvelle activité Si C 3 > 200/3, l’agriculteur a intérêt à introduire cette nouvelle activité, la solution optimale va changer et la valeur de la fonction objectif augmentera Si C 3 = 200/3, l’agric l’agriculte ulteur ur est indiffé indifférent rent envers envers l’intro l’introduc duction tion de cette cette nouvelle activité.
b. Introduction d’une nouvelle contrainte Si la solution optimale satisfait la nouvelle contrainte, le problème admettra la même même solu solutio tion. n. Sinon Sinon l’int l’introd roduc uctio tion n de cette cette contr contrain ainte te va enge engend ndrer rer un unee nouvelle solution optimale.
CHAPITRE 6
Logiciel pour la résolution des 61
programmes linéaires : LINDO (Linear INteractive and Discrete Optimizer)
I. Introduction Lindo est un logiciel utilisé pour résoudre les modèles d’optimisation linéaires, entiers et quadratiques. Une des caractéristiques de Lindo c’est qu’il offre des outils qui peuvent aider à l’analyse des modèles en utilisant la méthode de Simplexe. On présente dans ce chapitre la version étudiant 6.0 (1997). Cette version résout des problèmes de dimension maximale de 200 variables et de 100 contraintes.
II. Installation Installation du Logiciel Pour Pour util utilis iser er cett cettee vers versio ion n de Lind Lindo o il est est cons consei eill lléé d’av d’avoi oirr au moin moinss un processeur processeur 486 et 8Mo de mémoire RAM. Il faut aussi prévoir un espace disque dur de 2Mo pour pouvoir l’installer. Les étapes de l’installation sont : 1. Déma Démarr rrer er Wind Window ows. s. 2. Insérer Insérer le CD-ROM CD-ROM ou ou la disquett disquette. e. 3. Cliquer sur sur l’icône l’icône Setup (install) (install) dans votre votre explorateur explorateur de Windows Windows 4. Suivre Suivre les les instruc instruction tionss sur sur l’écran l’écran Pour plus d’information sur ce logiciel visiter l’adresse web : www.lindo.com
III. Résolution d’un exemple Dans cette section, et sur la base de l’exemple de l’agriculteur, on va focaliser notre attention sur les opérations suivantes : introduire les données, résoudre le problème, et analyser les résultats que donne LINDO. a. Le problème problème de l’agriculteur l’agriculteur Le programme linéaire qui modélise le problème de l’agriculture est :
62
Max s.c.
100 x1 +200 x2 x1 + x2 ≤150 4 x1 +2 x2 x1 +4 x2 x1 x1
≥0,
≤440 ≤480
≤90
x2
≥0
b. Introduction des données Double cliqu liqueer sur l’i l’icône «lind indo 6.0 for for Windo dow ws » de votre men menu démarrer/programmes. Le logiciel va s’exécuter et vous aurez cette fenêtre qui s’affiche sur votre écran :
Dans tous les modèles de Lindo la fonction objectif est définie en première ligne. Dans notre exemple la fonction objectif est :
M _ 1 x _ 1 _a0+ _ 2 x _x0 2 Les tirés bas indique la présence d’un espace obligatoire entre les entrées pour pouvoir les différentiées. Il faut noter qu’on peut remplacer x1 et x2 par n’importe quel mot qui indique ces deux variables, par exemple, on peut remplacer x1 par "tomates" et x2 par "piments "piments". ". Une autre caractér caractéristi istique que est que Lindo ne fait pas de différence différence entre majuscule majuscule et minuscule. minuscule. Pour lui la variable « TOMATE » est la même que la variable « tomAtE ». Pour commencer à écrire les contraintes, il faut introduire la mention « subject to » ou tout simplement son abréviation « st ». Dans notre exemple les contraintes sont :
63
s u b j _ e ct ot t e r r a xi1 _ n )+ _ x2 _ < _ =1 5 0 e a u4) _ x1 _ + _ 2 _ x2 _ < _ =4 4 M o x)1 _ + _ 4 _ x2 _ < _ =4 8 0 b u r e xa 1u _ ) < _ =9 0 On remarque qu’on peut appeler chaque contrainte par un nom nominatif que Lindo va utiliser pour afficher les résultats. L’écr L’écran an qu qu’on ’on ob obtie tient nt aprè aprèss avoir avoir intro introdu duit it les diffé différe rents nts paramè paramètr tres es est est le suivant :
On n’a pas à ajouter les contraintes contraintes de non-négativité, non-négativité, Lindo suppose par défaut que les variables de décision sont de types nonnégative. c. Résolution du problème Après avoir écrit convenablement convenablement le programme linéaire, linéaire, on passe maintenant maintenant à la résolution. Pour Pour résoud résoudre re notre notre programm programmee il faut faut cliquer cliquer sur le bou bouton ton « » dans dans la barre d’outils. Lindo va commencer ainsi à compiler le modèle. Si un message d’erreur s’affiche c’est que le programme, par exemple, est non borné ou bien non réalisable... Lors de la compilation, on voit une barre qui montre le pourcentage de travail effectué.
d. Interprétation des résultats S’il n’y a pas d’erreur de formulation, Lindo va commencer à résoudre le problème. Par défaut, il va vous demander si vous voulez faire une analyse de sensibilité. Pour le moment on va répondre « Non ». 64
Avant que Lindo nous propose un premier rapport sur la solution optimale, il nous donne l’état du problème exprimé par cette fenêtre :
Ce rapport préliminaire nous indique que : a) Status Status : Optimal Optimal ; Il nou nouss informe informe sur l’état l’état de la solution solution actuelle actuelle.. Elle peut être Optimal (optimale), Feasible (réalisable), Infeasible (non réalisable) ou Unbounded (non bornée). b) Iteratio Iterations ns : 2 ; Il indique indique le nombre d’itérati d’itérations ons nécessair nécessairee pour résoudr résoudree le problème (en utilisant la version révisée de la méthode de Simplexe). c) Infeasibility Infeasibility : 0 ; Ceci Ceci indique la quantité quantité de violation dans dans les contraintes contraintes.. d) Objectiv Objectivee : 26000 26000 ; C’est la valeur de fonction fonction objectif objectif relative relative à la solution solution actuelle. e) Best IP : N/A ; C’est la meilleu meilleure re valeur valeur de la fonction fonction objectif objectif.. Ceci n’est vrai que pour les problèmes de type entier. f) IP Bound Bound : N/A ; C’est la borne borne de la fonction fonction object objectif if pour cette cette solution. solution. Ceci n’est vrai que pour les problèmes de type entier. g) Branche Branchess : N/A ; C’est C’est le nombre nombre de variabl variables es entiers « branche branched d on » par Lindo. Ceci n’est vrai que pour les programmes de type entier. h) Elapsed Elapsed Time : 00 :06 :45 ; C’est C’est le temps écoulé écoulé avant avant que le résolveur résolveur ne soit invoqué (ce temps est variable même pour le même exemple). Si on ferme cette fenêtre, on remarque qu’un autre rapport s’affiche. Ce rapport contient des informations sur la solution optimale.
65
Dans le tableau ci-dessus s’affichent dans la première colonne les différentes variables de décision et aussi les variables d’écart relatives à chaque contrainte du progr program amme. me. Leurs Leurs valeu valeurs rs sont sont do donn nnée éess dans dans la deux deuxiè ième me colon colonne ne.. On vérifie bien que la solution optimale coïncide avec la solution déjà retrouvée dans les précédants chapitres. La troisième colonne représente les valeurs nettes, i.e. c j −z j . Pour les variable d’ecart c’est les prix duals.
III. Les commandes de Lindo Dans cette section, on décrit brièvement les différentes commandes présentes dans le logiciel Lindo. Dans l’environnement Windows, Lindo divise ces commandes en six catégories. 1. File
a) New : Créer Créer un nou nouvea veau u docume document. nt. 66
b) Open : Ouvrir Ouvrir un document document existant existant et le placer dans dans une fenêtre fenêtre d’éditio d’édition n (cette fenêtre a une capacité maximale de 64000 caractères). c) View View : Ouvr Ouvrir ir un do docu cume ment nt exis exista tant nt dans dans un unee fenê fenêtr tree de visi vision on (vie (view w window). Ce genre de fenêtre permet d’importer des programmes à plus de 64000 caractères de votre éditeur (tels que Word). Quelques opérations ne sont pas autorisées dans un view window tels que : couper, copier, coller, effacer… d) Save : Enregistrer Enregistrer.. Le format par défaut défaut est le *.ltx, *.ltx, et c’est c’est le format texte texte de Lindo. e) Save Save as : Enregis Enregistrer trer sous. sous. D’autres D’autres formats formats sont présents présents tels que le *.lpk (c’est un format compressé qui ne peut être lu par aucun autre éditeur autre que celui de Lindo) ou le *.mps (malgré qu’il n’accepte pas les commentaires dans le rapport, ce format est utilisé par d’autres logiciels) f) Clos Closee : fermé ermé.. g) Print Print : Imprim Imprimé. é. h) Priter Priter setup setup : propriété propriétéss de l’imprima l’imprimante. nte. i) Log Output Output : Pour ouvrir ouvrir ou fermer fermer des log file file utilisés utilisés pour pour enregistr enregistrer er les résultats de votre session. j) Take Command Commandss : Pour Pour exécute exécuterr des des macros macros.. k) Basis Basis Read Read : Pour Pour charg charger er du disq disque ue un unee solut solutio ion n de base base pour le modèl modèlee actif. l) Basis Save Save : Enregistrer Enregistrer sur le disque disque la solution de base base du modèle modèle actif. actif. m) Title : Afficher le nom nom pour le modèle actif. actif. n) Date : Affic Afficher her la date. date. o) Elaps Elapsed ed Time Time : Affich Afficher er le temps temps écou écoulé lé depu depuis is le comme commenc nceme ement nt de la session. p) p) Exit Exit : Quitt Quitter er Lind Lindo. o. 2. Edition
67
a) b) b) c) d) e) f) g)
Undo :Annule :Annulerr la derniè dernière re opérati opération. on. Cut Cut : Coup Couper er Copy Copy : Cop Copie ier r Past Pastee : Coll Coller er Clea Clearr : Effa Efface cer r Find /Replac /Replacee : Rech Recherch ercher/R er/Remp emplace lacer r Options : Utiliser Utiliser pour modifier modifier les paramètres paramètres par défaut défaut du système. système.
h) Go to Line Line : aller à la ligne numéro .. de la fenêtre fenêtre active. active. i) Paste Symbol Symbol : Elle affiche affiche une une fenêtre fenêtre de dialogue dialogue qui contient contient les les syntaxes, syntaxes, les variables et les noms des lignes réservés par Lindo. On peut utiliser cette commande pour ajouter des contraintes supplémentaires au modèle.
j) j) Selec Selectt All All : Sélec Sélectio tionn nner er Tou Toutt k) Clear Clear All All : Effac Effacer er tout tout l) Choose Choose New Font Font : Choisir Choisir les poli polices ces dans dans la fenêtr fenêtree active. active.
68
3. Solve
a) Solve : Résoudre Résoudre le modèle dont la fenêtre est active active b) b) Compil Compilee Mo Mode dell : Compil Compiler er (san (sanss réso résoudr udre) e) le modèle modèle dont la fenê fenêtre tre est est active c) Debug : Débugger le modèle dont dont la fenêtre fenêtre est active, active, s’il est non non réalisable réalisable ou non borné. Dans le cas d’un problème non réalisable, la commande Debug détecte détecte l’ense l’ensemble mble des contra contrainte intess (suffic (sufficient ient set), set), don dontt l’élimin l’éliminatio ation n est suffi suffisa sante nte po pour ur garan garantir tir un unee solu solutio tion n op optim timale ale.. Et il déte détermi rmine ne auss aussii un ense ensembl mblee de cont contra raint intes es (nece (necess ssar ary y set), set), do dont nt la modif modifica icatio tion n entr entraîn aînee nécessairement un modèle réalisable. Dans le cas d’un problème non borné, la commande Debug détecte l’ensemble des variables de décision (sufficient set), dont la fixation de leurs valeurs est suffisante suffisante pour garantir une solution opti op tima male le.. Et il déte déterm rmin inee auss aussii un ense ensemb mble le de vari variab able less de déci décisi sion on (neces (necessary sary set), set), don dontt la modifica modification tion entraîn entraînee nécess nécessaire airement ment un modèle modèle borné. d) Pivot Pivot : Une des opérations opérations fondame fondamental ntales es dans la méthode méthode de Simplexe Simplexe est l’opération pivot, qui correspond à une itération du simplexe. Lindo nous donne la possibilité de choisir nous même les variables entrantes et sortantes et nous permet ainsi de résoudre le programme itération par itération. Exem Ex empl plee : Essayons de résoudre le problème de l’agriculteur en utilisant la commande « Pivot ». La variable entrante dans le premier tableau de Simplexe est X2 et la variable sortante est la variable d’écart de la contrainte dans la 4 ième ligne.
Le rapport suivant s’affiche :
69
Donc cette itération a fait passer la valeur de la fonction objectif à 24000. Pour pouvoir choisir les variables entrantes et sortantes on peut afficher le tableau de Simplexe relatif à la dernière itération en utilisant la commande « Tableau » dans le menu « Reports ». On obtient :
D’après le tableau ci-dessus, la variable entrante est X1 et la variable sortante est SLK 2. On obtient ainsi le résultat suivant :
La valeur de la fonction objectif est optimale et on peut vérifier que le tableau de simplexe relatif à cette dernière itération est optimal :
70
e)
Preemptive Goal : Cette commande peut résoudre un problème à objectif multiples en adoptant une manière lexicographique. Ainsi on optimise le premier objectif puis le second sous une contrainte supplémentaire que le prem premie ierr est est égale égale à la valeu valeurr op optim timal alee déjà déjà trouv trouvée ée.. Plus Plus préc précisé isémen ment, t, supposons que l’agriculteur peut acheter des ressources supplémentaires avec un prix de 40 dinars pour un hectare de terrain(Y1), 10 dinars le m 3 d’eau (Y2) et 8 dinars l’heure supplémentaire supplémentaire de main d’œuvre (Y3). Les quantités disponibles sur le marché respectivement pour Y1, Y2 et Y3 sont de 10 hectares hectares de terrain, 5 m 3 d’eau et 4 heures de main d’œuvre. On appelle G le gain issu de la culture ture et D les les dépenses d’ac ’achat des res ressource rces supplémentaires. Le programme peut s’écrire sous cette forme :
La résolution avec la commande « Preemptive Goal » nous donne les résultats suivants :
71
4. Reports
a) Solution : Elle donne un rapport de résolution standard avec ou sans les variables non nulles.
72
b) Range : Cette commande donne donne la marge de variation variation des coefficients coefficients de la fonction objectif et du second membre sans que la base dans la solution optimale ne change. Pour l’exemple de l’agriculteur, cette commande donne les résultats suivants :
c) Parametrics : Cette commande permet de faire une analyse paramétrique du second membre des contraintes. Par exemple, après avoir résolu le problème de l’agriculteur, on aimerait avoir une idée sur la variation de la valeur de la fonction objectif suite à une variation entre 150 à 300 hectares de la surface de terrain disponible. En utilisant cette commande, une fenêtre de dialogue s’ouvre. On fait entrer le numéro de la contrainte à étudier (2) ainsi que la variation du second membre (300). On peut aussi choisir le type de rapport de résultat. résultat. Dans notre cas, le choix s'est porté sur un graphique à deux dimensions.
Le rapport qu’on obtient est le suivant : 73
d) Statistics Statistics : Cette commande affiche affiche des statistiques statistiques relatives relatives au problème actif dans la fenêtre fenêtre du rapport tel que le nombre nombre de variables variables de décision, décision, le nombre de lignes… e) Pereuse : Cette commande est utilisée pour générer un rapport sous forme de texte ou de graphique (en 2D ou en 3D) relatif aux résultats du problème actif. Le menu associé à cette commande est le suivant :
On a choisi ici d’avoir un rapport graphique sur les valeurs des variables de décision ainsi sur les variables duales qui leurs sont associées dans le problème de l’agriculteur. Le résultat est le tableau suivant :
74
f) Picture Picture : Cette command commandee permet permet de créer un texte texte ou une figure figure qui illustre illustre les différents paramètres du problème. La fenêtre de dialogue associée à cette commande est la suivante :
Le résultat obtenu pour le problème de l’agriculteur est le suivant :
g) Basis Basis Picture Picture : Cette Cette commande commande affiche affiche dans la fenêtre fenêtre rapport rapport une figure figure qui représe représente nte la matrice de base actuelle actuelle (relatif (relatif à la solution solution trouvée trouvée en exécutant la commande solve du même menu). Le rapport qu’on obtient en exécutant cette commande pour le problème de l’agriculteur est :
h) Tableau : Cette commande commande affiche affiche le tableau tableau de Simplexe Simplexe relatif relatif à la solution solution en cours. Si la solution est optimale, cette commande permet d’avoir le tableau de Simplexe optimal. Dans le problème de l’agriculteur l’agriculteur le tableau de Simplexe optimal obtenu en utilisant cette commande est :
75
i) Formula Formulation tion : Elle permet de visualise visualiserr un élément élément sélectio sélectionné nné (des lignes) lignes) ou tout le problème dans la fenêtre rapport. j) Show Show Column Column : Cette comman commande de vient vient s’ajoute s’ajouterr à la commande commande formulati formulation, on, elle nous permet de visualiser des colonnes (choix relatifs aux variables de décision) dans la fenêtre du rapport. k) Posi Positi tive ve Defi Defini nite te : Cett Cettee comm comman ande de est est util utilis isée ée po pou ur les les probl roblèm èmes es quadratiques pour s’assurer que la valeur optimale est globale. 5. Window
a) Open Command Command Window Window : Cette commande commande ouvre ouvre une fenêtre fenêtre de dialogu dialoguee qui sert à éditer des macros pour Lindo. b) b) Open Open Status Status Window Window : Cette Cette comma command ndee ou ouvre vre la fenêt fenêtre re de dialo dialogue gue qui affiche l’état du programme Lindo (Lindo Solver Status). c) Send Send to Back Back : Cette Cette comma commande nde est utilis utilisée ée po pour ur balanc balancer er les les fenêt fenêtres res en arrière plan. d) Cascade Cascade : Cette Cette command commandee arrange arrange les fenêtre fenêtress qui s’affiche s’affichent nt sur l’écran l’écran sous une forme dite cascade. e) Title : Cette Cette commande commande arrange arrange les fenêtres fenêtres de manière manière à redimensionner redimensionner ces ces fenêtres et les afficher horizontalement ou verticalement selon votre choix. f) Close All : Cette commande permet de fermer fermer toutes toutes les fenêtres fenêtres actives. actives. 76
g) Arrange Icons Icons : Cette commande commande permet permet d’arranger d’arranger les fenêtres fenêtres réduites réduites sous forme d’icône. 6. Help
a) Contents : Cette commande ouvre la fenêtre fenêtre d’aide d’aide de Lindo b) b) Searc Search h for Help On… : Cette comma command ndee permet permet la reche recherc rche he rapide rapide par par mots clés. c) How How to Use Use Help Help : Cett Cettee comm comman ande de affi affich chee un menu menu qu quii info inform rmee sur sur la manière dont on peut utiliser le menu Help. d) Abo About LIN LINDO… DO… : Cet Cette comma mmande affic fiche concernant la version du logiciel Lindo utilisé.
queelques qu
inf informa ormati tio ons
VI. Programmation à nombres entiers On peut utiliser Lindo pour résoudre résoudre des problèmes problèmes en nombres entiers. entiers. Il suffit de mentionner que les variables du problème sont de type entier. On va supp suppos oser er ici qu quee dans dans le probl problème ème de l’ag l’agric ricul ulteu teurr les les variab variables les de décision X1 et X2 sont de type entier. On sait déjà que la solution optimale va demeurer inchangée puisque les valeurs de ces variables à l’optimum sont des entiers. Pour utiliser Lindo, il faut procéder comme avant : 1/ On fait entrer la fonction objectif 2/ Commencer à écrire les contraintes après avoir introduit la mention « Subject to » Après Après avoir avoir termi termine nerr l’édit l’édition ion des des contr contrain aintes tes il faut faut ajout ajouter er la comma command ndee « END », qui indique que l’édition des contraintes est terminée. Ainsi on peut définir la nature des variables de décision. Pour dire qu’une variable X est de type 77
a)
Entiers (X∈IN), on écrit : « GIN _ X »
b) Binaire Binaire (X={0,1}) (X={0,1}),, on écrit écrit : « INT INT _ X » c)
Non bornée (X∈IR), on écrit : « FREE _ X »
Pour le problème de l’agriculteur à variables entiers on écrit :
La résolution de ce problème donne le résultat suivant :
Exercices
A) Essayer Essayer de résoudr résoudree tous tous les exercices exercices de la série série 1 en utilisan utilisantt le Logiciel Logiciel Lindo. B) Problèm Problèmes es de transpo transport rt : Une entrepri entreprise se approvisio approvisionne nne 4 de ces clients clients à partir de 3 différents dépôts. Le chef de cette entreprise veut minimiser le coût unitaire par unité transportée. Le tableau suivant présente toutes les données : 78
Coût unitaire
Client 1
Client 2
Client 3
Client 4
Dépôt 1 Dépôt 2 Dépôt 3 Demande du client
6 4 8 15
2 9 8 17
6 5 1 22
7 3 5 12
79
Capacité du dépôt 30 25 21
CHAPITRE 7
Introduction à la Programmation Dynamique I. Introduction La programmation dynamique est une technique mathématique qui a pour objet d’aider à prendre des décisions séquentielles indépendantes les unes des autres. Cont Contra rair irem emen entt à la prog progra ramm mmat atio ion n liné linéai aire re,, il n’y n’y a pas pas un form formal alis isme me mathé mathémat matiqu iquee stand standard ard.. C’est C’est un unee appro approch chee de résol résoluti ution on où les équa équatio tions ns doivent être spécifiées selon le problème à résoudre. Notre exposé se base essentiellement sur de nombreux exemples qui illustrent cette technique.
II. Exemple prototype. Le problème du voyageur 7
2 2 1
4
3 3
3
2
4 4
1
4
5 4
5
6
3 10
3 3
1
4
8
6
2
7
9
4
3
5
Un postier décide d’effectuer un voyage entre différentes villes qu’il ne connaît pas. Son but est de choisir le chemin le moins dangereux. Pour choisir son chemin, il s’informe auprès des assurances sur les différentes valeurs des polices d’assurance de vie entre les différentes routes possibles du voyage. Le trajet du postier est composé de 4 étapes (voir figure) et il doit arriver à la ville numérotée 10 en partant de la ville numérotée 1. Les autres numéros représentent les villes susceptibles d’être traversées. Les arcs entre ces nœuds 80
représentent les différents trajets possibles et les valeurs cij au-dessus des arcs représentent le prix de la police d’assurance vie relatif au trajet décrit par l’arc. Le chemin le moins dangereux est celui qui admet la plus petite valeur de la police d’assurance vie Exem Ex empl plee : Si le voyageur empreinte le trajet 1→ 2→ 6 6→ 9→ 10 10 , le coût total de →
la police d’assurance est 13 Soit xn (n=1, ..., 4) les variables de décisions relatives à chacune des 4 étapes. Le chemin à suivre par le voyageur est 1→ x1→ x2→ x3→ x4 avec x4 = 10. Soit f n (S, xn ) ) le coût total de la police d’assurance vie pour le reste des étapes sachant que nous somme à l’état S de l’étape n et que la destination choisie est xn. *
Etant donné S et n, soit xn la valeur de xn qui minimise f n (S, xn ) ) et soit f n* (S) la valeur minimale de f n (S, xn ). ). ( f n* (S)= f n (S, xn* )). L’approche de la programmation dynamique repose sur l’idée qu’un chemin ne peut être optimal que si chacune des ses composantes est elle même optimale. La démarche de la programmation dynamique consiste à étudier d’abord les sous problèmes qui se situent chronologiquement les derniers et sur un principe de retour en arrière. L’ob ’objectif tif est donc de tro trouver la valeu leur de f 1* (1). Pour l’avoir, la programmation dynamique va essayer d’évaluer avec une procédure de chaînage en arrière f 4* (s), f 3* (s), f 2* (s) et enfin f 1* (1). A chaque étape, on va essayer essayer d’évaluer pour chaque état s, la valeur de f (S, f (S, xn ) ) pour chaque destination xn possible, puis de retrouver la meilleure destination * x n (celle qui correspond au plus petit coût f(S, x n ) )) et aussi la valeur de f n* (s). Etape 4
x4
f 4(S, x4 )) ))
f 4* (s),
x * 4
3 4
3 4
10 10
S 8 9
Etape 3 81
f 3(S, x3 )=C )=C s x x3+ f 4* (x3 ) ) 8
9
f 3* (s),
* x3
4(=1+3) 9 6
8(=4+4) 7 7
4 7 6
8 9 8
x3 S 5 6 7 Etape 2
f 2(S, x2 )=C )=C s x x2+ f 3* (x2 ) ) x2
5
6
7
f 2* (s)
x1*
11 7 8
11 9 8
12 10 11
11 7 8
5 ou 6 5 5 ou 6
f 1* (1)
x1*
11
3 ou 4
S 2 3 4
Etape 1
x1
f 1(S, x1 )=C )=C s x x1+ f 2* ( x1 ) ) 2 3 4
S 1
13
11
112
La vale valeur ur de f 1* (1) = 11 repr représ ésen ente te le coût coût tota totall mini minima mall de la po poli lice ce d’assurance vie. Le chemin optimal n’est unique puisque dès le départ on peut choisir x1* = 3 ou 4, donc l’ensemble de ces chemins est: 1 → 3 → 5 → 8 → 10 10 1 → 4 → 5 → 8 → 10 10 1 → 4 → 6 6 → 9 → 10 10 Exercice 1 : (Problèmes de transport)
Modélis Modé liser er le prob problèm lèmee de plus plus court court chemi chemin n en utili utilisa sant nt la progr programm ammati ation on linéaire ? (Aide: Utiliser des variables du type binaires xi=0 ou 1)
82
III. Caractéristiques d’un problème de programmation pro grammation dynamique Nou Nouss allo allons ns main mainte tena nant nt sur sur la base base de l’ex l’exem empl plee préc précéd édan antt anal analys yser er les les propriétés communes aux problèmes de programmation dynamique. (i) Le problème peut être décomposé en étapes et une décision doit être prise à
chaque étape. Le dernier exemple est devisé en 4 étapes où à chaque étape, la décision à prendre prendre est celle de la destination à choisir. Ces décisions sont interdépendantes interdépendantes et séquentielles. (ii) A chaque étape correspond un certain nombre d’états. Dans l’exemple du
voyage voya geur ur,, les les état étatss à chaq chaque ue étap étapes es sont sont repr représ ésen enté téss par par les les vill villes es qu quee le voyageur voyageur visité. Le nombre de ces états dans l’exemple est fini. Dans ce qui suit en étudiera des problèmes où le nombre d’états est infinie ( xn∈ IN ) ou continue ( x xn∈ IR) (iii) A chaque étape, la décision prise transforme l’état actuel en un état associé
à l’étape suivante (dans certains cas avec une distribution de probabilité). Dans notre exemple, se trouvant à une ville donnée, le voyageur décide de se rendre à une autre ville qui est un état de l’étape suivante. (iv) Etant donné un état, une stratégie optimale pour les étapes restantes est
indépendante des décisions prises au étapes précédentes. Si le voyageur est dans un état quelconque de l’étape i, le chemin optimal entre cet état et l’état 10 sera indépendant de la façon dont il y est arrivé. En d’autres terme termes, s, l’état l’état actu actuel el conti contien entt toute toute l’inf l’inform ormati ation on néce nécess ssai aire re aux aux déci décisio sions ns futures. Cette propriété est dite principe d’optimalité. (v) L’algorithme de recherche de la solution optimale commence par trouver la
stratégie optimale pour tous les états de la dernière étape. (vi) Une relation de récurrence identifie la stratégie optimale dans chaque état de
l’étape n à partir de la stratégie optimale dans chaque état de l’étape n+1. 83
Dans notre exemple la relation est
f n* (S)=
Min x n
{C s x xn +
f n*+1 (xn )} )}
La stratégie optimale étant donné que nous sommes à l’état S de l’étape n, nécessite de retrouver la valeur de xn qui minimise l’expression ci-dessus. La relat relation ion de récur récurren rence ce à toujo toujours urs cette cette forme forme
Max
f n* (S)=
{f n(S,xn )}, )}, avec f n(S,xn ) ) est une expression en fonction de S, xn et
x n
ou
Min x n
f n*+1 (-)
(vii) Utilisant cette relation de récurrence, l’algorithme procède à reculons étape
par étape. Il détermine la stratégie optimale pour chaque état de chaque étape. Dans tout problème de programmation dynamique, on peut construire à chaque étape un tableau analogue au suivant.
Etape n
f n(S, x1 ) ) X 1
f n* (s)
états n+1
* x n
S états n
le coût ou la distance
La longueur du Le meilleur chemin optimal à état de l’étape partir de S n+1 le long du jusqu’à l’état final chemin optimal final
IV. Programmation dynamique déterministe a. Introduction Dans Dans cett cettee sect sectio ion n on s’in s’inté tére ress ssee au prob problè lème me dit dit déte déterm rmin inis iste te,, où la connaissance de l’état et de la décision à prendre suffisent pour savoir l’état à l’étape suivante. Un problème dynamique déterministe est caractérisé par la détermination de la fonction objective. Cette fonction peut être le minimum de la somme de la contribution induite par le passage d’un état à un autre, ou le maximum d’une telle somme, ou le minimum du produit de ces termes… etc.
84
Il faut aussi déterminer la nature de l’ensemble des états dans chacune des étapes. Ces états S n peuvent être représentés par des variables discrètes ou par des variables continues ou dans certains cas par un vecteur .
étape n S n
étape n+1 contribution de xn
S n+1 n+1
La structure de base d’un problème dynamique déterministe
b. Problème du type plus court chemin
Quel est le plus court chemin de A à B ?
Solution:
On considère l'ensemble des états les point d'intersection sur les diagonales. Ainsi on a exactement 8 étapes. f n(S, xn ) ) = C s x xn + f n+1 ), n=1,...., 8 n+1 (xn ), avec f *n+1 (s) =
Min x n
f n(S, xn ) ) et f 9 (S) = 0
85
Etape 8
f 8(S, B) x8
B
f 8* (S)
x N
3 2
3 2
B B
*
S 1 2 Etape 7
f 7 7(S, ( S, x7 ) = C x7 + f 8( x7 ) s x x7
1
2
f 7* (s)
* x7
7 5 -
6 6
7 5 6
1 1 2
S 1 2 3 Etape 6
f 6 6(S, ( S, x6 ) = C x6 + f 7 7( x7 ) s x x6
1
2
3
f 6* (s)
* x6
12 9 -
8 7 -
11 7
12 8 7 7
1 2 2 3
f 5* (s)
x5
16 11 8 10 15
1 2 3 3 4
S 1 2 3 4 Etape 5
x5
f 5(s, x5 ) = C x5+ f 6* s x (x6 ) 1 2 3 4
*
S 1 2 3 4 5
16 16 -
11 12 -
8 10 -
11 11 15 15
86
Etape 4
x4
f 4(s, x4 ) = C x4+ f 5* s x (x4 ) ) 1 2 3 4 5
f 4* (s)
x * 4
16 10 11 16
2 3 3,4 4
f 3* (s)
* x3
12 12 13
2 2 3
f 2* (s)
* x 2
15 14
1,2 3
S 1 2 3 4
20 16 - 14 10 - 11 11 - 16
20
Etape 3
x3
f 3(s, x3 ) = C x3+ f 4* s x (x3 ) ) 1 2 3 4
S 1 2 3
12 -
12 12 -
16 13
17 17
Etape 2
x2
f 2(s, x2 ) = C x2+ f 3* s x (x3 ) ) 1 2 3
S 1 2
15 2
15 16
14
Etape 1
f 1(s, x1 ) = C x1+ s x x1
f 2*
(x1 ) )
1
2
f 1* (s)
x1*
20
18
18
2
S A
87
On peut résumer les résultats de la façon suivante: Etapes Chemin optimal 1 Chemin optimal 2
1 A A
2 2 2
3 3 3
4 3 3
5 3 4
6 3 3
7 2 2
8 1 1
La longueur du chemin optimal (1 ou 2) est égale à 18. c. Répartition optimale des moyens Un proj projet et du go gouv uver erne neme ment nt est est étud étudié ié par par 3 grou groupe pess de cher cherch cheu eurs rs.. La probabilité probabilité que chacun de ces groupes 1, 2 et 3, n’arrive pas à terminer le projet est respectivement: 0,4; 0,6 et 0,8. Si on ajoute à ces groupes deux nouveaux chercheurs, les probabilités d’échec sont donné par ce tableau
Nbre de nouveaux chercheurs 1 0,4 0,2 0,15
0 1 2
Probabilité d’échec Groupes 2 0,6 0,4 0,2
3 0,8 0,5 0,3
Le problème est de déterminer l’allocation optimale de ces deux chercheurs afin de minimiser la probabilité que les groupes de recherche échouent dans leur travail. Solution:
• Etap Etapes es:: 3 étap étapes es ou les les état étatss repr représ ésen ente tent nt le no nomb mbre re de cher cherch cheu eurs rs disponibles • Variable de décision: xn représ représent entee le nombre nombre de cherc cherche heur urss à alloue allouerr à l’équipe de recherche n, n = 1, 2, 3. • Contribution de la décision xn est la probabilité que l’équipe n échoue après avoir eu xn chercheur de plus f n* (S) c’est la probabilité minimale que les groupes n,..., 3 échouent dans •
leurs recherches :
*
f n
Min
(S) = x n ≤ S f n(S, xn )
n = 1, 2, 3
* avec f n(S, xn ) ) = pn(xn ) ) × f n 1 (S, xn ) ), pn(xn) est la contribution de la décision * xn et f 3 (s) =1. +
étape n S
étape n+1 S- xn 88
9 B B
pn(xn ) ) * f n(S, xn ) ) = pn(xn ) ) f n 1 (S- xn ) ) +
Etape 3
f 3(S, x3 ) = p3(x3 ) ) x3
0
1
2
f 3* (S)
* x3
0,8 0,8 0,8
0,5 0,5
0,3
0,8 0,5 0,3
0 1 2
S 0 1 2 Etape 2
f 2(S, x2 ) = p2(x2 ) ) x2
f 3*
(x3 ) )
0
1
2
f 2* (S)
* x 2
0,48 0 ,3 0,18
0,32 0,2
0,16
0,48 0,3 0,16
0 0 2
S 0 1 2 Etape 1
f 1(S, x1 ) = p1(x1 ) ) x1
f 2*
(x1 ) )
0
1
2
f 1* (S)
x1*
0,064
0,06
0,072
0,06
1
S 2
La stratégie optimale est x1* = 1, x2* = 0 et x3* = 1. La probabilité d’échec des trois groupes de recherche est de 0,06.
Exerc Exe rcic icee 2 : (Problème de gestion des Stocks)
89
Un magasin vend des chaussures de Ski. Par expérience, la période de vente de ces chaussures dure 6 mois, du 1er Octobre jusqu’au 31 Mars. Les prévisions de vente sont données par le tableau suivant: Mois Octobre Novembre Décembre Janvier Février Mars
Demande 40 20 30 40 30 20
Le magasin achète ces chaussures par lots de 10, 20, 30, 40 ou 50 paires avec un coût de 4$ par paire et des réductions sur les prix d’achat.
Quantité 10 20 30 40 50
Solde 4% 5% 10% 20% 25%
Le coût de lancement d’une commande d’approvisionnement est fixe, et est de 2$. En plus un coût supplémentaire pour chaque ordre est de 8$ (coût de transport des chaussures au magasin). Le stock du magasin ne peut pas dépasser le nombre de 40 paires de chaussures par mois. Une paire qui reste en stock à la fin du mois engendre un coût de 0,2$ par paire par mois. Après 6 mois le magasin doit vendre toutes ces chaussures est le niveau des stocks doit être nul. Sous l’hypothèse que la demande est fixe et uniforme pendant chaque mois, retrouver la stratégie qui minimise le coût total des stocks. Solution:
Les étapes représentent le début de chaque mois et les états le nombre de paires de chaussures en stock. ème • Dn: demande à la n étape ème • xn: la commande au debut de la n étape • φ (xn ) ) = 10 + C n× xn avec C n le coût d'achat. •
Pour n = 1,...,5, avec
f n* (S)=
Min D n − S ≤ x n
*
φ (xn ) { φ ) +0,2(S+xn-Dn )+ )+ f n
f 7* (S)=0
90
1 +
(S+xn-Dn )} )}
Etape 6
A la dernière étape le stock restant est nulle donc les états possibles de cette étape sont 0, 10, 20. *
f 6
x
6
x6*
(s)
S 6 6 0 10 20
86 84 0
20 10 0
Etape 5
S 6 6 = S 5 + x5 – 30 f 5(s, x5 )= )= φ (x5 ) ) +0,2(S+x 5-30)+
x
5
0
10
f 6* (S+x5-30)
f 5(s, x5 ) ) 20 30 100 50
S 5 0 10 20 30 40
- 204 188 164 - 172 16 168 14 142 - 134 13 136 12 122 86 98 90 50 52 -
f 5* (s
) 164 142 122 86 50
*
x5
50 40 30 0 0
Etape 4
S 5 = S 4 + x4 - 40 f 4(s, x4 )= )= φ (x4 )+0,2(S+x )+0,2(S+x5-30)+ x
4
0
10
f 6* (S+x5-30)
f 4(s, x4 ) ) 20 30
40
50
f 4* (s
* x4
304 286 252 218 -
) 302 282 250 218 164
40 30,40 20 10 0
S 4 0 10 20 30 40
- 250 - 212 230 164 192 212
282 262 244 210
302 282 264 230 196
Etape 3
S 4 = S 3 + x3 - 30 *
f 3(s, x3 )= )= φ (x3 )+2/3+1/3-30) )+2/3+1/3-30) f 4 (s4 ) ) 91
x
3
0
10
20
30
40
f 3* (s
x3
414 384 323 -
) 414 384 323 302 284
50 50 50 0 0
S 0 10 20 30 40
302 284
350 332 302
388 370 340 310
420 402 372 342 290
422 392 362 310 -
*
50
Etape 2
S 3 = S 2 + x3 - 20 *
f 2(s, x2 )= )= φ (x2 )+0,2+ )+0,2+ (S 2 + x2-20) f 3 (s3 ) ) 0 10 20 30 40 50 x
*
f 2
(s)
x2*
2
S 0 10 20 30 40
414 386 336
462 434 384 356
500 472 422 394 378
504 454 426 410 -
474 446 430 -
467 452 -
468 446 414 384 336
50 40 0 10 0
f 1(s, x1 )= )= φ (x1 )+0,2+ )+0,2+ (S 1 + x1-40) f 2* (s2 ) ) 0 10 20 30 40 50
f 1* (s
x1*
) 606
40
Etape 1
S 2 = S 1 + x1 – 40
x
1
S 0
-
-
-
-
606
608
la politique optimale est 40, 50, 0, 40, 50, 0. Le coût est 606. d. Résolution d'un programme linéaire La programm programmatio ation n linéair linéairee peut être être utilise utiliserr pou pourr résoud résoudre re des program programmes mes linéaires de petite taille. On se limite ici à des programmes linéaires du type entiers. Considérons le programme linéaire suivant Max 3x1 + 5x2 92
S.c
3 x1 + 2 x2 ≤ 9 4 x1 + 5 x2 ≤ 11 x1 ∈ IN , x2 ∈ IN
La décision à prendre est de déterminer les valeurs de x1 et x2. On peut assimiler le problème à un programme dynamique à deux étapes, où dans un premier temps, on doit déterminer la valeur de x1, et dans un deuxième temps la valeur de x2. Reste à savoir quels sont les états relatifs à chaque étape ? Ces états états doiven doiventt fourni fournirr l'informa l'information tion nécessaire nécessaire pou pourr aider aider à choisir choisir notre notre décision. Une simple réflexion nous amène à considérer, le nombre de ressources non utilisées dans les contraintes, comme étant des états possibles. Un état est décrit par un vecteur ( R1 ,R ,R2), où R1 et R2 sont respectivement les ressources non utilisées dans la première et la deuxième contrainte. A l'étape 1, l'unique état possible est S=(9,11). La structure de base du problème est
étape n ( R1,R2 R1,R2)
étape n+1 ( R R1- a1n xn , R2- a2n x xn ) cn xn *
f n(( R1,R2 R1,R2) , , xn) = cn xn + f n
1 +
(( R R1- a1n xn , R2- a2n x xn ))
M ax
avec
*
f n
( R R1 ,R ,R2) =
x n ≤ x n ≤
R1 a1n
{ f n(( R1,R2 R1,R2) , , xn)} pour n=1,2 et
f 3* ( R R1 ,R ,R2)=0
R 2
a 2n
Etape 2
A l'étape 2, si on considère toutes les combinaisons possibles des valeurs de R1 et R2 alors on aura à considérer un nombre d'état total égale à 99 états. Or tous ces états ne sont pas réalisables dans le sens qu'on n'aura jamais par exemple dans l'é l'étape 2 l'é l'état ( 10,8). Ains Ainsi, i, po pour ur déte déterm rmin iner er l'en l'ense semb mble le des des état étatss réalisables dans la deuxième étape, il suffit de considérer toutes les valeurs possibles de x1 (0,1 et 2), et avoir par conséquence les états suivant: (9,11), (6,7) et (3,3). f 2(( R1,R2 R1,R2) , , x2) = 5 x2 0 1 2 x
*
f 2
2
93
(s)
x2*
S 9,11 6,7 3,3
0 0 0
5 5 -
10 -
10 5 0
2 1 0
Etape 1
On a : f 1(( R1,R2 R1,R2) , , x1) == 3 x1 + f 2* (( R R1- 3 x 3 x1 , R2- 4 x1 )) f 1(( R1,R2 R1,R2) , , x1) 0 1 2
x
1
S 9,11
10
3+5=8
6
f 1* (s)
x1*
10
0
La solution optimale est ( x1 ,x ,x2)=(0,2) et la valeur de la fonction objectif est égale à 10. Exercice 3: Résoudre les programmes linéaires suivants en utilisant la technique
de la programmation dynamique: Max 4x1 + 5x2 S.c 8 x1 + 5 x2 ≤ 24 2 x1 + 5 x2 ≤ 13 x1 ∈ IN , x2 ∈ IN La solution optimale est ( x1 ,x ,x2)=(1,2). Max x1 + 2 x2 + x3 • S.c 3 x1 + 2 x2 ≤ 5 3 x2 + 2 x3 ≤ 7 x1 ∈ IN , x2 ∈ IN , x3 ∈ IN La solution optimale est ( x1 ,x ,x2 ,x ,x3)=(1,1,2). •
94