Vous êtes sur la page 1sur 33

Algorithme du simplexe

Représentation algébrique
Problème du restaurateur

• Disponibilités du restaurateur:
30 oursins
24 crevettes
18 huîtres

• Deux types d’assiettes de fruits de mer sont offertes par le restaurateur:


assiette à 8$ composée de 5 oursins, 2 crevettes et 1 huître
assiette à 6$ composée de 3 oursins, 3 crevettes et 3 huîtres

• Problème: Déterminer le nombre d’assiettes de chaque type à préparer afin de


maximiser le revenu total du restaurateur tout en respectant les disponibilités
de fruits de mer

2
Variables du problème

• Disponibilités du restaurateur: i) Variables du problème (activités ou actions)


30 oursins Actions Niveau
24 crevettes (# assiettes)
18 huîtres Préparer assiettes 8$ x
Préparer assiettes 6$ y
• Deux types d’assiettes de fruits de
mer offertes par le restaurateur:
8$ composée de 5 oursins, 2 crevettes
et 1 huître
6$ composée de 3 oursins, 3 crevettes
et 3 huîtres

• Problème: Déterminer le nombre


d’assiettes de chaque type à préparer
afin de maximiser le revenu total du
restaurateur tout en respectant les
disponibilités de fruits de mer.
3
Objectif et contraintes

• Disponibilités du restaurateur: ii) Objectif


30 oursins Maximiser le revenu total
24 crevettes Max 8x + 6y
18 huîtres
iii) Contraintes
• Deux types d’assiettes de fruits de
mer offertes par le restaurateur: Disponibilité des ressources
8$ composée de 5 oursins, 2 crevettes
et 1 huître oursins : 5x + 3y ≤ 30
6$ composée de 3 oursins, 3 crevettes crevettes : 2x + 3y ≤ 24
et 3 huîtres huîtres : x + 3y ≤ 18

• Problème: Déterminer le nombre Non négativité des variables


d’assiettes de chaque type à préparer
afin de maximiser le revenu total du x, y ≥ 0
restaurateur tout en respectant les
disponibilités de fruits de mer.
4
Modèle mathématique

Max 8x + 6y
s.a.
5x + 3y ≤ 30
2x + 3y ≤ 24
x + 3y ≤ 18
x, y ≥ 0

5
Transformation de Max en Min

• Considérons le problème de maximisation


Max f(w)
s.a w  X  R n
où f : X → R1.
• Soit w* un point de X où f(w) atteint son maximum.
• Donc f(w*) ≥ f(w) w X
ou – f(w*) ≤ – f(w) w X
• Par conséquent
– f(w*) = Min – f(w)
s.a. w  X  R
n

et w* est un point de X où – f(w) atteint son minimum.


• Ainsi qu’on maximise f(w) ou qu’on minimise –f(w), on retrouve la même solution
optimale w*.
6
Problème du restaurateur

Max 8x + 6y - Min – (8x + 6y)


s.a. s.a.
5x + 3y ≤ 30 5x + 3y ≤ 30
2x + 3y ≤ 24 2x + 3y ≤ 24
x + 3y ≤ 18 x + 3y ≤ 18
x, y ≥ 0 x, y ≥ 0

7
Problème du restaurateur

Max 8x + 6y - Min z = – 8x – 6y
s.a. s.a.
5x + 3y ≤ 30 5x + 3y ≤ 30
2x + 3y ≤ 24 2x + 3y ≤ 24
x + 3y ≤ 18 x + 3y ≤ 18
x, y ≥ 0 x, y ≥ 0

8
Algorithme du simplexe

• Inventé par George Dantzig en 1947.

• Méthode systématique pour explorer l’espace des solutions réalisables (domaine


réalisable).

• Les contraintes de non négativité des variables sont tenues en compte de façon
implicite par l’algorithme.

• L’algorithme s’applique à une forme standard où toutes les contraintes sont des
contraintes d’égalité.

• En présence de contraintes d’inégalité, il faut alors introduire des variables d’écart.

9
Problème du restaurateur

• Nous obtenons une forme standard en transformant les contraintes d’inégalité en


contraintes d’égalité avec les variables d’écart u, p et h:

Min z = – 8x – 6y Min z = – 8x – 6y
s.a. s.a.
5x + 3y ≤ 30 5x + 3y + u = 30
2x + 3y ≤ 24 2x + 3y + p = 24
x + 3y ≤ 18 x + 3y + h = 18
x, y ≥ 0 x, y, u, p, h ≥ 0
• Les contraintes forment alors un système de 3 équations contenant 5 variables.
• Puisque nous avons 2 variables excédentaires, il existe une infinité de solutions à ce
système et nous en cherchons une qui minimise la valeur de l’objectif.

10
Problème du restaurateur

• Nous obtenons une forme standard en transformant les contraintes d’inégalité en


contraintes d’égalité avec les variables d’écart u, p et h:

Min z = – 8x – 6y Min z = – 8x – 6y
s.a. s.a.
5x + 3y ≤ 30 5x + 3y + u = 30
2x + 3y ≤ 24 2x + 3y + p = 24
x + 3y ≤ 18 x + 3y + h = 18
x, y ≥ 0 x, y, u, p, h ≥ 0

• Une méthode de résolution par essai et erreur ne peut être utilisée, même pour
des problèmes de petite taille.
o x = 6, y = 0, z = -48 optimal?
o x = 4, y = 3, z = -50 optimal? 11
Variables dépendantes et indépendantes

Min z = – 8x – 6y
s.a.
5x + 3y + u = 30
2x + 3y + p = 24
x + 3y + h = 18
x, y, u, p, h ≥ 0
• On a un système d’équations avec 3 contraintes et 5 variables.
• Puisqu’on a 2 variables excédentaires, on choisit 2 variables qu’on identifie comme
variables indépendantes.
• Les 3 autres variables sont les variables dépendantes.
• On exprime ensuite les variables dépendantes en fonction des variables
indépendantes. 12
Algorithme du simplexe – Méthode algébrique
• Supposons qu’on choisit x et y comme variables indépendantes.
• On exprime alors les variables dépendantes u, p, h (ainsi que z) en fonction de x et
y. C’est donc dire que les variables dépendantes sont à la gauche et le variables
indépendantes à la droite de chacune des équations.

5x + 3y + u = 30 u = 30 – 5x – 3y
p = 24 – 2x – 3y
2x + 3y + p = 24 
x + 3y + h = 18 h = 18 – x – 3y

z = 0 – 8x – 6y
• En fixant les variables indépendantes x et y à 0 on obtient directement les valeurs
des 3 variables dépendantes u, p, h , ce qui nous fournit une première solution
réalisable.
x=y=0 => u = 30, p = 24, h = 18 avec z = 0.

13
Système 1

u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – x – 3y
z = 0 – 8x – 6y

• Ce système est associé à la solution


x=y=0 => u = 30, p = 24, h = 18 avec z = 0.

14
Choix de la variable d’entrée

• On a le système:
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – x – 3y
z = 0 – 8x – 6y
qui est associé à la solution
x = 0, y = 0, u = 30, p = 24, h = 18 avec z = 0.
• On peut réduire la valeur de z en augmentant la valeur de x ou y.
• Puisqu’il faut minimiser z, il est avantageux d’augmenter la valeur de x puisque
chaque augmentation d’une unité de x entraîne une diminution de 8 unités de z.
On dit que x est la variable d’entrée.

15
Augmentation de la variable d’entrée

• L’augmentation de x est limitée par les contraintes de non négativité des variables
u, p et h:
u = 30 – 5x – 3y ≥ 0
p = 24 – 2x – 3y ≥ 0
h = 18 – x – 3y ≥ 0
• Puisque la valeur de y est maintenue à 0, ceci est équivalent à
u = 30 – 5x ≥ 0  x ≤ 30 / 5 = 6
p = 24 – 2x ≥ 0  x ≤ 24 / 2 = 12
h = 18 – x ≥ 0  x ≤ 18
• Donc la solution demeure réalisable pour x ≤ min {6, 12, 18} = 6.
• C’est la variable u qui limite l’augmentation de x car elle atteint 0 en premier
lorsque x augmente. On dit que u est la variable de sortie.

16
Augmentation de la variable d’entrée

• On a le système :
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – x – 3y
z = 0 – 8x – 6y

• On a vu que la solution demeure réalisable pour x ≤ min {6, 12, 18} = 6.


• Puisque l’objectif est de minimiser z, nous allons choisir la plus grande valeur
possible pour x, soit x = 6.
• Pour cette valeur de x, c’est la variable u qui atteint 0.
• C’est donc dire que x devient variable dépendante et u devient variable
indépendante de valeur nulle.

17
Transformation du système 1 - Pivot

• On a le système :
u = 30 – 5x – 3y
p = 24 – 2x – 3y
h = 18 – x – 3y
z = 0 – 8x – 6y

• Il faut maintenant identifier le nouveau système d’équations qui correspond à la


solution où x augmente de 0 à 6 et devient variable dépendante tandis que u
diminue de 30 à 0 et devient variable indépendante.
• Autrement dit, y et u sont les nouvelles variables indépendantes (de valeur nulle) et
x, p, h sont les nouvelles variables dépendantes.
• Dans le système recherché, les variables x, p, h doivent donc s’exprimer en fonction
de y et u.

18
Transformation du système 1 - Pivot

• Utilisons d’abord l’équation de la variable de sortie pour laquelle il est facile


d’exprimer x en fonction de u et y:

u = 30 – 5x – 3y x = 6 – 1/5u – 3/5y
p = 24 – 2x – 3y
h = 18 – x – 3y
z = 0 – 8x – 6y

u = 30 – 5x – 3y
 5x = 30 – u – 3y
 x = 6 – 1/5u – 3/5y
19
Transformation du système 1 - Pivot

• Utilisons l’expression de x en fonction de u et y pour éliminer x des autres


équations et exprimer p, h (ainsi que z) en fonction de u et y :

u = 30 – 5x – 3y x = 6 – 1/5u – 3/5y
p = 24 – 2x – 3y p = 12 + 2/5u – 9/5y
h = 18 – x – 3y
z = 0 – 8x – 6y

p = 24 – 2x – 3y
 p = 24 – 2(6 – 1/5u – 3/5y) – 3y
 p = 12 + 2/5u – 9/5y
20
Transformation du système 1 - Pivot

• Utilisons l’expression de x en fonction de u et y pour éliminer x des autres


équations et exprimer p, h (ainsi que z) en fonction de u et y :

u = 30 – 5x – 3y x = 6 – 1/5u – 3/5y
p = 24 – 2x – 3y p = 12 + 2/5u – 9/5y
h = 18 – x – 3y h = 12 + 1/5u – 12/5y
z = 0 – 8x – 6y

h = 18 – x – 3y
 h = 18 – (6 – 1/5u – 3/5y) – 3y
 h = 12 + 1/5u – 12/5y
21
Transformation du système 1 - Pivot

• Utilisons l’expression de x en fonction de u et y pour éliminer x des autres


équations et exprimer p, h (ainsi que z) en fonction de u et y :

u = 30 – 5x – 3y x = 6 – 1/5u – 3/5y
p = 24 – 2x – 3y p = 12 + 2/5u – 9/5y
h = 18 – x – 3y h = 12 + 1/5u – 12/5y
z = 0 – 8x – 6y z = -48 + 8/5u – 6/5y

z = 0 – 8x – 6y
 z = 0 – 8(6 – 1/5u – 3/5y) – 6y
 z = -48 + 8/5u – 6/5y
22
Système 2
• Nous avons complété une itération de l’algorithme du simplexe.
• Nous avons obtenu un nouveau système d’équations équivalent au système
précédent (dans le sens où les deux systèmes ont le même ensemble de solutions).

x = 6 – 1/5u – 3/5y
p = 12 + 2/5u – 9/5y
h = 12 + 1/5u – 12/5y
z = – 48 + 8/5u – 6/5y

• Ce système est associé à la solution


y = 0, u = 0 => x = 6, p = 12, h = 12 avec z = – 48

23
Choix de la variable d’entrée

• On a le système :
x = 6 – 1/5u – 3/5y
p = 12 + 2/5u – 9/5y
h = 12 + 1/5u – 12/5y
z = – 48 + 8/5u – 6/5y

• Il n’est pas intéressant d’augmenter la valeur de u car alors la valeur de z augmente


• On peut toutefois diminuer z en augmentant la valeur de y qui devient la variable
d’entrée.

24
Augmentation de la variable d’entrée

• L’augmentation de y est limitée par les contraintes de non négativité des variables
x, p et h:
x = 6 – 1/5u – 3/5y ≥ 0
p = 12 + 2/5u – 9/5y ≥ 0
h = 12 + 1/5u – 12/5y ≥ 0
• Puisque la valeur de u est maintenue à 0, ceci est équivalent à
x = 6 – 3/5y ≥ 0  y ≤ 10
p = 12 – 9/5y ≥ 0  y ≤ 20/3
h = 12– 12/5y ≥ 0  y≤5
• Donc la solution demeure réalisable pour y ≤ min {10, 20/3, 5} = 5.
• C’est la variable h qui limite l’augmentation de y car elle atteint 0 en premier
lorsque y augmente. On dit que h est la variable de sortie.

25
Augmentation de la variable d’entrée

• On a le système :

x = 6 – 1/5u – 3/5y
p = 12 + 2/5u – 9/5y
h = 12 + 1/5u – 12/5y
z = – 48 + 8/5u – 6/5y

• On a vu que la solution demeure réalisable pour y ≤ min {10, 20/3, 5} = 5


• Puisque l’objectif est de minimiser z, nous allons choisir la plus grande valeur
possible pour y, soit y = 5.
• Pour cette valeur de y, c’est la variable h qui atteint 0.
• C’est donc dire que y devient variable dépendante et h devient variable
indépendante de valeur nulle.

26
Transformation du système 2 - Pivot

• On a le système :

x = 6 – 1/5u – 3/5y
p = 12 + 2/5u – 9/5y
h = 12 + 1/5u – 12/5y
z = – 48 + 8/5u – 6/5y

• Il faut maintenant identifier le nouveau système d’équations qui correspond à la


solution où y augmente de 0 à 5 et devient variable dépendante tandis que h
diminue de 12 à 0 et devient variable indépendante.
• Autrement dit, u et h sont les nouvelles variables indépendantes (de valeur nulle) et
x, p, y sont les nouvelles variables dépendantes.
• Dans le système recherché, les variables x, p, y doivent donc s’exprimer en fonction
de u et h.

27
Transformation du système 2 - Pivot

• Utilisons d’abord l’équation de la variable de sortie pour laquelle il est facile


d’exprimer y en fonction de u et h :

x = 6 – 1/5u – 3/5y
p = 12 + 2/5u – 9/5y
h = 12 + 1/5u – 12/5y y = 5 + 1/12u – 5/12h
z = -48 + 8/5u – 6/5y

h = 12 + 1/5u – 12/5y
 12/5y = 12 + 1/5u - h
 y = 5 + 1/12u – 5/12h
28
Transformation du système 2 - Pivot

• Utilisons l’expression de y en fonction de u et h pour éliminer y des autres


équations et exprimer x, p (ainsi que z) en fonction de u et h :

x = 6 – 1/5u – 3/5y x = 3 – 1/4u + 1/4h


p = 12 + 2/5u – 9/5y
h = 12 + 1/5u – 12/5y y = 5 + 1/12u – 5/12h
z = -48 + 8/5u – 6/5y

x = 6 – 1/5u – 3/5y
 x = 6 – 1/5u – 3/5(5 + 1/12u – 5/12h)
 x = 3 - 1/4u + 1/4h
29
Transformation du système 2 - Pivot

• Utilisons l’expression de y en fonction de u et h pour éliminer y des autres


équations et exprimer x, p (ainsi que z) en fonction de u et h :

x = 6 – 1/5u – 3/5y x = 3 – 1/4u + 1/4h


p = 12 + 2/5u – 9/5y p = 3 + 1/4u + 3/4h
h = 12 + 1/5u – 12/5y y = 5 + 1/12u – 5/12h
z = -48 + 8/5u – 6/5y

p = 12 + 2/5u – 9/5y
 p = 12 + 2/5u – 9/5(5 + 1/12u – 5/12h)
 p = 3 + 1/4u + 3/4h
30
Transformation du système 2 - Pivot

• Utilisons l’expression de y en fonction de u et h pour éliminer y des autres


équations et exprimer x, p (ainsi que z) en fonction de u et h :

x = 6 – 1/5u – 3/5y x = 3 – 1/4u + 1/4h


p = 12 + 2/5u – 9/5y p = 3 + 1/4u + 3/4h
h = 12 + 1/5u – 12/5y y = 5 + 1/12u – 5/12h
z = -48 + 8/5u – 6/5y z = – 54 + 3/2u + 1/2h

z = -48 + 8/5u – 6/5y


 z = -48 + 8/5u – 6/5(5 + 1/12u – 5/12h)
 z = -54 + 3/2u + 1/2h
31
Système 3

• Nous avons complété une seconde itération de l’algorithme du simplexe.


• Nous avons un nouveau système d’équations équivalent au système précédent
(dans le sens où les deux systèmes ont le même ensemble de solutions).

x = 3 – 1/4u + 1/4h
p = 3 + 1/4u + 3/4h
y = 5 + 1/12u – 5/12h
z = – 54 + 3/2u + 1/2h

• Ce système est associé à la solution


u = 0, h = 0 => x = 3, p = 3, y = 5 avec z = – 54

32
Optimalité

• On a le système :

x = 3 – 1/4u + 1/4h
p = 3 + 1/4u + 3/4h
y = 5 + 1/12u – 5/12y
z = – 54 + 3/2u + 1/2h

• Il n’est pas intéressant d’augmenter ni la valeur de u, ni la valeur de h car la valeur


de z augmente. Ainsi, nous sommes à l’optimum!
• La solution optimale est donc
x = 3, y = 5, u = 0, p = 3, h = 0 avec z = – 54

33

Vous aimerez peut-être aussi