Vous êtes sur la page 1sur 15

Recherche Opérationnelle Résolution d’un programme linéaire

2. RÉSOLUTION D’UN PROGRAMME LINÉAIRE


2.1 Exemple introductif
Reprenons l’exemple (1.5), déjà présenté dans le chapitre précédent, dont le
programme linéaire correspondant a été formulé comme suit :
⎧ Max Z = 8 x1 + 6 x2
⎪ sujet à :

⎪⎪5 x1 + 3 x2 ≤ 3000
⎨ (2.1)
⎪2 x1 + 3 x2 ≤ 2400
⎪ x1 + 3 x2 ≤ 1800

⎪⎩ x1 , x2 ≥ 0

Sa forme standard est :


⎧ Max Z = 8 x1 + 6 x2
⎪ sujet à :

⎪⎪5 x1 + 3 x2 + x3 = 3000

⎪2 x1 + 3 x2 + x4 = 2400
⎪ x1 + 3 x2 + x5 = 1800

⎪⎩ x1 , x2 , x3 , x4 , x5 ≥ 0
où x3 , x4 , x5 représentent les résidus des ressources α , β , γ .
Nous sommes dans le cas d’un système constitué de trois relations à cinq
inconnues. Pour le résoudre il faut choisir deux inconnues et déterminer les
autres. Dans ce cas nous aurons une double infinité de solutions, nous allons
maintenir celle qui maximise le bénéfice.
Trois méthodes de résolution peuvent être utilisées : la méthode élémentaire,
la méthode graphique et la méthode du simplexe. Dans ce cours, nous allons se
limiter à présenter la méthode la plus répandue : la méthode du simplexe.
2.2 Méthode du Simplexe

2.2.1 Introduction
La méthode du simplexe est une technique algébrique qui permet de trouver
la solution optimale d’un programme linéaire d’une façon ordonnée et concise.
C’est une méthode itérative qui se base sur le fait de partir d’une solution de base
réalisable (solution de départ nulle) et d’augmenter (si on maximise) ou de
diminuer (si on minimise) la valeur de la fonction objectif.
Comme il a été déjà présenté dans le chapitre 1, un programme linéaire
général peut être formulé comme suit : On désire trouver la valeur de n variables
de décision non négatives, x j , j = 1,..., n , satisfaisant m équations ou inéquations
linéaires (contraintes) :

Notes de cours 7 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

a11 x1 + a12 x2 + ... + a1n xn ≤ b1


# # # #
ak 1 x1 + ak 2 x2 + ... + akn xn ≤ bk
ak +1,1 x1 + ak +1,2 x2 + ... + ak +1,n xn ≥ bk +1
# # # # (2.2)
aA1 x1 + aA 2 x2 + ... + aAn xn ≥ bA
aA +1,1 x1 + aA +1,2 x2 + ... + aA +1,n xn = bA +1
# # # #
am1 x1 + am 2 x2 + ... + amn xn = bm

tout en minimisant ou maximisant une fonction économique linéaire :


n
Z = ∑ c j x j = c1 x1 + c2 x2 + ... + cn xn . (2.3)
j =1

Tous les paramètres ( aij , bi , c j ) sont des constantes connues.

En utilisant les variables d’écarts, les contraintes du problème peuvent être


représentées par un système de m équations linéaires en p = n + A variables :

⎧n
⎪∑j =1
aij x j + xn +i = bi , i = 1,..., k

⎪n
⎪∑ aij x j + xn +i = bi , i = k + 1,..., l
⎨ j =1 (2.4)
⎪n
⎪∑ aij x j + xn +i = bi , i = A + 1,..., m
⎪ j =1
⎪ x ≥ 0, j = 1,..., n + A
⎩ j

Ce système d’équations linéaires s’écrit, sous forme matricielle :


AX = x1a1 + x2 a2 + ... + xn +l an +l = B

où A = ( aij ) , B = ( bi ) et X = ( x j ) et où les a j sont les vecteurs colonnes de A.

Tout ensemble de m vecteurs a j linéairement indépendants constitue une


base. Les m variables associées aux colonnes d’une base sont des variables de base.
Les ( p − m) autres variables sont des variables hors-base.
Lorsqu’on annule les ( p − m) variables hors-base, on obtient un système de m
équations linéaires en m variables. Ce système possède une solution unique. On
appelle solution de base l’ensemble des valeurs ainsi obtenues pour toutes les
variables (incluant les variables hors-base nulles). Lorsqu’une solution de base
satisfait les restrictions de non-négativité, on dit qu’elle est une solution réalisable
de base.
Une solution optimale de base est une solution réalisable de base qui rend
p
optimale la fonction économique Z = ∑ c j x j = c1 x1 + c2 x2 + ... + cn xn + 0 xn + 1 + ... + 0 xn +l .
j =1

Notes de cours 8 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

Si on observe, en plus, que Max Z = − Min(− Z ) on se rend compte que tout


programme linéaire peut s’écrire :
⎧ Min Z = C T X

⎪ Sujet à :
⎨ .
⎪ AX = B
⎪⎩ X ≥ 0

2.2.2 Algorithme du Simplexe


Revenons à l’exemple (2.1) et essayons d’énoncer les étapes de l’algorithme
du simplexe.
1ère étape : (Solution de départ)
Écrire le programme sous la forme standard, choisir un ensemble initial de
variables de base (une solution de départ réalisable), exprimer la fonction
économique en fonction des variables hors-base et écrire le système sous forme
d’un tableau.
Sous la forme standard l’exemple s’écrit :
⎧ Max Z = 8 x1 + 6 x2 = − {Min (− Z ) = −8 x1 − 6 x2 }

⎪ sujet à :
⎪⎪5 x + 3 x + x = 3000

1 2 3

⎪2 x1 + 3 x2 + x4 = 2400
⎪ x + 3x + x5 = 1800
⎪ 1 2

⎪⎩ x1 , x2 , x3 , x4 , x5 ≥ 0
Une solution réalisable de base est obtenue en annulant les variables hors
base et en résolvant le système ainsi déterminé pour avoir la valeur des variables
de base. La base est une m × m matrice inversible fabriquée en extrayant m
colonnes linéairement indépendantes de la matrice A. En choisissant
x3 , x4 et x5 comme variables de base initiales, on obtient une solution réalisable de
base de départ immédiatement, soit :
x1 = x2 = 0, x3 = 3000 ; x4 = 2400 ; x5 = 1800 .
On peut dresser le tableau suivant :

Variables x1 x2 x3 x4 x5 b
de base
x3 5 3 1 0 0 3000 ⎫
⎪ doit être non négatif

x4 2 3 0 1 0 2400 ⎬

x5 1 3 0 0 1 1800 ⎪⎭

Z -8 -6 0 0 0 0

Base initiale
(1 par colonne, 0 ailleurs)

Notes de cours 9 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

La dernière rangée contient la fonction économique exprimée de la façon


suivante : Z − 8 x1 − 6 x2 = 0 .
On doit toujours écrire le problème de sorte que le coté droit du tableau soit
non négatif. Autrement, la solution de base obtenue n’est pas réalisable.
2ème étape : (choix de la variable rentrante)
S’il y a des variables hors-base avec un coefficient négatif dans la dernière
rangée, choisir celle qui a le plus petit coefficient comme nouvelle variable de
base. On l’appelle variable rentrante.
Si toutes les variables hors-base ont un coefficient positif ou nul dans la
dernière rangée, on a une solution optimale.
Les nouveaux coefficients obtenus à chaque itération dans la dernière rangée
correspondant à la fonction économique sont appelés coûts réduits. On les note
par c j , j = 1,..., p .

Cette étape consiste donc à trouver : cr = min(c j ) et à choisir la nouvelle


j

variable de base, ( xr ) (variable rentrante), qui a le meilleur potentiel de gain,


puisque le plus petit coefficient est celui qui minimise la fonction économique le
plus rapidement.
3ème étape : (recherche de limitation)
Déterminer la valeur maximale que peut prendre la variable rentrante dans
la base et qui vérifie toutes les contraintes. Pour cela calculer une limitation pour
cette variable rentrante. Ceci correspond au rapport entre le coté droit et les
coefficients positifs de la variable rentrante.
Soit le tableau suivant :
xr xk b

. a1∗r 0 b1∗
.
.
# # #
xk . . . air∗ . . . 1 . . . bi∗

. # # #
.

. amr 0 bm∗

Z c1∗ " cr∗ " c∗j " 0 " c∗p

(*) désigne une itération quelconque.

Notes de cours 10 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

En faisant entrer ( xr ) dans la base, on obtient :

xk = bi∗ − air∗ xr , i = 1,..., m .


Où k est l’indice de la variable de base dans la rangée i. par conséquent si on
fait sortir une variable de la base, disons ( xk ) , elle devient nulle et on a :
0 = bi∗ − air∗ xr .

bi∗
D’où xr = .
air∗
Pour obtenir une solution réalisable au prochain tableau, il faut sortir de la
base variable qui donne la plus petite valeur de ( xr ) , c'est-à-dire la première
variable qui prend une valeur non réalisable lorsqu’on augmente ( xr ) .

⎛ b∗ ⎞ b∗
Cette étape consiste donc à chercher : xr = min ⎜ i∗ air∗ > 0 ⎟ = ∗s
i , i =1,..., m a
⎝ ir ⎠ asr
Où s est l’indice de la rangée avec le plus petit rapport. La variable de base
dans la rangée s tu tableau est appelée variable sortante de la base.
Le coefficient, à l’intersection de la colonne de la variable rentrante et la
ligne de la variable sortante s’appelle pivot.
Appliquons ceci à notre exemple :
x1 x2 x3 x4 x5 b Limitation

x3 3000
5 3 1 0 0 3000 = 600 t
5
x4 2400
2 3 0 1 0 2400 = 1200
2
x5 1800
1 3 0 0 1 1800 = 1800
1
Z -8 -6 0 0 0 0

Ce tableau indique que x3 doit sortir de la base et que x1 doit y rentrer.


4ème étape : (transformation du tableau)
Changer de base, résoudre pour trouver la valeur des nouvelles variables de
base et exprimer la fonction économique en termes des variables hors-base.
Retourner à la deuxième étape.
Ceci consiste à transformer le tableau de la façon suivante :
- Diviser la rangée de la variable sortante par le pivot.
- Calculer les autres coefficients, en utilisant la méthode du rectangle, par
la formule suivante :

Notes de cours 11 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

aAr
aA' k = aAk − ask
asr

r k

aAr aAk `

asr ask s

On doit former un rectangle ayant le pivot comme sommet, et l’élément à


modifier comme sommet opposé.
On peut alléger les calculs en sachant que :
- Tous les coefficients de la colonne de la variable rentrante deviennent
nulles à part le pivot devient égal à 1.
- Les colonnes des variables de base correspondent aux colonnes de la
matrice unité.
Après transformation, le tableau devient :

x1 x2 x3 x4 x5 b Limitation

x1 1 3/5 1/5 0 0 600 2000

x4 0 9/5 0 1 0 1200 666,66

x5 0 12/5 -1/5 0 1 1200 500 t


Z 0 -6/5 8/5 0 0 4800

u
6 8
La rangée des coûts réduits (dernière rangée) indique que Z − x2 + x3 = 4800 .
5 5
Puisque x2 et x3 sont les variables hors-base, elles sont égales à zéro et on
obtient Z = 4800 . Continuons la résolution de même, on obtient le tableau suivant :

Notes de cours 12 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

x1 x2 x3 x4 x5 b

x1 1 0 1/5 0 -1/4 300 ⎫




x4 0 0 0 1 -3/4 300 ⎬ Solution optimale

x2 ⎪⎭
0 1 -1/5 0 5/12 500

Z 0 0 3/2 0 1/2 5400

Tous les coûts réduits sont positifs ou nuls, on termine. La solution optimale
obtenue est :
x1 = 300
x2 = 500
x3 = x5 = 0
x4 = 300
Z max = 5400

2.2.3 Résumé de l’algorithme


1. Écrire le programme sous la forme standard, choisir un ensemble
initial de variables de base (une solution de départ réalisable), annuler
les variables hors-base, exprimer la fonction économique en fonction
des variables hors-base et écrire le système sous forme d’un tableau.
2. Trouver cr = min(c j ) et choisir la nouvelle variable de base,
j

( xr ) (variable rentrante), qui a le meilleur potentiel de gain, puisque le


plus petit coefficient est celui qui minimise la fonction économique le
plus rapidement.
⎛ bi∗ ∗ ⎞ bs∗
3. Calculer la limitation de ( xr ) : xr = min ⎜ ∗ air > 0 ⎟ = ∗ . Déduire la
i , i =1,..., m a
⎝ ir ⎠ asr
variable sortante de la base (variable dans la rangée s) et déterminer le
pivot (élément à l’intersection de la colonne de la variable rentrante et
la ligne de la variable sortante).
4. Transformer le tableau de la façon suivante :
- Diviser la rangée de la variable sortante par le pivot.
- Calculer les autres coefficients, en utilisant la méthode du
a
rectangle, par la formule suivante : aA' k = aAk − ask Ar .
asr
Tous les coefficients de la colonne de la variable rentrante deviennent
nulles à part le pivot devient égal à 1.
Les colonnes des variables de base correspondent aux colonnes de la
matrice unité.

Notes de cours 13 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

Application :
Un industriel possède, dans l’un de ses ateliers de production, trois machines
M1, M2 et M3 qui sont partiellement inutilisées :
- M1 est libre 18 heures par semaine.
- M2 est libre 8 heures par semaine.
- M3 est libre 14 heures par semaine.
Pour mieux rentabiliser ces machines on envisage de fabriquer deux produits
P1 et P2 dont l’écoulement sur le marché ne poserait pas de problème.
- Chaque unité de P1 rapporterait 2 dinars et consommerait : 1 heure de M1,
1 heure de M2 et 2 heures de M3.
- Chaque unité de P2 rapporterait 3 dinar et consommerait : 3 heures de M1,
1 heure de M2 et 1 heure de M3.

( *** )
Le (PL) permettant de maximiser ses bénéfices est :
⎧ Max Z = 2 x1 + 3 x2
⎪ sujet à :

⎪⎪ x1 + 3 x2 ≤ 18
⎨ .
⎪ x1 + x2 ≤ 8
⎪2 x1 + x2 ≤ 14

⎪⎩ x1 , x2 ≥ 0
La résolution par la méthode du simplexe nous conduit au tableau final
suivant :
x1 x2 x3 x4 x5 b

x1 0 1 1/2 -1/2 0 5 ⎫


x4 1 0 -1/2 3/2 0 3 ⎬ Solution optimale

x2 ⎪⎭
0 0 1/2 -5/2 1 3

Z 0 0 1/2 3/2 0 21

2.3 Résolution d’un programme linéaire général


Dans l’exemple précédent, toutes les contraintes sont de type ‘’≤’’, ceci
simplifie le problème puisqu’en l’écrivant sous la forme standard, on obtient une
solution réalisable de base de départ.
Toutefois, si le problème contient des contraintes de type ‘’≥’’ ou de type ‘’=’’,
on n’obtient pas une solution réalisable de départ en écrivant le système sous
forme standard.

Notes de cours 14 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

Soit à résoudre le programme linéaire général suivant :


n
Z = ∑ c j x j = c1 x1 + c2 x2 + ... + cn xn à optimiser (max ou min).
j =1

sujet à :
⎧a11 x1 + a12 x2 + ... + a1n xn ≤ b1
⎪a x + a x + ... + a x ≥ b
⎪ 21 1 22 2 2n n 2

⎪a31 x1 + a32 x2 + ... + a3n xn = b3
⎪ x j ≥ 0, j = 1,..., n

La forme standard est :
Z = c1 x1 + c2 x2 + ... + cn xn + 0 xn +1 + 0 xn + 2 à optimiser (max ou min).

⎧a11 x1 + a12 x2 + ... + a1n xn + xn +1 = b1


⎪a x + a x + ... + a x − x = b
⎪ 21 1 22 2 2n n n+2 2

a x +
⎪ 31 1 32 2a x + ... + a x
3n n + 0 = b3
⎪ x j ≥ 0, j = 1,..., n + 2

Pour résoudre le problème par la méthode du simplexe, il faut chercher une
solution réalisable de base de départ. Soient xn +1 et xn + 2 les variables de base
choisies. En annulant les variables hors-base, le système devient :
⎧ xn +1 = b1

⎨− xn + 2 = b2 ?
⎪ 0 =b ?
⎩ 3

Cette solution de départ ne convient, elle n’est pas réalisable.


Pour déterminer une solution de départ réalisable on utilise des variables
artificielles ( yi ) dans les relations de type ‘’≥’’ et les relations de type ‘’=’’.
Le système devient :
⎧a11 x1 + a12 x2 + ... + a1n xn + xn +1 = b1

⎨a21 x1 + a22 x2 + ... + a2 n xn − xn + 2 + y1 = b2 .
⎪a x + a x + ... + a x + 0 + y = b
⎩ 31 1 32 2 3n n 2 3

Nous choisissons xn +1 , y1 et y2 l’ensemble des variables de base. En annulant


les variables hors base ( x1 = x2 = " = xn = xn + 2 = 0 ), nous obtenons comme solution
réalisable de base de départ :
⎧ xn +1 = b1

⎨ y1 = b2
⎪ y =b
⎩ 2 3

Toutefois, pour que la solution obtenue soit valide, tous les yi doivent être
égal à zéro dans le tableau final (doivent être hors base). Pour s’assurer que ces

Notes de cours 15 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

variables artificielles ne seront pas dans la solution optimale, on leur associe un


coût fictif (M) arbitrairement grand ( M = +∞ ) lorsqu’il s’agit d’un problème de
minimisation ou un profit fictif arbitrairement petit ( M = −∞ ) lorsqu’il s’agit d’un
problème de maximisation.
L’expression de la fonction économique est donc :
Z = c1 x1 + c2 x2 + ... + cn xn + 0 xn +1 + 0 xn + 2 + My1 + My2
Exemple :
⎧ Min Z = 3 x1 + 2 x2

⎪⎪ sujet à :
⎨ x1 + x2 = 10
⎪x ≥4
⎪ 1
⎩⎪ x1 , x2 ≥ 0
En introduisant les variables artificielles le système devient :
⎧ Min Z = 3 x1 + 2 x2 + My1 + My2

⎪⎪ sujet à :
⎨ x1 + x2 + y1 = 10
⎪x − x + y = 4
⎪ 1 3 2

⎪⎩ x1 , x2 , y1 , y2 ≥ 0

La solution de base de départ est :


⎧ y1 = 10
⎨ .
⎩ y2 = 4
Le tableau initial correspondant est :

x1 x2 x3 y1 y2 b
y1 1 1 0 1 0 10 × (M)
y2 1 0 -1 0 1 4 × (M)
3 2 0 0 0 0
-Z
0 0 0 M M 0 (-) (-)

Dans ce tableau on sépare les coefficients de la fonction économique en deux


lignes, la deuxième ligne comporte les coefficients des variables artificielles.
Les deux dernières lignes du tableau se lisent :
− Z + ( 3 + 0 ) x1 + ( 2 + 0 ) x2 + ( 0 + M ) y1 + ( 0 + M ) y2 = 0 .

Cette expression n’est pas fonction des variables hors-base seulement et, par
conséquent il faut la transformer pour que les coefficients de y1 et y2 soient nuls.
Ceci permet d’éviter que l’une des variables artificielle soit une variable
rentrante dans la base. Le tableau devient :

Notes de cours 16 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

x1 x2 x3 y1 y2 b Limitation
y1 1 1 0 1 0 10 10
y2 1 0 -1 0 1 4 4 t
3 2 0 0 0 0
-Z
-2M -M M 0 0 -14M
u
On peut commencer la résolution. La première itération donne :

x1 x2 x3 y1 y2 b Limitation
y1 0 1 1 1 6 6 t
x1 1 0 -1 0 4 Pas de limitation
0 2 3 0 -12
-Z
0 -M -M 0 -6M
u
Une fois qu’une variable artificielle est sortie de la base, on peut négliger la
colonne correspondante dans le tableau.
La deuxième itération donne :

x1 x2 x3 y1 y2 b
x2 0 1 1 6
x1 1 0 -1 4
0 0 1 -24
-Z
0 0 0 0

On atteint la solution optimale lorsque tous les coûts réduits sont non
négatifs, c'est-à-dire que tous les coefficients de la première ligne de (-Z) sont non
négatifs et que tous les coefficients de sa deuxième ligne sont nuls.
Dans ce cas, la solution optimale obtenue est :
x1 = 4, x2 = 6, x3 = 0
Z min = 24

Exercice :
Résoudre le (PL) suivant :

⎪ Max Z = 3x1 + 4 x2 + x3
⎪ sujet à :

⎪ 8
⎨ x1 + 2 x2 + 2 x3 ≤
⎪ 3
⎪ x + 2 x + 3x ≥ 7
⎪ 1 2 3
3
⎪⎩ x1 , x2 , x3 ≥ 0

Notes de cours 17 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

Correction :
En introduisant les variables artificielles le système devient :

⎪ Max Z = 3 x1 + 4 x2 + x3 + My = − {Min (− Z ) = −3 x1 − 4 x2 − x3 − My}

⎪ sujet à :
⎪⎪ 8
⎨ x1 + 2 x2 + 2 x3 + x4 =
⎪ 3
⎪ 7
⎪ x1 + 2 x2 + 3 x3 − x5 + y = 3

⎪⎩ x1 , x2 , x3 , x4 , y ≥ 0
La solution de base de départ est :

⎪ x1 = x2 = x3 = x5 = 0

⎪ 8
⎨ x4 = .
⎪ 3
⎪ 7
⎪⎩ y = 3

Le tableau initial correspondant est :


x1 x2 x3 x4 x5 y b
x4 1 2 2 1 0 0 8/3
y 1 2 3 0 -1 1 7/3 × (M)
-3 -4 -1 0 0 0 0
Z
0 0 0 0 0 -M 0 (+)
Transformons le tableau pour que le coefficient de y dans la fonction
économique soit nul :
x1 x2 x3 x4 x5 y b Limitation
x4 1 2 2 1 0 0 8/3 4/3
y 1 2 3 0 -1 1 7/3 7/9 t
-3 -4 -1 0 0 0 0
Z
M 2M 3M 0 -M 0 7M/3
u
On peut commencer la résolution. La première itération donne :
x1 x2 x3 x4 x5 y b Limitation
x4 1/3 2/3 0 1 2/3 10/9 10/9
x3 1/3 2/3 1 0 -1/3 7/9 7/9 t
-8/3 -10/3 0 3 -1/3 7/9
Z
0 0 0 0 0 0
u

Notes de cours 18 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

La deuxième itération donne :


x1 x2 x3 x4 x5 y b Limitation
x4 0 0 -1 1 1 1/3 1/3 t
x2 1/2 1 3/2 0 -1/2 7/6 Pas de limitation
-1 0 5 0 -2 14/3
Z
0 0 0 0 0 0
u
La troisième itération donne :
x1 x2 x3 x4 x5 y b Limitation
x5 0 0 -1 1 1 1/3 Pas de limitation
x2 1/2 1 1 1/2 0 4/3 8/3 t
Z -1 0 3 2 0 16/3
u
La quatrième itération donne :
x1 x2 x3 x4 x5 y b
x5 0 0 -1 1 1 1/3
x1 1 2 2 1 0 8/3
Z 0 2 5 3 0 8

La solution obtenue est optimale :


8 1
x1 = , x2 = x3 = x4 = 0, x5 =
3 3
Z max = 8
2.4 Cas particuliers
La section précédente illustre le déroulement de la méthode du simplexe pour
un programme idéal. Toutefois, en pratique, plusieurs difficultés supplémentaires
peuvent être rencontrées.

2.4.1 Cas de solution non réalisable


Lorsque la méthode du simplexe est utilisée, si une des variables artificielles
se trouve parmi les variables de base dans le tableau final, on conclut que le
modèle n’a pas de solution réalisable.
Exemple :
⎧ Max Z = 3 x1 − 2 x2

⎪⎪ sujet à :
⎨6 x1 + 6 x2 ≤ 6
⎪ x + x ≥2
⎪ 1 2

⎩⎪ x1 , x2 ≥ 0

Notes de cours 19 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

Le tableau final obtenu est :


x1 x2 x3 x4 y b

x4 1 1 1 0 0 1

y 0 0 -2 -1 1 2

Z 0 5 3 0 0 3
0 0 2M M 0 -2M

Étant donné que y est dans la base, on conclut qu’il n’y a pas de solution
réalisable.

2.4.2 Cas de solution sans borne


Si à la troisième étape d’une itération quelconque de la méthode du simplexe,
il n’y a pas de coefficients positifs dans la colonne de la variable qui doit rentrer
dans la base, cela implique que la solution obtenue est sans borne.
Exemple :
⎧ Max Z = 2 x1 + 2 x2

⎪⎪ sujet à :
⎨− x1 + x2 ≤ 1
⎪− x + 2 x ≤ 4
⎪ 1 2

⎪⎩ x1 , x2 ≥ 0

À la troisième itération de l’algorithme, on obtient le tableau suivant :


x1 x2 x3 x4 b Limitation
x2 0 1 -1 2 3 Pas de limitation
x1 1 0 -2 2 2 Pas de limitation
Z 0 0 -6 8 10
u
Puisque tous les coefficients de x3 sont négatifs, on se trouve en présence
d’une solution optimale sans borne.
2.4.3 Cas de solution multiple
Soit l’exemple suivant :
⎧ Max Z = 2 x1 − x2
⎪ sujet à :

⎪− x1 + x2 ≤ 1

⎪− x1 + 2 x2 ≤ 4
⎪ x1 ≤6

⎩ x1 , x2 ≥ 0

Notes de cours 20 Imed KHEMILI / 2007


Recherche Opérationnelle Résolution d’un programme linéaire

En utilisant la méthode du simplexe, on obtient le tableau final suivant :

x1 x2 x3 x4 x5 b
x2 0 1 -1 2 0 3 ⎫

x1 1 0 -2 2 0 2 ⎬ Solution optimale

x5 0 0 2 -2 1 4 ⎭
Z 0 0 0 2 0 4

Comme Z ne peut plus être augmentée, x1 = 2, x2 = 3, x5 = 4, x3 = x4 = 0 est une


solution optimale. Toutefois, on note qu’un des coûts réduits associés aux
variables hors-base a une valeur nulle (celui associé à x3). Ceci implique que
même si on introduit x3 dans la base, Z ne change pas et par conséquent la
solution de base correspondante est aussi une solution optimale.
2.4.4 Dégénérescence
Une solution de base d’un programme linéaire est dite dégénérée si une ou
plusieurs des variables de base égalent zéro.
2.4.5 Variables libres
Si une ou plusieurs variables de décision dans un programme linéaire ne sont
pas restreintes à être non négatives, le problème peut être ramené à la forme
standard grâce à l’une des deux techniques suivantes :
1. Si la variable x1 est sans contraintes de signes, on définit deux
nouvelles variables ( x1+ , x1− ) positives ou nulles, telles que
x1+ = max( x1 , 0) et x1− = max(− x1 , 0) et on écrit x1 = x1+ − x1− .
2. la seconde technique consiste à éliminer x1 du programme en
l’exprimant comme combinaison linéaire des autres variables grâce à
une des contraintes du problème. Si une des équations contenant x1 a
b − a x − ... − ain xn
la forme : ai1 x1 + ai 2 x2 + ... + ain xn = bi alors : x1 = i i 2 2 .
ai1
En remplaçant tous les x1 du programme par cette expression, on obtient un
problème résoluble par la méthode du simplexe.

Notes de cours 21 Imed KHEMILI / 2007