Recherche Opérationnelle

February 7, 2023 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Recherche Opérationnelle...

Description

 

CHAPITRE 1

Formulation d’un programme linéaire (PL) I. Introduction L’importance de l’optimis L’importance l’optimisation ation 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 travaux1 (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 prob Les problè lèmes mes de pro progra gramma mmatio tions ns linéa linéaire iress so sont nt 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 poss possibi ibilit litéé d’avo d’avoir ir un en ense semb mble le de décis décision ionss poss possibl ibles es qui qui 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 co nditi ition ons) s) qu quee le dé déci cide deur ur do doit it val valide iderr av avan antt de pouv pouvoi oirr le less ut utili ilise serr pour  pour  2 modéliser son problème. Ces hypothèses sont : 1. Les va variables riables de déc décision ision du p problème roblème sont positives positives 2. Le critère critère d dee séle sélectio ction n de la me meille illeure ure d décis é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 ex empl plee un pr prod odui uitt cr croi oisé sé de de deux ux de ce cess vari variab able les. s. La fo fonc ncti tion on qui qui représ rep résen ente te le cri critè tère re de sélec sélectio tion n es estt dit ditee fo fonc nctio tion n objec objecti tiff (o (ou u fonct fonction ion économique). 3. Les restricti restrictions ons relat relatives ives aux vari variable abless de décis décision ion (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 para paramèt mètres res du probl problème ème en deho dehors rs de dess varia variable bless de décis décision ionss ont ont une une 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 va varia riabl bles es du pr prob oblè lème me à valeu valeurr non connu connues es (v (vari ariab able le de décision) et les représenter sous forme symbolique (exp. x1, y1 ). 2. Identifie Identifierr les restr restrictions ictions (le (less contra contraintes) intes) du p problème roblème et et les exprimer exprimer par un système d’équations linéaires. 3. Identifie Identifierr l’objec l’objectif tif ou le cri critère tère de séle sélection ction et le représenter représenter sous une une forme linéa lin éaire ire en fonc fonctio tion n de dess va varia riable bless de dé déci cisio sion. n. Spéci Spécifie fierr si le cri critè tè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 fo forme rme li liné néair airee dit ditee fon foncti ction on obje objecti ctiff en sa satis tisfai faisa sant nt ce certa rtain ines es équa équatio tions ns et inég inégali alité téss dit dites es co cont ntrai raint ntes es.. En lang langag agee mathé mathémat matiqu ique, e, on décri décrira ra de te tels ls 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) certitu de) 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 coe coeffic fficien ients ts a1M   ,,…, …, aMN  et b1  ,…, ,…, bM  doive doivent nt av avoir oir une une valeu valeurr bi bien en déte dé termi rminée née (av (avec ec ce certi rtitud tude) e) et pe peuv uven entt êt être re posit positifs ifs,, néga négatif tifss ou nuls nuls.. Le  j i représente  paramètre utilise une bquantité égalelaàquantité aij xi . de matière première disponible dont le bien x

En suivant les étapes de formulation ci-dessus, on peut représenter le PL comme suit : Max   c1 x1 + c2 x2  s.c

+ + c N  x N 

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 de deman mande de gé géné néral raleme ement nt une ce certa rtaine ine expe experti rtise se et conn co nnai aiss ssan ance ce du prob problèm lèmee po pour ur po pouv uvoi oirr rel relev ever 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ée réelle lle.. Da Dans ns ce qu quii suit, suit, on pré prése sent ntera era quel quelque 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 m3 d’eau et donne un bénéfice net de 100 dinars. Un hectare de piments demande 4 heures de main d’œuvre, 2 m3 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 1 : Iden Etape Identif tific icati ation on de dess va varia riable bless de dé déci cisio sion. n. Les deux deux ac activ tivité itéss que que l’ l’ag agric ricult ulteu eurr doit doit dé déte termi rmine nerr sont sont les surfa surface cess à allou allouer er pour pour la cu cultu lture 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é véri rifi fiee bi bien en que que les les va vari riab able less de dé déci cisi sion on  x1 et  x2 son sontt positiv positives es :  x1 ≥ 0,   x2 ≥ 0 . Etape Eta pe 2 : Iden Identif tifica icatio tion n de dess co cont ntrai raint ntes es.. Dans Dans ce pr prob oblè 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 2m3 mais l’agriculteur ne dispose que de 440m 3. La co cont ntra rain inte te qu quii ex expr prim imee les les limi limita tati tion onss des des re ress ssou ourc rces es en eau eau es estt 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 ma ximis iser er le pr prof ofit it appo apporté rté par la cu cultu lture re de to tomat mates es et de piments piments.. Les contributions respectives 100 et 200, des deux variables de décision x1 et x2

s z o= nt100p xr1o+po r0tioxn nelles à leur valeur. La fonction objectif 20 2. Le programme linéaire qui modélise le problème d’agriculture est : Max  

est

donc

100  x1 +200  x2   x1 + x2   ≤150

 s.c.        

4 x1 +2 x2 ≤ 440  x1 +4 x2   ≤ 480  x1  x1

Exemple 2 : Problème de médecine

  ≤90 ≥0,   x

2

≥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  bicarbo nate et 24 grains de codéine codéine.. Détermin Déterminer er 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écisio décision n qui représe représentent ntent 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é véri rifi fiee bi bien en que que les les va vari riab able less de dé déci cisi sion on  x1 et  x2 son sontt 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 5 x

+ 8x

1

≥ 74 2

. que la prescription doit contenir  suivante doitlaêtre satisfaite : • Finalement contrainte imposée par le fait 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 +  xx 2 .

Le programme linéaire qui modélise ce problème médical est donc le suivant :  x1 + x2 2 x1 + x2

Min    s.c.  

  5 x1  

+ 8 x2 ≥ 74

 x1 + 6 x2

   x1

Exemple 3 : problème de production

≥ 12

≥ 24

≥ 0, x2 ≥ 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 : 1n P1 11Mm 7Mm2n 6M m3n 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 outrepour les contraintes  x1 + 9 x 2 ≤ 9900 • 11 la machine de M1non-négativité sont : • 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  x 2

 s.c.  

11 x1 + 9 x2

≤ 9900

  7 x1 +12 x 2 ≤ 8400   6 x1 +16 x2 ≤ 9600    x1

≥ 0, x2 ≥ 0

Exemple 4 : Problème d’alimentation 6 On se propose de réaliser une alimentation économique pour des bestiaux, qui cont co ntie ient nt ob obli liga gato toir irem emen entt 4 so sort rtes es de co comp mpos osan ants ts nutr nutrit itif ifs, s, A, B, C et D. L’in L’ indu dust stri riee al alim imen enta tair iree pr prod odui uitt pr préc écis isém émen entt deux deux al alim imen 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 Ddoit ; 1 Kg d’alimentpar N contient 100 g de B,Kg 200deg A de;C, deBD. Un animal consommer jour au moins : 0.4 0.6100 Kggde ; 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 0.1 0 0.1 0.2 10

A B C D Coût

N 0 0.1 0.2 0.1 4

Quantités prescrites 0.4 0.6 2 1.7

Ce genre delinéaire tableaucorrespondant. peut aider à mieux analyser le problème et ainsi formuler le  programme 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 x2 ≥ 0.6 ⇒  • C : 0.1 x1 + 0.2 x 2 ≥ 2 ⇒    x1 + 2 x 2 ≥ 20 0.2  x1 + 0.1 x 2 ≥ 1.7 ⇒   2  x1 + x 2 ≥ 17 • : La D fonction objectif est une fonction coût :  z  = 10 x1 + 4  x 2 . Le programme linéaire est un programme de minimisation : Min  

10  x1 + 4 x2

 s.c.  

 x1

≥4

   x2

≥6

 

 x1 + 2 x2

≥ 20

 

2 x1 + x2

≥ 17

   x1

≥ 0, x2 ≥ 0

7

Exemple 5 : Problème de mélange 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 alli liaages (en %) Plomb

A

B

C

D

E

F

G

H

I

Alliage à fabriquer 

10

10

40

60

30

30

30

50

20

30

Zinc

10

30

50

30

30

40

20

40

30

30

7

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 6

40 30 50 10 50 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, x C  ≥ 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’expres l’expression sion 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 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.1 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   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

   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   Nombrepar publicité de client   potentiel femme par   publicité

300

400

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 minimu minimum m 2000 fe femmes mmes reg regardent, ardent, eentenden ntendentt ou lisent lisent la publicité publicité ; 2. La camp mpaagne public licita itair iree dans la télé lév vis isiion ne doit pas dépasser  500 DT ; 3. Au moins 3 spots spots public publicita itaire iress seron serontt as assu surer 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 pub publicités licités da dans ns la radio ou dans le less 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 •  Nombre de clients femmes potentiels par publicité : 300  x1

+ 400  x 2 + 200  x3 + 100

x4

≤ 800

≥ 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 ≤ 80 800 0 + 20 x3 +10 x4 ≥ 2000

40 x1 + 75  x2

 ≤ 500

 x1

   x2

   x1 ≥ 0,   x2

≥3

 

≥2

 x

 

≥5

3  x3

 

≤ 10

 x4  

≥5

 x4  

≤ 10

≥ 0, x3 ≥ 0,   x4 ≥ 0 

CHAPITRE 2

11

 

Formulation d’un programme linéaire (PL) I. Introduction Après avoir illustrer par des exemples, comment un problè problème 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é linéair aire. e. Dans not notre reaxes. cas, on ne peut qua qualifi lifier er de bon, le choi choix x de 20 comme unité dans les deux 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 auc aucun unee de ce cess co contr ntrain aintes tes,, appe appelés lés so solut lutio ions ns non non 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 :

2 x1 + x2

≥ 12

.

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

corres corr espo pond nd à un demi demi-p -pla lan n limi limité té pa parr la dro roit itee  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 pa pass à la droite droite  x2 = −2 x1 + 12 ) et voir voir s’ s’il 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 relatifs tifs aux ci-de ci-dess ssous ous), ), on ob obtie tient nt les de deux ux au autre tress de demimi-pla plans ns π 2 et π 3 rela 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 à ch chaq aque ue cont contra rain inte te du pr prog ogra ramm mmee liné linéai aire re,, en d’ d’au autr tree te term rmee à π 1 ∩ π 2 ∩  π 3 (voir figure). x2 Ensemble des solutions réalisables

12

3

6

12

24

x1

Déf initio Défini tion n : Un ensemble E non vide est dit convexe si et seulement seulement si pour tout é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 [P1P2] appartient au demi-plan. Théo Th éorè rème me : L’intersection d’ensembles convexes (non vide) est convexe. Propo Pr oposi 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

Chaque Chaq ue po poin intt du segme segment nt qui rel relie ie les les po poin ints ts (6 (6,0) ,0) à (0,6) (0,6) re repr prés ésen ente te des des solutions qui engendrent une prescription avec 6 pilules des deux tailles. On peut tracer une infinité de droites représentent les différentes valeurs de la fonction objectif, toutes ces droites qui 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 :  x1  x 2 2  + = 1    5 x1 + 8 x2 = 7

Elle co Elle corre rresp spon ond d d’a d’aprè prèss le gr graph aphiq ique ue au point point (2 (2,8) ,8).. Donc Donc la pr pres escr 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



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.    

(1)  x1 + x2 ≤150   4 x1 + 2 x 2 ≤ 440   (2)

 

 x1 + 4 x2 ≤ 480    x1  

≤ 90  

x2

(2) (4)  B

110

(3) (4)

 Z=0



30

 D

   x1 ≥ 0,  x 2 ≥ 0

(3) (1) x1

 E 

40

la solution optimale est B(40,110)

Problème avec solution non bornée Max  

- 2 x1 + 3 x 2

 s.c.  

 x1 ≤ 5  

x2

 

2 x1 − 3 x 2 ≤ 6  

(1)

(2)

(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

(2) (2)

x1

(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

 s.c.  

2 x1    x1

+ 3 x 2

x2

+ 6 x 2 ≤ 30

≤ 10

   x 2 ≤ 4    x1 ≥ 0, x 2

 

 

(1 (1))

(2) (2)

 

(2)

(1) (1)

(3)

(3) (3)

 B

≥0

x1

10  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

 s.c.  

3 x1  

+ x 2

x2

+ 2 x 2 ≤ 40

 x1 ≤ 10

   x 2 ≤ 5    x1 ≥ 0, x 2

   

 

(1) (1)

(2)

(1) (1)

(2)

 

B

(3)

(3)

≥0

O



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 directeu directeurr –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



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

100 ⇔   − 50 ≤ λ  ≤ 100

On peut vérifier aussi que si : •  λ  < −50 alors la solution optimale est A 19

 

• • • • • •

 λ  = −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 à de deux ux va vari riab able les. s. Pa Parr cont contre re,, dans dans la pl plup upar 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 chapitre 7 (en version pour étudiant) supporte au plus 200 variables etdans 100 le 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

Max  

100  x1 +200  x2   x1 + x2   ≤150

 s.c.        

4 x1 +2 x2 ≤ 440  x1 +4 x2   ≤ 480  x1  x1

  ≤90 ≥0,   x

2

≥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 a21 x1 + a 22 x2

Max   c t  x  s.c  

 A  x +S  ≤b    X   ≥0, S  ≥0

= 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 objec objectif tif est nulle. Ceci expliqu expliquee le fait que leur existence simplement à uneprendre mise endes forme du  programme linéaire initial.soit Cestout variables d'écartliée peuvent 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 contrain contraintes tes 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 êtr êtree ca capa pable ble de retro retrouv uver er les so solu lutio 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’e l’ens nsem emble ble des des solut solution ionss qu quii sa satis tisfai faitt (3.2) (3.2)-(3 -(3.1 .1)) ce celle lless qui qui 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 êt être re en me mesu sure re de ch choi oisi sirr pa parm rmii le less solu soluti tion onss ré réal alis isab able less ceux ceux qui qui 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 43 = = 480 S  90 Cette Ce tte solut solutio ion n co corre rresp spon ond d à un po point int ex extrê trême me de l’ens l’ensemb emble le des des so solut lutio ions ns réalisables qui est l’origine O. Pour Po ur la méth méthod odee de simp simple lexe xe un unee so solu luti tion on ré réal alis isab able le de base base in init itia iale le es estt 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 va leur ur de la fo fonc nctio tion n ob obje jecti ctiff es estt en tra train in d’aug d’augmen mente terr ju jusq squ'à u'à lo loca calis 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 se second cond membre des des contrainte contraintess (les composants composants du vecteu vecteur  r  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

u el a V i

s

   A = (aij ) , 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 tou tes les variable variabless de déc décisio ision n  x1  ,..., S 4 dans la fonction objectif. Dans la troisième troisiè me ligne, on retrouve la première contraint contraintee 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

S1

150

6 x1 4

0

S2

440

1

7 x2 2

0 S1 1

0 S2 0

5

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

variab vari able less de base base.. A chac chacun unee de ces ces va vari riab able les, s, on as asso soci ciee la vale valeur ur 1 à l’intersection l’inters ection 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 re retro trouv uver er une une so solut lution ion ré réali 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ése représente nte 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 4 1 + première 0 × 1 + 0colonne 0 ×multipliant S 3 + 0 × S  =0  z 1valeur  = 0 ×  z  + 0calculée  4 la  S 2 + en × 1 = 0de × 1 + 0 ×de × La z S  est les coefficients 1 la matrice  A relatifs à la variable  x1 par les coefficients ci de la première colonne. Généralement, on a : a × c  z  j = ∑ ij i

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 Da ns no notr tree ex exem empl ple, e, l’ef l’effe fett ne nett su surr la fo fonc ncti tion on obje object ctif if en enge gend 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  engend engendre re un profit de 100 dinars, et qu’u qu ’une ne au augm gmen enta tati tion on d’un d’unee un unit itéé de la va vale leur ur de  x2 eng engen endr dree un pr profi ofitt 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   xx2 ? 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 ii,, i=1, 2, 3, 4 sont des variable variabless 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

200  x2 1 2 4 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 100

0 200

0 0

0 0

0 0

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   xx2 et l’ensemble des variables variab les 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. ligne Diviser Diviser le lig ligne ne dedepivo pivot t parde la pivot. valeu valeurr de l’élé l’élément ment de pivot pivot pour pour trouver trouver la transformée la ligne

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 chacun chacunee des varia variables bles de bas base, e, on asso associe cie la valeu valeurr 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 calcul calculer er le reste des vale valeurs urs du tableau, tableau, on opère à des combi combinais naisons ons linéaires dans le précèdent tableau de simplexe. Par exemple pour calculer la linéaires 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 =30

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

 

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éri vérifie fie tou toujou jours rs que les les co colo lonn nnes es de la mat matric ricee re relat lativ 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éri vérifier fier aussi qu quee l’ensemb l’ensemble le des solutio solutions ns réalisa réalisables, bles, induit par par les contraintes décrites dans le dernier tableau de simplexe, est le même que celui ce lui représ représen enté té par par les co cont ntrai raint ntes es initi initiale ales. s. La règle règle de pi pivot vot es estt une une 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é réalis 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. 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.

d)

Ayantt ret Ayan retrou rouvé vé une une nouv nouvell ellee solut solutio ion, n, on veut veut sa savo voir ir s’il s’il es estt poss possibl 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 4 0 0 /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 0 200

x1 S 2 x2

40 60 110

100  x1 1 0 0

S 4 solution 50 0 Cette0nouvelle

200  x2 0 0 1

0 S 1 4/3 -14/3 -1/3

0 S 2 0 1 0

0 S 3 -1/3 2/3 1/3

0 S 4 0 0 0

0

-4/3

0

1/3

1

30

 

 x1 = 40  x2 = 120 S 1 = 0 S 2 = 60 S 3 = 0 S 4 = 50

correspond point Boptimale qui est, du d’après les résultats par laà ce méthode graphique, graphi que, laausolution problème. Ainsi, il retrouvée faut s’attendre que la métho mé thode de de simpl simplex exee re reco conn nnai aiss ssee ce cette tte soluti solution on co comme mme éta étant nt la so solut lutio 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 2 0 0 /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 - 1 0 0 /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 pe peut ut géné généra rali lise serr ce ré résu sult ltat at en disa disant nt que que la solu soluti tion on opti optima male le d’ d’un 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

Justification

1. Fo Form rmul uler er un pr prog ogra 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. Ecr Ecrire ire le prog progra ramme mme lin linéa éaire ire sous sous une forme standard 4. Cons Constr trui uire re le pr prem emie ierr tabl tablea eau u de simplexe 5. Ch Choi oisi sirr co comm mmee va vari riab able le en entr tran ante te dans la base celle qui admet le plus grand effet net positif c j-z  j.

Pour obtenir une représentation mathématique du problème Ceci est nécess nécessaire aire pour pour obtenir obtenir comme comme variable de base initiale l’origine Mettre Mett re 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 in indiq dique ue la qu quan antit titéé d’augmentation de la fonction objectif si on augmente la valeur de x j d’une unité.

i ij Q /a 6. Ch Choi oisi sirr qui la admet vari variab able le so sort rtan ante te de la La indique le plus maximal petite valeur de de  base celle le plus petit ratio nombre d’unité  x j qu’on peut supérieur à zéro. introduire avant que la variable de base de l’ième ligne ne soit égale à zéro. 7. Co Cons nstr trui uire re le nouv nouvea eau u tabl tablea eau u en Ce Cett ttee rè règl glee nous nous perm permet et entr entree autr autree de utilisant la règle de pivot calculer les valeurs des nouvelles variables de décision 8. Faire le test d’op ’optima mali lité té.. Si Si (c j-z  j) ≤ 0 alors on n’a pas d’intérêt à (c j-z  j) ≤ 0 pour pour tout toutes es les les va vari riab able less faire entrer dans la base aucune de ces (hor (horss ba base se), ), la so solu luti tion on ob obte tenu nuee est est variables. Une telle introduction engendra donc optim imaale. Sino inon re rettourner à une diminution de la fonction objectif. l’étape 5.

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 SC

3x1 + 2x2 - 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’e L’effe ffett ne nett de l’a l’aug ugmen mentat tation ion d’ d’un unee unité unité 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

S 3 x2

1 5 /4 1 3 /4

3

x1

5/2

3  x1 0 0

2  x2 0 1

0 S 1 5 /8 3 /8

0 S 2 - 1 /8 1/8

0 S 3 1 0

1 3 0

0 2 0

-1/4 0 0

1/4 1 -1

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 ressor ressortir tir 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 ème

3

contrainte, devient le suivant. Male x programme 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 estt imp es impor ortan tantt de dis distin tingu guer er en entre tre une une solut solutio ion n ré réell elleme ement nt réa réalis lisab able le et une une 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 di dimi minu nuti tion on impo import rtan ante te de la va vale leur ur de la fo fonc ncti tion on obje object ctif if.. Ce qui qui nous nous 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 10

avec M un très grand nombre (exemple: M  ≥ 10 ) . 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êm mêmee manièr manièree que que pr préc écéd édemm emmen entt es essa sayo yons ns de re retro trouv uver er la va varia riable 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 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

-M

A2

5

0 5 0

(1) 0 -1 0 1 5 3-M 0 M 1 -M   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 êt être re séle sélecti ction onnée néess à l’i l’itér térat ation ion su suiva ivante nte,, ni même même ul ultér térie ieure uremen mentt comme peut àfacilement colonne on relative  A1 et A2. le constater. Donc on peut supprimer du tableau la 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

0

0

3   ↑

5  x1 0

6  x2 0

0 S 1 5/8

0 S 2 1

1 0 5 0

0 1 6 0

-3/8 5/8 1 5 /8 -15/8

0 0 0 0

 

0

S 2

5

5 6

x1 x2

6 10

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 non variable valeur négative nulleentrante de l’effetest netcelle c j - z  j.à laquelle on associe la plus petite 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 5 8 0 1 6 0 8M 15 -M 1-8M 1-15M M ↑ 

0 -1 0 -M M

0 0 -1 -M M

1 0 0 M 0

0 1 0 M 0

0 12 0 3 7 /4 1 4 M   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

 

Attribuer un coefficient nul Attribuer un coefficient nul III- de type « ≥ » Ajouter une variable  pour la variable d’écart et un  pour la variable d’écart et arti rtific ficiell llee et une coefficient - M pour variable un coefficient M pour  variable artificielle variable d’écart avec artificielle un signe "-" 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 Fo Formu rmuler ler un pr prog ogram ramme me linéa linéaire ire  pour le problème réel.  pour le problème réel. 2 Vérifier qu quee le sseecond me mem mbre d du u 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 p prrogramme li lin néaire so sou us Ecrire le programme linéaire sous une forme standard une forme standard 4 Construire le premier tableau de Con Constr struir uiree le pre premie mierr table tableau au de simplexe simplexe 5 Choisir comme variable entrante Cho Choisi isirr comme comme va varia riable 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 va varriable so sorrtante de llaa Cho Choisi isirr la varia variable ble so sorta rtante 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 Con Constr struir uiree le nouv nouvea 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 Fa Faiire le te tesst d’o ’op ptima 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 es estt opti optima male le.. Sino Sinon n re reto tour 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 éq uiva valen lentt à résou résoudre dre un pr prob oblèm lèmee ma maxx -c x suje su jett au même même ense ensemb mble le de cont co ntra raint intes es ». Ces Ces de deux ux prob problèm lèmes es sont sont éq équi uival valen ents ts dans dans la mesur mesuree où ils donnentt le même vecteur des solutions optimales. La seule différen donnen différence ce 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é méth thod odee de si simp mple 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 se sect ctio ion n aux aux pr prob oblè lème mess irréguliers, irrégul iers, qu'on peut renc rencontrer ontrer lors de la réso résolution lution d’un pro programme gramme 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éalisab les 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

S 1 a1

2 10

 

4 -M

x1 a1

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 1 0 /3

-M a1 0 1 -M   0

 

  Le tableau de simplexe ci-dessus est optimal avec une variable artificielle dans la base. Remar Rem arque que : Un pr prog ogra ramm mmee de ma maxi ximi misa sati tion on ou de mini minimi misa sati tion on avec avec

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 obje object ctif if (z = 0) es estt égal égalee à la pe pent ntee 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 ga rdant ant toujo toujours urs une une inters intersec ectio tion n no non n vid videe avec avec l’ens l’ensem emble ble des des so solu lutio 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

Sc

x1 + x2 - S 1 + a1 = 2 x2 + S 2 = 3  x1 , x2 , S 1 , S 2 , a1  ≥  0 Les tableaux de simplexe sont :

-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

x2 S 2

2 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

 

? 2 0

 x2

3

S 1

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, x2 ,  , x3 ,  , S 1 ,  , S 22,, 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 encor encoree dans la  base. Choisissons arbitrairement de faire sortir de la base la variable d’écart S 1.   2

0

3/2

 x1 1 0 0 2 0

 x2  x3 2 x1 2 -1 0 0 S 2 0 2 1 0 S 3 1 2 1 -2 0 2 3/2   ↑  La nouvelle solution réalisable de base est :  x1 = 0  x2 = 0  x3= 1

0

0

0

S 1 1 --2 2 -1 2 -2

S 2 0 1 0 0 0

S 3 0 0 1 0 0

-2 0 1 /2

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   xx2 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  x2. On remarq marqu ue aus usssi que ce passage d’u ’un ne solut utio ion n à une autre tre ne 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 so luti tion on op opti tima male le.. Ce ge genr nree de cy cycl clag agee da dans ns la méth méthod odee de si simp mple lexe xe es estt 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 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). Sc

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 son sontt comp composé osées, es, des coef coeffici ficients 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 dispon disponibilité ibilité 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’a griculte ulteur, ur, l’excéd l’excédent ent de cha chacun cunee 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.. Dan Danss le prob problèm lèmee de l’agr l’agricu iculte lteur ur le less cont contrai raint ntes es te terra rrain 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épens es, par rappor rapportt à 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 au moindre coût. à transformer des biens pour vendre une production Si lebiens problème posé consiste 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 ma rgina inale le de ce bien. bien. Trè Trèss souv souven ent, t, on emplo emploie ie ég égal aleme ement nt dans dans ce ca cass 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é.. Pa Parr la su suite ite 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

x2

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  = 10 100 0 ( − 4 3 S 1 + 1 3 S 3 + 40) + 20 200 0 (1 3 S 1 − 1 3 S 3 + 11 110 0)  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

+ x 2 ≤ 15 153 3

4 x1

+ 2 x2 ≤

+

 x1  x1

x2

4 x2 ≤ 90

44 440 0



48 480 0

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 valeu Les valeurs rs ma margi rgina nale less ap appor porten tentt do donc nc de dess rense renseign ignem emen ents ts éc écon onomi 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 ≤ 44 440 0  x1 + 4 x 2 ≤ 48 480 0

 x1

≤ 90

,  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 linéaire de type maximisation est Maxforme d’un  z  =programme c t x S .C 

 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 



 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

x2

+ 200

+ x 2 ≤ 150 150

4 x1

+ 2 x2 ≤

 x1

+ 4 x2 ≤

 x1

≤ 90

 x1

≥0

44 440 0

48 480 0

,  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 Su ppos oson onss qu qu’u ’un n ag agri ricu cult lteu eurr (c (cli lien ent) t) voud voudra rait it ache achete terr la to tota tali lité té de nos nos ress ressou ourc rces es di disp spon onib ible les. s. No Notr tree ag agri ricu cult lteu eurr acce accept pter eraa cert certai aine neme ment nt ce cett ttee  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 Ta ndis is qu que, e, un he hect ctare are de terra terrain in,, 2m 3 d’ d’ea eau u et 4 heur heures es de tra rava vail il lu luii engendrent un revenu de 200 dinars.

52

 

Il n’est prêt à vendre ses ressources que si  y1 + 4 y 2 + y 3 + 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 Min

150  y1

+ 440  y 2 + 480  y 3 + 90

+

+

S .C 

 y1  y1

4 y 2 + 2 y 2

 y 3 y 4 100 100 + 4 y 3 ≥ 200 200

 y1



0

,  y 2

+



y4



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 66   - z 66   = 0  L1 = 0 ↔  C 1 - z 1 = 0  L2 = 0 ↔  C 2 - z 2 = 0 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 66 = = 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

-

Max Matrice des contraintes (m, n)

- Second membre des contraintes - Coefficient de la fonction objectif   Nombre de contraintes

Min - Transposée de la matrice des contraintes (n, m) - Coefficient de la fonction objectif  - Second membre des contraintes  Nombre de variables principales

ème

ème

i ème contrainte de type « ≤  » i contrainte de type « ≥  » i ème contrainte de type « = »

i ème variable de type « ≥  0 » i 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 « = »  

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, x2∈ 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 sensibilité sur ces différents paramètres du programme linéaire l’exemple de 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+ 20 0 0 0 0 0 ∆  x1  x2 S 1 S 2 S 3 S 4 100+∆  x1 40 1 0 4 /3 0 -1/3 0 0 S 2 60 0 0 - 1 4 /3 1 2/3 0 200 x2 110 0 1 -1/3 0 1/3 0 0 S 4 50 0 0 -4/3 0 1/3 1 (100100+ 20 (200+4∆  )/  0 0 0 ∆ ∆  )/3 3 0 0 0 0 ∆ -100/3 (200+4∆  )/  3 La solution donnée par le tableau reste optimale si

 (2 + 4∆ 0) 0 − ≤ 0  3 ∆ ≤ −5 0  ⇔    ⇔ − 5  ≤ ∆ ≤ 01 ∆ − 1 0 0  ∆ ≤ 1 0 0 ≤0  3 Donc la solution optimale est stable et prend la même valeur  (x1 , xx2 )=(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 b1 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 le tabl Dans tablea eau u op opti tima mal, l, la co colo lonn nnee co corr rres espo pond ndan antt à S 1 no nous us donn donnee le less 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

- 1 0 0 /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,  xx2 ,S   ,S 1 ,S   ,S 2 ,S   ,S 3 ,S   ,S 4 )=(44,109,0,46,0,46)  )=(44,109,0,46,0,46)) Rem arque Remar 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 b1 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  4∆ 1 − ∆ 2 ≥ − 1  6 + 1 0/3∆ 4+ 2/3∆ ≥ 0  7∆ + ∆ ≤ 9  1 2 12  1 + 11/3∆ 1 + 10/3∆ 2 ≥ 0 ⇔    ∆ 1 − ∆ 2 ≤ 3  5 + 4/03∆ 1 − 1/3∆ 2 ≥ 0  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 aij 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 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 * * *  x1* + 4 x * 480 0 et ∂   x 2 + S3 = 0 ,   x 2 ≥ 0 . 2 = 48 Si δ    ≤  0 , alors on a un excèdent de la 3ème ressou ressource rce (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 es estt total totaleme ement nt utili utilisé sée, e, il es estt 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 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 *

*

*

  S2 = 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 S i − ∞ ≤ δ ij ≤ aij d’une valeur δ  ij égale à  x* et la solution optimale demeure stable.  j

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 aij 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 pe peut ut égale égaleme ment nt utili utilise serr ce cess co coûts ûts ma margi rgina 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  xx3 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). ème

Cett Ce ttee cont contra rain inte te corr corres espo pond nd à la 3  programme linéaire ci-dessus : * On a :  y1 =

• • •

100 100 200 * *  ,y 2 = 0 et y 3 = 3 3

cont co ntra rain inte te du pr prog ogra ramm mmee dual dual du

, 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 env envers ers 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 solu même solutio tion. n. Sinon Sinon l’i l’int ntrod roduc uctio tion n de ce cette tte contr contrain ainte te va en enge gend ndrer rer une une 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 util Pour utilis iser er ce cett ttee ve vers rsio ion n de Lind Lindo o il es estt co cons nsei eill lléé d’ d’av avoi oirr au moin moinss un  processeur  proces seur 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 Wi Wind ndow ows. s. 2. Insérer Insérer le CD CD-ROM -ROM o ou u la disq disquett uette. e. 3. Cliquer ssur ur l’icô l’icône ne Setup (install (install)) dans vo votre tre exp explorateur lorateur de Windows Windows 4. Suivre Suivre les les instruc instruction tionss su surr l’é l’écran cran www.lindo.com   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 p problème roblème de ll’agriculteur  ’agriculteur  Le programme linéaire qui modélise le problème de l’agriculture est :

62

 

Max  

100  x1 +200  x2   x1 + x2   ≤150

 s.c.        

4 x1 +2 x2 ≤440  x1 +4 x2   ≤480  x1  x1

  ≤90 ≥0,   x

2

≥0

b. Introduction des données Double cliqu liqueer sur l’i l’icône «lind indo 6.0 fo forr Window dows » 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  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 "pim ents". ". Une autre cara caractér ctéristi istique que est que Lindo ne fait pas de différe différence nce entre majuscule majuscule et minuscu minuscule. le. 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  tcot  t e r r a xi1 _  n )+  _  x2 _ <  _ =1 5 0 e a u 4) _  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 av avoir oir int intro rodu duit it les di diffé ffére rents nts paramè paramètr tres es es estt le suivant : 

On n’a pas à ajouter les contrai contraintes ntes 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éai linéaire, re, on passe maintenant maintenant à la résolution. Pour rés Pour résoud oudre re notr notree prog programm rammee il fau fautt cliq cliquer uer sur le bouton bouton « » 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) Stat Status us : Opt Optimal imal ; Il nous nous infor informe me sur l’éta l’étatt de la solution solution actuelle actuelle.. Elle peut être Optimal (optimale), Feasible (réalisable), Infeasible (non réalisable) ou Unbounded (non bornée).  b) Iter Iteratio ations ns : 2 ; Il indiqu indiquee le nombre d’ité d’itérati rations ons néces nécessair sairee 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 ; Cec Cecii indique la q quantité uantité de violation d dans ans les contraintes contraintes.. d) Objectiv Objectivee : 26000 26000 ; C’est la valeur de fonct fonction ion objec objectif tif relative relative à la solution solution actuelle. e) Best IP : N/A ; C’est la meil meilleu leure re valeur valeur de la fonction fonction obje objectif ctif.. Ceci n’est vrai que pour les problèmes de type entier. f) IP Boun Bound d : N/A ; C’est la born bornee de la fonc fonction tion object objectif if pour cett cettee solution. solution. Ceci n’est vrai que pour les problèmes de type entier. g) Branche Branchess : N/A ; C’es C’estt le nom nombre bre de var variabl iables 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’es C’estt 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. Leu Leurs rs va valeu leurs rs sont sont do donn nnée éess dans dans la de deux uxiè ième me co colon lonne 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ée Créerr un nouvea nouveau u do docume cument. nt. 66

 

 b) Open : Ouv Ouvrir rir un docume document nt existant existant et le placer dan danss une fenêtre fenêtre d’éditio d’édition n (cette fenêtre a une capacité maximale de 64000 caractères). c) View View : Ou Ouvr vrir ir un do docu cume ment nt ex exis ista tant nt da dans ns une une fe fenê nêtr tree de vi visi sion on (v (vie iew 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 : En Enregistrer registrer.. Le format par d défaut éfaut est le *.ltx, *.ltx, et c’e c’est st le format texte texte de Lindo. e) Sav Savee as : Enre Enregis gistrer trer sou sous. s. D’autr D’autres es forma formats ts sont prése présents nts 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 : fer ermé mé.. g) Pr Print int : Imp Imprim rimé. é. h) Priter Priter setu setup p : propr propriété iétéss de l’imp l’imprima rimante. nte. i) Log Out Output put : Pour ouvrir ouvrir ou ferm fermer er des log fil filee utili utilisés sés pou pourr enregistr enregistrer er les résultats de votre session.  j) Take Comm Command andss : P Pour our exé exécute cuterr de dess macros macros.. k) Bas Basis is Read Read : Po Pour ur ch charg arger er du disq disque ue un unee so solut lutio ion n de base base pour le modèl modèlee actif. l) Basis S Save ave : Enregistrer Enregistrer sur le dis disque que la solution de bas basee du modèle modèle actif. actif. m) Title : Afficher le no nom m pour le modèle act actif. if. n) Date : A Affic fficher her la date date.. o) Ela Elaps psed ed Ti Time me : Aff Affich icher er le temps temps éc écou oulé lé depu depuis is le comme commenc nceme ement nt de la session.  p)) Exit  p Exit : Qu Quitt itter er Lind Lindo. o. 2. Edition

67

 

a)  b)  b) c) d) e) f)

Undo :Ann :Annule ulerr la derniè dernière re opé opérati ration. on. Cu Cutt : Co Coup uper  er  Co Copy py : C Cop opie ier  r  Past Pastee : Coll Coller  er  Clea Clearr : Effa Efface cer  r  Find /Rep /Replac lacee : R Rech echerch ercher/R er/Remp emplace lacer  r 

g) Options : Uti Utiliser liser pour mo modifier difier les paramètre paramètress par défa défaut ut du système. système.

h) Go to Lin Linee : aller à la ligne numéro .. de la fe fenêtre nêtre ac active. tive. i) Paste S Symbol ymbol : Elle af affiche fiche un unee fenêt fenêtre re de d dialogue ialogue 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) Se  j) Selec lectt Al Alll : Sélec Sélectio tionn nner er Tou Toutt k) Cle Clear ar Al Alll : Effac Effacer er ttout out l) Choo Choose se New Font Font : Choi Choisir sir les p poli olices ces da dans ns la fen fenêtr êtree activ active. e.

68

 

3. Solve

a) Solve : Résou Résoudre dre le modèle dont la fenêtre est active active   b) b) Compil Compilee Mo Mode dell : Com Compil piler er (s (san anss ré réso soudr udre) e) le modèle modèle dont la fe fenê nêtre tre es estt active c) Debug : Débugger le modèle d dont ont la fenê fenêtre tre est activ active, e, 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éte cte l’e l’ense nsemble mble des con contra trainte intess (su (suffic fficient ient set), set), dont dont l’élimin l’éliminatio ation n est suffi suffisa sante nte po pour ur ga garan rantir tir un unee solu solutio tion n op optim timale ale.. Et il dé déte termi rmine ne auss aussii un ense en sembl mblee de co cont ntra raint intes es (ne (nece cess ssar ary y se set), t), dont dont 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 suffisa suffisante nte pour garantir une solution opti op tima male le.. Et il dé déte term rmin inee au auss ssii un ense ensemb mble le de vari variab able less de déci décisi sion on (neces (ne cessary sary set) set),, don dontt la modi modifica fication tion ent entraîn raînee nécess nécessaire airement ment un modèle modèle  borné. d) Pivot Pivot : Une des opérat opérations ions fondame fondamental ntales es dans la méthode méthode de Simplex Simplexee 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 ième

sortante est la variable d’écart de la contrainte dans la 4

Le rapport suivant s’affiche :

69

ligne.

 

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 es estt ég égale ale à la valeu valeurr op optim timal alee déjà déjà trouv trouvée ée.. Plus Plus pr préc é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 supplémentaire émentaire de main d’œuvre (Y3). Les quantités disponibles sur le marché respectivement pour Y1, Y2 et Y3 sont de 10 hectaress de terrain, 5 m3 d’eau et 4 heures de main d’œuvre. On appelle G le hectare gain issu de la culture ture et D les les dépenses d’a ’acchat des re resssourc rcees 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 do donne nne la marge de variation variation des coef coefficients ficients 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) Statistic Statisticss : Cette commande affi affiche che des statisti statistiques ques relative relativess au problème actif dans la fenê fenêtre tre du rapport tel que le nombr nombree de v variables ariables 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 surLeles variables duales quisuivant leurs sont de l’agriculteur. résultat est le tableau : associées dans le problème

74

74

 

f) Pict Picture ure : Cette command commandee perme permett de créer un text textee ou une figur figuree 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) Basi Basiss Pic Picture ture : Cett Cettee command commandee affich affichee dans la fenêtre fenêtre rapport rapport une figure figure qui représe représente nte la matrice de base actuelle actuelle (rela (relatif tif à 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 comma commande nde affic affiche he le tablea tableau u de Simple Simplexe xe 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) For Formula mulation tion : Elle permet de visua visualise liserr 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 Colum Column n : Cette co comman mmande de vien vientt s’ajo s’ajoute uterr à 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) Po Posi siti tive ve Defi Defini nite te : Ce Cett ttee co comm mman ande de es estt ut util ilis isée ée pou pour le less pro robl blèm èmes es quadratiques pour s’assurer que la valeur optimale est globale. 5. Window

a) Open Com Command mand Win Window dow : Cette comma commande nde ouvr ouvree une fenêtre fenêtre de dialogu dialoguee qui sert à éditer des macros pour Lindo.  b  b)) Open Open Sta Status tus Wind Window ow : Ce Cette tte co comma mmand ndee ouvre ouvre la fenêt fenêtre re de dialo dialogue gue qui affiche l’état du programme Lindo (Lindo Solver Status). c) Se Send nd to Back Back : Cet Cette te co comma mmande nde est uti utilis lisée ée pour pour balanc balancer er le less fenêt fenêtres res en arrière plan. d) Cascade Cascade : Cett Cettee comm command andee arra arrange nge les fen fenêtre êtress qui s’affiche s’affichent nt sur l’écran l’écran sous une forme dite cascade. e) Title : Cette Cette comman commande de arran arrange ge les fenêt fenêtres res de maniè manière re à redimensionner redimensionner ces ces fenêtres et les afficher horizontalement ou verticalement selon votre choix. f) Close All : Cette commande permet de ferm fermer er tou toutes tes les fenêtres fenêtres actives. actives.

76

 

g) Arrange Ic Icons ons : Cette ccommande ommande pe permet rmet d’arra d’arranger nger les fenêtres fenêtres réduites réduites sous forme d’icône. 6. Help

a) Contents : Cette commande ouvre la fenê fenêtre tre d’a d’aide ide 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 Us Usee He Help lp : Ce Cett ttee co comm mman ande de affi affich chee un menu menu qui qui in info form rmee sur sur la manière dont on peut utiliser le menu Help. d) Ab Abo out LI LIN NDO DO… … : Ce Cettte comm mmaande affic fiche concernant la version du logiciel Lindo utilisé.

que quelques

in inffor orma mati tio ons

VI. Programmation à nombres entiers On peut utiliser Lindo pour résoudr résoudree des problème problèmess 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 que que da dans ns le pr probl oblème ème de l’ag l’agric ricul ulteu teurr le less 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 Ap rès avoir avoir termi termine nerr l’édit l’édition ion de dess co contr ntrain aintes tes il faut faut ajout ajouter er la co comma mmand 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 : « IN INT T_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és résoudr oudree tou touss les exerc exercices ices de la séri sériee 1 en utilisan utilisantt le Logiciel Logiciel Lindo. B) Pro Problèm blèmes es de tran transpo sport rt : Une entre entrepri prise 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

Capacité du dépôt 30 25 21

79

 

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 Co ntra rair irem emen entt à la pr prog ogra ramm mmat atio ion n liné linéai aire re,, il n’ n’y y a pas pas un fo form rmal alis isme me mathé ma thémat matiqu iquee stand standard ard.. C’e C’est st une une app appro roch chee de résol résoluti ution on où les éq équa uatio 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

1

4

3

4 3 3

2

4 4

1

4

5

2

5

3 10

3 3

1

4

8

6

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 ensusceptibles partant de la villetraversées. numérotéeLes 1. arcs Les entre autresces numéros représentent les villes d’être 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’o ’ob bjectif tif est donc de tr tro ouver la vale leu ur 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, xn  ))  pour chaque destination  xn   possible, puis de retrouver la meilleure destination *  x n (celle qui correspond au plus petit coût  f(S, xn  ))) 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  xx3+   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  xx2+   f  3* (x2 )  ) x2

5

6



  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  xx1+   f  2* ( x1 )  ) 2 3 4

S  1

13

11

112

repr prés ésen ente te le co coût ût to tota tall mini minima mall de la poli police ce La va vale leur ur de   f  1* (1) = 11 re 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 ut utili ilisa sant nt la pro progr gramm 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 ba base se de l’ex l’exem empl plee pr préc écéd édan antt an anal alys yser er le less  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 à  prendree est celle de la destination à choisir. Ces décisions sont interdépendantes  prendr interdépendantes et séquentielles. (ii) A chaque étape correspond un certain nombre d’états. Dans l’exemple du

voyage voya geur ur,, le less état étatss à chaq chaque ue étap étapes es so sont nt re repr prés ésen enté téss par par le less vi vill lles es que que le voyageur voyage ur 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 (  xxn∈ 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’é l’état tat ac actu tuel el co conti ntien entt toute toute l’i l’inf nform ormati ation on néce nécess ssai aire re au aux x 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  xxn +

  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 rel relat ation ion de réc récur urren rence ce à toujo toujours urs ce cette tte fo forme rme {f n(S,xn )},  )}, avec  f n(S,xn )  ) est une expression en fonction de S, xn et

Min

Max

*

  f  n

(S)=

 x n

ou

 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

états n+1

  f  n* (s)

*  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 Da ns ce cett ttee sect sectio ion n on s’in s’inté tére ress ssee au pr prob oblè lème me di ditt 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 Sn 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   ) = C  s  xxn + f n+1  ), n=1,...., 8   n(S, xn ) 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 77 (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 66 (S, (  S, x6   ) = C   s  x x6 + f 77 (  x7  ) 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   f  *

x5

 s 5  f 5(s, x5  ) (x =  )C   x + 6 6  1 2 3 4

*

S  1 2 3 4 5

16 16 -

11 12 -

8 10 -

1 11 1 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

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

12

12

-

-

12

2

2 3

-

12 -

16 13

1 17 7

12 13

2 3

  f  2* (s)

*  x 2

15 14

1 ,2 3

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

9 B B

La longueur du chemin optimal (1 ou 2) est égale à 18. c. Répartition optimale des moyens Un pr proj ojet et du gouv gouver erne neme ment nt est est étud étudié ié pa parr 3 gr grou oupe pess de cher cherch cheu eurs rs.. La  probabilité  probab ilité 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  Probabilité d’échec Groupes

 Nbre de nouveaux chercheurs 1 0 ,4 0 ,2 0 ,1 5

0 1 2

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 re repr prés ésen ente tent nt le no nomb mbre re de cher cherch cheu eurs rs disponibles • Variable de décision:  xn rep représ ré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  ) *

avec  f n(S, xn )  ) = pn(xn  )) ×     f  n  xn et   f  3* (s) =1.

 

étape n S

1 +

n = 1, 2, 3

(S, xn )  ),  pn(xn) est la contribution de la décision

étape n+1 S- xn

88

 

 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 ,4 8 0 ,3 0 ,1 8

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 ,0 7 2

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

Solde 4% 5%

30 40 50

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

*



Pour  n = 1,...,5, avec   f  7* (S)=0

n

  f  

(S)=

 D n − S ≤ x n

* 1 n+

{ φ  φ  (x ) +0,2(S+x -D )+   f   n

n

n

(S+xn-Dn )}

90

 

Etape 6

A la dernière étape le stock restant est nulle donc les états possibles de cette étape sont 0, 10, 20. *

*  x6

  S 6 6 

  f  6

0 10 20

(s)

 x6

86 84 0

20 10 0

Etape 5

S 6 6 = S 5 + x5 – 30  f 5(s, x5 )=  )= φ  (x5 )  ) +0,2(S+x5-30)+

  S 5

 x

5

0 10 20 30 40

0

10

  f  6* (S+x5-30)

 f 5(s, x5  )) 20 30 100 50

- 204 188 164 - 172 1 16 68 14 142 - 134 1 13 36 12 122 86 98 90 50 52 -

  f  5* (s

*

 x5

 ) 164 142 122 86 50

50 40 30 0 0

  f  4* (s

*  x4

Etape 4

S 5 = S 4 + x4 - 40  f 4(s, x4 )=  )= φ  (x4 )+0,2(S+x  )+0,2(S+x5-30)+   S 4

0

 x

4

0 10 20 30 40

10

*

  f  6

(S+x5-30)  f 4(s, x4  )) 20 30 40

- 250 - 212 230 164 192 212

282 262 244 210

302 282 264 230 196

50

 ) 304 302 286 282 252 250 218 218 164

Etape 3

S 4 = S 3 + x3 - 30 * 4

 f  (s, x  )= φ  (x  )+2/3+1/3-30)   f   (s4 )  ) 3

3

3

40 3 0 ,4 0 20 10 0

91

 

  S 

 x

3

0 10 20 30 40

0 302 284

10 3 50 3 32 3 02

20 3 88 3 70 3 40 3 10

30

50

  f  3* (s

 x3*

41 4 38 4 32 3 -

 ) 414 384 323 302 284

50 50 50 0 0

40

4 20 4 02 3 72 3 42 2 90

4 22 3 92 3 62 3 10 -

Etape 2

S 3 = S 2 + x3 - 20  f 2(s, x2 )=  )= φ  (x2 )+0,2+  )+0,2+ (S 2 + x2-20) (s3 )  )

  f  3*

   x

*

* 2

0

10

20

30

40

50

41 4 38 6 33 6

462 434 384 356

500 472 422 394 378

504 454 426 410 -

474 446 430 -

467 452 -

  f  

2

(s)

 x

2

S  0 10 20 30 40

468 446 414 384 336

50 40 0 10 0

Etape 1

S 2 = S 1 + x1 – 40

  S 

 x

1

0

* 2   f  

 f  (s, x  )= φ  (x )+0,2+ (S  + x -40) (s2 )  ) 0 10 20 30 40 50 1

-

1

1

-

-

1

-

6 06

1

608

*

  f  1

(s

 ) 606

 x1*

40

la politique optimale est 40, 50, 0, 40, 50, 0. Le coût est 606. d. Résolution d'un programme linéaire La prog programm rammatio ation n lin linéair éairee peut êtr êtree util utilise iserr pour pour 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 état étatss doi doiven ventt fou fourni rnirr l'informa l'information tion nécessaire nécessaire pour pour 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  xxn )

  cn xn *

f n(( R1,R2  R1,R2) ,  , xn) = cn xn +   f  n

1 +

((  R R1- a1n xn , R2- a2n  xxn ))

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 ét état atss 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     f  2* (s)  x2* 0 1 2  x

2

93

 

S  9 ,1 1 6,7 3,3

0 0 0

5 5 -

10 -

10 5 0

2 1 0

Etape 1   1 , R2- 4 x1 )) R1- 3 x  R1,R2) ,  , x1) == 3 x1 +   f  2* ((  R On a :  f 1(( R1,R2

 f 1(( R1,R2  R1,R2) ,  , x1)  0 1 2

 x

1

S  9 ,1 1

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: 4x1 + 5x2 S.c 8 x1 + 5 x2 ≤  24 2 x1 + 5 x2 ≤  13 x1 ∈ IN , x2 ∈ IN  La solution optimale est (  xx1 ,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 (  xx1 ,x  ,x2 ,x  ,x3)=(1,1,2). •

Max

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF