PROGRAMMATION LINEAIRE

December 8, 2017 | Author: Niouma Aicha Soumare | Category: Linear Programming, Mathematical Optimization, Numerical Analysis, Systems Analysis, Mathematical Concepts
Share Embed Donate


Short Description

Download PROGRAMMATION LINEAIRE...

Description

Recherche opérationnelle : programme linéaire à plusieurs variables (simplexe) Anne Fredet, [email protected]

Table des matières 1 Programmation linéaire à plusieurs variables 1.1 Dénitions . . . . . . . . . . . . . . . . . . . . . 1.2 Méthode du simplexe . . . . . . . . . . . . . . . 1.2.1 Idée . . . . . . . . . . . . . . . . . . . . 1.2.2 Système canonique . . . . . . . . . . . . 1.2.3 Système générique . . . . . . . . . . . . 1.2.4 Algorithme du simplexe . . . . . . . . . 1.2.5 Contraintes saturées et gains marginaux 1.2.6 Exercices . . . . . . . . . . . . . . . . . 1.3 Méthode duale . . . . . . . . . . . . . . . . . . 1.3.1 Dénition . . . . . . . . . . . . . . . . . 1.3.2 Exercices . . . . . . . . . . . . . . . . . 1.4 Applications . . . . . . . . . . . . . . . . . . . . 1.5 Solutions des exercices . . . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

1

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

. . . . . . . . . . . . .

2 . 2 . 2 . 2 . 2 . 3 . 4 . 7 . 8 . 8 . 8 . 9 . 9 . 12

Programme linéaire à plusieurs variables (simplexe)

1

Programmation linéaire à plusieurs variables

1.1 Dénitions Dénition 1.1

Un programme linéaire est un programme consistant à trouver un extremum (maximum ou minimum) d'une fonction à plusieurs variables, vériant en outre un système d'équations ou d'inéquations, ces fonctions étant linéaires. La méthode graphique devient dicile à réaliser lorsqu'il y a 3 variables, et impossible s'il y a plus de 3 variables. Il faut donc trouver une autre méthode : celle du simplexe. Sous sa forme la plus générale, le modèle de programmation linéaire est le modèle d'optimisation suivant : minimiser (ou maximiser) z(x) =

n X

cj xj

fonction objectif

i=1

sous les contraintes

   ≤  = aij xj b   i j=1 ≥

n X

i = 1, · · · , m

Les nombres cj , aij , bi sont les paramètres du modèle, ils sont connus avant la résolution. Les variables de décision xj sont indéterminés à priori.

Dénition 1.2    

On appelle : point réalisable tout point x qui satisfait aux contraintes, espace réalisable ou polyhèdre des contraintes l'ensemble des points réalisables, solution optimale un point réalisable qui optimise (maximise ou minimise) z(x) valeur optimale la valeur de z(x) atteinte pour toute solution optimale.

1.2 Méthode du simplexe 1.2.1 Idée On sait que la solution, si elle existe, se trouve au moins sur un sommet du domaine des solutions réalisables, la recherche de la solution optimale s'eectue uniquement sur ces sommets. L'algorithme du simplexe examine comme première solution un des sommets (en général l'origine), qui constitue la solution de base de l'algorithme. Puis il se déplace de sommet en sommet, an d'améliorer la fonction économique à chaque étape. Après un nombre ni d'itérations, il arrive à un sommet à partir duquel tout déplacement vers un autre sommet n'améliore plus cette valeur. On est alors au sommet optimal.

1.2.2 Système canonique Pour appliquer la méthode du simplexe, on suppose que le système est donné sous forme canonique, c'est à dire qu'il comprend une contrainte de positivité pour chaque variable et que les autres contraintes sont des inégalités majorantes. On suppose de plus que la fonction objectif est à maximiser :

Dénition 1.3

On appelle programme linéaire canonique un programme du type  x1 ≥ 0    .   ..       xn ≥ 0 a11 x1 + · · · + a1n xn ≤ b1    ..   .     a x + · · · + apn xn ≤ bp   1p 1 max(c1 x1 + · · · + cn xn )

2

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

La manipulation de systèmes d'inéquations n'est pas aisée. En eet, la multiplication par un nombre négatif change le signe de l'inégalité et la somme de deux lignes peut être fausse.

Exemple 1.1

Regardons cela sur 2 exemples : 1. −3x + 2 ≤ 4 ⇔ 3x − 2 ≥ 4 2. Si on a   x+y >3 −y > −1 (L1 − L2 ) alors on devrait avoir x + 2y > 4 y>1 (L2 − L1 )

c'est à dire



y1

Or une seule de ces inégalités peut être exacte... C'est pourquoi, an de résoudre ce système, on commence par transformer les inéquations du sysème en équations, en ajoutant de nouvelles variables appelés variables d'écart. On obtient le système :  x1 ≥ 0     ..   .     xn ≥ 0     e1 ≥0     .. .  ep ≥0     a11 x1 + · · · + a1n xn + e1 = b1     ..    .     a x + · · · + apn xn + ep = bp   1p 1 max(c1 x1 + · · · + cn xn ) On notera Z la fonction objectif : Z = c1 x1 + · · · + cn xn . On va considérer ce système sous forme de tableau an de le résoudre :

e1 e2 .. . ep −Z

x1 a11 a21

x2 a12 a22

··· ··· ···

ap1 c1

ap2 c2

··· ···

xn a1n a2n .. . apn cp

e1 1 0

e2 0 1

··· 0 0

ep 0 0

0 0

0 0

··· ···

1 0

b1 b2 .. . bp 0

Les variables correspondant à des coecients non nuls de la fonction objectif sont des variables hors base. Elles ne gurent pas dans la première colonne. La solution de base est x1 = · · · = xn = 0 et e1 = b1 , · · · , ep = bp . Dans ce cas, la fonction économique vaut 0, les variables xi sont hors base.

1.2.3 Système générique On peut transformer certaines contraintes an d'obtenir un système générique : 1. Toute inégalité de la forme a1 x1 + a2 x2 + · · · + an xn ≥ b peut être transformée en

−a1 x1 − a2 x2 − · · · − an xn ≤ −b 2. Toute égalité de la forme a1 x1 + a2 x2 + · · · + an xn = b peut être transformée en deux inégalités  a1 x1 + a2 x2 + · · · + an xn ≤ b et a1 x1 + a2 x2 + · · · + an xn ≥ b. c'est-à-dire



a1 x1 + a2 x2 + · · · + an xn ≤ b et − a1 x1 − a2 x2 − · · · − an xn ≤ −b. 3

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

1.2.4 Algorithme du simplexe L'algorithme du simplexe consiste à parcourir le polyhèdre des points réalisables de sommet en sommet jusqu'à ce qu'on ne puisse plus améliorer la solution. Au point de départ, la fonction objectif est nulle, et il s'agit de l'augmenter. Si certains de ses coecients sont positifs, il apparait clairement qu'en augmentant l'une des variables correspondant à un coecients positifs, on augmente cette fonction objectif. On a donc un critère d'obtention de l'optimum : tant que la dernière ligne d'un tableau du simplexe contient au moins un coecient positif, la solution examinée peut être améliorée.

Première étape : Recherche du pivot Le pivot est un coecient du tableau qui permet, grâce à la méthode du pivot, d'annuler tous les coecients de la colonne contenant ce pivot, excepté cet élément qui est ramené à 1 après division de la ligne le contenant par ce nombre. 1.

Choix de la colonne pivot

La colonne pivot est dénie à partir des coecients de la fonction économique. On cherche à se focaliser sur la variable qui, en augmentant, augmentera le plus possible la fonction objectif. Cette variable correspond au plus grand coecient positif de la fonction objectif. Considérons les coecients c1 , · · · , cn de la fonction économique. Parmi tous les coecients positifs, on considère le plus grand. La colonne pivot est la colonne qui le contient. S'il existe plusieurs coecients correspondant à cette valeur positive maximale, on peut choisir celui que l'on veut. La variable correspondante sera la variable entrante car elle ne va plus s'annuler.

Exemple 1.2

Si on considère le programme linéaire suivant :  x1 ≥ 0, x1 ≥ 0, x3 ≥ 0     x1 + x2 ≤ 1    x2 ≤ 2 3x1 + 4x2 ≤ 12     x1 + x3 ≤ 3    max(3x1 − x2 + x3 )

En introduisant les variables d'écart, on obtient  x1 ≥ 0, x1 ≥ 0, x3 ≥ 0     x1 + x2 + e1 = 1     x2 + e2 = 2  3x1 + 4x2 + e3 = 12   x1 + x3 + e4 = 3     max(3x1 − x2 + x3 )    e1 ≥ 0, e2 ≥ 0, e3 ≥ 0, e4 ≥ 0 Le premier tableau se présente donc ainsi : e1 e2 e3 e4 −Z

x1 1 0 3 1 3

x2 1 1 4 0 −1

x3 0 0 0 1 1

e1 1 0 0 0 0

e2 0 1 0 0 0

e3 0 0 1 0 0

e4 0 0 0 1 0

1 2 12 3 0

Le plus grand coecient positif de la fonction économique est c1 = 3. La colonne pivot est donc la première colonne. La variable x1 est donc entrante. 2.

Choix de la ligne pivot

La variable entrante va prendre la place d'une des variables de base, appelé variable sortante. Il faut maintenant trouver quelle valeur maximum peut prendre cette variable entrante an de maximiser la fonction objectif. Pour 4

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

cela, chaque coecient de la dernière colonne est divisé par le coecient correspondant de la colonne pivot : si la colonne pivot est   a1i  a2i     ..   . ,    api  ci on calcule les rapports

bj pour j = 1, · · · , p lorsque aij > 0. aji On obtient de cette façon, pour chaque contrainte prise séparement, la valeur maximal que peut prendre la variable entrante. On sélectionne le plus petit rapport positif, correspondant à la contrainte la plus forte : on cherche l'indice k tel que 0≤

bj bk ≤ en ne considérant les j que si aij > 0. aki aji

La k -ième ligne est la ligne pivot, et aki est le pivot : la ligne pivot est la ligne k telle que minimal. La variable correspondant à cette ligne est la variable sortante.

Exemple 1.3

bk aki

soit positif et

Si on considère l'exemple précédent, on avait le tableau suivant : e1 e2 e3 e4 −Z

x1 1 0 3 1 3

x2 1 1 4 0 −1

x3 0 0 0 1 1

e1 1 0 0 0 0

e2 0 1 0 0 0

e3 0 0 1 0 0

e4 0 0 0 1 0

1 2 12 3 0

La première colonne est la colonne pivot. Les seuls coecients positifs non nuls de cette colonne sont a11 = 1, bj a31 = 3 et a41 = 1. Calculons les rapports a1j correspondants. On a b1 1 = =1 a11 1 b3 12 = =4 a31 3 b4 3 = =3 a41 1

Le plus petit rapport est le premier, donc la ligne pivot est la première. Le pivot associé est a11 = 1. La variable entrante est x1 et la variable sortante est e1 .

Deuxième étape : Réduction du tableau On divise la ligne pivot par le pivot puis on annule ensuite les coecients du tableau situés au-dessus et au-dessous du pivot, en soustrayant la ligne pivot aux autres lignes.

x1 e2 e3 e4 −Z

x1 1 0 0 0 0

x2 1 1 1 −1 −4

x3 0 0 0 1 1

e1 1 0 −3 −1 −3

e2 0 1 0 0 0

e3 0 0 1 0 0

e4 0 0 0 1 0

1 2 9 2 −3

on eectue L3 ← L3 − 3L1 on eectue L4 ← L4 − L1 on eectue L5 ← L5 − 3L1

La solution correspondante est dénie par x1 = 1, x2 = x3 = 0, e1 = 0, e2 = 2, e3 = 9 et e4 = 2. La fonction économique vaut 3 en ce point. 5

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

Troisième étape : Itération S'il existe un coecient ci positif dans le nouveau tableau, on retourne à la première étape (choix du pivot) puis à la deuxième (réduction du tableau). On réitère ce processus jusqu'à ce que tous les coecients de la fonction économique soient négatifs. Cela se produira forcément.

Exemple 1.4

On reprend le tableau de l'exemple précédent. Il existe un coecient ci positif, à savoir c3 = 1. La troisième colonne est donc la colonne pivot. Le seul coecient positif de cette colonne est a43 = 1, c'est donc le pivot. On réduit le tableau et on obtient x1 e2 e3 x3 −Z

x1 1 0 0 0 0

x2 1 1 1 −1 −3

x3 0 0 0 1 0

e1 1 0 −3 −1 −2

e2 0 1 0 0 0

e3 0 0 1 0 0

e4 0 0 0 1 −1

1 2 9 2 −5

L5 ← L5 − L4

Tous les coecients de la fonction économique sont négatifs, on a donc la solution optimale. Elle est dénie par x1 = 1, x2 = 0, x3 = 2, e1 = 0, e2 = 2, e3 = 9 et e4 = 0. Dans ce cas, max(3x1 − x2 + x3 ) = 5.

Autre exemple On considère le programme linéaire suivant    x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0    3x1 + 2x2 + 4x3 + 3x4 ≤ 70 7x1 + 8x2 + 10x3 + 12x4 ≤ 120   x1 + x2 + x3 + x4 ≤ 15    max(6x1 + 11 2 x2 + 7x3 + 8x4 ) La résolution de ce programme nous donnes ces tableaux successifs :

x1 3 7 1 6

e1 e2 e3 −Z

x2 2 8 1 11 2

x3 4 10 1 7

x4 e1 3 1 12 0 1 0 8 0

e2 0 1 0 0

e3 0 0 1 0

70 120 15 0

La solution correspondante est x1 = x2 = x3 = x4 = 0 et e1 = 70, e2 = 120, e3 = 15. La variable entrante est x4 et la variable sortante est e2 .

x1 e1 x4 e3 −Z

5 4 7 12 5 12 4 3

x2 0 2 3 1 3 1 6

x3 3 2 5 6 1 6 − 23

x4 0 1 0 0

e1 1 0 0 0

e2 0 1 12 1 − 12 − 23

e3 0 0 1 0

40 10 5 −80

on eectue L1 ← L1 − 14 L2 1 L2 on eectue L2 ← 12 1 on eectue L3 ← L3 − 12 L2 2 on eectue L4 ← L4 − 3 L2

La solution correspondante est x4 = 10, e1 = 40 et e3 = 5, les autres variables étant nulles. La fonction économique vaut 80. On cherche le pivot, et on le trouve sur la première colonne, trosième ligne. La variable entrante est donc x1 et la variable sortante est e3 :

e1 x4 x1 −Z

x1 0 0 1 0

x2 −1 − 53 3

4 5 9 − 10

x3 1 3 5 2 5 − 65

x4 0 1 0 0

e1 1 0 0 0

e2 0 1 5 − 15 − 25

e3 −3 − 75

25 3 12 −96

12 5 − 36 15

on eectue L1 ← L1 − 3L3 on eectue L2 ← L2 − 75 L3 on eectue L3 ← 12 5 L3 on eectue L4 ← L4 − 16 5 L3

Ce tableau est le dernier car tous les coecients de la dernière ligne sont négatifs. La solution optimale correspondante est x1 = 12, x4 = 3, e1 = 25. La fonction économique vaut en ce point 96. 6

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

Autre présentation On peut ne pas garder les variables de la base dans la première colonne. La solution correspondante est alors dénie par les coecients nuls de la fonction objectif. Les autres variables seront nulles. On considère le programme linéaire suivant  x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, x4 ≥ 0      3x1 + 2x2 + 4x3 + 3x4 ≤ 70 7x1 + 8x2 + 10x3 + 12x4 ≤ 120   x1 + x2 + x3 + x4 ≤ 15    max(6x1 + 11 2 x2 + 7x3 + 8x4 ) La résolution de ce programme nous donnes ces tableaux successifs :

x1 3 7 1 6

x2 2 8 1 11 2

x3 4 10 1 7

x4 3 12 1 8

e1 1 0 0 0

e2 0 1 0 0

e3 0 0 1 0

70 120 15 0

La solution correspondante est e1 = 70, e2 = 120, e3 = 15 (les coecients de la dernière ligne sont nuls) et x1 = x2 = x3 = x4 = 0. On obtient ensuite

x1 5 4 7 12 5 12 4 3

x2 0 2 3 1 3 1 6

x3 3 2 5 6 1 6 − 23

x4 0 1 0 0

e1 1 0 0 0

e2 0 1 12 1 − 12 − 32

e3 0 0 1 0

40 10 5 −80

La solution correspondante est x4 = 10, e1 = 40 et e3 = 5, les autres variables étant nulles. La fonction économique vaut 80. Le dernier tableau est :

x1 0 0 1 0

x2 −1 − 53 3 4 5 9 − 10

x3 1 3 5 2 5 − 65

x4 0 1 0 0

e1 1 0 0 0

e2 0 1 5 − 51 − 52

e3 −3 − 75

12 5 36 − 15

25 3 12 −96

Ce tableau est le dernier car tous les coecients de la dernière ligne sont négatifs. La solution optimale correspondante est x1 = 12, x4 = 3, e1 = 25. La fonction économique vaut en ce point 96.

Exercice 1.1

Résoudre le programme

 x1 , x2 , x3 ≥ 0      2x1 − x2 + 2x3 ≤ 7 2x1 − 4x2 ≤ 12   −4x1 + 3x2 + 8x3 ≤ 10    max(2x1 + x2 + x3 )

1.2.5 Contraintes saturées et gains marginaux Une contrainte est saturée au point solution si sa variable d'écart est nulle en ce point. Les gains marginaux sont les nombres de la dernière ligne du tableau, situés dans les colonnes des variables d'écart. Seuls les contraintes saturés conduisent à des gains marginaux non nuls.

7

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

1.2.6 Exercices Exercice 1.2 Résoudre le programme  x1 , x2 , x3 ≥ 0     x1 ≤ 100    x2 ≤ 150 x1 + x2 + 2x3 ≤ 200     2x1 + x2 + x3 ≤ 300    max(3x1 + 4x2 + 2x3 )

Exercice 1.3 Résoudre le problème suivant en utilisant l'algorithme du simplexe : Un artisan fabrique deux articles A et B nécessitant chacun deux opérations : un usinage et un traitement thermique. Le produit A subit un usinage d'1 heure et un traitement thermique de 3h. B subit un usinage de 2h et un traitement thermique de 3h. De plus, 2kg de matière première entrent dans la composition de A et 1kg dans celle de B. La fabrication de B se termine par un travail de nition qui dure 1h. Toutes les 3 semaines, l'artisan dispose de l'atelier d'usinage pendant 80h et du four pendant 150h. De plus, pendant cette période, il ne peut pas consacrer plus de 35h au travail de nition ni stocker plus de 80kg de matière première. Quelles quantités de A et B l'artisan doit-il fabriquer pendant cette période si la marge bénéciaire est de 30 euros pour l'article A et de 20 euros pour l'article B.

1.3 Méthode duale La méthode du simplexe ne permet de résoudre que des systèmes ayant des contraintes sur les maxima et une fonction à maximiser. Il arrive qu'on ait des contraintes sur les valeurs minimales et qu'on chercher à minimiser une fonction (un coût par exemple). Pour cela, il nous faut considérer le dual du problème.

1.3.1 Dénition Si on compare le problème (P1) :

Pn maximiser z1 = j=1 cj xj Pn avec j=1 aij xj ≤ bi pour i = 1, · · · , m avec le problème (P2)

Pm minimiser z2 = i=1 bi yi Pm avec i=1 aij yi ≥ cj pour j = 1, · · · , n On dit que P1 et P2 sont le primal et le dual d'un même programme linéaire. Le programme dual d'un programme linéaire est un programme linéaire. Le nombre de variables du dual est égal au nombre de contraintes du primal et le nombre de ses contraintes est égal au nombre de variables du primal. Par exemple primal variables :x1 , x2 contraintes : a11 x1 + a12 x2 ≤ b1 a21 x1 + a22 x2 ≤ b2 a31 x1 + a32 x2 ≤ b3 a41 x1 + a42 x2 ≤ b4 fonction économique : z1 = c1 x1 + c2 x2

dual variables :y1 , y2 , y3 , y4 contraintes :

a11 y1 + a21 y2 + a31 y3 + a41 y4 ≥ c1 a12 y1 + a22 y2 + a32 y3 + a42 y4 ≥ c2 fonction économique : z2 = b1 y1 + b2 y2 + b3 y3 + b4 y4

La résolution du primal donne la solution du dual et réciproquement. Les données du primal sont utilisées horizontalement pour l'écriture du programme. Ces mêmes données sont utilisées verticalement pour l'écriture du programme dual. De plus, le type d'extremum du dual est le contraire de celui du 8

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

primal. Si on considère le programme linéaire suivant : 2 variables indépendantes x1 et x2 4 contraintes : 2x1 + x2 ≤ 1 000 x1 + x2 ≤ 800 x1 ≤ 400 x2 ≤ 700 fonction économique : z1 = 20x1 + 30x2 à maximiser La solution optimale de ce problème est x1 = 100 et x2 = 700. Le programme dual du précédent est : 4 variables indépendantes y1 , y2 , y3 et y4 2 contraintes : 2y1 + y2 + y3 ≥ 20 y1 + y2 + y4 ≥ 30 fonction économique : z2 = 1 000y1 + 800y2 + 400y3 + 700y4 à minimiser La valeur optimale de z2 est 23 000. On a :

x1 2 1 1 0 20

x2 1 1 0 1 30

état initial e1 e2 e3 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0

e4 0 0 0 1 0

1 000 800 400 700 0

x1 0 1 0 0 0

x2 0 0 0 1 0

e1 1 0 0 0 0

état optimal e2 e3 e4 −2 0 1 1 0 −1 −1 1 −1 0 0 1 −20 0 −10

100 100 300 700 23 000

La solution optimale qui donne z1 = 23 000 est x1 = 100, x2 = 700, e1 = 100, e2 = 0, e3 = 300 et e4 = 0. En regardant la dernière ligne du tableau, on trouve les valeurs correspondant à la solution optimale du problème dual : y2 = 20 et y4 = 10, qui nous donne le bon résultat : z2 = 800 × 20 + 700 × 10 = 23 000. On remarque que le dual du dual est le problème initial.

1.3.2 Exercices Exercice 1.4 Résoudre    

u1 ≥ 0, u1 ≥ 0, u3 ≥ 0, u4 ≥ 0 u1 + u2 + 2u3 ≥ 30 2u + u2 + u3 + u4 ≥ 20  1   minimiser 80u1 + 50u2 + 80u3 + 35u4

1.4 Applications Exercice 1.5 Une usine produit deux modèles de machines, l'une que l'on appellera modèle A exige 2 kg de matière première et de 30 heures de fabrication et donne un bénéce de 7 euros. L'autre que l'on appellera B exige 4 kg de matière première et de 15 heures de fabrication et donne un bénéce de 6 euros . On dispose de 200 kg de matière première et de 1200 h de travail. Quelle production doit on avoir pour obtenir un bénéce maximal ? Exercice 1.6

L'entreprise Duralumin fabrique des pièces en inox, de trois types A, B et C ; elles sont fabriquées par lot de 50 dans un grand atelier où sont rassemblées une machine de découpe de l'inox, une emboutisseuse et une polisseuse ; chaque machine fonctionne 120 heures par mois. Les caractéristiques de fabrication sont rassemblées

9

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

dans le tableau suivant : découpe emboutissage polissage inox (mat. première) prix de vente (H.T.)

coût horaire 20 euros 30 euros 40 euros

lot A 1h 1, 5 h 1, 5 h 40 euros 200 euros

lot B 0, 5 h

1h 85 euros 180 euros

lot C 2h 1h 1h 38 euros 220 euros

Quel est le programme de production optimal (pour un mois) ?

Exercice 1.7 Dans une cafétéria, on sert 2 sortes de désserts glacés, à base de cocktails exotiques, de glace et de fruits conts : la créole et la tropicale. La créole nécessite 8cl de cocktail exotique, 2dl de glace et 15g de fruits conts. La tropicale nécessite 5cl de cocktail exotique, 2dl de glace et 25g de fruits conts. Chaque jour, l'atelier de patisserie peut préparer 1600 cl de cocktail exotique, 520 dl de glace et 5 kg de fruits conts. Une créole est vendue 1,2 euros et une tropicale 1 euro. Maximisez le prot. Exercice 1.8

Un agriculteur peut utiliser 2 type d'engrais E1 et E2 pour épandre sur ses cultures. Les besoins par an et par hectare sont de 60 kg de potasse, 120 kg de calcium et 90 kg de nitrates. Pour une même quantité, les 2 types d'engrais coutent la même chose. Leur composition pour 10 kg est de :  produit E1 : 1 kg de potasse, 3 kg de calcium, 3 kg de nitrates et 3 kg de produit neutre  produit E2 : 2 kg de potasse, 2 kg de calcium, 1 kg de nitrates et 5 kg de produit neutre Question : Comment fertiliser les cultures à moindre coût ?

Exercice 1.9 La Société des Scieries Vosgienne (SSV) souhaite s'apprivisionner en bois de diérentes essences courantes. Compte tenu de la demande actuelle en bois scié, elle souhaite acquérir au moins 200m3 de chêne, au moins 160 m3 de hêtre et au moins 300m3 de sapin. Les prix au m3 sur la marché traditionnel sont de 140 euros pour le chêne, 90 euros pour le hêtre et 70 euros pour le sapin. Mais la SSV peut aussi proter des ores de certains exploitants forestiers dont les forêts ont été dévastées par la tempête du 26 décembre 1999 et qui proposent par lots, à moindre coût, du bois de qualité équivalente. Trois ores ont été sélectionnées :  ore A : lots de 15m3 de chêne, 15m3 de hêtre, 20m3 de sapin. Prix d'un lot : 3 840 euros.  ore B : lots de 16m3 de chêne, 8m3 de hêtre, 24m3 de sapin. Prix d'un lot : 3 960 euros.  ore C : lots de 9m3 de chêne, 24m3 de hêtre, 12m3 de sapin. Prix d'un lot : 2 880 euros. 1. Déterminez le prix et la quantité de bois que souhaite acquérir la SSV, si elle se fournit sur le marché traditionnel et achète les quantités minimales qu'elle désire acquérir. 2. L'objectif des questions suivantes est de déterminer si la SSV a intérêt à se fournir sur la marché traditionnel ou à proter des ores sélectionnées. On supposera dans ce qui suit qu'elle choisit d'acheter uniquement des lots A,B et C. (a) En notant respectivement a, b et c les quantités de lots A, B et C à acheter pour obtenir la quantité de bois désirée, écrire la forme canonique du programme P , établissant les contraintes et la fonction économique Z à minimiser pour satisfaire la SSV. 0 (b) Écrire, sous forme canonique puis sous forme standard, le programme P , dual du programme P . On 0 notera x, y et z les variables duales, e1 , e2 , e3 les variables d'écart du programme dual et Z la fonction économique du programme dual. 0 (c) Établir les deux premiers tableaux permettant de résoudre le programme P par la méthode du simplexe. Indiquez soigneusement les variables entrantes et sortantes dans le premier tableau. (d) Le troisième tableau est le suivant :

x e1 z y 0 Z

5 4 13 20 1 20

−3

y 0 0 1 0

z 0 1 0 0

e1 1 0 0 0 10

e2 − 85

1 20 1 − 40

−11

e3 5 − 12 1 − 60 1 20

−3

R 165 150 45 −52 200 A. Fredet

Programme linéaire à plusieurs variables (simplexe)

i. Montrez que ce tableau correspond à l'optimum, et déterminez les nombres de lots A, B et C que la SSV doit acheter pour minimiser ses coûts. ii. Indiquez le prix minimum à payer par la SSV pour satisfaire ses besoins. Quel est alors, en pourcentage, le rabais obtenu par rapport au prix du marché traditionnel ? iii. Si la SSV désire acheter le nombre de lots A,B et C lui permettant de minimiser ses coûts, la quantité de bois acheté correspond-elle exactement à la quantité souhaitee ?

11

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

1.5 Solutions des exercices Solution 1.1 En ajoutant les variables d'écart, on s'intéresse au système suivant :  x1 , x2 , x3 , e1 , e2 , e3 ≥ 0      2x1 − x2 + 2x3 + e1 = 7 2x1 − 4x2 + e2 = 12   −4x1 + 3x2 + 8x3 + e3 = 10    max(2x1 + x2 + x3 ) En appliquant l'algorithme du simplexe, on obtient les tableaux suivants (le pivot est en rouge)

x1 2 2 −4 2

e1 e2 e3 −Z

x2 −1 −4 3 1

x3 2 0 8 1

e1 1 0 0 0

e2 0 1 0 0

e3 0 0 1 0

7 12 10 0

La solution de base est alors x1 = x2 = x3 = 0, e1 = 7, e2 = 12, e3 = 10, Z = 0.

x1 1 0 0 0

x1 e2 e3 −Z

x2 − 12 −3 1 2

x3 1 −2 12 −1

e1 1 2

−1 2 −1

e2 0 1 0 0

e3 0 0 1 0

7 2

5 24 −7

La solution est alors x2 = x3 = e1 = 0, x1 = 72 , e2 = 5, e3 = 24 et Z = 7.

x1 e2 x2 −Z

x1 1 0 0 0

x2 0 0 1 0

x3 e1 7 2 34 5 12 2 −25 −5

e2

e3

1 2

1 2

31 2

1 0 0

3 1 −2

77 24 −55

La solution est alors e1 = e3 = x3 = 0, x1 = 31 2 , x2 = 24, e2 = 77 et Z = 55. C'est la solution optimale car tous les coecients de la fonction économique sont négatifs ou nuls.

Solution 1.2 En ajoutant les variables d'écart, on s'intéresse au système suivant :  x1 , x2 , x3 , e1 , e2 , e3 , e4 ≥ 0     x1 + e1 = 100    x2 + e2 = 150 x1 + x2 + 2x3 + e3 = 200     2x1 + x2 + x3 + e4 = 300    max(3x1 + 4x2 + 2x3 ) En appliquant l'algorithme du simplexe, on obtient les tableaux suivants (le pivot est en rouge)

e1 e2 e3 e4 −Z

x1 1 0 1 2 3

x2 0 1 1 1 4

x3 0 0 2 1 2

e1 1 0 0 0 0

e2 0 1 0 0 0

e3 0 0 1 0 0

e4 0 0 0 1 0

100 150 200 300

La solution de base est alors x1 = x2 = x3 = 0, e1 = 100, e2 = 150, e3 = 200, e4 = 300, Z = 0.

e1 x2 e3 e4 −Z

x1 1 0 1 2 3

x2 0 1 0 0 0

x3 0 0 2 1 2

e1 1 0 0 0 −3

e2 0 1 −1 −1 0 12

e3 0 0 1 0 0

e4 0 0 0 1 0

100 150 50 100 −600 A. Fredet

Programme linéaire à plusieurs variables (simplexe)

La solution correspondante est e2 = x1 = x3 = 0, e1 = 100, x2 = 150, e3 = 50, e4 = 100, Z = 600.

e1 x2 x1 e4 −Z

x1 0 0 1 0 0

x2 0 1 0 0 0

x3 −2 0 2 −3 −4

e1 1 0 0 0 0

e2 1 1 −1 −1 −1

e3 −1 0 1 −2 −3

e4 −1 0 0 1 0

50 150 50 50 −750

La solution optimale est x1 = 50, x2 = 150, x3 = 0, Z = 750, e1 = 50, e2 = 0, e3 = 0, e4 = 50 (tous les coecients de la fonction objectif sont nuls).

Solution 1.3 On a le tableau suivant : usinage traitement thermique matière première nition marge

article A 1h 3h 2kg

30

article B 2h 3h 1kg 1h 20

dispo max 80h 150h 80kg 35h

Soit x la quantité d'articles A et y la quantité d'articles B fabriqués en trois semaines. On s'intéresse donc au programme linéaire suivant :    maximiser 30x + 20y   x ≥ 0, y ≥ 0    x + 2y ≤ 80  3x + 3y ≤ 150     2x + y ≤ 80   y ≤ 35 c'est-à-dire

 maximiser 30x + 20y     x ≥ 0, y ≥ 0    x + 2y ≤ 80 x + y ≤ 50     2x + y ≤ 80    y ≤ 35 En ajoutant les variables d'écart, cela nous donne le système suivant :  maximiser 30x + 20y     x ≥ 0, y ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0, e4 ≥ 0    x + 2y + e1 = 80 x + y + e2 = 50     2x + y + e3 = 80    y + e4 = 35 On obtient le tableau suivant :

e1 e2 e3 e4 −Z

x 1 1 2 0 30

y 2 1 1 1 20

e1 1 0 0 0 0

e2 0 1 0 0 0

13

e3 0 0 1 0 0

e4 0 0 0 1 0

80 50 80 35 0

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

Le pivot est sur la première colonne, troisième ligne. x est donc la variable entrante et e3 la variable sortante :

e1 e2 x e4 −Z

x 0 0 1 0 0

y 3 2 1 2 1 2

1 5

e1 1 0 0 0 0

e2 0 1 0 0 0

e3 − 12 − 12 1 2

0 −15

e4 0 0 0 1 0

40 10 40 35 −1 200

Le pivot est maintenant sur la deuxième colonne, deuxième ligne. La variable entrante est y et la variable sortante est e2 :

e1 y x e4 −Z

x 0 0 1 0 0

y 0 1 0 0 0

e1 1 0 0 0 0

e2 e3 e4 −3 1 0 2 −1 0 −1 1 0 −2 1 1 −10 −10 0

10 20 30 15 −1 300

Les coecients de la dernière ligne étant tous négatifs, l'algorithme s'arrète. La solution optimale est donc x = 30, y = 20, e1 = 10, e4 = 15 et e2 = e3 = 0. Les contraintes deux et trois sont donc saturées. On retrouve bien les solutions obtenues par la méthode graphique.

Solution 1.4 il sut d'eectuer la résolution de son dual :  maximiser 30x + 20y     x ≥ 0, y ≥ 0    x + 2y ≤ 80 x + y ≤ 50     2x + y ≤ 80    y ≤ 35 Le dernier tableau de l'algorithme du simplexe est

e1 y x e4 −Z

x 0 0 1 0 0

y 0 1 0 0 0

e1 1 0 0 0 0

e2 e3 e4 −3 1 0 2 −1 0 −1 1 0 −2 1 1 −10 −10 0

10 20 30 15 −1300

La valeur minimale du problème initial est donc 1300. Il correspond à u1 = 0, u2 = 10, u3 = 10 et u4 = 0.

Solution 1.5 Soit x le nombre d'appareils de modèle A et y le nombre d'appareils de modèle B. On s'intéresse donc au système suivant :  x ≥ 0, y ≥ 0    2x + 4y ≤ 200 30x + 15y ≤ 1200    max(7x + 6y) En introduisans les variables d'écart, on obtient    x ≥ 0, y ≥ 0, e1 ≥ 0, e2 ≥ 0  2x + 4y + e1 = 200 30x + 15y + e2 = 1200    max(7x + 6y) 14

A. Fredet

Programme linéaire à plusieurs variables (simplexe)

La méthode du simplexe nous donne les tableaux suivants :

∗ 1 0 0

x y 2 4 30 15 7 6

e1 e2 −Z

∗ 0 1 0

200 1200 0

qui nous donne

e1 x −Z

e2 0 1 0

∗ 1 0 0

y 3 1 2 5 2

∗ 1 − 15

120 40 −280

1 30 7 − 30

On obtient

y x −Z

e2 0 1 0

e1 1 0 0



∗ 1 − 45

1 3 − 16 − 56

40 20 −380

1 15 2 − 30

La solution optimale est donc x = 20 et y = 40. Le bénéce est alors de 380 euros.

Solution 1.6 Soient x1 , x2 , x3 les quantités de pièces de type A, B, C fabriquées. Chaque pièce A coûte 20 euros pour la découpe, 1, 5 × 30 = 45 euros pour l'emboutissage, 1, 5 × 40 = 60 euros pour le polissage et 40 euros de matière première, soit 165 euros. Elle rapporte donc 200 − 165 = 35 euros. Chaque pièce B coûte 0, 5×20 = 10 euros pour la découpe, 40 euros pour le polissage et 85 euros de matière première, soit 135 euros. Elle rapporte donc 180 − 135 = 45 euros. Chaque pièce C coûte 2 × 20 = 40 euros pour la découpe, 30 euros pour l'emboutissage, 40 euros pour le polissage et 38 euros de matière première, soit 148 euros. Elle rapporte donc 220 − 148 = 72 euros. On s'intéresse au système suivant :  x1 ≥ 0, x2 ≥ 0, x3 ≥ 0      x1 + 0, 5x2 + 2x3 ≤ 120 1, 5x1 + x3 ≤ 120   1, 5x1 + x2 + x3 ≤ 120    max(35x1 + 45x2 + 72x3 ) En introduisant les variables d'écart, on obtient  x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0      x1 + 0, 5x2 + 2x3 + e1 = 120 1, 5x1 + x3 + e2 = 120   1, 5x1 + x2 + x3 + e3 = 120    max(35x1 + 45x2 + 72x3 ) En utilisant la méthode du simplexe, on considère le tableau suivant

e1 e2 e3 −Z

x1 1 1, 5 1, 5 35

x2 0, 5 0 1 45

∗ 1 0 0 0

x3 2 1 1 72

∗ 0 1 0 0

∗ 0 0 1 0

120 120 120 0

qui nous donne

x3 e2 e3 −Z

x1 0, 5 1 1 −1

x2 e1 0, 25 1 −0, 25 0 0, 75 0 27 0

∗ 0, 5 −0, 5 −0, 5 −36 15

∗ 0 1 0 0

∗ 0 0 1 0

60 60 60 −4 320 A. Fredet

Programme linéaire à plusieurs variables (simplexe)

On obtient

x1 1 6 4 3 4 3

x3 e2 x2 −Z

−37

e3 0 0 1 0



∗ 0 1 0 −18 0

e1 1 0 0 0

∗ − 31

2 3 − 32 − 32

40 80 80 −36 −6 480 1 3 4 3

La solution optimale est donc obtenue en x1 = 0, x2 = 80, x3 = 40. Le bénéce est alors de 6 480 euros.

Solution 1.7 Soit x le nombre de créoles vendues et y le nombre de tropicales. On a  (cocktail)  8x + 5y ≤ 1600 2x + 2y ≤ 520 (glace)  15x + 25y ≤ 5 000 (fruits) On veut maximiser la fonction 1, 2x + y . On a les tableaux suivants :

x 8 2 15 1, 2

e1 e2 e3 −Z

y 5 2 25 1

∗ 1 0 0 0

∗ 0 1 0 0

∗ 0 0 1 0

2nd membre 1600 520 5 000 0

rapports 200 260 1 000 3

0

En modiant la ligne e1 , cela nous donne

x e2 e3 −Z

∗ 1 0 0 0

y e1 0, 625 0, 125 0, 75 −0, 25 15, 625 −1, 875 0, 25 −0, 15

∗ 0 1 0 0

∗ 0 0 1 0

2nd membre 200 120 2 000 −240

rapports 320 160 128

En modiant la ligne e3 , cela nous donne

x e2 y −Z

∗ 1 0 0 0

∗ 0 0 1 0

e1 0, 2 −0, 16 −0, 12 −0, 12

∗ 0 1 0 0

e3 −0, 04 −0, 048 0, 064 −0, 016

2nd membre 120 24 128 −272

On a donc x = 120 créoles et y = 128 tropicales. Le prot est alors de 272 euros (et il reste 24 dl de glace)

Solution 1.8 Soit x et y les quantités d'engrais E1 et E2 utilisées par an et par hectare. On veut alors :  x + 2y ≥ 60    3x + 2y ≥ 120 3x + y ≥ 90    min(x + y) On considère le système dual :

  X + 3Y + 3Z ≤ 1 2X + 2Y + X ≤ 1  max(60X + 120Y + 90Z) D'où les tableaux suivants :

e1 e2 −Z

X Y 1 3 2 2 60 120

Z e1 3 1 1 0 90 0 16

e2 0 1 0

2nd membre 1 1 0 A. Fredet

Programme linéaire à plusieurs variables (simplexe)

En modiant la première ligne, on obtient

∗ 1 4 0 3 20 0 X

Y e2 −Z

e2 0 1 0

2nd membre

e2 − 14

2nd membre

Z e1 1 1 3 −1 − 32 −30 −40

1 3

1 3 1 3

−40

En modiant la deuxième ligne, cela donne

Y X −Z

∗ 0 1 0

∗ 1 0 0

Z

e1

5 4 − 34

1 2 − 12

1 4 1 4

3 4

−45 −30 −15

−45

Cela signie que les solutions du problème primal sont x = 30, y = 15 et le minimum vaudra 45. Il faut donc acheter 30 lots de E1 et 15 lots de E2 .

Solution 1.9 1. Sur le marché traditionnel, les 200m3 de chêne couteraient 200 × 140 euros, les 160m3 de sapin couteraient 160 × 90 euros et les 300m3 de sapin couteraient 300 × 70 euros, soit un total de 63 400 euros. 2. On s'intéresse mainteant aux lots A,B et C (a) On cherche donc à minimiser Z = 3840a + 3960b + 2880c avec  a ≥ 0, b ≥ 0, c ≥ 0    15a + 16b + 9c ≥ 0 (chêne) 15a + 8b + 24x ≥ 160 (hêtre)    20a + 24b + 12c ≥ 300 (sapin) 0

(b) le dual P est donc 0

maximiser Z = 200x + 160y + 300z  x ≥ 0, y ≥ 0, z ≥ 0    15x + 15y + 20z ≤ 3 840 avec 16x + 8y + 24z ≤ 3 960    9x + 24y + 12z ≤ 2 880 On obtient la forme standard en introduisant les variables décart : 0

maximiser Z = 200x + 160y + 300z  x ≥ 0, y ≥ 0, z ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0    15x + 15y + 20z + e1 = 3 840 avec 16x + 8y + 24z + e2 = 3 960    9x + 24y + 12z + e3 = 2 880 (c) On a donc les tableaux suivants :

e1 e2 e3 0 −Z

x 15 16 9 200

y 15 8 24 160

z e1 20 1 24 0 12 0 300 0

e2 0 1 0 0

e3 0 0 1 0

3 840 3 960 2 880 0

La variable entrante est donc z et la variable sortante est e2 . On obtient alors :

e1 z e3 0 −Z

x

y

5 3 2 3

25 3 1 3

1 0

20 60

z 0 1 0 0

e1 1 0 0 0 17

e2 − 56 1 24 − 12

−12, 5

e3 0 0 1 0

540 165 900 −49 500 A. Fredet

Programme linéaire à plusieurs variables (simplexe)

(d) Le troisième tableau est le suivant :

x e1 z y 0 Z

5 4 13 20 1 20

−3

y 0 0 1 0

z 0 1 0 0

e1 1 0 0 0

e2 − 85

1 20 1 − 40

−11

e3 5 − 12 1 − 60 1 20

−3

R 165 150 45 −52 200

i. L'optimum est atteint au troisième tableau car tous les coecients de la fonction économique sont 0 négatifs ou nuls. Le maximum de P est alors de 52 200 euros. C'est également le minimum du problème primal P . En dernière ligne du tableau 3, on lit que les valeurs des variables réeles du primal permettant d'atteindre l'optimum sont a = 0, b = 11 et c = 3. Pour minimiser ses coûts, la SSV doit donc acheter 0 lot A, 11 lots B et 3 lots C. Le prix correpondant est 52 200 euros, ce uqi est plus intéressant qu'au marché traditionnel. ii. On cherche le rabais r tel que 1 + r =

52 200 63 400 .

On trouve r ≈ 0, 1767. Le rabais est donc de 17,67%.

iii. On a achete 3m de chêne en trop (cela se lit dans la première colonne de la dernière ligne du tableau 3). 3

18

A. Fredet

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF