Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Programation Linéaire

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 19

Chapitre 4

Programmation linéaire

4.1 Exemples introductifs


 Représenter graphiquement les solutions des inégalités suivantes :
x−8≥0
x2 + y 2 ≤ 1.5

 Résoudre graphiquement le système d'équations suivant :



x−y =1
6x + 8y = 2

Réponses

 pour x − 8 ≥ 0, nous avons la demi-droite en bleu :


−1 0 1 2 3 4 5 6 7 8 9 10 11 12 13

59
60 CHAPITRE 4. PROGRAMMATION LINÉAIRE

 pour x + y ≤ 1.5, l'ensemble des solutions est donné par le surface à


2 2

l'intérieur du cercle de rayon 1.5 :


y

x
−2 −1 0 1 2

 La solution dans ce cas est donnée par l'intersection des deux droites :

y =x−1
3 1
y =− x+
4 4

x
−2 −1 0 1 2
4.2. DÉFINITION 1 61

4.2 Dénition 1
La programmation linéaire, est une méthode d'optimisation, dont la fonc-
tion coût (objective) et les contraintes sont linéaires. Ainsi dans ce chapitre
on ne considère que la résolution des équations linéaires.
La forme standard et compacte d'un problème de programmation linéaire
(PL) est donnée par : 
min C X (fonction coût)

sous les contraintes






 AX = B
X≥0

Où : X, B et C sont des vecteurs de dimensions n et A une matrice de


dimension m × n.
Si la contrainte 1 est donnée sous la forme d'une inégalité AX ≤ B, elle peut
être remis sous la forme d'une égalité comme suit : AX + Y = B où Y ≥ 0
Ainsi le problème devient : 

 min C′ X
AX + Y = B


 X≥0
Y≥0

Y est appelée variable d'écart (slack variable).


Exemple 1

Considérons le problème suivant :



 min z = x1 − x2
2x1 + x2 ≥ 2

x + 3x2 ≤ 3
 1


x1 , x2 ≥ 0
Ce problème se transforme

sous la forme standard comme suit :

 min z = x1 − x2
2x1 + x2 − x3 = 2

x + 3x2 + x4 = 3
 1


x1 , x2 , x3 , x4 ≥ 0
62 CHAPITRE 4. PROGRAMMATION LINÉAIRE

4.3 Dénitions 2
On considère le domaine des solutions réalisable comme étant l'intersection
d'un sous-espace avec l'orthant positif (quadrant en 2D, Octant en 3D, et
orthant en dimension n). Les points extrêmes des solutions réalisables sont
appelées solutions de base.

4.4 Le théorème fondamentale de la programmation li-


néaire
Étant donné un programme linéaire (PL) sous la forme standard
 min C′ X

AX = B
X≥0

où A est une matrice m × n de rang m, alors :


1. S'il existe une solution réalisable au programme linéaire, alors il possède
une solution de base réalisable.
2. S'il existe une solution réalisable optimale au programme linéaire, alors
il existe une solution de base réalisable optimale.

4.5 Relation avec la convexité


4.5.1 Dénition
Un point X appartenant à un ensemble convexe Ω, est dit point extrême,
s'il n'existe pas deux points distincts X et X dans Ω qui satisfont :
1 2

X = αX1 + (1 − α)X2

pour α ∈]0, 1[.


4.5. RELATION AVEC LA CONVEXITÉ 63

4.5.2 Équivalence entre point extrême et solution de base


Soit A une matrice de dimension m × n et de rang m, et B = {B } , m m

vecteurs. Soit K le polytope convexe constitué des n vecteurs X qui satisfont


i i=1


AX = B
X≥0

Un vecteur X est un point extrême de K si et seulement si X est une


solution de base réalisable.
4.5.3 Exemple
Considérons le problème de PL suivant :

x1 + x2 + x3 = 1
x1 , x2 , x3 ≥ 0

Figure 4.1  Ensemble des solutions possibles pour le problème précédent

Cette gure montre la surface (le triangle), où appartient la solution


admissible. Les trois sommets du triangle présentent les solutions de base
(1,0,0), (0,1,0) et (0,0,1).
64 CHAPITRE 4. PROGRAMMATION LINÉAIRE

4.6 Résolution graphique


Certains PL peuvent être résolu de façon graphique, c'est le type de pro-
blèmes où le nombre de variables ne dépassent pas trois.
Exemple

Une entreprise fabrique des vêtements pour femme. Les prots réalisés
sont de 50$ par robe et de 30$ par chemisier vendu. Combien de robes et de
chemisiers doit-elle vendre pour réaliser un prot maximum en respectant les
conditions suivantes :
 On ne peut pas fabriquer plus de 80 items de vêtement par mois.
 Il faut deux heures pour coudre une robe et une heure pour coudre un
chemisier, alors que la machine à coudre n'est disponible que pendant
cent heures par mois.
Résoudre graphiquement ce problème.
Réponse

Formulation du problème :


 max f (x1 , x2 ) = 50x1 + 30x2
x1 + x2 ≤ 80

2x + x2 ≤ 100
 1


x1 , x2 ≥ 0

La solution à ce problème correspond à l'un des sommets du polygones


[0 0], [0 50], [20 60] et [0 80], alors on remplace ces coordonnées dans la
fonction f (x , x ). on trouve que le maximum de prot correspond au point
[20 60], gure 4.2.
1 2

Exercice 14.
Soit le modèle de programmation linéaires suivant :
Maximiser z = 4x + 10x1 2
4.7. LA MÉTHODE DU SIMPLEXE 65

Figure 4.2  Résolution géométrique du programme linéaire

Les variables x et x sont soumises aux contraintes suivantes :


1 2


 3x1 + 4x2 ≥ 12




9x1 + 12x2 ≤ 108

 x1 ≥2

 x1 ≤ 10

x2 ≤4





x1 , x2 ≥0

a. Résoudre graphiquement ce programme linéaire.


b. Quelle est la valeur maximale de la fonction objectif?
Solution 14.
4.7 La méthode du simplexe
4.7.1 Introduction
L'idée de la méthode du simplexe est de démarrer avec une solution réa-
lisable de base (l'un des points extrêmes) de l'ensemble des contraintes d'un
66 CHAPITRE 4. PROGRAMMATION LINÉAIRE

problème sous sa forme standard et de passer à un autre de telle façon à


minimiser la fonction coût jusqu'à l'obtention du minimum. On note qu'il
est susant de se limité au solutions réalisable de base dans notre recherche
du point optimale réalisable.
4.7.2 Algorithme (Étapes)
Les étapes constituants cette méthode sont comme suit :
1. Mise sous la forme standard
2. Ajout des variables d'écart
3. Création du tableau
4. Recherche du pivot
5. Création du nouveau tableau
6. arrêter si toutes les valeurs de la dernière ligne sont positives
7. Identication de la valeur optimale
Remarque

Les variables d'écart ont un sens physique suivant le problème traité. ainsi
ils peuvent être considérés comme des activités ctives.
4.7.3 Exemple 1
Pour illustrer cette méthode on considère le programme linéaire suivant :
On veut maximiser la fonction coût suivante :
f (X) = 12x1 + 16x2

sous les contraintes suivantes :



 10x1 + 20x2 ≤ 120
8x1 + 8x2 ≤ 80
x1 , x2 ≥ 0

An d'appliquer l'algorithme du simplexe, on doit mettre le problème sous


sa forme standard. Ainsi, il faut transformer le problème de maximisation en
4.7. LA MÉTHODE DU SIMPLEXE 67

un problème de minimisation. Cela est fait simplement en multipliant la fonc-


tion f (X) par −1, et en introduisant les 2 variables non négatives d'écart x
et x . le problème se reformule comme suit :
3
4

On veut minimiser la fonction coût suivante :


h(X) = −12x1 − 16x2

sous les contraintes suivantes



:
10x1 + 20x2 + x3 = 120

8x1 + 8x2 + x4 = 80

x1 , x2 , x3 , x4 ≥ 0

On construit ainsi le tableau suivant :


x1 x2 x3 x4 b
l1 1⃝ 2 1 0 12 (12/2=6 ⃝ )
l2 1 1 0 1 10 (10/1=10)
l3 -12 -16 0 0
−16 est la plus petite valeur, on choisi alors la deuxième colonne, on divise
les éléments de la colonne b par ceux de la deuxième colonne. Ensuite on
choisis le pivot qui donne le rapport le plus petit, soit 2 dans ce cas.
x1 x2 x3 x4 b
l1 1/2 1 1/2 0 6
l2 1⃝ 1 0 1 10
l
3 -12 ⃝-16 0 0
Il faut annuler tous les éléments de la deuxième colonne sauf le pivot, alors
on obtient les équations des nouvelles lignes comme suit :
l2 = l2 − l1
l3 = l3 + 16l1
68 CHAPITRE 4. PROGRAMMATION LINÉAIRE

Le tableau devient :
x1 x2 x3 x4 b
1/2 1 1/2 0 6 (6/0.5=12)
l1
1/2 0 -1/2 1 4 (4/0.5=8
l2 ⃝ ⃝)
-4 0 8 0
l3⃝

On répète les mêmes opérations, on obtient :


x1 x2 x3 x4 b
1/2 1 1/2 0 6
l1 ⃝
1 0 -1 2 8
l2
-4 0 8 0
l3 ⃝

pour annuler les éléments de la première colonne, on met à jours les nouvelles
lignes comme suit :
1
l1 = l1 − l2
2

l3 = l3 + 4l2

x1 x2 x3 x4 b
l1 0 1 5/2 -1 2
l2 1 0 -1 2 8
l3 0 0 4 8
Il n'y-a pas d'éléments négatifs dans la dernière ligne alors les solutions sont :

x1 = 8
x2 = 2

Ainsi le maximum de la fonctions sous les contraintes est :


max f (x1 , x2 ) = 152.
4.7. LA MÉTHODE DU SIMPLEXE 69

4.7.4 Exemple 2
On veut maximiser la fonction coût suivante [3] :
f (X) = 3x1 + x2 + 3x3

sous les contraintes suivantes :




2x1 + x2 + x3 ≤ 2

x + 2x + 3x ≤ 5
1 2 3

2x1 + 2x2 + x3 ≤ 6

x1 , x2 , x3 ≥ 0

An d'appliquer l'algorithme du simplexe, on doit mettre le problème sous


sa forme standard. Ainsi, il faut transformer le problème de maximisation en
un problème de minimisation. Cela est fait simplement en multipliant la fonc-
tion f (X) par −1, et en introduisant les 3 variables non négatives d'écart
x , x et x . le problème se reformule comme suit :
4 5 6

On veut minimiser la fonction coût suivante :


h(X) = −3x1 − x2 − 3x3

sous les contraintes suivantes :




2x1 + x2 + x3 + x4 = 2

x + 2x + 3x + x = 5
1 2 3 5

2x1 + 2x2 + x3 + x6 = 6

x1 , x2 , x3 , x4 , x5 , x6 ≥ 0

On construit ainsi le tableau suivant :


x1 x2 x3 x4 x5 x6 b
⃝⃝ 2 1 1 1 0 0 2
⃝ 1 2 3 0 1 0 5
2 2 1 0 0 1 6
rT -3 -1 -3 0 0 0 0
70 CHAPITRE 4. PROGRAMMATION LINÉAIRE

Le premier tableau étant construit, nous cherchons le pivot. qui est ⃝


le 1
encerclé dans le tableau suivant :
x1 x2 x3 x4 x5 x6 b
2 1 1 1 0 0 2
-3 0 ⃝ 1 -2 1 0 1
-2 0 -1 -2 0 1 2
r -1 0 -2 1 0 0 2
T

Le deuxième pivot et les opérations correspondantes sont résumé sur le


tableau suivant :
x1 x2 x3 x4 x5 x6 b
5 1 0 3 -1 0 1

-3 0 1 -2 1 0 1
-5 0 0 -4 1 1 3
r -7 0 0 -3 2 0 4
T

Les mêmes opérations sont réalisées pour le troisième pivot ce qui donne
le tableau :
x1 x2 x3 x4 x5 x6 b
1 1/5 0 3/5 -1/5 0 1/5
0 3/5 1 -1/5 2/5 0 8/5
0 1 0 -1 0 1 4
r 0 7/5 0 6/5 3/5 0 27/5
T

Dans ce tableau, on ne trouve pas d'éléments négatives dans la dernière


ligne. Alors nous arrêtons les calculs. Les solutions optimale correspondantes
sont : 1 8
x1 = , x2 = 0, x3 =
5 5
Les valeurs correspondantes aux variables auxiliaires qui ne sont pas pris
en compte dans la fonction coût, sont :
x4 = 0, x5 = 0, x6 = 4
La valeur maximale de la fonction coût est :
27
f (x1 , x2 , x3 ) =
5
4.7. LA MÉTHODE DU SIMPLEXE 71

Exercice 15. Application du Simplexe


. En utilisant la méthode du simplexe, déterminer la solution du programme
linéaire suivant :  max z = 20x + 15x + 18x
sous les contraintes

 1 2 3





 5x + 10x + 4x ≤ 80
1 2 3

 15x1 + 12x2 + 5x3 ≤ 120

7x1 + 21x2 + 3x3 ≤ 84





x1 , x2 , x3 ≥ 0

Solution 16
Exercice 16. Modèle d'un programme linéaire . [1]
Une entreprise fabrique quatre produits P , P , P et P . Le processus de
fabrication peut exiger jusqu'à cinq machines diérentes pour la fabrication
1 2 3 4

de ces produits M , M , M , M et M . Les temps de fabrication sont


indiqués sur le tableau suivant :
1 2 3 4 5

P1 P2 P3 P4
M1 0.25 2 1.5 -
M2 1 1.2 2 1.4
M3 1.5 2 0.25 2
M4 2 0.4 0.5 1.5
M5 0.5 1 1 2

Table 4.1  Temps de fabrication en heures

Chaque machine peut opérer 40 heures par semaine, et la quantité de


machines pour la fabrication est indiquée ci-après : Les bénéces obtenus de
Machine M1 M2 M3 M4 M5
Quantité 5 6 10 5 8

la vente des produits sont : L'objectif étant de maximiser le bénéce, formuler


Produit P1 P2 P3 P4
Bénéce ($) 8 6 9 5

le modèle de programmation linéaire pour ce problème.


72 CHAPITRE 4. PROGRAMMATION LINÉAIRE

4.8 Solutions des exercices


Solution Ex. 14. énoncé de l'exercice 14.

La première étape consiste àtracer les lignes dont les équations sont :

 3x1 + 4x2 = 12

9x1 + 12x2 = 108





x1 =2




x1 = 10

x2 =4








 x1 =0

 x2 =0
Cela donne le résultat montré dans la gure suivante :

Le programme Matlab correspondant à cette gure est :


4.8. SOLUTIONS DES EXERCICES 73

figure , hold on
1

% Tracer des lignes


3

line ([0 4] ,[3 0])


4

line ([12 0] ,[0 9])


5

line ([2 2] ,[0 9])


6

line ([10 10] ,[0 9])


7

line ([0 12] ,[4 4])


8

% Aire correpondante aux solutions


10

X=[4 10 10 20/3 2 2];


11

Y=[0 0 1.5 4 4 1.5];


12

f i l l (X,Y,[0.5 0.5 0.5]+0.4)


13

14

line ([20/3 20/3] ,[0 4] , ' LineStyle ' , '== ' )


15

16

plot (X,Y, ' * k ' )


17

18

xlabel ( 'x_1 ' )


19

ylabel ( 'x_2 ' )


20

21

Nous devons par la suite identier les points qui présentent les coins du
polygone soit six points dans ce cas :
Point P1 P2 P3 P4 P5 P6
x 2 20
10 10 4 2
4 4 1.5 0 0 1.5
1 3
x
z = 4x + 10x 56 55 40 16 23
2
200

La valeur de la fonction coût correspondante à la solutions est


1 2 3

20 200
z =4× + 10 × 4 =
3 3
Solution Ex. 15. Formulation
.
74 CHAPITRE 4. PROGRAMMATION LINÉAIRE

Solution Ex. 16. Application du Simplexe


. Pour utiliser la méthode du simplexe nous devons ajouter 3 variables d'écart
x , x et x an de satisfaire les égalités. Écriture sous forme standard :
4 5 6

min z = −20x1 − 15x2 − 18x3 −0x4 − 0x5 − 0x6
sous les contraintes








 5x + 10x + 4x +x = 80
1 2 3 4

 15x1 + 12x2 + 5x3 v+x5 = 120

7x1 + 21x2 + 3x3 +x6 = 84


avec :



x1 , x2 , x3 ; x4 , x5 , x6 ≥ 0

La solution de base initiale est mis sur le tableau suivant :


x1 x2 x3 x4 x5 x6 b
5 10 4 1 0 0 80
15 12 5 0 1 0 120
7 21 3 0 0 1 84
r -20 -15 -18 0 0 0 0
T

donc nous allons choisir la colonne 1 et on prend comme pivot élément de la


deuxième colonne
x1 x2 x3 x4 x5 x6 b
5 10 4 1 0 0 80
⃝ 15 12 5 0 1 0 120
7 21 3 0 0 1 84
r -20 -15 -18 0
T
0 0 0
division de la deuxième ligne par le pivot
x1 x2 x3 x4 x5 x6 b
5 10 4 1 0 0 80
1 4/5 1/3 0 1/15 0 8
7 21 3 0 0 1 84
r -20 -15 -18 0 0
T
0 0
an d'éliminer le premier élément de la première ligne, on multiplie la 2ème
ligne par -5 et on l'additionne à la première ligne.
4.8. SOLUTIONS DES EXERCICES 75

x1 x2 x3 x4 x5 x6 b
0 6 7/3 1 -1/3 0 40

1 4/5 1/3 0 1/15 0 8
7 21 3 0 0 1 84
r -20 -15 -18 0 0
T
0 0
an d'éliminer le premier élément de la 3ème ligne, on multiplie la 2ème ligne
par -7 et on l'additionne à la 3ème ligne.
x1 x2 x3 x4 x5 x6 b
0 6 7/3 1 -1/3 0 40
1 4/5 1/3 0 1/15 0 8
⃝ 0 77/5 2/3 0 -7/15 1 28
r -20 -15 -18 0 0
T
0 0
an d'éliminer le premier élément de la 4ème ligne, on multiplie la 2ème ligne
par 20 et on l'additionne à la 4ème ligne.
x1 x2 x3 x4 x5 x6 b
0 6 7/3 1 -1/3 0 40
1 4/5 1/3 0 1/15 0 8
0 77/5 2/3 0 -7/15 1 28
r⃝T
0 1 -34/3 0 4/3 0 160
La valeur minimale dans la 4ème ligne est -34/3, alors on prend la colonne 3
et en identie le pivot qui est 7/3.
x1 x2 x3 x4 x5 x6 b
0 6 ⃝ 7/3 1 -1/3 0 40
1 4/5 1/3 0 1/15 0 8
0 77/5 2/3 0 -7/15 1 28
r 0 1
T
-34/3 0 4/3 0 160
On divise la première ligne par le pivot.
x1 x2 x3 x4 x5 x6 b
0 18/7 1 3/7 -1/7 0 120/7
1 4/5 1/3 0 1/15 0 8
0 77/5 2/3 0 -7/15 1 28
rT 0 1 -34/3 0 4/3 0 160
76 CHAPITRE 4. PROGRAMMATION LINÉAIRE

pour annuler le 3ème élément de la ligne 2, on multiplie la première ligne par


-1/3 et on l'ajoute à la 3ème ligne.
x1 x2 x3 x4 x5 x6 b
0 18/7 1 3/7 -1/7 0 120/7
1 -2/35⃝ 0 -1/7 4/35 0 16/7
0 77/5 2/3 0 -7/15 1 28
r 0 1
T
-34/3 0 4/3 0 160
pour annuler le 3ème élément de la ligne 3ème ligne, on multiplie la première
ligne par -3/2 et on l'ajoute à la 3ème ligne.
x1 x2 x3 x4 x5 x6 b
0 18/7 1 3/7 -1/7 0 120/7
1 -2/35 0 -1/7 4/35 0 16/7
0 479/35⃝ 0 -2/7 -13/35 1 116/7
r 0 1
T
-34/3 0 4/3 0 160
pour annuler le 3ème élément de la ligne 4ème ligne, on multiplie la première
ligne par 34/3 et on l'ajoute à la 4ème ligne.
x1 x2 x3 x4 x5 x6 b
0 18/7 1 3/7 -1/7 0 120/7
1 -2/35 0 -1/7 4/35 0 16/7
0 479/35 0 -2/7 -13/35 1 116/7
r 0 211/7 ⃝
T
0 34/7 -2/7 0 2480/7
La solution optimale n'est pas encore obtenue tant qu'il y-a une valeur né-
gative dans la quatrèle ligne. Donc on cherche le pivot dans la 5ème colonne,
il se touve à la 2ème ligne. donc on dévise ette ligne sur le pivot.
x1 x2 x3 x4 x5 x6 b
0 18/7 1 3/7 -1/7 0 120/7
35/4 -1/2 0 -5/4⃝ 1 0 20
0 479/35 0 -2/7 -13/35 1 116/7
r 0
T
211/7 0 34/7 -2/7 0 2480/7
pour annuler le 5ème élément de la première ligne, on multiplie la 2ème ligne
par 1/7 et on l'ajoute à la première ligne.
4.8. SOLUTIONS DES EXERCICES 77

x1 x2 x3 x4 x5 x6 b
5/4 5/2 1 1/4 ⃝ 0 0 20
5/2 -1/2 0 -5/4 1 0 20
0 479/35 0 -2/7 -13/35 1 116/7
r 0
T
211/7 0 34/7 -2/7 0 2480/7
pour annuler le 5ème élément de la 3ème ligne, on multiplie la 2ème ligne
par 13/35 et on l'ajoute à la 3ème ligne.
x1 x2 x3 x4 x5 x6 b
5/4 5/2 1 1/4 0 0 20
5/2 -1/2 0 -5/4 1 0 20
13/4 27/2 0 -3/4⃝ 0 1 24
r 0 T
211/7 0 34/7 -2/7 0 2480/7
pour annuler le 5ème élément de la 4ème ligne, on multiplie la 2ème ligne
par 2/7 et on l'ajoute à la 4ème ligne.
x1 x2 x3 x4 x5 x6 b
5/4 5/2 1 1/4 0 0 20
5/2 -1/2 0 -5/4 1 0 20
13/4 27/2 0 -3/4 0 1 24
r 5/2 30
T
0 9/2⃝ 0 0 360
A cette étape on arrêt les calcul car dans la quatrième ligne on ne trouve
pas de valeur négative. Ainsi la solution

de base réalisable est :

 x3 = 20




 x5 = 20

x = 24
6

 x1 = 0

x2 = 0





x4 = 0

La solution optimale est : 


x1 = 0

x2 = 0

x3 = 20

Vous aimerez peut-être aussi