Vous êtes sur la page 1sur 36

Programmation linéaire

M. KADDIRI

M. KADDIRI 1
1. Un exemple pour bien comprendre :

Un magasin lance une promotion de


bonus en concertation avec un operateur
téléphonique:

Votre compte bonus sera augmenté de 5


points pour tout cadeau acheté (tout
cadeau dont le prix est inferieur à 30 dh
ne sera pas compté) et par 1 point pour
tout SMS envoyé. (L’operateur
téléphonique facturera 1 dh par sms)
M. KADDIRI 2
1. Un exemple pour bien comprendre :

Said s’est intéressé par cette offre mais


pour d’autres raisons il a décidé de ne pas
dépasser 60 SMS/mois.

En plus, Said a calculé qu'il lui fallait


environ 2h pour choisir et acheter chaque
cadeau alors qu'il dispose de 8 h/mois
de temps libre pour faire ses achats.

M. KADDIRI 3
Question :
Sachant que le budget loué par Said ne peut
pas dépasser 150 dh/mois combien de
cadeaux et combien de SMS doit-il envoyer
pour optimiser son bonus ?

Modélisation :
1. Choisir des variables adaptées.
2. Exprimer la fonction à optimiser (appelée
fonction objectif) en fonction de ces variables.
3. Exprimer les contraintes sur ces variables.

M. KADDIRI 4
variable de décision
toute quantité utile à la résolution du
problème et dont le modèle doit déterminer
la valeur.

x := Nombre de cadeaux offerts par mois,


y := Nombre de SMS envoyés par mois.

M. KADDIRI 5
La fonction objectif :
l'expression qui modélise la quantité
à optimiser en fonction des variables
du problème.

un nombre de points maximum: (cas étudié)

max z = 5x + y
M. KADDIRI 6
Les contraintes du problème:
toutes les relations limitant le choix
de valeurs possibles pour les variables.

Temporelles:
2x <= 8 soit x<= 4:

Financières :
30x + y <=150

Morales.
M. KADDIRI 7
y<= 60
Les contraintes du problème:
Attention, il arrive souvent que des contraintes
(cachées) ne soient pas explicites dans les
problèmes. Ici par exemple, il sera difficile pour
Said d'offrir -3 cadeaux et d'envoyer -8 textos.

Contraintes supplémentaires

x >= 0
et
y >=0
M. KADDIRI 8
Formalisation du problème :

max z = 5x + y

sous contraintes
X≤4
30x + y ≤ 150
Y ≤ 60
x≥0
M. KADDIRI y≥0 9
Programmation linéaire:

méthode analytique:
(internet: cours sur la recherche
operationnelle)

méthode graphique :
(voir ci-dessous)

M. KADDIRI 10
Contraintes (inégalité,2 variables)
a1x1 + a2x2 <= b b > 0, a1 > 0, a2 > 0
x2
b/a2

>b
Demi-espace
admissible
<= b

b/a1
x1
Fonction objectif (2 variables)
 c1x1 + c2x2 = z c1 > 0, c2 > 0

valeur de la
fonction objectif

z augmente dans z4
la direction
de la flèche z3

z1/c2
z2
x1
z1/c1 z1
Optimisation sous contrainte,
méthode graphique

x2

Fonction objectif

x1
M. KADDIRI
Polyèdre P 13
La recherche de l’optimum
x2 peut être restreinte à
l’ensemble des points extrêmes

x1
La méthode du simplexe explore les
x2
points extrêmes en améliorant à chaque
itération la valeur du critère.

x1
Exemple

 Maximisation du profit
 Contrainte de rareté d’une ressource
 Contraintes de demande
 Exemple
 Max 25 Xb + 30 Xc
 SC : Xb /200 + Xc/140 ≤ 40
Xb ≤ 6000
Xc ≤ 4000

Xb ; Xc ≥ 0

M. KADDIRI 16
Solution graphique de l’exemple

xC

xB = 6000
6000 192’000
xC = 1400
4500

3000 Solution
optimale
1500 P

0 xB
M. KADDIRI 17
0 1500 3000 4500 6000 7500 9000
Simplex
Présentation & démarche
Les problèmes réels de programmation linéaire présentent plusieurs
variables de décision et de nombreuses équations de contraintes.
De tels problèmes ne peuvent être résolus graphiquement, mais on
utilise des algorithmes tel que celui du Simplexe.

Procédure générale à suivre :

1 -Dresser le tableau initial du simplexe.


Formuler la fonction objectif et les contraintes,
entrer les variables de décision, les variables appartenant à la
solution,
les constantes de la solution, les coefficients (C) rattachés aux
variables de la fonction objectif, le coût (Z) résultant de
l'introduction de la variable
et (C -Z) qui est la contribution nette de la variable.

M. KADDIRI 18
 Étape 1:

C 10 30 0 0 Valeur
Var € De
À la solution
Variables de décision
solution
X Y S1 S2
0 S1 4 6 1 0 12

0 S2 8 4 0 1 16

Z 0 0 0 0 0

C-Z 10 30 0 0
Simplex
Présentation & démarche
2 -Trouver la colonne pivot: c'est celle qui présente le nombre positif
le plus élevé sur la ligne du bas (C -Z). Elle devient la nouvelle
variable de la solution.

3 -Trouver la ligne pivot: c'est elle qui a le plus faible ratio de la


valeur solution divisée par la valeur de la colonne pivot. N'utiliser
que des nombres positifs. Cela identifie la variable écartée de la
solution.

4 -Entourer le pivot d'un cercle: c'est l'intersection de la ligne pivot et


de la colonne pivot.

M. KADDIRI 20
La colonne pivot : La colonne pivot est celle qui contient le
plus grand nombre positif (30) dans la ligne du bas.

C 10 30 0 0 Valeur
Var € De
À la Variables de décision solution
solution X Y S1 S2
L pivot
0 S1 4 6 1 0 12 (12/6)
0 S2 8 4 0 1 16 (16/4)
Z 0 0 0 0 0
C-Z 10 30 0 0

C pivot

la ligne pivot présente le plus petit ratio: 12/6=2 ;


16/4=4 donc la ligne 1 est la ligne pivot
Le pivot est entouré d’un cercle
Simplex
Présentation & démarche
5 -Convertir le pivot en 1 : en divisant toutes les valeurs de la
ligne pivot par la valeur du pivot. Entrer cette nouvelle ligne
dans un autre tableau (nouveau).

6- Créer d'autres lignes pour le tableau suivant avec Zéro dans la


colonne pivot: ceci est obtenu en multipliant la nouvelle ligne
(provenant de l'étape 5) par la valeur négatives de l'élément
de la colonne pivot qui est à convertir et en ajoutant le résultat
de l'ancienne ligne. Puis continuer ainsi pour chaque rangée de
la section centrale du tableau.

7- Tester l'optimalité. Calculer les valeurs de Z et C- Z. Les valeurs


de Z pour chaque colonne sont L [(éléments de la colonne) x
(C)]. Si toutes les valeurs de C -Z sont négatives, alors la
solution est optimale. Lire les valeurs des variables
appartenant à la solution dans la colonne de droite et la valeur
de la fonction objectif, dans la ligne Z de cette colonne. Si la
solution n'est pas optimale retourner à l'étape 2.
M. KADDIRI 22
C 10 30 0 0 Valeur
Var € Des
À la Variables de décision solution
solution X Y S1 S2
30 Y 2/3 1 1/6 0 2
0 S2 16/3 0 -2/3 1 8
Z 20 30 5 0 60
C-Z -10 0 -5 0

Les valeurs de la ligne Z sont [(élément des colonnes) x (C)].


Par exemple pour X : Z = (2/3)*30 + (16/3)*0 = 20.
Exemple
Exemple : Contrainte Inégalité Égalité
machine A 4X + 6Y ≤ 12 4X + 6Y + 1*S1+0*S2 = 12
machine B 4X + 6Y ≤ 16 8X + 4Y +0*S1+ 1*S2 = 16
S1 et S2 sont des variables complémentaires ou des produits fictifs.
La méthode du simplexe débute toujours par une solution possible où
l'on ne produit que des variables complément. Cela correspond au
point origine du graphique où X et Y sont nuls.
Chaque simplexe est une solution qui correspond graphiquement à
l'un des angles de la zone de faisabilité.

Fonction objectif :
Max Z = 10 x+ 3Oy Max Z = 10x + 3Oy

machine A: 4X + 6y ≤ 12 4X + 6y + 1S1+ 0S2 = 12


machine B: 8x + 4y ≤ 16 8x + 4y + 0S1 + 1S2 = 16
M. KADDIRI 24
 Étape 1:

C 10 30 0 0 Valeur
Var € De
À la solution
Variables de décision
solution
X Y S1 S2
0 S1 4 6 1 0 12

0 S2 8 4 0 1 16

Z 0 0 0 0 0

C-Z 10 30 0 0
Éléments du tableau simplex
 la partie centrale du tableau est constituée des
coefficients des contraintes des équations :
4x + 6y + 1 S1 + 0 S2 = 12
8x + 4y + 0 S1 + 1 S2 = 16

 La colonne des variables appartenant à la solution


nous renseigne sur les variables qui y participent
effectivement (dans ce cas, uniquement les
variables complément),
 et la colonne des valeurs des solutions donne les
valeurs de ces variables. Les nombres proviennent
du membre de droite des équations des
contraintes (12,16).
M. KADDIRI 26
Éléments du tableau simplex

 Le C dans le coin supérieur gauche est à la fois une


tête de ligne et une tête de colonne.

 Il indique la contribution d'une unité de chaque


variable à la fonction objectif.

 Ainsi, chaque unité de X (nettoyant) contribue


pour 10 kdhs au profit et chaque unité de Y (cire)
pour 30 kdhs.

 S1 et S2 contribuent pour 0 dhs.


M. KADDIRI 27
Éléments du tableau simplex

 La ligne Z du tableau représente le coût ou l'intérêt


de l'opportunité, c'est à dire, la contribution que
l'on pourrait attendre de l'introduction (ou de la
production) d'une unité (ou d'une unité
supplémentaire) de la variable de chaque colonne
correspondante.

 Elle est calculée pour chaque colonne en


multipliant respectivement les éléments de la
colonne par les contributions qui leur correspond
dans la colonne C, puis en additionnant le tout.

M. KADDIRI 28
Éléments du tableau simplex

 Par exemple la valeur de Z pour la colonne X est :


(4 x 0) +( 8 x 0) = 0.
 Cela signifie que pour introduire une unité de
nettoyant X dans la solution, il faut restituer 4 h de
complément de la machine A au coût de 0 kdhs et
8 h de la machine B au coût de 0 kdhs.

 La valeur de Z pour la colonne de droite représente


le total des contributions des variables
actuellement dans la solution.

M. KADDIRI 29
Éléments du tableau simplex

 Du fait que la solution initiale est de produire 12h


de complément avec la machine A et 16 avec B
(avec des contributions nulles), Le profit initial ne
peut qu'être nul lui-même.

 La ligne des Z dans la solution initial est toujours


constituée de zéros, mais elle évolue au fur et à
mesure des progrès de la solution.

M. KADDIRI 30
Éléments du tableau simplex

 Les valeurs en bas du tableau (C -Z)


représentent la contribution nette qu'on peut
obtenir en introduisant dans la solution une
unité de la variable de la colonne.

 Ainsi, nous augmentons la valeur de la


fonction objectif de 10 kdh pour chaque unité
de X produite et de 30 kdh pour chaque unité
de Y.

M. KADDIRI 31
Exemple

Utiliser la méthode du simplexe pour résoudre le


problème de programmation linéaire précédent.
Max Z= 10 x+ 3O y
avec 4x + 6y + 1 S1 + 0 S2 = 12
8x + 4y + 0 S1 + 1 S2 = 16

M. KADDIRI 32
Étape 1:

C 10 30 0 0 Valeur
Var € De
À la solution
Variables de décision
solution
X Y S1 S2
0 S1 4 6 1 0 12

0 S2 8 4 0 1 16

Z 0 0 0 0 0

C-Z 10 30 0 0
Étape 2 : La colonne pivot : La colonne pivot est celle qui
contient le plus grand nombre positif (30) dans la ligne du
bas.
C 10 30 0 0 Valeur
Var € De
À la Variables de décision solution
solution X Y S1 S2
L pivot
0 S1 4 6 1 0 12 (12/6)
0 S2 8 4 0 1 16 (16/4)
Z 0 0 0 0 0
C-Z 10 30 0 0

C pivot

Etape 3 : la ligne pivot présente le plus petit ratio:


12/6=2 ; 16/4=4 donc la ligne 1 est la ligne pivot
Etape 4 : Le pivot est entouré d’un cercle
Etape 5 : Chaque valeur de la ligne est divisée par le pivot, et
ces nouvelles valeurs sont introduites dans un nouveau tableau.
X Y S1 S2 Valeur
solution
Y 2/3 1 1/6 0 2

Etape 6 :De nouvelles lignes sont crées pour le tableau suivant, de telle
sorte que tous les éléments de la colonne pivot soient nuls. Commencer
par la ligne S2 qui comporte un 4 dans la colonne Y. Multipliez la
nouvelle ligne par l'opposé de la valeur qu'il faut convertir (-4) et ajoutez
la à l'ancienne ligne S2. Multiplier la nouvelle ligne par (- 4) on obtient:

X Y S1 S2 Valeur
solution
Y -8/3 -4 -2/3 0 -8
Ajoutée à l’ancienne pour obtenir la nouvelle :

8 4 0 1 16
16/3 0 -2/3 1 8
Puis entrer cette ligne dans un nouveau tableau.

C 10 30 0 0 Valeur
Var € Des
À la Variables de décision solution
solution X Y S1 S2
30 Y 2/3 1 1/6 0 2
0 S2 16/3 0 -2/3 1 8
Z 20 30 5 0 60
C-Z -10 0 -5 0
S'il y avait davantage de ligne à convertir, il faudrait répéter
l'opération pour la ligne suivante.
Etape 7 : Les valeurs de la ligne Z sont [(élément des colonnes)
x (C)]. Par exemple pour X : Z = (2/3)*30 + (16/3)*0 = 20.
Répéter les étapes 2 à 7 jusqu’à ce que les valeur de C-Z soient
toutes ≤ 0

Vous aimerez peut-être aussi