Vous êtes sur la page 1sur 13

Programmation num´erique en g´enie chimique

Gilles Savard

4 La programmation lin´eaire (r´ef : V. Chv´atal, Linear Programming, W.H. Freem an, 1983.)

Nous d´efinissons le probl`eme de programmation lin´eaire dans ce chapitre. Apr`es la pr´esentation de deux exemples et de quelques d´efinitions, nous pr´esentons `a la section 4.2 les principales id´ees sous-jacentes `a l‘algorithme du simplexe. La section 4.3 pr´esente de fa¸con formelle cet algorithme.

4.1 Intro duction `a la programmation lin´eaire

Nous consid´erons dans un premier temps un probl`eme d’intro duction classique de la programmation lin´eaire.

4.1.1 Exemple 1 : le probl`eme de la di`ete 1. Le probl`eme :

On d´esire d´eterminer un menu quotidien de fa¸con `a minimiser les co uts,ˆ tout en satis- faisant `a certains b esoins ´el´ementaires. En particulier, le menu doit contenir au moins :

– 2000 kcal

– 55 gr de prot´eine

– 800 mg de calcium

On d´ecide de choisir parmi 6 aliments dont les valeurs nutritives et les co utsˆ sont in- diqu´es dans le tableau suivant :

 

Portion

´energie (kcal)

Prot´eine (gr)

Calcium (mg)

Cents/p ortion

Avoine Poulet Oeufs Lait Tarte aux cerises Porc et f`eves

28

gr.

110

4

2

3

100

gr.

205

32

12

24

2 larges

160

13

54

13

237 cl.

160

8

285

9

170

gr.

420

4

22

20

260

gr.

260

14

80

19

Afin d’´eviter des situations extrˆemes (par exemple 10 p ortions de p orc et f`eves satisfont `a ses exigences nutritives), on imp ose les limites suivantes :

1

Programmation num´erique en g´enie chimique

Gilles Savard

Au plus 4 p ortions/jour d’avoine

3

de p oulet

2

d’o eufs

8

de lait

2

de tarte aux cerises

2

de p orc et f`eves

On p ourrait tenter de d´eterminer un menu par essai erreur. Par exemple, choisir 8 p ortions de lait et 2 p ortions de tarte aux cerises satisfait les demandes nutritives p our un co utˆ total de $1.12. Le nombre de p ossibilit´es est ´elev´e et il est pr´ef´erable de r´esoudre le probl`eme `a l’aide d’un mo d`ele. 2. Le mo d`ele Nous d´efinissons d’ab ord les variables de d´ecision, c’est-`a-dire l’information que l’on d´esire obtenir.

(a)

Les variables de d´ecision :

x 1 =

# de p ortion d’avoine # de p ortion de p oulet

x 2 = x 3 =

x 4 = x 5 = # de p ortion de tarte aux cerises x 6 = # de p ortion de p orc et f`eves

# de p ortion d’o eufs # de p ortion de lait

Ces variables ne sont pas libres ; elles sont contraintes par les b esoins nutritionnels. Exprim´ees sous forme math´ematique on obtient :

(b)

Les contraintes :

i. Satisfaction minimale des b esoins

110x 1 + 205x 2 + 160x 3 + 160x 4 + 420x 5 + 260x 6

2000

4x 1 + 32x 2 + 13x 3 + 8x 4 + 4x 5 + 14x 6

55

2x 1 + 12x 2 + 54x 3 + 285x 4 + 22x 5 + 80x 6

800

ii. Les b ornes sur les variables de d´ecisions

0

x 1

4

0

x 2

3

0

x 3

2

0

x 4

8

0

x 5

2

0

x 6

2

Maintenant ces variables doivent ˆetre dirig´ees vers un but, vers un ob jectif.

2

Programmation num´erique en g´enie chimique

Gilles Savard

(c)

(d)

L’ob jectif :

Soit (x 1 , x 2 , tel menu est

Comme on veut minimiser les co uts,ˆ l’ob jectif est :

, x 6 ) un menu satisfaisant aux contraintes, alors le co utˆ total d’un 3x 1 + 24x 2 + 13x 3 + 9x 4 + 20x 5 + 19x 6 .

min 3x 1 + 24x 2 + 13x 3 + 9x 4 + 20x 5 + 19x 6 .

Le mo d`ele complet :

En r´esum´e, le mo d`ele math´ematique est min

3x 1 + 24x 2 + 13x 3 + 9x 4 + 20x 5 + 19x 6

s.c. 110x 1 + 205x 2 + 160x 3 + 160x 4 + 420x 5 + 260x 6

2000

4x 1 + 32x 2 + 13x 3 + 8x 4 + 4x 5 + 14x 6

55

2x 1 + 12x 2 + 54x 3 + 285x 4 + 22x 5 + 80x 6

800

0

x 1

4

0

x 2

3

0

x 3

2

0

x 4

8

0

x 5

2

0

x 6

2

4.1.2 Exemple 2 : la ra neri e

1. Le probl`eme :

On d´esire ´etablir le plan de pro duction optimale d’une ranerie pro duisant quatre pro duits finis (essence, k´eros`ene, mazout l´eger et r´esidu) `a partir de deux typ es de p´etrole brut. Les co e cients techno-´economiques p ertinents sont donn´es dans les tables suivantes :

Achat Pro duit Brut #1 Brut #2

Achat

Pro duit

Brut #1

Brut #2

Achat Pro duit Brut #1 Brut #2 Vente Essence K´eros`ene Mazout l´eger $/baril 24 15 R´esidu

Vente

Essence

K´eros`ene

Mazout l´eger

Brut #1 Brut #2 Vente Essence K´eros`ene Mazout l´eger $/baril 24 15 R´esidu 36 24 21

$/baril

24

15

R´esidu

36

24

21

10

3

Programmation num´erique en g´enie chimique

Gilles Savard

Essence K´eros`ene Mazout l´eger R´esidu Co utˆ de pro duction $/baril Rendement (%) Pro duction

Essence

K´eros`ene

Mazout l´eger

R´esidu

Co utˆ de pro duction $/baril

Mazout l´eger R´esidu Co utˆ de pro duction $/baril Rendement (%) Pro duction Brut#1 Brut#2 maximale

Rendement (%)

Pro duction

Brut#1 Brut#2

maximale (baril/jour)

Pro duction Brut#1 Brut#2 maximale (baril/jour) 80 44 24000 5 10 2000 10 36 6000

80

44

24000

5

10

2000

10

36

6000

5

10

0.50

1.00

80 44 24000 5 10 2000 10 36 6000 5 10 0.50 1.00

2. Le mo d`ele Dans l’ordre, nous identifions les variables de d´ecisions, les contraintes et l’ob jectif.

(a)

(b)

(c)

Les variables de d´ecision :

p 1 =

p 2 =

x 1 =

x 2 = x 3 = # baril/jour de mazout l´eger pro duits x 4 = # baril/jour de r´esidu pro duits

# baril/jour de brut#1 ran´e # baril/jour de brut#2 ran´e

# baril/jour d’essence pro duits # baril/jour de k´eros`ene pro duits

Ces variables ne sont pas libres ; elles sont li´ees par les contraintes technologiques. Exprim´ees sous forme math´ematique on obtient :

Les contraintes :

i. Contraintes de balance :

0.80p 1 + 0.44p 2 = x 1 0.05p 1 + 0.10p 2 = x 2 0.10p 1 + 0.36p 2 = x 3 0.05p 1 + 0.10p 2 = x 4

essence (# baril/jour) k´eros`ene (# baril/jour) mazout l´eger (# baril/jour) r´esidu (# baril/jour).

ii. Les b ornes sur la capacit´e :

x 1 24000 x 2 2000 x 3 6000

p 1 , p 2

0.

L’ob jectif :

On veut ici pro duire le plan de pro duction optimale, c’est-`a-dire celui qui maximise les profits :

maximiser {profit = revenu des ventes - achat des bruts - co utˆ de pro duction}

4

Programmation num´erique en g´enie chimique

Gilles Savard

Sous forme math´ematique on obtient :

= Co utˆ de pro duction = 0.5p 1 + 1.0p 2

(d) Le mo d`ele complet :

max 36x 1 + 24x 2 + 21x 3 + 10x 4 s.c.

(24p 1 + 15p 2 ) (0. 5p 1 + 1.0p 2 ) x

1

0.80p 1 + 0.44p 2 = 0.05p 1 + 0.10p 2 = x 2 0.10p 1 + 0.36p 2 = x 3 0.05p 1 + 0.10p 2 = x 4 x 1 24000

x 2 2000 x 3 6000 p 1 , p 2 Il est p ossible ici d’´eliminer les variables x 1 , max 8.1p 1 + 10.8p 2

0.

, x 4 dans le mo d`ele p our obtenir :

s.c. 0.80p 1 + 0.44p 2 24000

0.05p 1 + 0.10p 2

2000

0.10p 1 + 0.36p 2

6000

p 1 , p 2

0.

qui est ´equivalent au pr´ec´edent. Ces deux mo d`eles sont des probl`emes de programmation lin´eaire ou encore des pro- grammes lin´eaires.

4.1.3 La programmation lin´eaire

D´efinition 4.1 Si c 1 , c 2 ,

, c n sont des constantes r´eel les, la fonction f ( x ) d´efinie par

f ( x 1 , x 2 ,

, x n ) = c 1 x 1 + c 2 x 2 +

+ c n x n =

n

j =1 c j x j

est une fonction lin´eaire.

Par exemple :

f (x 1 , x 2 ) = 3x 1 + 4x 2 est une fonction lin´eaire f (x 1 , x 2 ) = 3x 1 + 5x 2 + x 1 x 2 n’est pas une fonction lin´eaire.

5

Revenu des ventes Achat des bruts

=

36x 1 + 24x 2 + 21x 3 + 10x 4 24p 1 + 15p 2

Programmation num´erique en g´enie chimique

Gilles Savard

D´efinition 4.2 Si b, c 1 , c 2 ,

, c n sont des constantes r´eel les, alors l’´equation

n

=1 c j x j = b

j

est appel´ee une ´equation lin´eaire.

D´efinition 4.3 Si b, c 1 , c 2 ,

, c n sont des constantes r´eel les, alors les ´equations

n n

=1 c j x j b

et

=1 c j x j b

j

j

sont appel´ees des in´egalit´es lin´eaires.

Plus g´en´eralement, une contrainte lin´eaire est soit une ´equation lin´eaire, soit une in´egalit´e lin´eaire. Avec ces d´efinitions, un programme lin´eaire (PL) consiste en la maximisation (ou la minimisation) d’une fonction lin´eaire soumise `a un nombre fini de contraintes lin´eaires. Par exemple :

max x 1 + 2x 2 + x 3 s.c.

x 1 x 2

1

=

4

3

x 1 x 2 + x 3 x 2 + x 3 x

6

0

D´efinition 4.4 Un PL sera sous forme standard s’il est de la forme :

max

s.c.

j n =1 c j x j

x

n

j =1 a ij x j b i

j

0

= 1,

j = 1,

i

, m

, n

Remarque : Il est toujours p ossible de ramener un programme lin´eaire quelconque sous forme standard (exercice).

D´efinition 4.5 La fonction lin´eaire maximis´ee (ou minimis´ee) dans un programme lin´eaire est appel´ee fonction objectif.

6

Programmation num´erique en g´enie chimique

Gilles Savard

D´efinition 4.6 Une solution ( x 1 , traintes (incluant les bornes).

D´efinition 4.7 Une solution ( x ,

maximise la fonction objectif parmi toutes les solutions r´ealisables. La valeur correspondante

de l’objectif est appel´ee la valeur optimale.

Remarque : La solution optimale (si elle existe) n’est pas n´ecessairement unique.

On p eut se demander s’il existe toujours au moins une solution optimale. La r´ep onse est non ; deux situations p euvent se pr´esenter.

, x n ) est dite optimale si el le est r´ealisable et si el le

, x n ) est dite r´ealisable si el le satisfait `a toutes les con-

1

1. Il n’existe pas de solution r´ealisable. Par exemple, max s.c.

3x 1 x 2

x 1 + x 2

2

2x 1 2x 2

6

x 1 , x 2

0

Dans ce cas, aucun p oint (x 1 , x 2 ) ne satisfait `a toutes les contraintes.

D´efinition 4.8 Un programme lin´eaire qui n’a pas de solution r´ealisable est appel´e non r´ealisable.

2. Il n’existe pas de valeur optimale finie. Par exemple :

Dans ce cas,

max

x 1 x 2

s.c.

2x 1 + x 2

1

x 1 2x 2

2

x 1 , x 2

0

– Il existe des solutions r´ealisables :

x 1 = 1, x 2 = 1 x 1 = 5, x 2 = 0 etc.

– Mais p our tout nombre M , il existe une solution r´ealisable (x 1 , x 2 ) telle que la fonction ob jectif prenne une valeur sup´erieure `a M , c’est-`a-dire x 1 x 2 > M .

7

Programmation num´erique en g´enie chimique

Gilles Savard

D´efinition 4.9 Un programme lin´eaire r´ealisable qui n’a pas de valeur optimale finie est appel´e non born´e.

Le th´eor`eme suivant (qui sera prouv´e `a la section 3) indique que nous avons couvert tous les cas. Th´eor`eme 4.1 : Dans tout programme lin´eaire, une seule des ´eventualit´es suivantes peut se pr´esenter :

1. il existe au moins une solution optimale

2. le programme lin´eaire est non-r´ealisable

3. le programme lin´eaire est non born´e.

4.2 La m´etho de du simplexe

Nous voyons dans cette section la m´etho de du simplexe p our la r´esolution d’un pro- gramme lin´eaire. Cette m´etho de, due `a Dantzig, est la premi`ere qui a p ermis de r´esoudre un programme lin´eaire et constitue encore aujourd’hui une des deux appro ches e caces p our sa r´esolution (nous ne verrons pas dans ce cours les appro ches de p oints int´erieurs qui forment la deuxi`eme appro che). Une description informelle est faite dans cette section. La description formelle de l’algorithme est pr´esent´ee `a la section suivante.

4.2.1 L’id´ee de la m´etho de du simplexe via un exemple

Consid´erons le programme lin´eaire sous forme standard suivant :

max 5x 1 + 4x 2 + 3x 3 s.c.

2x 1 + 3x 2 + x 3

5

4x 1 + x 2 + 2x 3

11

3x 1 + 4x 2 + 2x 3

8

x 1 , x 2 , x 3

0

(1)

Id´ee 1 :

Comme il est co uteuxˆ de v´erifier la faisabilit´e d’une solution donn´ee, la m´etho de du sim- plexe travaille avec un syst`eme d’´equations lin´eaires (´egalit´es lin´eaires). Pour toute solution r´ealisable x 1 , x 2 , x 3 de (1), il existe un ´ecart non-n´egatif (0) entre le membre de gauche et le membre de droit de chaque contrainte. Par exemple, consid´erons la premi`ere contrainte

2x 1 + 3x 2 + x 3 5

et

(x 1 , x 2 , x 3 ) = (1, 0, 1).

8

une solution r´ealisable

Programmation num´erique en g´enie chimique

Gilles Savard

Alors, le cˆot´e gauche vaut 2(1) + 3(0) + (1) = 3 5 et l’´ecart est 5 3 = 2.

On d´efinit ainsi les variables d’´ecarts p our chacune des contraintes. De plus, on nomme l’ob jectif z p our obtenir le syst`eme d’´equations lin´eaires suivant :

x 4 = x x 6 =

=

5

5

2x

1

3x

2

x

3

11

8

4x

3x

1

1

x

4x

2

2

2x

2x

3

3

5x 1 +4x 2 +3x 3

z = Avec cette notation, le programme original p eut s’´ecrire :

(2)

max z x 1 , x 2 , x 3 , x 4 , x 5 , x 6 0

s.c.

(3)

En e et :

– p our toute solution r´ealisable de (1) , il existe une solution r´ealisable unique de (3) ((x 1 , x 2 , x 3 ) restant inchang´es et (x 4 , x 5 , x 6 ) ´etant d´efinis par (2)).

– p our toute solution r´ealisable de (3) (v´erifiant (2)), il existe une solution r´ealisable unique de (1). Comme les solutions r´ealisables de (1) et (3) sont en corresp ondance une `a une, les solu- tions optimales le sont ´egalement. Id´ee 2 :

, x¯ 6 )

D’une solution r´ealisable (x 1 , qui soit meilleure, c’est-`a-dire :

, x 6 ), trouver une autre solution r´ealisable (x¯ 1 ,

5x 1 + 4x 2 + 3x 3 < 5x¯ 1 + 4x¯ 2 + 3x¯ 3 La m´etho de du simplexe consiste donc en une am´elioration successive de solutions r´ealisables. (1`ere it´eration)

`

1. On doit d’ab ord trouver une premi`ere solution r´ealisable. A partir du syst`eme d’´equation

( 2), une solution r´ealisable est imm´ediate. En p osant `a 0 les variables qui se trouvent du cˆot´e droit, on obtient x 1 = x 2 = x 3 = 0

et on d´eduit imm´ediatement

x 4 = 5, x 5 = 11, x 6 = 8 et la valeur de l’ob jectif z = 0.

9

Programmation num´erique en g´enie chimique

Gilles Savard

2. On veut maintenant am´eliorer cette solution. On voit qu’il est avantageux d’augmenter x 1 et/ou x 2 et/ou x 3 . Ici, choissisons d’augmenter x 1 et gardons `a 0 la valeur de x 2 et x 3 . La valeur de l’ob jectif augmentera selon :

z = 5x 1 + 4 · 0 + 3 · 0 = 5x 1 > 0,

x 1 > 0.

Par exemple :

Si on p ose x 1 = 1 (et x 2 = x 3 = 0) on obtient `a partir de (2)

x 4 = 3, x 5 = 7, x 6 = 5 et la valeur de l’ob jectif z = 5. Si on p ose x 1 = 2 (et x 2 = x 3 = 0) on obtient x 4 = 1, x 5 = 3, x 6 = 2 et la valeur de l’ob jectif z = 10

qui est mieux. Si on p ose x 1 = 3 (et x 2 = x 3 = 0) on obtient

x 4 = 1, x 5 = 1, x 6 = 1 qui n’est plus r´ealisable.

Une question se p ose : jusqu’`a quelle valeur p eut-on augmenter x 1 (tout en en gardant x 2 et x 3 `a la valeur 0) de fa¸con `a conserver la faisabilit´e de la solution (c’est-`a-dire garder les variables x 4 , x 5 , x 6 non n´egatives) ? La condition x 4 0 revient `a :

et la valeur de l’ob jectif

z = 15

x 4 =

5 2x 1 3x 2 x 3 0

5 2x 1

x 4 =

0

x 1 5/2.

De mˆeme, la condition sur x 5 revient `a :

x 5 =

11 4x 1 x 2 2x 3

0

x 5 =

11 4x 1 0

x 1 11/4.

 

Enfin la condition sur x 6 donne

x 6 =

8 3x 1 4x 2 2x 3

0

x 6 =

8 3x 1 0

x 1 8/3.

10

Programmation num´erique en g´enie chimique

Gilles Savard

De ces 3 b ornes (x 1 5/2, x 1 11/4, x 1 8/3) la premi`ere est la plus contraignante. On p eut donc augmenter x 1 jusqu’`a 5/2. Pour cette valeur de x 1 , x 4 devient ´egale `a 0. On obtient ainsi une 2i`eme solution r´ealisable qui est meilleure que la pr´ec´edente :

x 1 = 5/2, x 2 = 0, x 3 = 0 x 4 = 0, x 5 = 1, x 6 = 1/2 et z = 25/2.

(4)

Peut-on maintenant am´eliorer cette nouvelle solution r´ealisable (4) ? Si oui, quelle variable augmenter ? Jusqu’`a quelle valeur ? Rapp elons qu’il a ´et´e facile de r´ep ondre

`a ces questions `a l’aide du syst`eme d’´equations (2). Pour ce syst`eme, nous avions expri m´e les variables p ositives en fonction des variables nulles.

On doit donc exprimer les nouvelles variables non nulles (x 1 , x 5 , x 6 ) en fonction des

variables nulles (x 2 , x 3 , x 4 ).

`

A

partir de l’ancien syst`eme

x 4 = x x 6 =

=

5

5

2x

1

3x

2

x

3

11

8

4x

3x

1

1

x

4x

2

2

2x

2x

3

3

z =

5x 1 +4x 2 +3x 3

On p eut exprimer x 1 en fonction des variables nulles

x 1 = 5/2 3/2x 2 1/2x 3 1/2x 4

et susbtituer dans les trois autres ´equations. On obtient :

x 5 =

11

4(5/2 3/2x 2 1/2x 3 1/2x 4 )

x

2

2x

3

 

=

1

+5x 2 + 2x 4

x 6 =

8

3(5/2 3/2x 2 1/2x 3 1/2x 4 )

4x

2

2x

3

 

=

1/2

+1/2x 2 1/2x 3 + 3/2x 4

z

=

5(5/2 3/2x 2 1/2x 3 1/2x 4 ) +4x 2 +3x 3

=

25/2

7/2x 2 + 1/2x 3 5/2x 4 .

Plus simplement, le nouveau syst`eme s’´ecrit :

x 1 = x 5 = x 6 =

5/2

3/2x

2

1/2x

3

1/2x

4

1

+5x

2

+2x

4

1/2 +1/2x 2

1/2x

3

+3/2x

4

z

=

25/2

7/2x 2

11

+1/2x 3

5/2x 4 .

(5)

Programmation num´erique en g´enie chimique

Gilles Savard

La solution courante asso ci´ee est alors :

x 1 = 5/2, x 5 = 1, x 6 = 1/2 et x 2 = 0, x 3 = 0, x 4 = 0 de valeur z = 25/2.

(2i`eme it´eration)

`

A partir de ce syst`eme, il est p ossible de voir qu’augmenter la variable x 3 (en gardant x 2 = x 4 = 0) am´eliorera l’ob jectif (on n’a plus avantage `a augmanter x 2 ou x 4 ). Jusqu’`a quelle valeur p eut-on augmenter x 3 ? La condition sur x 1

x 1 =

5/2 3/2x 2 1/2x 3 1/2x 4 0

5/2 1/2x 3 0

x 1 =

x 3 5.

La condition x 5 = 1 + 5x 2 + 2x 4 0 est toujours v´erifi´ee lorsque x 3 augmente.

Enn, la condition

x 6 =

1/2 + 1/2x 2 1/2x 3 + 3/2x 4 0

1/2 1/2x 3 0

x 6 =

x 3 1.

Donc x 3 ne p eut pas augmenter plus que x 3 = 1 (alors que x 6 prend la valeur 0). On obtient le nouveau syst`eme `a partir de l’ancien :

Ancien syst`eme :

x 1 = x 5 = x 6 =

5/2

3/2x

2

1/2x

3

1/2x

4

1

+5x

2

+2x

4

1/2 +1/2x 2

1/2x

3

+3/2x

4

z

= 25/2

7/2x 2

+1/2x 3

5/2x 4 .

En isolant la nouvelle variable qui prend une valeur p ositive,

x 3 = 1 + x 2 + 3x 4 2x 6

on obtient le nouveau syst`eme :

x 1 = x 5 = x 3 =

2

2x

2

2x

4

+x

6

1 +5x 2 +2x 4

 

1

+x

2

+3x

4

2x

6

z

=

13

3x 2

x 4

x 6 .

12

(6)

Programmation num´erique en g´enie chimique

Gilles Savard

La solution courante asso ci´ee est alors :

x 1 = 2, x 3 = 1, x 5 = 1 et x 2 = 0, x 4 = 0, x 6 = 0

de valeur z = 13. (3i`eme it´eration)

Quelle variable p eut-on augmenter ? Aucune : augmenter x 2 ou x 4 ou x 6 fait diminuer z . En fait, puisque l’on a

z = 13 3x 2 x 4 x 6 la solution est optimale puisque toute autre solution (x 1 , x 2 , x 2 , x 4 , x 6 0. La valeur optimale est donc z = 13.

Exerci ce : Petit probl`eme de chimie On disp ose des b outeilles de b oisson suivantes :

, x 6 ) satisfait n´ecessairement

32

oz

de Fine Whiskey `a $28.00/32 oz

32

oz

de Whiskey

`a $22.00/32 oz

32

oz

de Vermouth

`a $14.00/32 oz

oz `a partir desquelles on p eut obtenir les m´elanges suivants :

64

de Gin

`a $24.00/32 oz

– 2 oz de Whiskey qui se vend $3.00

– 2 oz de Whiskey et 1 oz de Vermouth p our obtenir un Manhattan qui se vend $5.00

– 2 oz de Gin et 1 oz de Vermouth p our obtenir un Martini qui se vend $5.00

– 2 oz de Gin et 2 oz de Whiskey p our obtenir un Pub Sp ecial qui se vend $6.00

.),

formuler sous forme de programme lin´eaire afin de d´eterminer les quantit´es `a m´elanger p our maximiser les revenus. R´esoudre le programme lin´eaire.

En supp osant qu’il soit p ossible de vendre tous les m´elanges (c’est un 5 `a 7 du

4.2.2 Dictionnaires Soit un programme lin´eaire sous forme standard :

max

s.c.

j n =1 c j x j

n

j =1 a ij x j b i

i =

1,

x

j

0

j = 1,

 

13

, m

, n.

(7)

Programmation num´erique en g´enie chimique

Gilles Savard

On intro duit les variables d’´ecarts x n+1 , x n+2 , ces variables par

, x n+m et on note l’ob jectif par z . On d´efinit

x n+ i = b i

j n =1 a ij x j

z =

j n =1 c j

x j

i =

1,

, m

, x n ) de (7) est

repr´esent´ee par n + m variables non-n´egatives. A chaque it´eration, la m´etho de du simplexe

Dans le cadre de la m´etho de du simplexe, chaque solution r´ealisable (x 1 ,

`

`

fournit une solution r´ealisable qui am´eliore la fonction ob jectif. A chaque solution r´ealisable

corresp ond un syst`eme d’´equations lin´eaires qu’on app elle dictionnaire.

Dans un dictionnaire :

1. Toute solution non n´egative des ´equations lin´eaires comprises dans le dictionnaire est une solution de (7), et vice-versa.

, x n+m ) et la

variable z en fonction des n autres variables. On app elle un dictionnaire r´ealisable, si en p osant `a 0 les variables du cˆot´e droit, on obtient une solution r´ealisable. Ainsi

2. Les ´equations d’un dictionnaire doivent exprimer m des variables (x 1 ,

dictionnaire r´ealisable solution r´ealisable

Par contre

solution r´ealisable n´ecessairement un dictionnaire r´ealisable

Par exemple, il n’existe pas de dictionnaire p our la solution r´ealisable x 1 = 1, x 2 = 0, x 3 = 1, x 4 = 2, x 5 = 5, x 6 = 3. Une solution r´ealisable qui p eut ˆetre d´ecrite par un dictionnaire est app el´ee une solution de base. Ainsi, la m´etho de du simplexe ne consid`ere que les solutions de base (un nombre fini) et ignore toutes (une infinit´e) les autres.

D´efinition 4.10 Les variables x j qui se trouvent du cˆot´e gauche du dictionnaire sont ap- pel´ees variables de base.

D´efinition 4.11 Les variables x j qui se trouvent du cˆot´e droit du dictionnaire sont appel´ees variables hors-base.

L’ensemble des variables de base constituent une base. Ainsi, `a chaque it´eration la base change : une variable entre dans la base et une variable sort de la base. Le choix de la variable d’entr´ee est dict´e par le d´esir d’am´eliorer l’ob jectif z . Le choix de la variable de sortie est

14

Programmation num´erique en g´enie chimique

Gilles Savard

dict´e par le d´esir de conserver toutes les variables non-n´egatives.

La variable de sortie apparaˆıt dans la ligne du pivot. On app elle pivotage le pro cessus p ermettant de passer d’un dictionnaire `a un autre (ou encore, passer d’une base `a une autre).

Un exemple complet :

Dictionnaire r´ealisable initial :

max 5x 1 + 5x 2 + 3x 3 s.c.

x 1 + 3x 2 + x 3

+ 3x 3

1

3

x 2x 1 x 2 + 2x 3

2

4

2x 1 + 3x 2 x 3

2

x 1 , x 2 , x 3

0.

x

4

5

6

= 3

x 1 3x 2 x 3

3x 3

+x 2 2x 3

2x

1

1

x x

= 2

4

=

+x

x 7

=

2

2x

1

3x

2

+x

3

z =

Si x 1 entre dans la base, alors

5x 1 +5x 2 +3x 3 .

x 4 =

x

x

6

7

3 x 1

0

x 1 3

x 5 = = =

2 + x 1 4 2x 1 2 2x 1

0

0

0

x 1 ≥ − 2 x 1 2 x 1 1

la variable x 7 sort de la base. On obtient l’expression de x 1 en fonction des variables hors- bases `a partir de la ligne de pivot :

x 1 =

Le nouveau dictionnaire est :

1 3/2x 2 + 1/2x 3 1/2x 7 .

= = x 6 = =

1

5

4

x

x

x

2

3

2

1

3/2x

3/2x

+4x

3/2x

2

2

2

2

3/2x

5/2x

3x

+1/2x

3

3

3

3

+1/2x

1/2x

+x

1/2x

7

7

7

7

z

=

5

5/2x 2

+11/2x 3

5/2x 7 .

15

Programmation num´erique en g´enie chimique

Gilles Savard

Si x 3 entre dans la base, alors

x 4 = 2 3/2x 3 0 x 3 4/3 x 5 = 3 5/2x 3 0 x 3 6/5 2 3x 3 0 x 3 2/3

x 6 = la variable x 6 sort de la base. De la ligne de pivot, on obtient

x 3 = 2/3 + 4/3x 2 + 1/3x 7 1/6x 6

et le nouveau dictionnaire x 4 =

1

7/2x

2

+1/2x

6

x 5 =

4

/3

29/6x

2

4/3x

7

+5/6x

6

x 3 = 2 /3

+4/3x 2 +1/3x 7

1/3x

6

x 1 = 4 /3

5/6x

2

1/3x

7

1/6x

6

z

= 26/3 +29/6x 2

Si x 2 entre dans la base, alors

2/3x 7

11/6x 6 .

x 4 =

x 5 = 4/3 29/6x 2 0 x 2 8/29

x 1 = 4/3 5/6x 2

1 7/2x 2

0 x 2 2/7

0 x 2 24/15

la variable x 5 sort de la base. De la ligne de pivot, on obtient

x 2 = 8/29 8/29x 7 + 5/29x 6 6/29x 5

et le nouveau dictionnaire

x 4 =

1/29 +28/29x 7

3/29x

6

+21/29x

5

x 2 =

8/29

8/29x

7

+5/29x

6

6/29x

5

x 3 = 30/29

1/29x

7

3/29x

6

8/29x

5

x 1 = 32/29

3/29x

7

9/29x

6

+5/29x

5

z =

10

2x 7

x 6

x 5 .

La solution est optimale (aucun avantage `a entrer une variable dans la base). La solution optimale est x 1 = 32/29, x 2 = 8/29 et x 3 = 30/29, de valeur z = 10.

16

Programmation num´erique en g´enie chimique

Gilles Savard

4.3 L’algorithme du simplexe (Partie 2)

On p eut r´esumer l’algorithme du simplexe comme suit :

´

Etap e 1) Initialisation :

former le dictionnaire r´ealisable initial

´

Etap e 2) It´erations :

- choix de la variable d’entr´ee

- choix de la variable de sortie

- pivotage

´

Etap e 3) Crit`ere d’optimatlit´e :

si oui, arrˆet sinon, aller `a l’´etap e 2.

Dans ce chapitre, nous allons r´ep ondre aux trois questions suivantes :

1. Avons-nous toujours une solution initiale disp onible ? (dictionnaire r´ealisable)

`

2. A une it´eration donn´ee, p ouvons-nous toujours trouver une variable d’entr´ee et de

sortie afin d’obtenir le pro chain dictionnaire r´ealisable ?

3. Le crit`ere d’optimalit´e est-il toujours satisfait ?

4.3.1 Initialisation Consid´erons l’exemple suivant :

max

x 1 + x 2

 

s.c.

x 1 x 2

3

2x 1 + x 2

4

x 1 , x 2

0

Il est facile de construire le dictionnaire r´ealisable suivant :

x x 4 = 4 2x 1 x 2 z = Par contre, si la premi`ere contrainte avait plutˆot ´et´e x 1 x 2 ≤ −3 on aurait obtenu le dictionnaire suivant :

x 1 +x 2 .