Vous êtes sur la page 1sur 10

UNIVERSITÉ IBN ZOHR

Ecole Nationale de Commerce et de Gestion


Dakhla

Recherche Opérationnelle S7

Pr. Elouali AAILAL

Chapitre : 2

Algorithme du simplexe

Année universitaire :
2022 - 2023
1

1 Algorithme du simplexe.
1.1 Définitions.
Lorsqu’on considère un programme linéaire ayant plus de deux variables, la résolution graphique
devient difficile, mais les propriétés restent les mêmes. L’algorithme du simplex (G. B. Dantzig 1947) est
un algorithme récursif qui permet théoriquement de résoudre un problème de programmation linéaire
d’un nombre quelconque de variables.
Il existe de nombreuses variantes de cet algorithme, comme l’algorithme du simplexe sous forme al-
gébrique, l’algorithme du simplexe sous forme matricielle et l’algorithme du simplexe sous forme des
tableaux, dans ce cours, nous utiliserons la variante tabulaire.

Définition 1.1.
On appelle forme standard d’un programme linéaire P , tout système d’équations linéaires
(contraintes), conditionné par la maximisation d’une fonction linéaire de n variables x1 , x2 , x3 ... et xn ,
toutes positives : 


 M ax (z) = c1 x1 + c2 x2 + . . . + cn xn

a11 x1 + a12 x2 + . . . + a1n xn ± e1 = b1





 a21 x1 + a22 x2 + . . . + a2n xn ± e2 = b2





..................................................

 ..................................................




am1 x1 + am2 x2 + . . . + amn xn ± em = bm






 x ≥ 0, ∀ 1 ≤ i ≤ n et e ≥ 0, ∀ 1 ≤ j ≤ m.

i j

Où ci , bj et aij sont des nombres réels avec 1 ≤ i ≤ n et 1 ≤ j ≤ m. Les variables ej sont appelées
variables d’écart.

Proposition 1.1.
Tout programme linéaire peut être mis sous forme standard.

aj1 x1 + aj2 x2 + . . . + ajn xn ≤ bj ⇒ aj1 x1 + aj2 x2 + . . . + ajn xn + ej = bj


aj1 x1 + aj2 x2 + . . . + ajn xn ≥ bj ⇒ aj1 x1 + aj2 x2 + . . . + ajn xn − ej = bj

Exemple 1.1.
Soit le programme linéaire suivant :



 M ax (z) = 6x1 − x2 + 9x3
−x1 + 2x2 + x3 ≥ 3







3x1 − x2 ≤ 1
x1 + x2 − x3 ≥ 5






x1 ≥ 0, x2 ≥ 0, x3 ≥ 0

Ce programme linéaire n’est pas en forme standard, transformons le sous cette forme :
L’inéquation −x1 + 2x2 + x3 ≥ 3 devient −x1 + 2x2 + x3 − e1 = 3, en retranchant la variable d’écart e1 .
L’inéquation 3x1 − x2 ≤ 1 devient 3x1 − x2 + e2 = 1, en ajoutant la variable d’écart e2 .
L’inéquation x1 + x2 − x3 ≥ 5 devient x1 + x2 − x3 − e3 = 5, en retranchant la variable d’écart e3 .
Finalement, voici la forme standard du programme linéaire précédent :



 M ax (z) = 6x1 − x2 + 9x3
−x1 + 2x2 + x3 − e1 = 3







3x1 − x2 + e2 = 1
x1 + x2 − x3 − e3 = 5






x1 ≥ 0, x2 ≥ 0, x3 ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


2

1.2 Principe de l’algorithme du simplexe.


Principe de l’algorithme du simplexe :
Voici l’idée principale de l’algorithme du simplex :
1. Pour commencer, on sélectionne un sommet initial ;
2. On teste si ce sommet est l’optimum ;
3. Si le sommet que l’on vient d’examiner n’est pas optimal, on se déplace sur un sommet voisin pour
lequel la fonction objectif s’améliore et on repasse à l’étape précédente.
Le sommet optimal est atteint lorsqu’aucun des sommets voisins ne permet plus l’amélioration de la
fonction objectif.

En s’appuyant sur le principe précédent, voici l’aspect algorithmique de la méthode du simplexe :


Début :
• Saisir la fonction objectif.
• Saisir le type initial.
• Standardiser le programmme.
• Convertir le programme en tableau ;
Tant que : Les coefficients de la fonction
objectif ne sont pas tous nuls ou négatifs.
• Sélection de la variable entrante :
Choisir le coefficient le plus grand de la fonction objectif.
• Sélection de la variable sortante :
Choisir le rapport minimum.
• Définir le pivot.
Multiplier la ligne du pivot par 1/pivot.
Étendre l’opération aux autres lignes.
Fin Tant que.
Fin.

2 L’algorithme du simplexe : Méthode des tableaux.


2.1 Méthode des tableaux.
Première étape. Tableau initial.
La première étape consiste à convertir le programme linéaire sous sa forme standard en utilisant les

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


3

variables d’écart, à fin de construire un tableau initial, ce tableau contient dans sa première ligne toutes
les variables (variables de décision et variables d’écart) ou les variables de décision sont considérées
comme variables hors base, tandis que la première colonne contient les variables d’écart qui sont
considérées comme variables de base VB.

Deuxième étape. Détermination de la variable entrante dans la base. Nous choisissons au départ
comme solution de base admissible, le sommet où les variables de décision xi sont nulles et les
variables d’écart ej sont égales aux membres de droite bj .
Pour un problème de maximisation, si tous les coefficients ci de la fonctin objectif z sont négatifs ou
nuls, alors on s’arrête, car la solution courante est optimale ;
Sinon, c’est-à-dire, si ∃ 1 ≤ i ≤ n : ci > 0, donc le critère de sélection d’une variable hors base pour
la faire entrer en base, dans un problème de maximisation, c’est de choisir la variable hors base qui a
le plus grand coefficient strictement positif ci dans la fonctin objectif z (la dernière ligne du tableau),
donc il faut faire entrer comme variable de base, celle dont le coefficient cs = maxi ci . La colonne où il
existe le plus grand coefficient strictement positif cs = maxi ci de la fonction objectif, s’appelle colonne
pivot, c’est sur cette colonne où se trouve la variable entrante V.E.
Pour un problème de minimisation, on choisit la variable hors base qui a le plus petit coefficient stric-
tement positif ci dans la fonctin objectif z, donc il faut faire entrer comme variable de base, celle dont
le coefficient cs = mini ci .

Troisième étape. Détermination de la variable sortante de la base.


La variable qu’il faut la faire sortir de la base est la première à s’annuler lorsque la variable entrante
xs augmente, c’est-à-dire c’est la variable pour laquelle le minimum est atteint dans :
bk bj
 
= min , avec aks > 0 et 1 ≤ j ≤ m .
bks bjs

k est l’indice de la ligne correspondante. La ligne où le minimum de ce rapport est atteint est appelée
la ligne pivot, c’est sur cette ligne où se trouve la variable sortante V.S.
Si ∀k : aks ≤ 0, alors la solution est non bornée.
Le pivot est l’intersection entre la colonne pivot et la ligne pivot.

Quatrième étape. Pivotage et passage à un nouveau tableau.


Pour obtenir la ligne pivot dans le nouveau tableau, il suffit de diviser tous ses éléments par le pivot :
a′ = Pivot
a
.
Pour obtenir la colonne du pivot dans le nouveau tableau, il suffit de remplacer tous ses éléments par
0, sauf le pivot il faut le remplacer par 1.
Pour obtenir les autres éléments dans le nouveau tableau, autres que les éléments du colonne pivot et
du ligne pivot, il suffit d’appliquer la règle du rectangle :
al × ac
a′ = a − .
P ivot
Dans le tableau courant, le pivot et les coefficient a, al et ac forment les coins d’un rectangle, d’où le
nom de la méthode.
Dans la première colonne du nouveau tableau, on remplace la variable sortante par la variable entrante.

Teste d’arrêt.
Pour un problème de maximisation, on s’arrêt lorsque tous les coefficients de la fonction objectif (la
dernière ligne du tableau) sont tous inférieurs ou égaux à zéro, c’est-à-dire, si ∀ 1 ≤ i ≤ n + m : ci ≤ 0.
Le tableau final est appelé tableau optimal.
Pour un problème de minimisation, on s’arrêt lorsque tous les coefficients de la fonction objectif sont
tous supérieurs ou égaux à zéro, c’est-à-dire, si ∀ 1 ≤ i ≤ n + m : ci ≥ 0.

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


4

Exemple 2.1.
Un atelier fabrique trois modèles d’armoires en bois : modèle 1, modèle 2 et modèle 3.
Le tableau suivant récapitule les informations sur cette opération :
modèle 1 modèle 2 modèle 3 disponibilité
Bois 5 8 5 900
Main d’oeuvre 1 2 3 516
Finition 2 2 0 200
Profit unitaire (dh) 1000 960 1200

Le programme linéaire résultant de ce problème :





 M ax (z) = 1000x1 + 960x2 + 1200x3
5x1 + 8x2 + 5x3 ≤ 900







x1 + 2x2 + 3x3 ≤ 516
2x1 + 2x2 ≤ 200






x1 ≥ 0, x2 ≥ 0

La forme standard de ce programme linéaire :





 M ax (z) = 1000x1 + 960x2 + 1200x3
5x1 + 8x2 + 5x3 + e1 = 900







x1 + 2x2 + 3x3 + e2 = 516
2x1 + 2x2 + e3 = 200






x1 ≥ 0, x2 ≥ 0, e1 ≥ 0, e2 ≥ 0, e3 ≥ 0

Tableau initial T1 .
On construit le tableau initial, à partir de la forme standard précédente.
Nous partons de (x1 , x2 , x3 , e1 , e2 , e3 ) = (0, 0, 0, 900, 516, 200) comme solution de base admissible.

VB\ Variables x1 x2 ↓ x3 e1 e2 e3 b
e1 5 8 5 1 0 0 900
← e2 1 2 3 0 1 0 516
e3 2 2 0 0 0 1 200
z 1000 960 1200 0 0 0 0

Ce tableaunn’est pas optimal,


o car la dernière ligne contient
n des ocoefficients strictement positifs.
On a max 100, 960, 1200 = 1200 ⇒ V E = x3 , et min 5 , 3 = 516
900 516
3
⇒ V S = e2 , ⇒ pivot = 3.
Pour obtenir le tableau suivant : On remplace les éléments de la colonne pivot (colonne de x3 ) par 0,
sauf le pivot (ici 3), on le remplace par 1.
On remplace les éléments de la ligne pivot(ligne de e2 ), en les divisant par le pivot (ici 3).
Pour les autres éléments dans le nouveau tableau, autres que les éléments du colonne pivot et du ligne
pivot, il suffit d’appliquer la règle du rectangle : a′ = a − aPlivot
×ac
.
Par exemple : 8 ← 8 − 3 = 3 , 1000 ← 1000 − 3 = 600 et 0 ← 0 − 516×1200
2×5 14 1×1200
3
= −206400.
Après avoir calculé tous les éléments, on passe au tableau T3 .
Deuxième tableau T2 .
VB\ Variables ↓ x1 x2 x3 e1 e2 e3 b
← e1 10
3
14
3
0 1 −5
3
0 40
x3 1
3
2
3
1 0 1
3
0 172
e3 2 2 0 0 0 1 200
z 600 160 0 0 -400 0 -206400

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


5

Ce tableaunn’est paso optimal, car la dernière ligne


n contient deso coefficients strictement positifs.
On a max 600, 160 = 600 ⇒ V E = x1 , et min 10 , 1 , 2 = 40
40 172 200
10 = 12 ⇒ V S = e1 , ⇒ pivot = 3 .
10
3 3 3
Pour obtenir le tableau suivant : On remplace les éléments de la colonne pivot (colonne de x1 ) par 0,
sauf le pivot (ici 10
3
), on le remplace par 1.
On remplace les éléments de la ligne pivot(ligne de e1 ), en les divisant par le pivot (ici 10
3
).
Pour les autres éléments dans le nouveau tableau, autres que les éléments du colonne pivot et du ligne
pivot, il suffit d’appliquer la règle du rectangle : a′ = a − aPlivot
×ac
.
−5
Par exemple : −5
3
← 3
10 = −1
2
(car −5
3
se trouve sur la ligne pivot), 600 ← 0 (car 600 se trouve sur la
3
colonne pivot) et 200 ← 200 − 10 = 176.2×40
3
Après avoir calculé tous les éléments, on passe au tableau T3 .
Troisième tableau T3 .
VB\ Variables x1 x2 x3 e1 e2 e3 b
x1 1 7
5
0 3
10
−1
2
0 12
x3 0 1
5
1 −1
10
1
2
0 168
e3 0 −4
5
0 −3
5
1 1 176
z 0 -680 0 -180 -100 0 -213600

Puisque les coefficients dans la dernière ligne du tableau T3 sont tous inférieurs ou égal à zéro, donc
le critère d’optimalité est vérifié et nous devons nous arrêter ici. Le tableau T3 est le tableau optimal
(final).
La solution optimale de ce programme linéaire est (x1 , x2 , x3 ) = (12, 0, 168). Donc, pour réaliser un
profit maximum égal à max(z) = 213600Dh, l’entreprise doit fabriquer 12 unités du modèle 1, zero
unités du modèle 2 et 168 unités du modèle 3. Puisque dans ce tableau final, on a pour les variables
d’écart (e1 , e2 , e3 ) = (0, 0, 176), c’est-à-dire que toute la disponibilité (ressources) du bois (en Kg) et du
main d’oeuvre (en unité du temps) a été utilisée en totalité, alors que la disponibilité de finition n’a pas
été utilisée en totalité, car la variable d’écart e3 = 176, il rest encore 176 unités du temps de finition,
non exploitées.

Exemple 2.2.
Un potier fabrique des pots en argile de type standard ou de type luxe. Il peut vendre 300 unités du
modèle de luxe et 400 unités du modèle standard. L’argile disponible est suffisante pour fabriquer an-
nuellement 500 pots quel que soit le type. De plus, le temps de fabrication d’un pot de luxe est double
de celui d’un pot standard. La capacité de fabrication annuelle est telle que, si tous les les pots fabriqués
sont de type standard, on pourrait en fabriquer 700 au maximum. La vente d’un pot de luxe génère un
bénéfice égal à 7 DH, celui d’un pot de type standard génère un bénéfice égal à 5 DH.
Quel est le programme de production annuel menant au profit maximum ?

Modélisons ce problème en un PL :
1. Les variables de décisions sont :
x1 : : le nombre de pots de type de luxe à fabriquer.
x2 : le nombre de pots de type standard à fabriquer.
2. Les contraintes du problème sont :
Contraintes techniques :
x1 + x2 ≤ 500.
2x1 + x2 ≤ 700.
x1 ≤ 300.
x2 ≤ 400.
Contraintes de positivité :
x1 ≥ 0.
x2 ≥ 0.
3. La fonction objectif :
Dans ce problème on cherche à savoir combien doit-on produire annuellement de pots de type

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


6

de luxe et de type standard, pour avoir un profit total maximum ? Donc la fonction objectif à
maximiser est le profit z = 7x1 + 5x2 .
Finalement, le programme linéaire résultant est :



 M ax (z) = 7x1 + 5x2

x1 + x2 ≤ 500





2x1 + x2 ≤ 700







x1 ≤ 300
x2 ≤ 400






x1 ≥ 0






x2 ≥ 0

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


7

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


8

2.2 Cas particuliers.


2.2.1 Solution non admissible.
Un PL est dit non admissible si certaine de ses contraintes se contredisent.

Exemple 2.3.



 M ax (z) = 5x1 + 3x2
4x1 + 2x2 ≤ 8






x1 ≥ 4







x2 ≥ 6
x1 ≥ 0






x2 ≥ 0

Ce PL est non admissible car les contraintes x1 ≥ 4 et x2 ≥ 6 sont en contradictions avec la


contrainte 4x1 + 2x2 ≤ 8.

2.2.2 Solution non bornée.


Un PL est dit non borné si son optimum est infini. On reconnait un tel modèle lorsqu’à une itération
donnée, le vecteur colonne de la variable qui rentre en base est négatif ou nul.En pratique, cette situation
peut signifier une omission d’une contrainte vitale lors de la formulation du problème.

Exemple 2.4.



 M ax (z) = 4x1 + 2x2
4x1 + 2x2 ≤ 8






x1 ≥ 4







x2 ≤ 2
x1 ≥ 0






x2 ≥ 0

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023


9

Dans ce cas, la valeur de la fonction objectif augmente indéfiniment.

2.2.3 Une infinité de solutions.


On a cette situation lorsqu’à la fin de la résolution du PL par la méthode du simplexe une variable
hors base possède un coefficient nul dans la ligne de la fonction objectif. Dans ce cas, une itération
supplémentaire donnera une seconde solution optimale. Toute combinaison convexe de ces 2 solutions
optimales est aussi une solution optimale. Géométriquement, cela signifie que la fonction objectif est
parallèle à l’une des contraintes.

Exemple 2.5.



 M ax (z) = 40x1 + 30x2
x1 + 2x2 ≤ 40







4x1 + 3x2 ≤ 120
x1 ≥ 0






x2 ≥ 0

ENCG Dakhla, RO, S7 Pr. Elouali AAILAL 2022/2023

Vous aimerez peut-être aussi