La méthode du simplexe
Objectifs du chapitre — À la fin de ce chapitre, vous saurez :
- définir une solution de base réalisable et son lien avec les sommets du domaine ;
- construire le tableau initial du simplexe à partir de la forme standard ;
- choisir la variable entrante et la variable sortante (critère du ratio minimal) ;
- effectuer un pivotage et reconnaître le tableau optimal ;
- traiter les contraintes de type supérieur ou égal (méthode du grand M) et les cas particuliers.
3.1 Pourquoi une méthode algébrique ?
La méthode graphique ne fonctionne qu'avec deux variables. Dans la pratique, une raffinerie, une compagnie aérienne ou un plan de production industriel comptent des centaines ou des milliers de variables. La méthode du simplexe (Dantzig, 1947) généralise l'idée du chapitre 2 : partir d'un sommet du domaine, puis passer à un sommet voisin qui améliore l'objectif, jusqu'à ce qu'aucun voisin ne soit meilleur.
3.2 Solutions de base
Sous forme standard, le programme comporte $m$ équations et $n$ variables (variables d'écart comprises), avec $n > m$.
Définition — Solution de base : solution obtenue en fixant $n - m$ variables à zéro (variables hors base) et en résolvant le système pour les $m$ autres (variables de base). Elle est réalisable si toutes les variables de base sont positives ou nulles.
Chaque solution de base réalisable correspond à un sommet du domaine. Pour l'atelier de meubles, $m = 3$ et $n = 5$ ($x_1, x_2, s_1, s_2, s_3$) : la solution $x_1 = x_2 = 0$, $s_1 = 100$, $s_2 = 80$, $s_3 = 40$ correspond à l'origine. C'est la solution de départ naturelle quand toutes les contraintes sont de type $\le$ avec des seconds membres positifs.
3.3 Le tableau du simplexe
On écrit les équations de la forme standard dans un tableau, avec une dernière ligne pour l'objectif, réécrit sous la forme $Z - 300\,x_1 - 200\,x_2 = 0$.
Tableau 1 (base : $s_1, s_2, s_3$ ; sommet O)
| Base | $x_1$ | $x_2$ | $s_1$ | $s_2$ | $s_3$ | Second membre | Ratio |
|---|---|---|---|---|---|---|---|
| $s_1$ | 2 | 1 | 1 | 0 | 0 | 100 | 50 |
| $s_2$ | 1 | 1 | 0 | 1 | 0 | 80 | 80 |
| $s_3$ | 1 | 0 | 0 | 0 | 1 | 40 | 40 |
| $Z$ | − 300 | − 200 | 0 | 0 | 0 | 0 |
3.4 Les règles du pivotage
- Variable entrante : la variable hors base dont le coefficient dans la ligne $Z$ est le plus négatif (c'est elle qui augmente le plus $Z$ par unité). Ici, $x_1$ (− 300).
- Variable sortante : pour chaque ligne où le coefficient de la colonne entrante est strictement positif, on calcule le ratio second membre / coefficient. La ligne du plus petit ratio sort : c'est la première contrainte qui devient saturée quand $x_1$ augmente. Ici, $s_3$ (ratio 40).
- Pivotage : on divise la ligne pivot par le pivot (ici 1), puis on annule les autres coefficients de la colonne entrante en retranchant des multiples de la ligne pivot.
Tableau 2 (base : $s_1, s_2, x_1$ ; sommet A)
Opérations : $L_1 \leftarrow L_1 - 2L_3$ ; $L_2 \leftarrow L_2 - L_3$ ; $L_Z \leftarrow L_Z + 300\,L_3$.
| Base | $x_1$ | $x_2$ | $s_1$ | $s_2$ | $s_3$ | Second membre | Ratio |
|---|---|---|---|---|---|---|---|
| $s_1$ | 0 | 1 | 1 | 0 | − 2 | 20 | 20 |
| $s_2$ | 0 | 1 | 0 | 1 | − 1 | 40 | 40 |
| $x_1$ | 1 | 0 | 0 | 0 | 1 | 40 | — |
| $Z$ | 0 | − 200 | 0 | 0 | 300 | 12 000 |
$x_2$ entre (− 200), $s_1$ sort (ratio 20).
Tableau 3 (base : $x_2, s_2, x_1$ ; sommet B)
Opérations : $L_2 \leftarrow L_2 - L_1$ ; $L_Z \leftarrow L_Z + 200\,L_1$.
| Base | $x_1$ | $x_2$ | $s_1$ | $s_2$ | $s_3$ | Second membre | Ratio |
|---|---|---|---|---|---|---|---|
| $x_2$ | 0 | 1 | 1 | 0 | − 2 | 20 | — |
| $s_2$ | 0 | 0 | − 1 | 1 | 1 | 20 | 20 |
| $x_1$ | 1 | 0 | 0 | 0 | 1 | 40 | 40 |
| $Z$ | 0 | 0 | 200 | 0 | − 100 | 16 000 |
$s_3$ entre (− 100) ; seules les lignes 2 et 3 ont un coefficient positif ; $s_2$ sort (ratio 20).
Tableau 4 (base : $x_2, s_3, x_1$ ; sommet C)
Opérations : $L_1 \leftarrow L_1 + 2L_2$ ; $L_3 \leftarrow L_3 - L_2$ ; $L_Z \leftarrow L_Z + 100\,L_2$.
| Base | $x_1$ | $x_2$ | $s_1$ | $s_2$ | $s_3$ | Second membre |
|---|---|---|---|---|---|---|
| $x_2$ | 0 | 1 | − 1 | 2 | 0 | 60 |
| $s_3$ | 0 | 0 | − 1 | 1 | 1 | 20 |
| $x_1$ | 1 | 0 | 1 | − 1 | 0 | 20 |
| $Z$ | 0 | 0 | 100 | 100 | 0 | 18 000 |
3.5 Le critère d'optimalité et la lecture du tableau final
Critère d'optimalité (maximisation) : le tableau est optimal quand aucun coefficient de la ligne $Z$ n'est négatif.
Lecture du tableau 4 : $x_1 = 20$, $x_2 = 60$, $s_3 = 20$ (variables de base) ; $s_1 = s_2 = 0$ (hors base, contraintes saturées) ; $Z = 18\,000$. On retrouve exactement la solution graphique, après avoir parcouru les sommets O → A → B → C.
Les coefficients de $s_1$ et $s_2$ dans la ligne $Z$ (100 et 100) sont les coûts réduits des variables d'écart : ils indiquent de combien $Z$ diminuerait si l'on imposait une heure inutilisée de menuiserie ou de finition, donc la valeur d'une heure supplémentaire. Ce sont les prix fictifs du chapitre 4.
Un coût réduit nul pour une variable hors base à l'optimum signale un optimum multiple : la faire entrer donne un autre sommet de même valeur.
3.6 Les contraintes de type supérieur ou égal : la méthode du grand M
Une contrainte $x_1 + x_2 \ge 7$ devient $x_1 + x_2 - e = 7$ ; la variable d'excédent $e$ a un coefficient $-1$ et ne peut pas servir de variable de base de départ (elle vaudrait − 7). On ajoute une variable artificielle $a \ge 0$ : $x_1 + x_2 - e + a = 7$, et on la pénalise fortement dans l'objectif : $\max Z - M a$ avec $M$ très grand. Le simplexe chasse alors les variables artificielles de la base.
Si, à l'optimum, une variable artificielle reste positive, le programme est impossible. La méthode en deux phases est équivalente : on minimise d'abord la somme des variables artificielles, puis on optimise l'objectif réel.
3.7 Les cas particuliers dans le tableau
- Programme non borné : la colonne entrante n'a aucun coefficient positif, aucun ratio n'est calculable : $Z$ peut croître sans limite.
- Dégénérescence : égalité de deux ratios minimaux ; une variable de base vaut 0. Le simplexe peut alors « tourner » sans améliorer $Z$ (cyclage), d'où des règles de choix particulières (règle de Bland).
- Minimisation : on maximise $-Z$, ou l'on choisit comme entrante la variable de coefficient le plus positif et l'on s'arrête quand tous sont négatifs ou nuls.
3.8 Méthode : appliquer le simplexe
- Écrire la forme standard (variables d'écart, éventuellement artificielles).
- Construire le tableau initial ; la ligne $Z$ contient les coefficients de l'objectif changés de signe.
- Choisir la variable entrante (coefficient le plus négatif de la ligne $Z$).
- Calculer les ratios sur les coefficients strictement positifs ; la variable sortante a le plus petit ratio.
- Pivoter ; recommencer jusqu'à ce que la ligne $Z$ n'ait plus de coefficient négatif.
- Lire la solution, vérifier dans les contraintes d'origine et interpréter les coûts réduits.
Les pièges à éviter
- Calculer un ratio avec un coefficient nul ou négatif (il faut l'ignorer).
- Oublier de mettre à jour la ligne $Z$ lors du pivotage.
- Lire la valeur d'une variable hors base dans la colonne du second membre : une variable hors base vaut 0.
- Arrêter le simplexe alors qu'un coefficient de la ligne $Z$ est encore négatif.
- Oublier de vérifier la solution finale dans les contraintes initiales.
Exercice 1 — Une fabrique de peinture à Mohammedia
Une fabrique produit de la peinture d'extérieur ($x_1$) et d'intérieur ($x_2$), en tonnes par jour. Marges : 5 et 4 milliers de DH par tonne. Chaque tonne d'extérieur utilise 6 tonnes de matière première M1 et 1 tonne de M2 ; chaque tonne d'intérieur, 4 tonnes de M1 et 2 tonnes de M2. Disponibilités quotidiennes : 24 tonnes de M1 et 6 tonnes de M2.
Travail à faire :
- Formulez le programme et écrivez sa forme standard.
- Résolvez-le par la méthode du simplexe en présentant chaque tableau.
- Interprétez la solution optimale et les coûts réduits des variables d'écart.
- Vérifiez graphiquement le résultat.
Voir le corrigé
1) $\max Z = 5x_1 + 4x_2$ sous $6x_1 + 4x_2 \le 24$ (M1), $x_1 + 2x_2 \le 6$ (M2), $x_1, x_2 \ge 0$. Forme standard : $6x_1 + 4x_2 + s_1 = 24$ ; $x_1 + 2x_2 + s_2 = 6$.
2) Tableau 1
| Base | $x_1$ | $x_2$ | $s_1$ | $s_2$ | Second membre | Ratio |
|---|---|---|---|---|---|---|
| $s_1$ | 6 | 4 | 1 | 0 | 24 | 4 |
| $s_2$ | 1 | 2 | 0 | 1 | 6 | 6 |
| $Z$ | − 5 | − 4 | 0 | 0 | 0 |
$x_1$ entre, $s_1$ sort. On divise $L_1$ par 6, puis $L_2 \leftarrow L_2 - L_1$ et $L_Z \leftarrow L_Z + 5\,L_1$.
Tableau 2
| Base | $x_1$ | $x_2$ | $s_1$ | $s_2$ | Second membre | Ratio |
|---|---|---|---|---|---|---|
| $x_1$ | 1 | 2/3 | 1/6 | 0 | 4 | 6 |
| $s_2$ | 0 | 4/3 | − 1/6 | 1 | 2 | 1,5 |
| $Z$ | 0 | − 2/3 | 5/6 | 0 | 20 |
$x_2$ entre (− 2/3), $s_2$ sort (ratio $2 / (4/3) = 1{,}5$). On multiplie $L_2$ par 3/4, puis $L_1 \leftarrow L_1 - \tfrac{2}{3} L_2$ et $L_Z \leftarrow L_Z + \tfrac{2}{3} L_2$.
Tableau 3
| Base | $x_1$ | $x_2$ | $s_1$ | $s_2$ | Second membre |
|---|---|---|---|---|---|
| $x_1$ | 1 | 0 | 1/4 | − 1/2 | 3 |
| $x_2$ | 0 | 1 | − 1/8 | 3/4 | 1,5 |
| $Z$ | 0 | 0 | 3/4 | 1/2 | 21 |
Détail de la ligne $x_1$ : $1/6 - \tfrac{2}{3} \times (-1/8) = 1/6 + 1/12 = 1/4$ ; $0 - \tfrac{2}{3} \times 3/4 = -1/2$ ; $4 - \tfrac{2}{3} \times 1{,}5 = 3$. Ligne $Z$ : $5/6 - \tfrac{2}{3} \times 1/8 = 3/4$ ; $\tfrac{2}{3} \times 3/4 = 1/2$ ; $20 + \tfrac{2}{3} \times 1{,}5 = 21$.
Aucun coefficient négatif dans la ligne $Z$ : le tableau est optimal.
3) La fabrique produit 3 tonnes de peinture d'extérieur et 1,5 tonne d'intérieur par jour, pour une marge de 21 000 DH. Les deux matières sont entièrement utilisées ($s_1 = s_2 = 0$). Coûts réduits : une tonne supplémentaire de M1 rapporterait 0,75 millier de DH (750 DH), une tonne de M2, 500 DH ; ce sont les prix maximaux que la fabrique devrait accepter de payer pour ces matières en plus de leur coût actuel.
4) Sommets : $O(0 ; 0)$, $(4 ; 0)$ avec $Z = 20$, $(0 ; 3)$ avec $Z = 12$, et l'intersection des deux droites : $6x_1 + 4x_2 = 24$ et $x_1 + 2x_2 = 6$ (soit $2x_1 + 4x_2 = 12$) donnent $4x_1 = 12$, $x_1 = 3$, $x_2 = 1{,}5$, $Z = 15 + 6 = 21$ . Le simplexe est passé par O puis $(4 ; 0)$ avant d'atteindre l'optimum.
Exercice 2 — Trois coffrets de pâtisserie
Une pâtisserie de Tétouan prépare trois coffrets de gâteaux traditionnels, $x_1$, $x_2$ et $x_3$ (en dizaines par semaine), de marges 20, 30 et 25 (centaines de DH). Ressources : 40 heures de main-d'œuvre ($x_1 + x_2 + x_3 \le 40$), 60 kg d'amandes ($x_1 + 2x_2 + x_3 \le 60$) et 90 unités d'emballage ($2x_1 + x_2 + 3x_3 \le 90$).
Résolvez par le simplexe et interprétez.
Voir le corrigé
Tableau 1 : $x_2$ entre (− 30). Ratios : $40/1 = 40$, $60/2 = 30$, $90/1 = 90$ : $s_2$ sort.
Tableau 2 (après pivotage sur le 2) :
| Base | $x_1$ | $x_2$ | $x_3$ | $s_1$ | $s_2$ | $s_3$ | Second membre |
|---|---|---|---|---|---|---|---|
| $s_1$ | 1/2 | 0 | 1/2 | 1 | − 1/2 | 0 | 10 |
| $x_2$ | 1/2 | 1 | 1/2 | 0 | 1/2 | 0 | 30 |
| $s_3$ | 3/2 | 0 | 5/2 | 0 | − 1/2 | 1 | 60 |
| $Z$ | − 5 | 0 | − 10 | 0 | 15 | 0 | 900 |
$x_3$ entre (− 10). Ratios : $10/(1/2) = 20$, $30/(1/2) = 60$, $60/(5/2) = 24$ : $s_1$ sort.
Tableau 3 :
| Base | $x_1$ | $x_2$ | $x_3$ | $s_1$ | $s_2$ | $s_3$ | Second membre |
|---|---|---|---|---|---|---|---|
| $x_3$ | 1 | 0 | 1 | 2 | − 1 | 0 | 20 |
| $x_2$ | 0 | 1 | 0 | − 1 | 1 | 0 | 20 |
| $s_3$ | − 1 | 0 | 0 | − 5 | 2 | 1 | 10 |
| $Z$ | 5 | 0 | 0 | 20 | 5 | 0 | 1 100 |
Optimal : $x_1 = 0$, $x_2 = 20$, $x_3 = 20$ (200 coffrets de chaque type 2 et 3), marge de 110 000 DH. Main-d'œuvre et amandes sont saturées ; il reste 10 unités d'emballage. Le coffret 1 n'est pas produit : son coût réduit (5) indique qu'en imposer une dizaine ferait perdre 500 DH. Une heure de travail vaut 2 000 DH, un kg d'amandes 500 DH (prix fictifs 20 et 5).
Exercice 3 — Lire un tableau
Au cours d'un simplexe de maximisation, on obtient la ligne $Z$ suivante et la colonne de $x_2$ :
| Base | $x_2$ | Second membre |
|---|---|---|
| $x_1$ | − 2 | 12 |
| $s_2$ | 0 | 5 |
| $Z$ | − 3 | 60 |
- Le tableau est-il optimal ? Quelle variable doit entrer ?
- Quelle variable sort ? Concluez.
Voir le corrigé
1) Non : le coefficient de $x_2$ dans la ligne $Z$ est négatif (− 3). Faire entrer $x_2$ augmente $Z$ de 3 par unité.
2) Aucun coefficient de la colonne $x_2$ n'est strictement positif (− 2 et 0) : aucun ratio n'est calculable. Quand $x_2$ augmente, $x_1 = 12 + 2x_2$ augmente aussi et $s_2$ reste à 5 : aucune contrainte ne se sature. Le programme est non borné ; dans un problème réel, une contrainte a été oubliée.
L'essentiel — Le simplexe
- Solution de base : $n - m$ variables hors base nulles, $m$ variables de base calculées ; réalisable si toutes $\ge 0$ ; base réalisable = sommet.
- Tableau initial : variables d'écart en base ; ligne $Z$ = coefficients de l'objectif changés de signe.
- Entrante : coefficient le plus négatif de la ligne $Z$ (maximisation).
- Sortante : plus petit ratio second membre / coefficient, sur les coefficients strictement positifs.
- Pivotage : diviser la ligne pivot par le pivot, annuler le reste de la colonne (ligne $Z$ comprise).
- Optimalité : plus aucun coefficient négatif dans la ligne $Z$.
- Coûts réduits des variables d'écart à l'optimum = prix fictifs des ressources ; coût réduit nul hors base → optimum multiple.
- Contraintes $\ge$ : variables d'excédent + artificielles (grand M ou deux phases) ; artificielle positive à l'optimum → programme impossible.
- Colonne entrante sans coefficient positif → non borné ; ratios égaux → dégénérescence.
S'entraîner sur des sujets réels
Des sujets réels de concours (master, licence d'excellence) avec une épreuve de Intelligence Artificielle et Recherche Opérationnelle : énoncé complet et corrigé indicatif.
- 2019Management Logistique AppliquéeFSJES · Mohammedia
- 2018Actuariat et Finance de marchésFSJES Casablanca Ain Sebaa · Casablanca
- 2017Actuariat et Finance de marchésFSJES Casablanca Ain Sebaa · Casablanca
- 2017Master Management Logistique AppliquéeFSJES · Mohammedia