Vous êtes sur la page 1sur 91

Recherche Opérationnelle

Chapitre 3 : Algorithme du Simplexe

I. EL MALKI et Pr. A. Metrane


imane.elmalki@gmail.com

IID 2 et GI 2
1. Introduction

2. Forme standard

3. Principe de l’algorithme

4. Formes canoniques d’un programme linéaire

5. Résolution du PLS

6. Exemples
1. Minimisation avec Simplexe
2. Initialisation de la méthode de Simplexe
On a vu précédemment que la solution optimale est un sommet situé sur la
frontière du domaine des solutions réalisables.
On a vu précédemment que la solution optimale est un sommet situé sur la
frontière du domaine des solutions réalisables.

Une démarche simple est de calculer en chaque sommet la valeur de la fonction


objective et prendre le sommet ou ce dernier est le plus grand. Pour accélérer cette
procèdure, on a intérêt, au moment d’explorer un nouveau sommet, à choisir parmi les
sommets voisins de celui ou l’on se trouve celui qui permet d’obtenir la plus grande
augmentation de la fonction économique.
On a vu précédemment que la solution optimale est un sommet situé sur la
frontière du domaine des solutions réalisables.

Une démarche simple est de calculer en chaque sommet la valeur de la fonction


objective et prendre le sommet ou ce dernier est le plus grand. Pour accélérer cette
procèdure, on a intérêt, au moment d’explorer un nouveau sommet, à choisir parmi les
sommets voisins de celui ou l’on se trouve celui qui permet d’obtenir la plus grande
augmentation de la fonction économique.

Présentation :
L’algorithme du simplexe est le plus utilisé pour la résolution des Programme Linéaire.
Il a été mis au point en 1948 par B. Dantzig. Depuis, cet algorithme a fait l’objet de
plusieurs recherche scientifiques et a servi à la résolution de nombreux problèmes. La
méthode simplexe est une procédure algébrique itérative qui permet de résoudre les
Programme Linéaires.
On a vu précédemment que la solution optimale est un sommet situé sur la
frontière du domaine des solutions réalisables.

Une démarche simple est de calculer en chaque sommet la valeur de la fonction


objective et prendre le sommet ou ce dernier est le plus grand. Pour accélérer cette
procèdure, on a intérêt, au moment d’explorer un nouveau sommet, à choisir parmi les
sommets voisins de celui ou l’on se trouve celui qui permet d’obtenir la plus grande
augmentation de la fonction économique.

Présentation :
L’algorithme du simplexe est le plus utilisé pour la résolution des Programme Linéaire.
Il a été mis au point en 1948 par B. Dantzig. Depuis, cet algorithme a fait l’objet de
plusieurs recherche scientifiques et a servi à la résolution de nombreux problèmes. La
méthode simplexe est une procédure algébrique itérative qui permet de résoudre les
Programme Linéaires.
Principe :
Partant d’une solution réalisable connue, située en un sommet de la frontière du
domaine d’acceptabilité, on cherche parmi les sommets voisins celui qui améliore le plus
la fonction objectif à optimiser. On passe alors à ce sommet et on recommence jusqu’à
ce qu’on soit en un sommet tel que le passage à aucun des sommets voisins n’améliore
la fonction à optimiser. Ce sommet sera alors l’optimum cherché.
Prenons l’exemple 1 suivant :

Max Z = 87x1 + 147x2 + 258x3 .

s.c x1 + 2x2 + 3x3 ≤ 90


15x1 + 21x2 + 30x3 ≤ 1260
x1 + x2 + x3 ≤ 84
x1 ≥ 0, x2 ≥ 0 et x3 ≥ 0
La mise sous forme standard consiste à introduire des variables suplémentaires
positives (Variables d’écart) une pour chaque contrainte de manière à réecrire les
inégalité ≤ et ≥ sous forme d’égalité.
La mise sous forme standard consiste à introduire des variables suplémentaires
positives (Variables d’écart) une pour chaque contrainte de manière à réecrire les
inégalité ≤ et ≥ sous forme d’égalité.
Variables d’écart
Rappelons qu’une contrainte du modèle s’écrit comme :
- x1 + 2x2 + 3x3 ≤ 90
La mise sous forme standard consiste à introduire des variables suplémentaires
positives (Variables d’écart) une pour chaque contrainte de manière à réecrire les
inégalité ≤ et ≥ sous forme d’égalité.
Variables d’écart
Rappelons qu’une contrainte du modèle s’écrit comme :
- x1 + 2x2 + 3x3 ≤ 90
Et introduisons une nouvelle variables e1 définie ainsi :
La mise sous forme standard consiste à introduire des variables suplémentaires
positives (Variables d’écart) une pour chaque contrainte de manière à réecrire les
inégalité ≤ et ≥ sous forme d’égalité.
Variables d’écart
Rappelons qu’une contrainte du modèle s’écrit comme :
- x1 + 2x2 + 3x3 ≤ 90
Et introduisons une nouvelle variables e1 définie ainsi :
- e1 = 90 − (x1 + 2x2 + 3x3 )
La variable e1 est qualifiée de variable d’écart. Elle représente dans ce cas le reste du
premier ressource lorsqu’on retient le plan de production (x; y ; z).

La contrainte x1 + 2x2 + 3x3 ≤ 90 est équivalente à la formule suivante :


- e1 = 90 − (x1 + 2x2 + 3x3 ) et e1 ≥ 0
Forme Standard PLS
Max Z = 87x1 + 147x2 + 258x3 .

s.c x1 + 2x2 + 3x3 + e1 = 90


15x1 + 21x2 + 30x3 + e2 = 1260
x1 + x2 + x3 + e3 = 84
x ≥ 0, x2 ≥ 0 et x3 ≥ 0 e1 ≥ 0, e2 ≥ 0 et e3 ≥ 0
Exemple: Problème d’agriculteur
Écrivons sous forme standard le problème en Forme canonique :

Max z = 1000x1 + 2000x2

s.c x1 + x2 ≤ 150 (Limitation sur le terrain)


4x1 + 2x2 ≤ 440 (Limitation sur l 0 eau)
x1 + 4x2 ≤ 480 (Limitation Main − d 0 oeuvre)
x1 ≤ 90 (Limitation d 0 irrigation)
x1 ≥ 0 et x2 ≥ 0
→ (C1) on introduit e1 l’écart entre la surface du terrain utilisé et la surface totale en
hectare.
x1 + x2 + e1 = 150
→ (C2) on introduit e2 le gain en terme de ressource d’eau.

4x1 + x2 + e2 = 440

→ (C3) on introduit e3 l’écart entre les ressources humaines exploitées et disponible.

x1 + 4x2 + e3 = 480

→ (C4) on introduit e4 l’écart entre le périmètre du terrain irrigué et la limitation


maximale exigée.
x1 + e4 = 90
Problème d’agriculteur sous forme PLS

Max z = 1000x1 + 2000x2

s.c x1 + x2 + e1 = 150
4x1 + 2x2 + e2 = 440
x1 + 4x2 + e3 = 480
x1 + e4 = 90

x1 ≥ 0, x2 ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0, et e4 ≥ 0
Exemple :
Ecrire sous forme standard le problème suivant:

Max Z = 4x1 − 6x2 + 25x3 .

s.c x1 − 2x2 + 3x3 ≥ 90


15x1 + 21x2 + 30x3 ≤ 1260
x1 + x2 + x3 = 84
x1 ≥ 0, x2 ≥ 0 et x3 ≥ 0
Algorithme du Simplexe ←→ Solution Optimale
d’un programme linéaire



max z = 3x1 + 5x2




 x1 ≤4

 2x 2 ≤ 12
s.c.q.


 3x1 + 2x2 ≤ 18




 x1 ≥0

 x2 ≥0



max z = 3x1 + 5x2




 x1 ≤4

 2x 2 ≤ 12
s.c.q.


 3x1 + 2x2 ≤ 18




 x1 ≥0

 x2 ≥0
• Le principe de l’algorithme du Simplexe est de déterminer une solution optimale en
allant de sommet en sommet adjacent. Partant du point (0, 0), l’algorithme va
déterminer une arête le long de laquelle l’objectif s’accroît : par exemple, l’arête en
direction de (0, 6). Ensuite, on va aller jusqu’au bout de cette arête : c’est-à-dire
au sommet (0, 6). Et le processus continue de manière itérative. On détermine une
arête le long de laquelle l’objectif s’accroît : l’arête en direction de (2, 6). On va
jusqu’au bout de l’arête et, là, on constate que tout mouvement, en arrière vers
(0, 6) ou en avant vers (4, 3), conduit à diminuer l’objectif. On est donc à
l’optimum.
• Nous allons maintenant voir comment effectuer ces mêmes opérations en utilisant
uniquement l’algèbre. C’est l’objet de l’algorithme du Simplexe.
max z = c T x,

Ax ≤ b
s.c.q.
x ≥0
max z = c T x,

Ax ≤ b
s.c.q.
x ≥0
(
A matrice (m × n), b vecteur (m × 1)
avec
c vecteur (n × 1), x vecteur (n × 1).
Variables d’écart :
max z = 3x1 + 5x2


 x1 ≤ 4
2x2 ≤ 12



s.c.q. 3x1 + 2x2 ≤ 18
x1 ≥ 0




x2 ≥ 0

Variables d’écart :
max z = 3x1 + 5x2

 x1 ≤ 4
⇐⇒

2x2 ≤ 12



s.c.q. 3x1 + 2x2 ≤ 18
x1 ≥ 0




x2 ≥ 0

Variables d’écart :
max z = 3x1 + 5x2 max z = 3x1 + 5x2



 x1 4  x1 + e1 = 4
⇐⇒
 
2x2 ≤ 12 2x2 + e2 = 12

 
s.c.q.

s.c.q. 3x1 + 2x2 ≤ 18 
 3x1 + 2x2 + e3 = 18
x1 ≥ 0 ≥ 0

x1 , x2 , e1 , e2 , e3
 


x2 ≥ 0

Variables hors base (v.h.b.)

 x1 +e1 = 4
2x2 +e2 = 12
3x1 +2x2 +e3 = 18

Variables hors base (v.h.b.)

 x1 +e1 = 4
2x2 +e2 = 12
3x1 +2x2 +e3 = 18

x1 = x2 = 0 ←→
Variables hors base (v.h.b.)

 x1 +e1 = 4
2x2 +e2 = 12
3x1 +2x2 +e3 = 18

x1 = x2 = 0 ←→ x1 et x2 sont mises hors base.


Variables hors base (v.h.b.)

 x1 +e1 = 4
2x2 +e2 = 12
3x1 +2x2 +e3 = 18

x1 = x2 = 0 ←→ x1 et x2 sont mises hors base.

On appelle variables hors base (v.h.b.) les n variables de Rn+m fixées à zéro. Les m
variables restantes sont appelées variables de base (v.b.).
Variables hors base (v.h.b.)

 x1 +e1 = 4
2x2 +e2 = 12
3x1 +2x2 +e3 = 18

x1 = x2 = 0 ←→ x1 et x2 sont mises hors base.

On appelle variables hors base (v.h.b.) les n variables de Rn+m fixées à zéro. Les m
variables restantes sont appelées variables de base (v.b.).


e1 = 4 
e2 = 12 variables de base
e3 = 18

Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.

On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.

On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).

x1 = 0, x2 = 0 variables hors base


Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.

On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).

x1 = 0, x2 = 0 variables hors base


e1 = 4, e2 = 12, e3 = 18
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.

On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).

x1 = 0, x2 = 0 variables hors base


e1 = 4, e2 = 12, e3 = 18 variables de base
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.

On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).

x1 = 0, x2 = 0 variables hors base Solution de base


←→
e1 = 4, e2 = 12, e3 = 18 variables de base réalisable
Solution réalisable et Sommets
On appelle solution de base une solution où en ayant choisi n variables hors base, on
obtient une solution unique en résolvant les m contraintes d’égalités obtenues en
ajoutant les variables d’écart.

On appelle solution de base réalisable une solution de base qui, en plus, vérifie les
contraintes de positivité (réalisable).

x1 = 0, x2 = 0 variables hors base Solution de base


←→ e1 , e2 , e3 ≥ 0
e1 = 4, e2 = 12, e3 = 18 variables de base réalisable
Solution réalisable et Sommets
Le lien entre l’algèbre et la géométrie est alors donné par la propriété suivante.

La notion géométrique de sommet du polygone correspond à la notion algébrique de


solution de base réalisable.
Solution réalisable et Sommets

Un exemple de programme linéaire.


Solution réalisable et Sommets
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6) oui
x1 , e3 (0, 9) (4, −6, 0)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6) oui
x1 , e3 (0, 9) (4, −6, 0) non
e2 , e3 (2, 6) (2, 0, 0)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6) oui
x1 , e3 (0, 9) (4, −6, 0) non
e2 , e3 (2, 6) (2, 0, 0) oui
e1 , e2 (4, 6) (0, 0, −6)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6) oui
x1 , e3 (0, 9) (4, −6, 0) non
e2 , e3 (2, 6) (2, 0, 0) oui
e1 , e2 (4, 6) (0, 0, −6) non
e1 , e3 (4, 3) (0, 6, 0)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6) oui
x1 , e3 (0, 9) (4, −6, 0) non
e2 , e3 (2, 6) (2, 0, 0) oui
e1 , e2 (4, 6) (0, 0, −6) non
e1 , e3 (4, 3) (0, 6, 0) oui
x2 , e1 (4, 0) (0, 6, 6)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6) oui
x1 , e3 (0, 9) (4, −6, 0) non
e2 , e3 (2, 6) (2, 0, 0) oui
e1 , e2 (4, 6) (0, 0, −6) non
e1 , e3 (4, 3) (0, 6, 0) oui
x2 , e1 (4, 0) (0, 6, 6) oui
x2 , e3 (6, 0) (−2, 12, 0)
Solution réalisable et Sommets
v.h.b. (x1 , x2 ) (e1 , e2 , e3 ) sommet ?
x1 , x2 (0, 0) (4, 12, 18) oui
x1 , e2 (0, 6) (4, 0, 6) oui
x1 , e3 (0, 9) (4, −6, 0) non
e2 , e3 (2, 6) (2, 0, 0) oui
e1 , e2 (4, 6) (0, 0, −6) non
e1 , e3 (4, 3) (0, 6, 0) oui
x2 , e1 (4, 0) (0, 6, 6) oui
x2 , e3 (6, 0) (−2, 12, 0) non
Correspondance entre solution de base réalisable
et sommet.
Solutions de base adjacentes

On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :
Solutions de base adjacentes

On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :

x1 = 0, x1 = 0  
x2 = 0, x2 = 6 


e1 = 4, e1 = 4
e2 = 12, e2 = 0 



e3 = 18, e3 = 6

Solutions de base adjacentes

On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :

x1 = 0, x1 = 0  
x2 = 0, x2 = 6 


e1 = 4, e1 = 4 solutions de base adjacentes
e2 = 12, e2 = 0 



e3 = 18, e3 = 6

car elles ne diffèrent que par une seule variable hors base. Par contre les solutions
suivantes :
Solutions de base adjacentes

On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :

x1 = 0, x1 = 0  
x2 = 0, x2 = 6 


e1 = 4, e1 = 4 solutions de base adjacentes
e2 = 12, e2 = 0 



e3 = 18, e3 = 6

car elles ne diffèrent que par une seule variable
 hors base. Par contre les solutions
x1 = 0, x1 = 2
suivantes :
x2 = 0, x2 = 6
Solutions de base adjacentes

On appelle solutions de base adjacentes deux solutions de base dont les variables de
base sont les mêmes sauf une qui est de base dans la première base et hors base dans la
seconde.
Dans l’exemple, les deux solutions de base suivantes sont adjacentes :

x1 = 0, x1 = 0  
x2 = 0, x2 = 6 


e1 = 4, e1 = 4 solutions de base adjacentes
e2 = 12, e2 = 0 



e3 = 18, e3 = 6

car elles ne diffèrent que par une seule variable
 hors base. Par contre les solutions
x1 = 0, x1 = 2
suivantes : solutions de base non-adjacentes
x2 = 0, x2 = 6
Solutions de base adjacentes



 x1 = 0, x1 = 0
 x2 = 0, x2 = 6


e1 = 4, e1 = 4
e = 12, e2 = 0

 2



e = 18, e3 = 6
 3
x1 = 0, x1 = 0
x2 = 0, x2 = 6

La notion géométrique de sommets adjacents correspond à la notion algébrique de


solutions de base réalisables adjacentes.
La résolution des modèles sous forme standard
L’algorithme du simplexe choisit d’abord un sommet initial, puis effectue une opération
itérative, dite pivotage, qui habituellement correspond à passer d’un sommet à un
sommet adjacent plus "rentable".
Nous décrirons le fonctionnement de l’algorithme du simplexe en l’appliquant sur notre
exemple.
Retoure à notre PLS
Max Z = 87x1 + 147x2 + 258x3 .

s.c x1 + 2x2 + 3x3 + e1 = 90


15x1 + 21x2 + 30x3 + e2 = 1260
x1 + x2 + x3 + e3 = 84
x ≥ 0, x2 ≥ 0 et x3 ≥ 0 e1 ≥ 0, e2 ≥ 0 et e3 ≥ 0
La mise en évidence d’une solution de base admissible initiale
Comme on l’a vu précédemment dans l’exemple 1, les points extrême correspondent aux
solutions de base admissible (réalisable). Celles-ci sont obtenues en annulant 3 des 6
variables x1 , x2 , x3 , e1 , e2 et e3 . Par exemple, poser x1 = x2 = x3 = 0 conduit à un
système d’équations trivial à résoudre, notamment :
q e1 = 90
q e2 = 1260
q e3 = 84
Graphiquement, cette solution correspond au sommet O (l’origine). la fonction objectif
est égal à 0.
On sait, à partir de l’analyse géométrique, que le sommet O n’est pas solution optimale.
Il faut donc modifier cette solution initiale de façon à augmenter la valeur prise par la
fonction objectif z.
L’algorithme du simplexe procède par itérations, chacune correspondant au passage
d’un sommet de la région admissible à un sommet adjacent de cette région.
Notre exemple exigera 2 itérations.
La construction du tableau initial
Les calculs nécessités par l’algorithme du simplexe s’effectuent plus facilement et plus
rapidement lorsque le modèle linéaire est disposé sous forme de tableau simplexe.
Un tel tableau présente, de façon visuelle et structurée, les variables et les coefficients
du modèle. De plus, chaque tableau met en évidence une solution de base particulière
du modèle linéaire, dite solution de base associée, ou encore solution canonique
associée.
Tableau du simplexe :
On présente notre solution avec le tableau suivant :
x1 x2 x3 e1 e2 e3 B
e1 1 2 3 1 0 0 90
e2 15 21 30 0 1 0 1260
e3 1 1 1 0 0 1 84
cj 87 147 258 0 0 0 Z

Chaque tableau du simplexe partitionne les variables en 2 groupes :


q les variables de base : les variables de base sont les 3 variables apparaissant dans
la section gauche.
q les variables hors base : les variables hors base sont les 3 autres.
Par exemple, les variables hors base du tableau précédent sont x1 , x2 et x3 . De façon
générale, la solution de base associée à un tableau s’obtient en posant égales à 0 les
variables hors base et donnant à chacune des variables de base la valeur apparaissant
sur la même ligne.
la variable entrante

Le choix de la variable entrante


La solution de base initiale du modèle n’est pas optimale.
Comment s’en convaincre par des arguments strictement algébriques ? S’il n’est pas
optimale, il faut augmenter la valeur de l’une ou l’autre de ces variables x1 ; x2 ; x3 .
Laquelle, ou lesquelles choisir ? Laissons-nous guider par l’intuition : on augmentera la
variable qui rapporte le plus x3 .
Afin de simplifier l’analyse, supposons que x1 et x2 garde pour le moment la valeur 0.
On augmente x3 , le bénéfice va augmenter.
Variable Sortante

Que choisir pour la variable qui va sortir de la base ?


On a potentiellement trois choix : e1 , e2 , e3 .

0 + 0 + 3 x3 + e1 =90
0 + 0 + 30 x3 + e2 =1260
0 + 0 + 1 x3 + e3 =84

x3 ≥ 0 e1 ≥ 0, e2 ≥ 0 et e3 ≥ 0
Autrement
Quelle est la valeur maximale qu’on peut donner à x3 sans violer les contraintes du
modèle ?

q la contrainte 3 (e3 = 0): x3 = 84


1260
q la contrainte 2 (e2 = 0): x3 = 30
q la contrainte 1 (e1 = 0): x3 = 30
Autrement
Quelle est la valeur maximale qu’on peut donner à x3 sans violer les contraintes du
modèle ?

q la contrainte 3 (e3 = 0): x3 = 84


1260
q la contrainte 2 (e2 = 0): x3 = 30
q la contrainte 1 (e1 = 0): x3 = 30

q Si x3 = 84, la contrainte 2 n’est plus satisfaite.


1260
q Si x3 = 30 = 42, la contrainte 1 n’est plus verifiée.
q Si x3 = 30, tous les contraintes sont verifiée.
le Pivot
x1 x2 x3 e1 e2 e3 B B /colonne choisie
e1 1 2 3 1 0 0 90 30
e2 15 21 30 0 1 0 1260 42
e3 1 1 1 0 0 1 84 84
cj 87 147 258 0 0 0 0 0

choix de pivot
Pour chaque itération, nous suivons les règles suivantes :
q Variable entrante : plus fort coefficient strictement positif.
q Variable sortante : plus petite valeur strictement positive dans B/Colonne choisie.
q Le pivot : intersection de la ligne et de la colonne sélectionnée.
x3 variable entrante remplace la variable e1 dans le nouveau tableau.
Le pivot est égal à 3.
Nouveau sommet
Transformation du tableau
q Ligne x3 (ancienne ligne e1 ) −→ à (ligne e1 )/3 . (Division par le pivot).
q Ligne e2 −→ à Ligne e2 − 30 ligne x3
q Ligne e3 −→ à Ligne e3 − ligne x3
q Ligne B −→ à Ligne cj −258 ligne x3

On obtient le tableau suivant :


x1 x2 x3 e1 e2 e3 B
1 2 1
x3 3 3 1 3 0 0 30
e2 5 1 0 −10 1 0 360
2 1
e3 3 3 0 − 13 0 1 54
cj 1 −25 0 −86 0 0 7740
Formule générale (avant de diviser la ligne du pivot par le pivot):
Ti,c ∗ Tl,j
Ti,j = Ti,j − , après division par le pivot Ti,j = Ti,j − Ti,c ∗ Tl,j
pivot
Remarque importante
On vérifie pour chaque tableau calculé que les valeurs de variable de base sont positive
ou nulle
Remarque importante
On vérifie pour chaque tableau calculé que les valeurs de variable de base sont positive
ou nulle

Règle de pivot
Une autre manière de construire le tableau suivant:
q Diviser la ligne de pivot par la valeur de pivot.
q À chacune des variables de base, on associé la valeur 1 à l’intersection de la ligne
et la colonne de cette même variable et le reste de la colonne c’est 0.
q Calculer le reste des valeurs du tableau par la règle de pivot.
Par exemple 21 sera remplacer par 21×3−2×30
3 = 1.
147×3−2×258
147 sera remplacer par 3 = −25
Remarques
q Le passage de l’ancien tableau au nouveau tableau traduit le passage du sommet
(0, 0, 0) ou le bénéfice est nul à un autre sommet ou le bénéfice est 7740
(lebénéfice a été amélioré)
q La fonction bénéfice est B = x1 − 25x2 − 86e1 B peut augmenter si on augmente
x1 avec x2 = e1 = 0. Il faut passer à un autre sommet, l’algorithme n’est pas
encore terminé.
Remarques
q Le passage de l’ancien tableau au nouveau tableau traduit le passage du sommet
(0, 0, 0) ou le bénéfice est nul à un autre sommet ou le bénéfice est 7740
(lebénéfice a été amélioré)
q La fonction bénéfice est B = x1 − 25x2 − 86e1 B peut augmenter si on augmente
x1 avec x2 = e1 = 0. Il faut passer à un autre sommet, l’algorithme n’est pas
encore terminé.
On effectue notre choix du pivot :
x1 x2 x3 e1 e2 e3 B B /colonne choisie
1 2 1
x3 3 3 1 3 0 0 30 90
e2 5 1 0 −10 1 0 360 72
2 1
e3 3 3 0 − 13 0 1 54 81
cj 1 −25 0 −86 0 0 7740
Transformation du tableau
q Variable entrante qui correspond à la plus grande valeurs positive dans la ligne cj
qui est la variable x1 .
q Variable sortante qui correspond à la plus petite valeurs positive dans la colonne
"B /colonne choisie" qui est la variable e2
q Le pivot=5. La variable x1 remplace la variable e2 .
q Ligne x1 (ancienne ligne e2 ) −→ à (ligne e2 )/5 . (Division par le pivot).
1
q Ligne x3 −→ à Ligne x3 − 3 ligne x1
2
q Ligne e3 −→ à Ligne e3 − 3 ligne x1
q Ligne cj −→ à Ligne cj − ligne x1
Effectuons les calculs sur les lignes x1 et cj . On obtient :
x1 x2 x3 e1 e2 e3 B
x3 6
1 1
x1 1 5 0 −2 5 0 72
e3 6
cj 0 −25, 2 0 −84 − 15 0 7812

q La fonction bénéfice s’écrit : Z = 7812 − 25, 2x2 − 84e1 − 15 e2 .


q On remarque que si on augmente x2 , e1 ou e2 , le bénéfice ne pourra que diminuer,
on a atteint l’optimum.
q l’optimum est atteint lorsque tous les coefficients de la ligne cj sont tous négatifs
ou nuls (Pour un problème de maximisation).
q La solution est : x3 = 6, x1 = 72, x2 = 0, e1 = 6, e2 = e3 = 0
q le bénéfice est : 7812 ( On peut vérifier cette valeur : 72 ∗ 87 + 258 ∗ 6 = 7812 ).

Remarques importantes
q S’il n’y a pas de candidat pour quitter la base, on peut faire croître la variable
entrante et donc aussi la fonction objectif autant qu’on le veut. Dans ce cas, le
problème est non borné.
q S’il y a plusieurs candidats pour quitter la base, alors n’importe lequel de ces
candidats entraservir. La présence de plusieurs candidats pour quitter la base a une
conséquence importante : la dégénérescence.
Problème d’agriculteur
Résoudre ce problème à l’aide de l’algorithme du simplexe:

Max z = 1000x1 + 2000x2

s.c x1 + x2 ≤ 150
4x1 + 2x2 ≤ 440
x1 + 4x2 ≤ 480
x1 ≤ 90
x1 ≥ 0 et x2 ≥ 0
Problème de dégénérescence :

Dans le cas où le Problème linéaire est dégénéré, c’est à dire que la fonction objectif Z
ne varie pas après le changement de base et conséquent on peut rencontrer les
situations suivantes :
• Quand on veut déterminer la variable entrante, et on a au moins deux variables
hors bases ayant le même coefficient le plus élevé strictement positif dans la
dérniere ligne.
• Quand on veut déterminier la variable sortante, et on trouve au moins deux
variables de base ayant le même et le plus petit rapport positif de la dernière
colonne.
• Il est possible, après un certain nombre d’itérations, de retrouver le tableau de
départ (problème de cyclage).
Plusieurs méthode appliqués au cyclage dans le cas dégénérés sont utilisés, le plus
connu c’est la règle de Bland :
Lorsque plusieurs variables sont susceptibles d’entrer ou de sortir de la base, on choisit
toujours la variable xr ayant le plus petit indice r .
Exemples :
1-
x1 x2 x3 e1 e2 e3 B B/C
e2 4 7 0 0 1 4 4 4/7
e1 2 8 0 1 0 3 0 0
x3 -2 9 1 0 0 2 0 0
Z -5 2 0 0 0 5 3
→ Variable candidat à entrer dans la base : x2
→ Varbiales candidates à sortir de la base : x3 et e1 = x4 . On choisit donc x3
2-
x1 x2 x3 e1 e2 e3 B B/C
e1 1 2 5 1 0 0 4 2
e2 3 4 3 0 1 0 8 2
e3 2 4 1 0 0 1 12 3
Z 2 3 1 0 0 1 0
2-
x1 x2 x3 e1 e2 e3 B B/C
e1 1 2 5 1 0 0 4 2
e2 3 4 3 0 1 0 8 2
e3 2 4 1 0 0 1 12 3
Z 2 3 1 0 0 1 0
3-
x1 x2 x3 e1 e2 e3 B
e1 1 2 5 1 0 0 3
e2 3 1 2 0 1 0 4
e3 2 8 1 0 0 1 3
Z 3 3 2 0 0 0 0
4-
x1 x2 e1 e2 B
e1 0 -2 1 -1 8
x1 1 0 0 3 5
Z 0 16 0 -3 13
Tout les coefficients de la colonne de la variable entrante x2 sont négatifs ou nuls, alors
on dit que Zmax = +∞.

Infinité des Solutions optimales :

Si à la fin des itérations, une variable hors base avec un coefficient nul dans la dernère
ligne du tableau optimal, alors on a une arête optimale. Les autres sommets optimaux
peuvent être obtenus en faisant rentrer cette variable dans la base.
Considérons, par exemple le tableau optimal suivant :

x1 x2 e1 e2 B
x1 1 0 1 1 3
x2 0 1 -1 -2 2
Z 0 0 -1 0 8
On fait entrer e2 dans la base et x1 sera alors la variable sortante. Ainsi, on obtient une
autre solution optimale :

x1 x2 e1 e2 B
e1 1 0 1 1 3
x2 2 1 1 0 8
Z 0 0 1 0 8
Dans le cas de minimisation de l’objectif, les itérations et l’optimalité de la méthode du
simplexe sont déterminés par les critères suivants :
• Critère de la variable entrante : On choisit la variable hors base ayant le coût
réduit le plus négatif.
• Critère de la variable sortante : le même que dans le cas de maximisation,
puisque ce critère est lié à la réalisabilité des variables.
• Critère d’optimalité : l’algorithme du simplexe s’arrête quand tous les coûts
réduits des variables hors base (coefficient de la dernière ligne du tableau simplexe
) sont tous positifs ou nuls.
Les critères précédents découlent de la proprièté suivantes :
minimiser Z = c1 x1 + ... + cn xn revient à maximiser −Z
Exemple :
Soit le problème :


Min − x1 − 2x2

−3x1 + 2x2 ≤2




−x1 + 2x2 ≤4

x1 + x2 ≤5





x1 , x2 ≤0

En ajoutant les variables d’écart en obtient la forme standard :




 Min − x1 − 2x2

−3x1 + 2x2 + e1 =2




−x1 + 2x2 + e2 =4

x1 + x2 + e3 =5





x1 , x2 , e1 , e2 , e3 ≤ 0

On remarque que tous les termes du second membre sont positifs. Dans notre cas,
l’obtention d’une solution de base réalisable initiale est triviale. Elle correspond aux
variables de bases e1 , e2 , e3 et variables hors base x1 et x2 .

x1 x2 → e1 e2 e3 B B/C
← e1 -3 2 1 0 0 2 1
e2 -1 2 0 1 0 4 2
e3 1 1 0 0 1 5 5
Z -1 -2 0 0 0 0 0
x2 variable entrante dans la base.
e1 variable sortante de la base.
Etape 2 :

x1 → x2 e1 e2 e3 B B/C
x2 -3/2 1 1/2 0 0 1 -2/3
← e2 2 0 -1 1 0 2 1
e3 5/2 0 -1/2 0 1 4 8/5
Z -4 0 1 0 0 -2
Etape 3 :

x1 x2 e1 → e2 e3 B B/C
x2 0 1 -1/4 3/4 0 5/2 10
x1 1 0 -1/2 1/2 0 1 -2
← e3 0 0 3/4 -5/4 1 3/2 2
Z 0 0 -1 2 0 -6
Etape 4 :

x1 x2 e1 e2 e3 B B/C
x2 0 1 0 1/3 1/3 3
x1 1 0 0 -1/3 2/3 2
e1 0 0 1 -5/3 4/3 2
Z 0 0 0 1/3 4/3 -8
Tous les coefficients de la dernière ligne sont positifs ou nuls : donc ce tableau est
optimal alors les solutions sont : x1∗ = 2; x2∗ = 3; e1∗ = 2; e2∗ = e3∗ = 0 et Z ∗ = −8
Initialisation de la méthode de Simplexe :

Nous avons vu comment trouver une solution de base réalisable initiale lorsque le
programme linéaire de départ est sous forme canonique :

T
Max Z = c x

Ax ≤ b

x ≥0

alors en ajoutant une variable d’écart ei à chaque contrainte pour la transformer en une
égalité. Le système devient,

Max Z
 = cT x
A∗ x ∗ = b

x∗ ≥0

Où, A∗ = (AIm ), x ∗ = (x1 , ..., xn , e1 , ..., em )T et Im est la matrice identité d’ordre m.
Le passage en forme standard permet d’avoir une base initiale B0 = {ei , i = 1, ..., m}
facilement. Si le second membre b est positif alors cette base est réalisable et
correspond à l’origine :

xN = (x1 , ..., xn ) = 0 et xB = (e1 , ..., em )

Mais dans le cas général on peut avoir les situations suivantes :


• l’une des m contraintes possède un second membre bi négatif, alors il y a violation
de la contrainte de positivité pour la variable décart concernée (ei = bi < 0)
• Le problème contient déjà des contraintes d’égalité alors ces dernières n’ont pas
besoin de l’adjonction de variables d’écart.
Où, A∗ = (AIm ), x ∗ = (x1 , ..., xn , e1 , ..., em )T et Im est la matrice identité d’ordre m.
Le passage en forme standard permet d’avoir une base initiale B0 = {ei , i = 1, ..., m}
facilement. Si le second membre b est positif alors cette base est réalisable et
correspond à l’origine :

xN = (x1 , ..., xn ) = 0 et xB = (e1 , ..., em )

Mais dans le cas général on peut avoir les situations suivantes :


• l’une des m contraintes possède un second membre bi négatif, alors il y a violation
de la contrainte de positivité pour la variable décart concernée (ei = bi < 0)
• Le problème contient déjà des contraintes d’égalité alors ces dernières n’ont pas
besoin de l’adjonction de variables d’écart.
Il est donc nécessaire de mettre en place une procédure pour obtenir une matrice
identité comme matrice de base initiale et qui correspond à une solution de base initiale
réalisable. Une telle procédure est basée sur l’adjonction de variables artificielles.

Vous aimerez peut-être aussi