Cours de Programmation Linéaire
Cours de Programmation Linéaire
Cours de Programmation Linéaire
Auteur
Prof. Safae El Haj Benali
[email protected]
modélisation s'est renforcée encore après avoir construit des algorithmes et des logiciels capables de
résoudre de plus larges problèmes avec autant de variables de décision que de contraintes.
La tâche de formulation demande généralement une certaine expertise et connaissance du pro-
blème pour pouvoir relever facilement les diérentes composantes du problème et ainsi donner un
programme qui modélise au mieux la situation réelle. Dans ce qui suit, on présentera quelques
exemples de formulation de diérents problèmes de décision :
modèle A modèle B
bombes 3 15
missiles 5 10
dégâts 5 11
On dispose au total de 225 bombes et 160 missiles. La question est la suivante : combien d'avions
de chaque modèle doit-on produire pour maximiser les dégâts inigés à l'ennemi ?
On appelle x A et xB les quantités d'avions à produire, respectivement du modèle A et du
modèle B. Les dégâts totaux peuvent s'écrire comme 5 x A + 11 xB , et l'on cherche donc à maximiser
f ( x A , xB ) = 5 x A + 11 xB . La première contrainte est évidemment l'ensemble des 20 avions que l'on
peut produire. Ainsi x A + xB ≤ 20. De même, nous disposons de contraintes sur le nombre total
de bombes et de missiles ce qui conduit à deux contraintes supplémentaires : 3 x A + 15 xB ≤ 225 et
5 x A + 10 xB ≤ 160. Enn, il faut rajouter des contraintes logiques : les quantités d'avions à produire
ne peuvent être que positives et donc x A et xB sont positifs.
à ! 1 1 20
5
Matriciellement, nous aurions c = , A = 3 15
et b = 225 .
11
5 10 160
1. EXEMPLES ET APPLICATIONS DE LA RECHERCHE OPÉRATIONNELLE 5
Ax ≤b (1.1)
x ∈N
1.2 : est le prot total qui est à optimiser appelé fonction objective.
1.3 et 1.4 sont des contraintes. 1.3 est la disponibilité du four et 1.4 est la disponibilité du broyeur.
1.5 est le domaine des variables.
5 x1 + 8 x2 ≥ 74 (1.6)
x1 + 6 x2 ≥ 24
x1 ∈ N, x2 ∈ N
P1 P2 disponibilité
équipement 3 9 81
main d'oeuvre 4 5 55
matière première 2 1 20
2 Formalisation
Tous les problèmes mentionnés ci-dessus et présentés dans ce cours peuvent se formaliser de la
façon suivante. On cherche à maximiser une fonction f sur un ensemble K donné :
max{ f ( x), x ∈ K }.
1 Introduction
La programmation linéaire est une technique mathématique permettant de déterminer la meilleure
solution d'un problème dont les données et les inconnues satisfont à une série d'équations et d'in-
equations linéaires. La programmation linéaire a été formulée par Dantzig en 1947 et connaît un
développement rapide par suite de son application directe à la gestion scientique des entreprises.
Le facteur expliquant l'essor de la P.L est la construction d'ordinateurs puissants qui ont permis de
traiter les problèmes concrets de taille très grande. On l'applique surtout en gestion et en écono-
mie appliquée. On peut citer les domaines d'application de la programmation linéaire qui sont : les
transports, les banques, les industries lourdes et légères, l'agriculture, les chaînes commerciales, la
sidérurgie, et même le domaine des applications militaires. Les méthodes de résolution sont la mé-
thode du simplexe, méthode duale du simplexe, méthodes des potentiels, méthode lexicographique
et des méthodes récentes appelées méthodes des points intérieurs.
Un programme linéaire se dénit par ses composantes, une fonction, dite économique ou ob-
jective, à maximiser ou à minimiser, les contraintes de problème qui s'expriment par égalités ou
inégalités, et les contraintes de non négativité c'est-à-dire les variables ne peuvent être que positives
ou nulles (presque toujours ces variables prennent le sens de quantités).
La résolution d'un problème de la programmation linéaire ne pose incontestablement aucune
diculté car il y a des méthodes pratiques pour le résoudre, plus cela on peut utiliser des logiciels
très ecaces pour la résolution. Mais le problème capital est celui de formuler un problème, si
possible ; comme un programme linéaire La problématique que nous tentons de poser est : Est-
ce que peut recourir à une classication méthodique pour rendre la modélisation sous forme du
programme linéaire très aisée ?
8
2. FORMES GÉNÉRALES D'UN PROGRAMME LINÉAIRE 9
X n
max f ( x1 , ..., xn ) = c 1 x1 + c 2 x2 + c 3 x3 + .... + c n xn = c jxj
(x1 ,...,xn ) j = 1
n
contraintes d'inégalités :
X
∀ i ∈ I , a i j x j = a i1 x1 + a i2 x2 + .... + a in xn ≤ b i
1
(2.1)
j =1
n
contraintes d'égalités : ∀ i ∈ I 2 , a i j x j = b i
X
j =1
contraintes de signes :
∀ j ∈ J1 , x j ≥ 0
∀ j ∈ J2 , x j de signe quelconque.
L'ensemble I = I 1 ∪ I 2 est l'ensemble des indices de contraintes avec card ( I ) = m. Autrement dit, il
y a m contraintes. L'ensemble J = J1 ∪ J2 est l'ensemble des indices des variables avec card ( J ) = n.
Il y a n variables.
x = ( x1 , ..., xn ) t ∈ Rn
c = ( c 1 , ..., c n ) t ∈ Rn
b = ( b 1 , ..., b m ) t ∈ Rn
et la matrice A de taille m × n :
a 11 a 12 ··· a 1n
.. ..
. .
A=
a m1 a m2 · · · a mn
Un programme linéaire (PL) est dit sous forme canonique pure s'il s'écrit :
On dit de plus que le PL est sous forme standard simpliciale si A de taille m × n avec m ≤ n,
se décompose en :
A = ( I m |H )
3 Résolution graphique
Dans le cas d'un (PL) à deux variables, on peut envisager une résolution graphique. Les contraintes
où apparaissent des inégalités correspondent géométriquement à des demi-plans. L'intersection de
ces demi-plans forme l'ensemble des variables satisfaisant à toutes les contraintes.
Dans cette section, nous allons étudier deux types de problèmes :
2 p
6 x1 + 9 x2 = p ⇐⇒ x2 = − x1 +
3 9
−2
⇐⇒ droite de pente
3
12 CHAPITRE 2. PROGRAMMATION LINÉAIRE
4 Résolution algébrique
Pour résoudre des problèmes de programmation linéaire ayant un nombre de variables (princi-
pales) supérieur à trois, nous devons obligatoirement faire appel à une autre méthode de résolution
que celle déjà étudiée. Toutefois, avant d'aborder la méthode du simplexe comme technique de
résolution d'un problème de programmation linéaire, nous allons découvrir une version modiée "la
méthode algébrique" qui permettra d'étudier les diérentes étapes à franchir pour arriver à une
solution optimale.
Proposition 2.1 Tout PL sous forme standard s'écrit de façon équivalente en un PL sous forme
canonique pure et inversement.
Démonstration
4. RÉSOLUTION ALGÉBRIQUE 13
où e = b − X a
n
i i ijxj ≥0
j =1
Ainsi,
à !
x
( A|I m) = b,
(
(
Ax ≤ b, e à x̃ = b,
⇐⇒ Ã ! ⇐⇒
x ≥ 0. x x̃ ≥ 0.
≥ 0.
e
Dénition 2.1 On appelle solution réalisable tout vecteur x qui satisfait les contraintes du PL
i.e. tel que Ax = b et x ≥ 0.
Remarque 2.1 Pour la forme canonique pure avec Ax ≤ b, l'hypothèse de rang plein n'est pas
non plus restrictive car si rang( A) < m, il y a des contraintes d'inégalités redondantes qu'on peut
supprimer pour obtenir un système de rang plein.
14 CHAPITRE 2. PROGRAMMATION LINÉAIRE
Dénition 2.2
Soit B ⊆ {1, ..., n} un ensemble d'indices avec card(B) = m tel que les colonnes A , j ∈ B, de A
sont linéairement indépendantes. Autrement dit, la matrice carrée A formée des colonnes A ,
j
j ∈ B, est inversible. On dit que l'ensemble B des indices est une base.
B j
Remarque 2.2
Sous l'hypothèse de rang plein, il existe toujours une base non vide.
Quitte à renuméroter les indices, on peut toujours écrire les décompositions par blocs :
A = ( A | A ) où A est la matrice formée des colonnes A , j 6∈ B
B H H j
x = ( xB | x H ) t
Par la relation précédente et du fait que la matrice A B est inversible, on peut xer les variables
hors-base et les variables de base sont alors complètement déterminées.
x H = 0.
On a
, et rang( A) = m = 3.
m=3 n=5
Nous sommes alors en présence d'un système de plus d'inconnues que d'équations.
4. RÉSOLUTION ALGÉBRIQUE 15
Rappelons qu'il est possible de résoudre un système d'équations ayant plus d'inconnues que
d'équations (m ≤ n) en xant arbitrairement (par une valeur ou un paramètre) les valeurs de n − m
variables.
û Programme initial :
Pour déterminer le programme initial, on pose habituellement à zéro les variables principales du
modèle, ceci correspond à ne fabriquer aucun produit :
x = 0 et x = 0.
1 2
xH
l'augmentation sera la plus élevée si nous introduisons la variable x dans le programme, Donc :
x est une variable entrante de base
1
Il nous reste maintenant deux choses à déterminer. D'une part, calculer la quantité du P que
1
l'on doit fabriquer et d'autre part, quelle variable actuellement dans le programme doit devenir
1
Ce minimum s'obtient dans l'équation 2.6, ce qui se traduit par e =0 et donc c'est la variable
e qui sort du programme :
3
2 0 0
base réalisable correspondante est t
, la valeur de
x = ( x1 , x2 , e 1 , e 2 , e 3 ) = (|{z} 0 )t
0 , 51, 15, |{z}
10 , |{z}
timal? Toutefois, avant de tester si le programme est optimal, il faut d'abord transformer les
contraintes de mon problème pour exprimer les variables de base en fonction des variables hors-
base :
• les variables de base sont : x , e , e .
• les variables hors-base sont
: x ,e .
1 1 2
2 3
1 1 15 3
e 1 = 81 − 3 x1 − 9 x2
e 1 = 81 − 3(10 − 2 x2 − 2 e 3 ) − 9 x2
e 1 = 51 − 2 x2 + 2 e 3
1 1
e 2 = 55 − 4 x1 − 5 x2 =⇒ e 2 = 55 − 4(10 − 2 x2 − 2 e 3 ) − 5 x2 =⇒ e 2 = 15 − 3 x2 − 2 e 3
1 1
x1 = 10 − 12 x2 − 21 e 3
e 3 = 20 − 2 x1 − x2 x1 = 10 − 2 x2 − 2 e 3
(2.7)
Il nous reste à exprimer la valeur de la fonction économique, en fonction des variables hors-base
x et e à l'aide de la substitution :
2 3
f ob j = 6 x1 + 4 x2 = 60 + x2 − 3 e 3 .
Cette dernière expression nous indique qu'on peut améliorer encore la valeur de la fonction
économique puisque le coecient de la variable x est positif.
2
4. RÉSOLUTION ALGÉBRIQUE 17
qui se réalise dans l'équation e = 15 − 3x + 2e et qui impose que e devienne nulle, ainsi : e
15 2 2
Exprimons à nouveau les variables dans le programme en fonction des variables hors-base.
2 3
15 1 1
x1 = 2 + 6 e 2 − 3 e 3
e 1 = 27 5 7
2 + 2 e2 − 2 e3
x2 = 5 − 31 e 2 + 32 e 3
15 1 1 1 2
µ ¶ µ ¶
f ob j = 6× + e2 − e3 + 4 × 5 − e2 + e3 ,
2 6 3 3 3
1 7
= 65 − e 2 − e 3 .
3 3
Remarque 2.3 Un programme de base est optimal si tous les coecients des variables hors-
base, dans l'expression de la fonction économique, sont ≤ 0.
On constate qu'elle correspond bien à la solution optimale obtenue lors de la résolution graphique.
Dénition 2.4 Un ensemble E est dit convexe si ∀x, y ∈ E, λx+(1−λ) y ∈ E pour tout 0 ≤ λ ≤ 1.
Dénition 2.5 Un polyèdre P ⊆ Rn est l'ensemble de solutions d'un système ni d'inégalités
linéaires, i.e.,
P = { x ∈ Rn | Ax ≤ b}
Remarque 2.5 L'ensemble D des solutions réalisables est un polyèdre convexe, fermé.
R
Dénition 2.6 Un modèle mathématique est dit non borné si son domaine réalisable est non
borné, ç-à-d si au moins l'une de ses variables peut tendre vers l'inni sans quitter le domaine
réalisable.
Dénition 2.7 Un point x ∈ D est un sommet (ou point extrême ) si et seulement s'il n'existe
pas y, z ∈ D , y 6= z tels que x = λ y + (1 − λ) z avec 0 < λ < 1.
R
R
Théorème 2.1 x est une solution de base réalisable si et seulement si x est un sommet de D . R
Proposition 2.2 Si le domaine réalisable D n'est pas vide, alors ce polytope comprend au moins
un point extrême.
R
Théorème 2.2 L'optimum de la fonction objectif f sur D , s'il existe, est atteint en au moins
un sommet de D .
R
R
Remarque 2.6 Il y a au plus C solutions de base réalisables. Pour déterminer une solution de
m
base, on doit résoudre un système linéaire (x = A b). La résolution d'un système linéaire par
n
−1
B B
20 CHAPITRE 2. PROGRAMMATION LINÉAIRE
une méthode directe de type Gauss/LU requière de l'ordre de m opérations. Si on explore toutes
3
les solutions de base et que l'on compare les coûts correspondants, on eectue de l'ordre de m C
3 m
opérations. Ce nombre est vite très grand avec n et m. Par exemple, avec n = 20 et m = 10, on
n
s.t. Ax ≤ b, où s.t. Ax ≤ b,
x ≥ 0. x ≥ 0.
21
22 CHAPITRE 3. MÉTHODE DU SIMPLEXE
avec A B une matrice carrée de taille m × m, inversible, correspondant aux variables de base et A H
une matrice de taille m × (n − m), correspondant aux variables hors-base. On décompose également
(à la même permutation près des composantes)
x̄ = ( x̄B | x̄H ) t .
Le but est de trouver une autre base B∗ et une solution de base x∗ associée telles que
f ( x∗ ) > f ( x̄) ( x∗ est meilleur que x̄).
La méthode du simplexe consiste à faire rentrer une variable hors-base dans la nouvelle base (variable
entrante) et faire sortir à la place une variable de base (variable sortante).
f ( x) = c t x = c B
t
xB + c tH xH avec c = ( cB | c H )t
t 1 t
= cB A−
B ( b − A H xH ) + c H xH
t 1 t t −1
= cB A−
B b + ( c H − c B A B A H ) xH
Le vecteur
L tH = c tH − c B
t
A−1
B AH,
Remarque 3.1 Si on traite d'un problème de minimisation c'est-à-dire avec min f (x), alors la
variable entrante x est déterminée par l'indice
e
© ª
e = ar gmin j (L H ) j , (L H ) j < 0
1. PRINCIPE DE L'ALGORITHME DU SIMPLEXE 23
b) Variable sortante
Une fois l'indice e choisi, il faut déterminer quelle variable doit quitter la base. En maintenant
la relation Ax = b, on augmente xe jusqu'à annuler une des variables de base. Cette variable sera
alors la variable sortante.
où
1 m
z = A−
B Ae ∈ R .
1. Calcul des variables de base réalisables : étant donné A = ( A | A ), on calcule les va-
riables de base réalisables x = A b ≥ 0.
B H
−1
4. On obtient une nouvelle base B et une nouvelle matrice A dans laquelle la colonne A
i
∗
Nous allons maintenant systématiser cet algorithme en présentant la méthode du simplexe sous
la forme d'un tableau.
24 CHAPITRE 3. MÉTHODE DU SIMPLEXE
2 Représentation tabulaire du simplexe
An de simplier la présentation des diérentes itérations de la méthode du simplexe, nous
systématisons cette procédure sous forme de tableaux sur deux types de problèmes : de maximisation
et de minimisation.
Sans perte de généralité, nous pouvons supposer que les variables x1 , ..., xm sont les variables de
base. Le problème 3.2 peut donc être représenté par le tableau suivant, dit tableau du simplexe :
Remarque 3.2 Cette présentation sous forme d'un tableau de nombres est appelé matrice du
problème de programmation linéaire. Toutes les propriétés que vous connaissez sur les calculs à
propos des matrices peuvent être alors utilisées.
Pour augmenter le plus rapidement possible la valeur de la fonction économique, il faut donner
une valeur positive à x1 puisque c'est qui a le plus grand coecient positif sur la dernière ligne
du tableau. Quelle est la plus grande valeur que l'on peut attribuer à x1 ?
Pour la déterminer, on prend les rapports des éléments de la colonne de b sur les éléments de la
colonne des x1 . On trouve alors :
Variables de base x1 x2 e 1 e 2 e 3 z b R
81
e1 3 9 1 0 0 0 81 3 = 27
55
e2 4 5 0 1 0 0 55 4
20
e3 2 1 0 0 1 0 20 2 = 10 ←
z 6 4 0 0 0 −1 0
↑
Le plus petit de ces rapports est 10 et c'est la plus grande valeur qu'on peut attribuer à x1 . Nous
utiliserons donc l'élément de la troisième ligne première colonne ; encadrons-le pour le mettre en
26 CHAPITRE 3. MÉTHODE DU SIMPLEXE
évidence. Nous l'appellerons pivot de la 1ère étape.
Variables de base x1 x2 e 1 e 2 e 3 z b R
81
e1 3 9 1 0 0 0 81 3 = 27
55
e2 4 5 0 1 0 0 55 4
e3 2 1 0 0 1 0 20 20
2 = 10 ←
z 6 4 0 0 0 −1 0
↑
Nous devons maintenant annuler les autres éléments de la première colonne. Pour ce faire, nous
eectuons des opérations sur les lignes. En premier lieu, nous allons rendre le pivot unitaire en
divisant les termes de la troisième ligne par 2 :
Variables de base x1 x2 e 1 e 2 e 3 z b R
e1 3 9 1 0 0 0 81
e2 4 5 0 1 0 0 55
L 3 ← 12 L 3 x1 1 12 0 0 21 0 10
z 6 4 0 0 0 −1 0
Ce tableau représente alors le système d'équations que nous avions obtenu après la deuxième
étape de la résolution algébrique 2.7.
On constate également que la valeur obtenue en bas à droite du tableau correspond à l'opposé
de la valeur numérique obtenue dans la fonction économique :
z = 60 + x2 − 3 e 3 .
On constate que l'on peut encore augmenter la valeur de la fonction économique en introduisant
une valeur pour x2 .
û ÉTAPE No 3 : Matrice du programme de base no 3 :
Nous avons
Variables de base x1 x2 e1 e2 e3 z b R
15
e1 0 2 1 0 − 32 0 51
15
2
e2 0 3 0 1 −2 0 15
3 =5 ←
1 1 10
x1 1 2 0 0 2 0 1 = 20
2
z 0 1 0 0 −3 −1 −60
↑
2. REPRÉSENTATION TABULAIRE DU SIMPLEXE 27
Le plus petit rapport étant sur la deuxième ligne, notre pivot sera l'élément de la deuxième ligne,
deuxième colonne. Rendons-le unitaire en le divisant par 3 :
Variables de base x1 x2 e1 e2 e3 z b R
15 3
e1 0 2 1 0 −2 0 51
1 1 2
L2 ← 3 L2 x2 0 1 0 3 −3 0 5
1 1
x1 1 2 0 0 2 0 10
z 0 1 0 0 −3 −1 −60
Eectuons à nouveau les opérations sur les lignes an d'annuler les autres éléments de la 2ème
colonne :
Variables de base x1 x2 e 1 e 2 e3 z b R
15
L1 ← L1 − 2 L2 e1 0 0 1 − 52 7
2 0 27
2
1
x2 0 1 0 3 − 32 0 5
L 3 ← L 3 − 12 L 2 x1 1 0 0 − 16 5
6 0 15
2
L4 ← L4 − L2 z 0 0 0 − 13 −7
3 −1 −65
Il n'y a plus de coecients positifs sur la dernière ligne du tableau et il n'est donc plus possible
d'augmenter la valeur de la fonction économique.
La solution optimale est donc
¶t
15 27
µ
t
( x1 , x2 , e 1 , e 2 , e 3 ) = , 5, , 0, 0 ,
2 2
z = f ( x1 , x2 , e 1 , e 2 , e 3 ) = − x1 − 2 x2 + 0 e 1 + 0 e 2 + 0 e 3 .
28 CHAPITRE 3. MÉTHODE DU SIMPLEXE
• sous les contraintes :
min z
−3 x1 + 2 x2 + e 1 = 2
−x + 2x + e
1 2 2 = 4
x1 + x2 + e 3 = 5
− x1 − x2 − z = 0
x1 , x2 , e 1 , e 2 , e 3 ≥ 0
Cette base n'est pas optimale puisque les coûts relatifs des variables hors base dans la dernière
ligne ne sont pas positifs ou nuls.
bi
½ ¾
min , a i2 > 0 .
a i2
Le plus petit de ces rapports est 1 et c'est la plus petite valeur qu'on peut attribuer à x2 . Nous
utiliserons donc l'élément de la première ligne deuxième colonne, autrement, la variable e 1 quitte
la base et sera remplacée par la variable x2 , ainsi on obtient la tableau suivant.
Variables de base x1 x2 e 1 e 2 e 3 − z b R
L 1 ← 12 L 1 x2 −3
21 1
2 0 0 0 1
e2 −1 2 0 1 0 0 4
e3 1 1 0 0 1 0 5
−z −1 −2 0 0 0 1 0
La solution de base correspondante n'est pas optimale car c 1 = −4 < 0. la variable x1 va donc
entrer dans la base.
û ÉTAPE No 3 : Matrice du programme de base no 3 :
Variables de base x1 x2 e 1 e 2 e 3 − z b R
−3 1
x2 2 1 2 0 0 0 1
e2 2 0 −1 1 0 0 2 2
2 =1 ←
5
e3 2 0 − 12 0 1 0 4 4 8
5 = 5
2
−z -4 0 1 0 0 1 2
↑
Le plus petit rapport étant sur la deuxième ligne donc e 2 est une variable sortante, notre pivot
sera l'élément de la deuxième ligne, première colonne. Rendons-le unitaire en le divisant par 2 :
Variables de base x1
x2 e 1 e2 e3 −z b R
−3 1
x2 1
2 2 0 0 0 1
1
L2 ← 2 L2 x1 1 0 − 21 1
2 0 0 1
5
e3 2 0 − 21 0 1 0 4
−z −4 0 1 0 0 1 2
Ainsi,
Variables de base x1 x2 e 1 e 2 e3 −z b R
3
L1 ← L1 + 2 L2 x2 0 1 − 14 34 0 0 52
x1 1 0 − 12 12 0 0 1
L 3 ← L 3 − 52 L 2 e3 0 0 3
4 − 54 1 0 32
L 4 ← L 4 + 4L 2 −z 0 0 −1 2 0 1 6
La solution de base obtenue a pour coût z = −6, cependant elle n'est pas optimale car c3 = −1 < 0,
la variable e 1 va donc entrer dans la base.
û ÉTAPE No 4 : Matrice du programme de base no 4 :
Variables de base x1 x2 e 1 e2 e3 −z b R
x2 0 1 − 41 3
4 0 0 52
x1 1 0 − 21 1
2 0 0 1
3
3
e3 0 0 4 − 54 1 0 3
2
2
3 =2 ←
4
−z 0 0 −1 2 0 1 6
↑
qui correspond à un coût minimum de z = −8, comme les coût réduit de toutes les variables sont
positifs ou nuls, cette solution est optimale et l'algorithme du simplexe s'arrête.
2.4 Conclusion
L'algorithme du simplexe consiste à se déplacer d'un point extrême du polytope K = { x : Ax =
b, x ≥ 0} à un autre point extrême adjacent jusqu'à ce qu'on se rende compte que la solution
réalisable actuelle est optimale ou que le problème n'est pas réalisable ou que le problème n'est pas
borné supérieurement (ou inférieurement dans le cas de minimisation).
max 2 x1 + 3 x2
x
s.t. x1 + x2 + e 1 = 10,
(3.3)
−5 x1 − 4 x2 + e 2 = −20
x1 , x2 , e 1 , e 2 ≥ 0.
Démarche à suivre :
On commence par écrire le programme auxiliaire (PA) associé au problème de départ (P) :
1. On s'assure que les membres de droite b i sont tous positifs ou nuls, quitte à multiplier la
contrainte correspondante par -1 si son membre de droite est négatif (sinon on aboutirait à
des solutions de base non réalisables),
2. On introduit une variable d'écart e i pour chaque contrainte i de type ≤, aectée d'un signe
+ dans la contrainte ré-écrite, comme on le faisait jusqu'à présent,
3. On introduit aussi une variable d'écart e i pour chaque contrainte i de type ≥, mais aectée
d'un signe - dans la contrainte ré-écrite : l'écart qu'elle mesure est en eet négatif ou nul,
mais la variable d'écart doit rester positive ou nulle,
4. Le problème ne comporte plus que des contraintes d'égalité, mais seules les variables d'écart
associées aux contraintes initiales de type ≤ forment des colonnes de la matrice identité.
Pour chacune des autres contraintes (c'est-à-dire les contraintes initiales ≥ ré-écrites avec une
variable d'écart aectée d'un signe -, et les contraintes initiales =), on introduit une variable
articielle t i positive ou nulle de la même façon qu'on introduisait les variables d'écart.
5. La fonction objectif de (PA) est alors la somme des variables articielles. On cherche à la
minimiser (en fait à l'annuler).
32 CHAPITRE 3. MÉTHODE DU SIMPLEXE
3.2 Illustration de la méthode sur un exemple
Dans l'exemple ci-dessus, il s'agit d'introduire deux variables d'écart e1 et e2 et une variable
articielle t1 et de considérer le problème de minimisation associé
max 2 x1 + 3 x2 max 2 x1 + 3 x2
x x
Var. d'écart
s.t. x1 + x2 ≤ 10, s.t. x1 + x2 + e 1 = 10,
(P ) : =⇒
5 x1 + 4 x2 ≥ 20
5 x1 + 4 x2 − e 2 = 20
x1 , x2 ≥ 0.
x , x , e , e ≥ 0.
1 2 1 2
min z t = t 1 (20 − 5 x1 − 4 x2 + e 2 )
Var. articiel
s.t. x1 + x2 + e 1 = 10,
=⇒ (P A )
+ new obj
5 x1 + 4 x2 − e 2 + t 1 = 20
x1 , x2 , e 1 , e 2 , t 1 ≥ 0.
I Phase I
Le problème (PA) admet toujours une solution admissible, il sut de prendre le point ( x1 , x2 , e 1 , e 2 , t1 ) =
(0, 0, 10, 0, 20).
Pour que t1 joue le rôle d'une variable de base, il faut faire apparaître un 0 sur la dernière ligne de
la colonne de t1 , pas suite, on transforme le tableau en soustrayant la deuxième ligne de la dernière.
Nous obtenons le tableau suivant :
Variables de base x1 x2 e 1 e 2 t1 − z t b R
10
e1 1 1 1 0 0 0 10 1
t1 5 4 0 −1 1 0 20 20
5 =4 ←
−zt −5 −4 0 1 0 1 −20
↑
Cette solution de base n'étant pas optimale, on poursuit avec la méthode standard du simplexe.
Dans notre cas, on choisit la variable entrante x1 et la variable sortante t1 , on obtient le tableau
suivant
Variables de base x1 x2 e 1 e 2 t1 − z t b R
1 1
e1 0 5 1 5 − 15 0 6
4
x1 1 5 0 − 51 1
5 0 4
−zt 0 0 0 0 1 1 0
On ne peut améliorer ce résultat car la fonction objective z = t1 = 0.
Nous avons obtenu la solution optimale de la Phase I (4, 0, 6, 0, 0) avec la base { e 1 , x1 }. De plus,
la variable t1 = 0 devient inutile car hors-base. Ainsi, on peut enlever la colonne correspondante à
t1 .
Donc (4, 0, 6, 0, 0) constitue une solution de base initiale du problème (P), ce qui va nous per-
mettre de construire le tableau du simplexe de (P) pour démarrer la phase II.
3. MÉTHODES DES DEUX PHASES 33
I Phase II
Après avoir terminer la phase I avec une solution optimale de valeur optimale nulle et où les
variables articielles sont toutes des variables hors base. Pour commencer la première itération de la
phase II, il faudra remplacer les coecients de la fonction objectif z t par ceux de la fonction objectif
original z, puis recalculer les coûts relatifs.
Variables de base x1 x2 e 1 e 2 z b R
e1 0 15 1 1
5 0 6
x1 1 45 0 − 51 0 4
z 2 3 0 0 −1 0
x1 étant une variable de base nous devons remplacer 2 par 0 dans la dernière ligne du tableau par
l'opération suivante L 3 ← L 3 − 2L 2
Variables de base x1 x2 e1 e2 z b R
1 1
e1 0 5 1 5 0 6 6 × 5 = 30
4
x1 1 5 0 − 15 0 4 4 × 45 = 5 ←
7 2
z 0 5 0 5 −1 −8
↑
L'algorithme se termine à cette étape. La solution optimale est (0, 10, 0, 20) avec z = 30. Ceci est
bien conforme au graphique ci-dessous.
• créer la base articiellement en ajoutant les colonnes manquantes de la matrice identité, cela
revient à introduire des variables supplémentaires, appelées "variables articielles",
• modier la fonction objective de sorte que les variables articielles quittent la base au fur et
à mesure des itérations.
Pour le méthode du grand M on pénalise les variables articielles dans la fonction objective avec un
coecient négatif très grand noté − M pour un problème de maximisation (+ M pour un problème
de minimisation). Ainsi, la maximisation de la fonction objective passe nécessairement par forcer les
variables articielles à quitter la base. Si à l'optimum, certaines variables articielles sont dans la
base, avec une valeur non nulle, alors le programme n'à pas de solution réalisable.
Pour l'exemple donné plus haut, le programme associé, noté M , est le suivant.
max z = 2 x1 + 3 x2 − Mt 1
s.t. x1 + x2 + e 1 = 10,
(P A )
5 x1 + 4 x2 − e 2 + t 1 = 20
x1 , x2 , e 1 , e 2 , t 1 ≥ 0.
Pour que t1 joue le rôle d'une variable de base, il faut faire apparaître un 0 sur la dernière ligne de
la colonne de t1 , pas suite, on transforme le tableau en soustrayant M fois la deuxième ligne de la
dernière. Nous obtenons le tableau suivant :
Variables de base x1 x2 e 1 e 2 t1 z b R
10
e1 1 1 1 0 0 0 10 1
t1 5 4 0 −1 1 0 20 20
5 =4 ←
z 2 + 5M 3 + 4M 0 −M 0 −1 20 M
↑
La variable articiel t1 est toujours dans la base, nous devons eectuer une autre itération
Variables de base x1 x2 e 1 e 2 t1 z b R
1 1
e1 0 5 1 5 − 15 0 6
4
x1 1 5 0 − 51 1
5 0 4
7 2
z 0 5 0 5 −2 − 5 M −1 −8
4. PROBLÈMES IRRÉGULIERS 35
la variable articiel t1 est hors base avec un fort coecient négatif et ne peut plus entrer dans la
base. La phase I s'achève en éliminant la colonne de la variable t1 du tableau. Nous retrouvons ainsi
le tableau suivant avec lequel on va démarrer la phase II du simplexe comme on l'a déjà fait dans la
section précédente.
Remarque 3.3 • Il se peut que la phase I se termine avec une solution de base optimale
comportant une ou plusieurs variables articielles.
• Si l'une de ces variables articielles de base prend une valeur négative, alors le problème
initial est non réalisable.
• Si toutes les variables articielles de base ont une valeur nulle, il faut les sortir de la base
pour trouver le tableau initial du simplexe pour le problème (P). Pour cela, on doit remplacer
chacune de ces variables articielles par l'une des variables hors base, qui ne doit pas être
une variable articielle. Puisque la variable de sortie a une valeur nulle, alors la nouvelle
variable de base aura aussi une valeur nulle.
4 Problèmes irréguliers
4.1 Cas de solution non bornée
Graphiquement, ce problème est caractérisé par le fait qu'on peut déplacer la droite de la fonction
objectif indéniment de manière à accroître la valeur, en gardant toujours une intersection non vide
avec l'ensemble des solutions réalisables.
Avec la méthode de simplexe, on reconnaît ce problème lorsque la variable entrante n'admet
aucune limite sur sa valeur d'entrée, c'est à dire que tous les ratios abiij sont négatifs ou nuls.
On considère le problème suivant :
min z
min −2 x1 − 3 x2 + x3
− x1 − x2 − x3 + e 1 = 3
− x1 − x2 − x3 ≤ 3 rajout des variables d'écart
x1 − x2 + x3 + e 2 = 4
x1 − x2 + x3 ≤ 4 =⇒
− x1 + x2 + 2 x3 + e 3 = 1
− x 1 + x2 + 2 x3 ≤ 1
− 2 x1 − 3 x2 + x3 − z = 0
x1 , x2 , x3 ≥ 0
x1 , x2 , x3 , e 1 , e 2 , e 3 ≥ 0
La variable entrante est x1 . Toutefois, le critère du quotient ne s'applique plus car toutes les entrées
(lignes 1 à 3) de la colonne 1 sont négatives ou nulles.
Remarque 3.4 Selon cet exemple, on peut conclure que s'il n'est pas possible de calculer la ligne
de pivot pour un choix de colonne de pivot j, le problème n'admet pas de solution optimale car il
sera toujours non borné.
Ainsi,
Variables de base x1 x2 e 1 e 2 t1 z b R
e1 1 1 1 0 0 0 2
t1 3 1 0 −1 1 0 10
z 4 + 3M 3 + M 0 − M 0 −1 10 M
4. PROBLÈMES IRRÉGULIERS 37
D'où,
Variables de base x1 x2 e1 e2 t1 z b R
x1 1 1 1 0 0 0 2
t1 0 −2 −3 −1 1 0 10
z 0 −1 − 2 M −4 − 3 M 0 − M −1 4 M − 8
Le tableau de simplexe ci-dessus est optimal avec une variable articielle dans la base.
Variables de base x1 x2 e 1 e 2 e 3 − z b R
e1 10 6 1 0 0 0 45
e2 4 6 0 1 0 0 36
e3 2 6 0 0 1 0 27
−z −50 −30 0 0 0 1 0
La variable x1 entre dans la base pour remplacer la variable e 1
Variables de base x1 x2 e1 e2 e3 −z b R
3 1 9
x1 1 5 10 0 0 0 2
18
e2 0 5 − 52 1 0 0 18
24
e3 0 5 − 51 0 1 0 18
−z 0 0 5 0 0 1 225
Nous obtenons une solution de base optimale dont les variables de base sont x1 , e 2 et e 3 . Mais
le coût marginal de la variable hors base x2 est nul. Faisons entrer cette variable dans la base et
appliquons la règle du plus petit rapport pour choisir la variable de sortie qui est dans ce cas e 3 .
Nous obtenons le tableau suivant
Variables de base x1 x2 e 1 e2 e3 −z b R
1
x1 1 0 8 0 − 81 0 9
4
e2 0 0 − 14 1 − 34 0 9
2
1 5 15
x2 0 1 − 24 0 24 0 4
−z 0 0 5 0 0 1 225
Nous obtenons donc une autre solution de base optimale dont les variables de base sont x1 , e2 et
x2 .
38 CHAPITRE 3. MÉTHODE DU SIMPLEXE
4.4 Les problèmes à solution dégénérée
En appliquons la règle du plus petit rapport pour désigner la variable de sortie, il est possible
que le plus petit rapport soit atteint pour deux contraintes. En eectuant le changement de base,
nous obtenons alors une solution de base avec l'une des composante nulle. Nous disons qu'on a
une dégénérescence. Ceci peut entraîner des dicultés d'execution et d'ecacité de l'algorithme du
simplexe. En eet, nous pouvons faire plusieurs changement de base sans améliorer la valeur de la
fonction objectif. Nous pouvons même retrouver une base déjà rencontrer à une itération précédente.
On dit alors qu'on a un phénomène de cyclage. An d'illustrer ce type de dégénérescence. considérons
l'exemple suivant :
min −4 x1 − 3 x3
s.t x1 − x2 ≤ 2
2 x1 + x3 ≤ 4
x1 + x2 + x3 ≤ 3
x1 , x2 , x3 ≥ 0
Introduisons les variables d'écart et écrivons le premier tableau du simplexe :
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
e1 1 −1 0 1 0 0 0 2
e2 2 0 1 0 1 0 0 4
e3 1 1 1 0 0 1 0 3
−z −4 0 −3 0 0 0 1 0
La variable x1 entre dans la base, mais en appliquons la règle du plus petit rapport, nous constatons
que le minimum des rapports est atteint pour les deux premières contraintes, alors que seulement une
des deux doit quitter la base. Choisissons arbitrairement e 1 comme variable sortante. nous obtenons
alors le tableau suivant :
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
x1 1 −1 0 1 0 0 0 2
e2 0 2 1 −2 1 0 0 0
e3 0 2 1 −1 0 1 0 1
−z 0 −4 −3 4 0 0 1 8
cette solution de base n'est pas optimale puisque les coûts marginaux des variables hors base ne
sont pas tous positifs. Cette solution de base est dite dégénérée puisque l'une des variables de base
est nulle ( e 2 = 0). La variable x2 entre dans la base. En appliquons la règle du plus petit rapport,
nous constatons que la variable e 2 quitte la base et nous obtenons le tableau suivant
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
1 1
x1 1 0 2 0 2 0 0 2
1 1
x2 0 1 2 −1 2 0 0 0
e3 0 0 0 1 −1 1 0 1
−z 0 0 −1 0 2 0 1 8
Nous constatons que la nouvelle solution de base est non optimale et qu'elle est aussi dégénérée
( x2 = 0). Ce changement de base n'a pas modié la valeur de la fonction objectif ( z = −8). A
l'itération suivante de l'algorithme du simplexe, cette variable x2 quitte la base et sera remplacée
4. PROBLÈMES IRRÉGULIERS 39
par la variable x3
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
x1 1 −1 0 1 0 0 0 2
x3 0 2 1 −2 1 0 0 0
e3 0 0 0 1 −1 1 0 1
−z 0 2 0 −2 3 0 1 8
Encore une fois, ce changement de base n'a pas modié la valeur de la fonction objectif. En plus la
nouvelle solution de base est aussi non optimale. Nous pouvons donc se poser la question de savoir
si nous allons continuer ainsi sans pouvoir trouver la solution de base optimale. Heureusement ce
phénomène de dégénérescence s'arrête à l'itération suivante
Variables de base x1 x2 x3 e 1 e 2 e 3 − z b R
x1 1 −1 0 0 1 −1 0 1
x3 0 2 1 0 −1 2 0 2
e1 0 0 0 1 −1 1 0 1
−z 0 2 0 0 1 2 1 10
Remarque 3.5 Dans le cas où on a plusieurs variables candidates d'entrer en base et plusieurs
variables candidates de sortir de la base, la règle du plus petit indice, découverte par R. Bland,
peut nous éviter le cyclage inni. Cette règle consiste à choisir systématiquement, comme variable
entrante, parmi les multiples candidats, la variable x qui correspond au plus petit indice e et
comme variable sortante, la variable x qui correspond au plus petit indice s.
e
s
[ Quatrième Chapitre \
Dualité
1 Motivation et dénitions
Revenons encore une fois au problème de production de l'introduction.
P1 P2 disponibilité
équipement 3 9 81
main d'oeuvre 4 5 55
matière première 2 1 20
bénéce 6 4
- Supposons à présent qu'un acheteur se présente pour acheter toutes les ressources b i , 1 ≤ i ≤ m,
de l'entreprise. Il propose à l'entreprise un prix unitaire yi , 1 ≤ i ≤ m, pour chacune des ressources.
L'entreprise acceptera de lui vendre toutes ses ressources uniquement si elle obtient pour chaque
produit P j un prix de vente au moins égal au prot c j qu'elle ferait en vendant ses produits. On
doit donc avoir
3 y1 + 4 y2 + 2 y3 ≥ c 1 = 6
9 y1 + 5 y2 + 1 y3 ≥ c 2 = 4
y1 , y2 , y3 ≥ 0
De son côté, l'acheteur cherche à minimiser le prix total d'achat. On se demande alors quels sont
les prix unitaires yi , 1 ≥ i ≥ m, que l'acheteur doit proposer à l'entreprise en question pour qu'elle
accepte de vendre toutes ses ressources ? Le problème peut donc s'écrire
min g( y) = 81 y1 + 55 y2 + 20 y3
y
s.t 3 y1 + 4 y2 + 2 y3 ≥ c 1 = 6 (4.1)
9 y1 + 5 y2 + 1 y3 ≥ c 2 = 4
y1 , y2 , y3 ≥ 0
40
1. MOTIVATION ET DÉFINITIONS 41
max g( y) = −3 y1 − 2 y2
2
y∈R
s.t − y1 − 2 y2 ≤ −1
−3 y1 − y2 ≤ −1
y1 , y2 ≥ 0
Si le problème primal est sous forme standard avec les contraintes à Ax != bà alors !on passe à
A b
la forme canonique pure en écrivant les contraintes Ax = b ⇐⇒ ≤ . De façon
−A −b
générale, on a la dénition suivante lorsque le problème primal est sous forme canonique mixte :
Primal Dual
t
maxn f ( x) = c x min g( y) = b t y
x∈R y∈Rm
n
X
∀i ∈ I1, ai j x j ≤ bi ∀ i ∈ I 1 , yi ≥ 0
j =1
n
de signe quelconque
X
∀i ∈ I2, ai j x j = bi ∀ i ∈ I 2 , yi
j =1
m
X
∀ j ∈ J1 , x j ≥ 0 ∀ j ∈ J1 , a i j yi ≥ c j
i =1
m
de signe quelconque
X
∀ j ∈ J2 , x j ∀ j ∈ J2 , a i j yi = c j
i =1
s.t (− A t ) t x ≥ (− b) ⇐⇒
s.t Ax ≤ b
x≥0 x≥0
t t t
Ax ≤ y b = g( y) car y ≥ 0.
f ( x) = c x ≤ ( A y) x = y |{z} t t
≤b
f ( x∗ ) = g( y∗ ).
Démonstration On suppose que (PL) est sous forme standard. Si (PL) admet une solution réali-
sable optimale, alors il admet une solution de base réalisable optimale. On note B la base optimale ∗
Montrons que y est une solution réalisable optimale pour le dual (PLD). On a
∗
t ∗ t −1 t
AH ∗y = AH ∗ ( A B∗ ) c B∗
1 t
= ( A−
B∗ A H ) c B
∗ ∗
= c H∗ − L H∗
Or, à l'optimum tous les coûts réduits sont négatifs ou nuls (L ≤0 ) donc A t
y∗ ≥ c H∗ . Par
dénition, on a A y = c et donc on obtient
H∗ H∗
t ∗
B∗ B∗
A t y∗ ≥ c
est de signe quelconque.
y∗
Par conséquent, y est une solution réalisable du dual (PLD). On remarquera que le problème primal
∗
(PL) étant mis sous forme standard, il n'y a pas de contrainte de positivité sur les variables y du
dual. Par ailleurs
f ( x∗ ) = c t x∗ = c B
t −1
∗ A B∗ b
1 t t
= (( A − ∗ ) c B∗ ) b
| B {z }
y∗
= g( y∗ )
44 CHAPITRE 4. DUALITÉ
et donc par le Théorème faible de dualité, y est optimale pour (PLD).
∗
On a vu qu'il y avait 3 cas possibles (et seulement 3) pour le problème primal (PL) :
1. il existe (au moins) une solution optimale.
2. l'ensemble DR des solutions réalisables n'est pas borné et l'optimum est inni.
3. pas de solution réalisable (DR = ;)
Les mêmes situations se retrouvent pour le problème dual. Plus précisément, le lien entre les
deux problèmes en dualité est donné par le résultat suivant.
Théorème 4.3
Étant donnés un problème primal (PL) et son dual (PLD), une et une seule des trois situations
suivantes peut se produire.
a) les deux problèmes possèdent chacun des solutions optimales (à l'optimum, les coûts sont
égaux).
b) un des problèmes possède une solution réalisable avec un optimum inni, l'autre n'a pas de
solution.
c) aucun des deux problèmes ne possède de solution réalisable.
Il y a donc 3 situations (au lieu de 9) qui peuvent se résumer dans le tableau suivant :
Théorème 4.4
Soient x et y des solutions réalisables respectivement du problème primal (PL) et du problème
dual (PLD). Alors x et y sont des solutions réalisables optimales si et seulement si les conditions
d'optimalité primal-dual (COPD) suivantes sont vériées :
Si une contrainte est satisfaite en tant qu'inégalité stricte dans (PL) (resp. dans (PLD))
alors la variable correspondante de (PLD) (resp. de (PL)) est nulle.
Si la valeur d'une variable dans (PL) ou (PLD) est strictement positive alors la contrainte
correspondante de l'autre programme est une égalité.
3. CONDITIONS D'OPTIMALITÉ PRIMAL-DUAL (COPD) 45
Supposons que le problème primal s'écrive sous forme canonique mixte. Alors x et y sont op-
timales respectivement pour le problème primal et le problème dual si et seulement si on a les
COPD : n
a i j x j = b i ou yi = 0
X
∀ i ∈ I ,
1
j =1
m
ou x j = 0
X
∀ j ∈ J1 , a i j yi = c j
i =1
on a
et
t
Ax + e = b A y−² = c
x, e ≥ 0 x, ² ≥ 0
Dans ces conditions,
f ( x) = c t x = ( A t y − ²) t x = y t Ax − ² t x
g( y) = b t y = ( Ax + e) t y = ( Ax) t y + e t y = y t Ax + e t y.
et n
a i j x∗j = b i
X
yi∗ > 0 =⇒
j =1
m
a i j yi∗ = c j
X
x∗j > 0 =⇒
i =1
46 CHAPITRE 4. DUALITÉ
Exemple 4.2 Le problème dual du problème de production s'écrit
min g( y) = 81 y1 + 55 y2 + 20 y3
y
s.t 3 y1 + 4 y2 + 2 y3 ≥ c 1 = 6 (4.3)
9 y1 + 5 y2 + 1 y3 ≥ c 2 = 4
y1 , y2 , y3 ≥ 0
1 7
y1∗ = 0, y2∗ = , y3∗ = .
3 3
Variables de base x1 x2 e 1 e 2 e3 z b R
e1 0 0 1 − 15 6
7
2 0 27
2
1
x2 0 1 0 3 − 32 0 5
x1 1 0 0 − 16 5
6 0 15
2
z 0 0 0 − 13 − 37 −1 −65
Variables de base y1 y2 y3 ²1 ²2 −z b R
y3 − 27 0 1 − 56 2
3 0 7
3
5 1
y2 2 1 0 6 − 13 0 1
3
27
−z 2 0 0 152 5 1 −65
On observe que la solution y se trouve à la dernière ligne du tableau nal du simplexe du problème
primal. En eet, les coecients c i de la dernière ligne du tableau correspondent à
(
y j = − c n+ j , j = 1, ..., m
² i = − c i , i = 1, .., n
En parfaite dualité, on a les mêmes relations par rapport au tableau du problème dual. On obtient
que les coecients ci de la dernière du tableau du dual correspondent à
(
x i = c m+ i , i = 1, ..., n
e j = c j , j = 1, .., m