Vous êtes sur la page 1sur 37

Recherche Opérationnelle

Chapitre 2 : Algorithmes du simplexe

Abdelkrim EL MOUATASIM
Professeur Habilité en Mathématique Appliquée
https://sites.google.com/a/uiz.ac.ma/elmouatasim/

SMI - S5

2020–2021

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 1 / 37


Recherche Opérationnelle
Méthode algébrique

Outline

1 Méthode algébrique
Solution de base

2 Forme matricielle

3 Méthodes des tableaux

4 Forme générale
Adaptation à d’autres formes de modèles
Obtention d’une base admissible initiale

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 2 / 37


Recherche Opérationnelle
Méthode algébrique

Développée en 1947 par George Dantzig, la méthode du simplexe reste d’actualité


pour résoudre des problèmes de grande taille. Il s’agit d’une méthode algébrique
basée sur la résolution de systèmes d’équations linéaires ; nous nous intéressons ici
uniquement aux systèmes d’équations linéaires avec un nombre n de variables
supérieur au nombre m d’équations :

Ax  b,
où x P Rn , b P Rm et A P Rmn . Dans ce cas, il y a trois possibilités :
1 aucune solution ;
2 une et une seule solution ;
3 une infinité de solutions.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 3 / 37


Recherche Opérationnelle
Méthode algébrique

Nous supposerons que toutes les variables sont positives. Le second cas, avec une
et seule solution, ne peut survenir que si n  m, et si la matrice A est inversible,
ce qui revient à exiger que nous avons éliminé au préalable toute équation pour
s’écrire comme combinaison linéaire des autres équations. Si nous n’avons qu’une
seule solution admissible, elle est forcément optimale, par conséquent, nous
ignorerons ce cas dans le reste du chapitre, et prendrons n strictement supérieur à
m.
Dans le cas où il y a une infinité de solutions, la méthode d’élimination de
Gauss-Jordan permet d’identifier trois types de variables :
variables fixées ;
variables dépendantes ;
variables indépendantes.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 4 / 37


Recherche Opérationnelle
Méthode algébrique

Example (Préliminaires à l’algorithme du simplexe)


Considérons le système

x1 x2 x3 x4  4, pL1 q
x1 x3 x4  3, pL2 q
x1 x2 2x4  2. pL3 q
Nous pouvons le réécrire sous la forme

x1 2x4  1, pL1 L2 L3 q
x2  1, pL1  L2 q
x3  x4  2. pL1  L3 q
La variable x2 est fixée, comme elle ne peut prendre que la valeur 1, sans
considération pour les autres variables. A l’opposée, x4 est indépendante, comme
elle peut prendre n’importe quelle valeur dans R. x1 et x3 sont quant à elles
dépendantes : le choix de x4 fixe leur valeur, et de plus, il n’est pas possible de les
éliminer en combinant des équations entre elles (au contraire de x4 ).

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 5 / 37


Recherche Opérationnelle
Méthode algébrique
Solution de base

Il s’agit de la solution obtenue en fixant toutes les variables indépendantes à zéro.


Nous qualifierons de variables hors-base les variables indépendantes fixées à zéro.
Les autres variables seront dites variables de base. Une solution de base est
réalisable (ou admissible) lorsque toutes les variables de base ont une valeur
positive. Une solution de base réalisable est dégénérée lorsqu’au moins une
variable de base a la valeur 0. Il est possible de montrer qu’une solution de base
réalisable est un sommet du polyèdre.

Example (Préliminaires à l’algorithme du simplexe : solution de base)


Dans l’exemple, la solution de base est

x1  1, x2  1, x3  2.
Elle est réalisable et non dégénérée.

Il est facile de changer le statut des variables par des opérations élémentaires.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 6 / 37


Pivot

Example (Préliminaires à l’algorithme du simplexe : pivot)


x1 2x4  1,
x2  1,
x3  x4  2.
peut se réécrire comme

x1 2x3  5,
x2  1,
 x3 x4  2.
Dans cette nouvelle solution de base, nous avons
variable hors-base : x3 ;
variables de base : x1 , x2 , x4 ;
solution de base non réalisable : x1  5, x2  1, x4  2.
Le pivot est une opération consistant à remplacer une variable de base par une
variable hors base pour obtenir une nouvelle solution de base, dite adjacente.
Recherche Opérationnelle
Forme matricielle

Outline

1 Méthode algébrique
Solution de base

2 Forme matricielle

3 Méthodes des tableaux

4 Forme générale
Adaptation à d’autres formes de modèles
Obtention d’une base admissible initiale

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 8 / 37


Recherche Opérationnelle
Forme matricielle

Notations matricielles
Écriture matricielle d’un P.L. sous forme standard
max z  c t .x
s.c. A.x  b
x ¥0

n : nombre de variables,
m : nombre de contraintes pm ¤ nq,

a11 a12 . . . a1n
 a21 a22 . . . a2n 
Apm,nq   .
 
.. ..  : matrice réelle des contraintes,
 .. . ... .
am1 am2 . . . amn

x1
 x2 
x   .  : vecteur des variables,
 
 ..
xn
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 9 / 37
Recherche Opérationnelle
Forme matricielle

Notations matricielles


b1
 b2 
b   .  : vecteur des seconds membres,
 
 ..
bm
c  pc1 , c2 ,°. . . , cn q : vecteur ligne des coûts,
t

z  c t .x  j 1 cj .xj : fonction objectif à maximiser.


n

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 10 / 37


Recherche Opérationnelle
Forme matricielle

Partitionnement des indices

On peut partitionner les indices en deux sous-ensemble :


B  indices des variables en base,
N  indices des variables hors base.
Cette partition peut-être effectuée dans chacune des contraintes :
¸
n ¸ ¸
aij xj  aij xj aij xj  bi pour i  1, . . . , m.
j 1  P
j B P
j N

D’un point de vue matriciel, ce partitionnement revient à partition des colonnes de


A et des composantes des vecteurs c et x :




A  AB AN  
xB cB
, x , c
xN cN

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 11 / 37


Recherche Opérationnelle
Forme matricielle

Dictionnaire au format matriciel

Exprimons les variables en base en fonction des variables hors-base :

Ax  b ô AB xB AN xN  b
ô xB AB 1 AN xN  AB 1 b
ô xB  AB 1 b  AB 1 AN xN
On remarque que cette réécriture n’est possible que si AB est une matrice
inversible. Maintenant, en remplaçant xB dans l’objectif, on a :

z  cT x  cBT xB cNT xN
 cBT pA 1
B b  AB AN xN q
1
cNT xN
  1
cBT AB b pcN  cB AB 1 AN q
T T
xN
looooooooomooooooooon
coûts réduits ou profits marginaux

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 12 / 37


Recherche Opérationnelle
Forme matricielle

Solutions de base

Toute sous-matrice carrée m  m de A inversible (les m colonnes/lignes de AB


sont linéairement indépendantes et forment une base de Rm ) est appelée matrice
de base.
A chaque matrice de base AB est associé une solution de base définie par un
dictionnaire.
max z  cBT A 1
B b pcNT  cBT AB 1 AN qxN
s.c. xB   
AB b  AB 1 AN xN
1

xB , xN ¥ 0

xB  A 1
B b
Solution de base : T 1
z  cB AB b
Condition de réalisabilité : A B b ¥0
1

Condition d’optimalité : cN  cBT A


T
B AN ¤ 0
1

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 13 / 37


Recherche Opérationnelle
Forme matricielle

Algorithme du simplexe matricielle


On commence avec une solution de base réalisable par un dictionnaire :

max z  cBT A 1
B b pcNT  cBT AB 1 AN qxN
s.c. xB   
AB b  AB 1 AN xN
1

xB , xN ¥ 0

1 Si c̄  cNT  cBT AB 1 AN ¤ 0, alors cette solution est optimale, STOP.


2 choisir une variable entrante avec indice k P N telle que pc̄ qk ¡ 0.
3 Si pāi,k qi 1,...,m  pA
B AN qk ¤ 0 , le problème est non borné, STOP.
1

4 Choisir une variable sortante avec indice s P B telle que

AB  1
 argminj PB t āb̄j  j,. b
: āj,k ¡ 0u
AB 
s 1
j,k j,. AN .,k

5 Pivoter : B  pB zs q Y k et N  pN zk q Y s et retourner en 1.
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 14 / 37
Recherche Opérationnelle
Méthodes des tableaux

Outline

1 Méthode algébrique
Solution de base

2 Forme matricielle

3 Méthodes des tableaux

4 Forme générale
Adaptation à d’autres formes de modèles
Obtention d’une base admissible initiale

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 15 / 37


Recherche Opérationnelle
Méthodes des tableaux

Algorithme du Simplexe

max z  20x1 10x2


s.c. x1 2x2 ¤ 120
x1 x2 ¤ 100
x1 ¤ 70
x2 ¤ 50
x1 , x2 ¥0
forme standard
max z
s.c. z 20x1 10x2 0
x1 2x2 s1  120
x1 x2 s2  100
x1 s3  70
x2 s4  50
x1 , x2 , s1 , s2 , s3 , s4 ¥0
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 16 / 37
Recherche Opérationnelle
Méthodes des tableaux

Forme Tableu
Forme standard
max z
s.c. z 20x1 10x2 0
x1 2x2 s1  120
x1 x2 s2  100
x1 s3  70
x2 s4  50
x1 , x2 , s1 , s2 , s3 , s4 ¥0
Forme tableau
z x1 x2 s1 s2 s3 s4
z 1 -20 -10 0 0 0 0 0
s1 0 1 2 1 0 0 0 120
s2 0 1 1 0 1 0 0 100
s3 0 1 0 0 0 1 0 70
s4 0 0 1 0 0 0 1 50
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 17 / 37
Recherche Opérationnelle
Méthodes des tableaux

Coûts réduits

B, une base de Ax  b
la fonction objectif :

z  cx  cB xB cN xN
 cB B 1 b  pcB B 1 N  cN qxN
°
 z0  pcB B 1 aj  cj qxj
n


j 1
°
 z0  pzj  cj qxj
n


j 1

zj  cj  cB B 1 aj  cj est le coût réduit de la variable hors base xj

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 18 / 37


Recherche Opérationnelle
Méthodes des tableaux

Forme tableaux
à chaque itération
z xN xB
z 1 coûts réduits 0 z0
0
.. ..
xB . . Id `
0
à l’optimum
z xN xB
z 1 ` 0 z0
0
.. ..
xB . . Id `
0

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 19 / 37


Recherche Opérationnelle
Méthodes des tableaux

Principe heuristique

Faire rentrer en base la variable avec le coefficient cr le plus négatif˝Ñ xr

Le coefficient le plus négatif : c1  20 ñ faire rentrer x1 .


z x1 x2 s 1 s2 s3 s4
z 1 -20 -10 0 0 0 0 0
s1 0 1 2 1 0 0 0 120
s2 0 1 1 0 1 0 0 100
s3 0 1 0 0 0 1 0 70
s4 0 0 1 0 0 0 1 50
Qui faire sortir ?

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 20 / 37


Recherche Opérationnelle
Méthodes des tableaux

Principe du quotient minimal

bs
asr  mint ab |air ¡ 0u Ñ faire sortir xs
i
ir

Le quotient minimal : b3
a31  mint 1201 , 1001 , 701 u  70 ñ faire sortir s3 .
z x1 x2 s1 s2 s3 s4
z 1 -20 -10 0 0 0 0 0
s1 0 1 2 1 0 0 0 120
s2 0 1 1 0 1 0 0 100
s3 0 1 0 0 0 1 0 70
s4 0 0 1 0 0 0 1 50

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 21 / 37


Recherche Opérationnelle
Méthodes des tableaux

Pivot
exprimer la contrainte z avec les variables hors base x2 et s3
z  10x2 20s3  1400
diviser la ligne pivot par le coefficient de la variable entrante
x1 s3  70
supprimer x1 des autres contraintes
2x2 s1 s3  50
x2 s2 s3  30
c ... a
.. ..
. .
ligne pivot p ... b ñ a Ñ a  bp c
|
colonne
pivot
Pivoter autour de a31
A. El MOUATASIM (FPO)
1 Recherche Opérationnelle 2020–2021 22 / 37
Recherche Opérationnelle
Méthodes des tableaux

Deuxième tableau

z x1 x2 s1 s2 s3 s4
z 1 0 -10 0 0 20 0 1400
s1 0 0 2 1 0 -1 0 50
s2 0 0 1 0 1 -1 0 30
x1 0 1 0 0 0 1 0 70
s4 0 0 1 0 0 0 1 50

x1 , s1 , s2 , s4 en base et x2 , s3 hors base


solution X 2  p70, 0, 50, 30, 0, 50q de valeur z=1400
faire rentrer x2 .
Le quotient minimal : b1
a12  mint 502 , 301 , 501 u  25 ñ faire sortir s1 .
Pivoter autour de a12 2

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 23 / 37


Recherche Opérationnelle
Méthodes des tableaux

Tableau optimal

z x1 x2 s1 s2 s3 s4
z 1 0 0 5 0 15 0 1650
x2 0 0 1 1
0  12 0 25
 12  12
2
s2 0 0 0 1 0 5
x1 0 1 0 0 0 1 0 70
s4 0 0 0  12 0 1
2 1 25

x1 , x2 , s2 , s4 en base et s1 , s3 hors base


solution X 3  p70, 25, 0, 5, 0, 25q de valeur 1650 optimal car
z  1650  5s1  15s3 et s1  s3  0.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 24 / 37


Recherche Opérationnelle
Méthodes des tableaux

Algorithme du simplexe : méthode des tableaux

Données : un programme linéaire et une solution de base admissible


Résultat : une solution de base admissible optimale ou déclarer PL non borné˝
1 Choix d’une colonne (variable) entrante
choisi une variable hors base xr (colonne) ayant un coût réduit négatif
s’il n’existe pas de colonne entrante : STOP, la solution de base est optimale
2 Choix d’une ligne (variable) sortante
choisi une ligne s minimisant le quotient
s’il n’existe pas de ligne sortante : STOP le tableau courant est non borné
3 Mise à jour de la base et du tableau
pivoter autour de asr et retourner en (1).

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 25 / 37


Recherche Opérationnelle
Méthodes des tableaux

Définition
Solution de base dégénérée si une ou plusieurs variables de base sont zéros (plus
de bijection entre les solutions de base admissibles et les points extrêmes)

Théorème
Si toutes les solutions de base admissibles sont non dégénérées, l’algorithme du
simplexe termine après un nombre fini d’itérations.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 26 / 37


Recherche Opérationnelle
Forme générale

Outline

1 Méthode algébrique
Solution de base

2 Forme matricielle

3 Méthodes des tableaux

4 Forme générale
Adaptation à d’autres formes de modèles
Obtention d’une base admissible initiale

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 27 / 37


Recherche Opérationnelle
Forme générale
Adaptation à d’autres formes de modèles

Tout modèle de programmation linéaire peut se ramener à la forme suivante :


¸
n
max cj xj
j 1 
¸n
s.c. aij xj xn i  bi , i  1, 2, . . . , m
j 1 
¥ 0, j  1, 2, . . . , n,
xj
xn i ¥ 0, i  1, 2, . . . , m.

Nous supposons de plus que bi est positif, i  1, 2, . . . , m. Sous cette forme, il est
facile d’initialiser la méthode du simplexe en ajoutant des variables d’écart, et en
les prenant comme variables de base. Cela revient de plus à considérer l’origine
comme solution initiale, et il est facile d’effectuer les opérations de pivot. Le
situation se complique avec d’autres formes fonctionnelles pour les contraintes, en
particulier dans la recherche d’une solution de base initiale.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 28 / 37


Recherche Opérationnelle
Forme générale
Adaptation à d’autres formes de modèles

Transformation du min au max

Supposons que nous devions minimiser l’objectif au lieu de le maximiser. Nous


utilisons la propriété
¸
n ¸
n
min cj xj   max  cj xj .

j 1 
j 1

Nous résolvons le problème de maximisation en changeant les signes des


coefficients dans l’objectif. La valeur optimale du problème de minimisation est
l’opposé de celle du problème de maximisation.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 29 / 37


Recherche Opérationnelle
Forme générale
Adaptation à d’autres formes de modèles

Transformation des inégalités en égalités


°n
Si 
j 1 aij xj ¤ bi , il y a deux cas :
1 bi ¥ 0 : nous ajoutons une variable d’écart positive xn i
:
¸
n
aij xj xn i  bi .

j 1

bi   0 : nous multiplions l’inégalité par -1, pour se ramener au cas développé


2
ci-dessous.
°n
Si j 1 aij xj ¥ bi , nous avons à nouveau deux cas possibles :
1 bi ¤ 0 : nous multiplions l’inégalité par -1, pour se ramener au cas développé
précédemment.
2 bi ¡ 0 : nous soustrayons une variable de surplus positive x0i :

¸
n
aij xj  x0i  bi .

j 1

Nous nous ramenons alors au cas d’ajout de variables artificielles.


A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 30 / 37
Recherche Opérationnelle
Forme générale
Obtention d’une base admissible initiale

Ajout de variables artificielles


°
Si j 1,...,n aij xj  bi et qu’aucune variable n’est isolée (une variable est isolée si
elle à coefficient 1 dans cette équation et à coefficient 0 dans les autres) :
1 nous ajoutons une variable artificielle xn 1 ¥ 0, dont l’unique but est de
fournir une variable de base initiale pour cette contrainte ;
2 nous lui associons un profil très négatif : M
¸
max cj xj  Mxn i

j 1,...,n

s.c. . . .
¸
aij xj xn i  bi

j 1,...,n

...

Le seul but des variables artificielles est de pouvoir initialiser l’algorithme du


simplexe en produisant une solution de base réalisable initiale. Si le problème est
réalisable, nous devrions avoir xn i  0.
A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 31 / 37
Recherche Opérationnelle
Forme générale
Obtention d’une base admissible initiale

Deux méthodes peuvent être considérées.


1 La méthode du grand M consiste à optimiser en utilisant une fonction
objective formée de la fonction de coût initiale et de la somme, très
fortement pénalisée, des variables artificielles.
2 La méthode à deux phases se déroule comme suit :
Phase 1 Trouver une solution réalisable en minimisant la somme des
variables artificielles.
Phase 2 Optimiser en revenant à la fonction de coût initial à partir de
la solution initiale trouvée dans la phase 1.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 32 / 37


Recherche Opérationnelle
Forme générale
Obtention d’une base admissible initiale

Exemple
Considérons le programme

max z  4x1 5x2


s.c. 2x1 2x2 ¥8
x2 3
9x1 3x2 ¤ 27
x1 ¥ 0, x2 ¥ 0.
Nous devons tout d’abord transformer le système de contraintes afin de pouvoir
traiter un système linéaire :

2x1 2x2  xs1


8
x2  3
9x1 03x2 xs2  27
xs1 ¥ 0, xs2 ¥ 0.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 33 / 37


Recherche Opérationnelle
Forme générale
Obtention d’une base admissible initiale

Exemple
En ajoutant les variables artificielles, nous obtenons

2x1 2x2  xs1 8xa1


x2 3xa2
9x1 3x2 xs2  27
xs1 ¥ 0, xs2 ¥ 0, xa1 ¥ 0, xa2 ¥ 0.

Afin de démarrer la méthode du simplexe, nous appliquons une des deux méthodes
précédentes.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 34 / 37


Recherche Opérationnelle
Forme générale
Obtention d’une base admissible initiale

Méthode à deux phases

Exemple
Phase 1 maximiser xa1  xa2 jusqu’à obtenir une valeur optimale nulle (si
le programme linéaire à une solution réalisable).

px1 , x2 , xs1 , xs2 , xa1 , xa2 q  p1, 3, 0, 9, 0, 0q


Phase 2 maximiser 4x1 5x2 .

px1 , x2 , xs1 , xs2 q  p2, 3, 2, 0q

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 35 / 37


Recherche Opérationnelle
Forme générale
Obtention d’une base admissible initiale

Méthode du grand M

Exemple

max 4x1 5x2  Mxa1  Mxa2


px1 , x2 , xs1 , xs2 , xa1 , xa2 q  p2, 3, 2, 0, 0, 0q

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 36 / 37


Recherche Opérationnelle
Forme générale
Obtention d’une base admissible initiale

Merci de votre attention

Si vous avez des questions n’hésitez pas à les poser.

A. El MOUATASIM (FPO) Recherche Opérationnelle 2020–2021 37 / 37

Vous aimerez peut-être aussi