P. 1
coursROpl et thg

coursROpl et thg

|Views: 2|Likes:
Published by عابر سبيل

More info:

Published by: عابر سبيل on Dec 31, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

12/31/2011

pdf

text

original

Graphes

et
Recherche Op´erationnelle
ESIAL 2`eme ann´ee
Notes de cours de J.-F. Scheid
2010-2011
2
Table des mati`eres
1 Introduction g´en´erale 5
1.1 Quelques exemples et domaines d’applications de la R.O. . . . . . . . . . . . . . . . . . . 5
1.2 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Contenu du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 El´ements de bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Programmation lin´eaire 11
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Mod´elisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 R´esolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Formes g´en´erales d’un programme lin´eaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Forme canonique mixte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Forme canonique pure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Forme standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.4 Variable d’´ecarts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Solutions de base r´ealisables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Propri´et´es g´eom´etriques des solutions de base r´ealisables . . . . . . . . . . . . . . . . . . . 16
2.5 Algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.1 L’algorithme du simplexe proprement dit : la phase 2 . . . . . . . . . . . . . . . . 17
2.5.2 M´ethode des dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.3 M´ethode des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.4 Finitude du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.5 Initialisation et variables artificielles : la phase 1 . . . . . . . . . . . . . . . . . . . 27
2.6 Analyse post-optimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.1 Analyse post-optimale de l’objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.2 Analyse post-optimale du second membre des contraintes . . . . . . . . . . . . . . 29
2.7 Dualit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.1 Introduction et d´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.2 Propri´et´es - Th´eor`emes de dualit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.7.3 Conditions d’optimalit´e primal-dual (COPD) . . . . . . . . . . . . . . . . . . . . . 33
3
4 TABLE DES MATI
`
ERES
Chapitre 1
Introduction g´en´erale
Une d´efinition possible de la R.O pourrait ˆetre la suivante : il s’agit d’un ensemble de m´ethodes
d’analyse scientifique (maths et info.) des ph´enom`enes d’organisation qui traite de la maximisation d’un
profit, d’une performance, d’un rendement ou bien de la minimisation d’un coˆ ut, d’une d´epense. La R.O.
est avant tout un outil d’aide `a la d´ecision.
Le sch´ema g´en´eral suivi par ces m´ethodes est : Probl`eme concret (de type R.O) → mod´elisation →
r´esolution par une m´ethode de R.O → interpr´etation des r´esultats → prise de d´ecision.
1.1 Quelques exemples et domaines d’applications de la R.O.
1. Un premier exemple : Les ponts de K¨onigsberg (Euler 1735).
Deux ˆıles de la ville sont reli´ees entre elles par 1 pont. D’autre part 6 autres ponts relient les ˆıles `a
la ville. La question pos´ee est la suivante : `a partir d’un point de d´epart quelconque, existe-t-il un
chemin passant une et une seule fois par chaque pont et qui revient au point de d´epart ?
Fig. 1.1 – La ville de K¨onigsberg et ses 7 ponts.
La r´eponse (apport´ee par Euler) est NON. La preuve utilise un graphe : les arˆetes du graphe
repr´esentent les ponts et les sommets correspondent aux diff´erents endroits de la ville : les rives
gauche et droite et les deux ˆıles (cf. Figure 1.2).
Supposons qu’un tel chemin existe. Un tel chemin est appel´e chemin eul´erien. Alors n´ecessairement
en chacun des noeuds du graphe il y a toujours un nombre pair d’arˆetes reli´ees au noeud : s’il y a
une arˆete qui arrive au noeud, il y en a n´ecessairement une autre (diff´erente) qui le quitte. Or, on
constate que le graphe poss`ede des noeuds (tous en fait !) reli´es `a un nombre impair d’arˆetes. Par
cons´equent, il n’existe pas de chemin eul´erien.
5
6 CHAPITRE 1. INTRODUCTION G
´
EN
´
ERALE
A
C
B
D
Fig. 1.2 – Graphe associ´e au probl`eme des ponts de K¨onigsberg
2. Graphe et PageRank
Classement des pages Web utilis´e par les moteurs de recherches. Le web est mod´elis´e `a l’aide d’un
graphe orient´e dont les sommets j repr´esentent les pages du Web et les arcs j →i les hyperliens.
Fig. 1.3 – Exemple de pages Web et leurs PageRank
Chaque page du web poss`ede un score (PageRank) indiquant son importance. Le principe est le
suivant : une page i est importante (score ´elev´e) si beaucoup de pages importantes pointent vers i.
Le score de la page i est d´efini par la valeur
µ
i
=

j→i
1
l
j
µ
j
o` u l
j
d´esigne le nombre de liens partant de la page j. Le probl`eme de la d´etermination des PageRank
se ram`ene `a un probl`eme aux valeurs propres de la forme µ = Aµ o` u µ est le vecteur de tous les
PageRank des pages web recens´ees (environ 20 milliards...).
3. Un probl`eme de production
D´etermination d’un plan optimal de fabrication : une entreprise fabrique plusieurs produits, ce qui
exige des ressources particuli`eres (mati`eres premi`eres, machines, personnel ...) en quantit´es limit´ees.
Chaque produit rapporte un certain b´en´efice (connu) `a l’entreprise.
Quels produits l’entreprise doit-elle fabriquer et en quelle quantit´e pour r´ealiser le b´en´efice total
le plus ´elev´e ?
1.1. QUELQUES EXEMPLES ET DOMAINES D’APPLICATIONS DE LA R.O. 7
On verra que ce probl`eme peut se mod´eliser par programmation lin´eaire qui s’´ecrit formellement
sous la forme suivante.
max
x
F(x) = c

x = c
1
x
1
+· · · c
n
x
n
←l’objectif
_
Ax ≤ b ←les contraintes
x ≥ 0
4. Un probl`eme de transport.
Une entreprise dispose de plusieurs d´epˆots (D
i
) contenant chacun un certain nombre de containers.
Diff´erents magasins (M
j
) commandent des containers. On connaˆıt le coˆ ut de transport de chaque
d´epˆot aux magasins. Par exemple,
disponibilit´e d´epˆots
M
1
M
2
M
3

D
1
5 3 4 8
D
2
6 7 2 9
demande magasins → 4 5 8
Quelle est l’organisation des livraisons des containers pour minimiser le coˆ ut total de transport ?
Ce probl`eme peut se mod´eliser par programmation lin´eaire en nombres entiers et sa r´esolution
peut se faire par S´eparation et Evaluation.
5. Un probl`eme d’affectation.
n tˆaches doivent ˆetre affect´ees `a n machines (1 tˆache par machine). Le coˆ ut d’ex´ecution de chaque
tˆache par chacune des machines est connu.
Trouver l’affectation qui minimise le coˆ ut total.
Ce probl`eme peut se mod´eliser par programmation lin´eaire en variables binaires mais il peut
ˆetre vu aussi comme un probl`eme de flot maximal `a travers un graphe.
6. Un probl`eme de voyageur de commerce.
Un voyageur de commerce doit visiter n villes. La distance entre chaque ville est donn´ee.
Trouver le plus court trajet passant par les n villes.
Ce probl`eme sera r´esolu par programmation dynamique.
7. Placement optimal de pi`eces 2D (Bin Packing).
On dispose de plaques rectangulaires toutes identiques dans lesquelles on veut placer des pi`eces
rectangulaires sans chevauchement. Les pi`eces `a placer ont des dimensions diff´erentes.
plaque
pièces
. . .
Trouver le placement pour minimiser le nombre de plaques utilis´ees.
Ce probl`eme pourra ˆetre ´etudi´e par des m´ethodes heuristiques / m´ethodes ´evolutionnistes (algo-
rithmes g´en´etiques).
8 CHAPITRE 1. INTRODUCTION G
´
EN
´
ERALE
Tous les probl`emes pr´ec´edents sont des probl`emes de combinatoire. Par ex., pour le probl`eme d’affec-
tation et du voyageur de commerce, il y a n! possibilit´es.
Avec n = 20, l’´enum´eration des affectations (trajets) possibles, `a vitesse d’un million par seconde, pren-
drait 77094 ann´ees ... Il est donc indispensable de trouver des m´ethodes efficaces.
1.2 Formalisation
Tous les probl`emes mentionn´es ci-dessus et pr´esent´es dans ce cours peuvent se formaliser de la fa¸con
suivante. On cherche `a maximiser une fonction f sur un ensemble X donn´e :
max{f(x), x ∈ X}
• f : X →R est la fonction objectif. f peut ˆetre lin´eaire, quadratique, nonlin´eaire...
• X est l’ensemble des solutions possibles dites r´ealisables (les contraintes). L’ensemble X est fini
mais en g´en´eral de tr`es grande taille.
On peut envisager de fa¸con ´equivalente un probl`eme de minimisation grˆace `a la relation
min f = −max(−f).
1.3 Contenu du cours
• Programmation lin´eaire : aspects g´eom´etriques, m´ethode du simplexe, dictionnaires, analyse de
sensibilit´e, dualit´e.
• Graphes et R.O
– Flot optimal dans un graphe
– Probl`emes d’affectations (simples et multiples)
– Programmation en nombres entiers (PLNE)
– Programmation dynamique
• Introduction aux m´ethodes heuristiques et ´evolutionnistes : recuit simul´e, tabou, algorithmes g´en´etiques,
algorithme A

.
Remarque. Les probl`emes stochastiques - c’est-`a-dire o` u interviennent le hasard - ne sont pas abord´es
dans ce cours (processus de Markov, file d’attente...).
1.4 El´ements de bibliographie
[1] Pr´ecis de recherche op´erationnelle – M´ethodes et exercices d’application, Faure, Lemaire, Picouleau ;
2008.
ouvrage de r´ef´erence, un ”classique”.
[2] Exercices et probl`emes r´esolus de recherche op´erationnelle : Tome 1 (Graphes : leurs usages, leurs
algorithmes), Tome 3 (Programmation lin´eaire et extensions, probl`emes classiques). Roseaux : Bil-
lionnet, Carlier, Chr´etienne, Lemaire, Faure ; 1998/1985.
contient des exercices classiques en lien avec [1].
[3] Optimisation discr`ete – De la mod´elisation `a la r´esolution par des logiciels de programmation
math´ematique, Billionnet ; 2007.
ouvrage r´ecent qui contient un expos´e de m´ethodes plus modernes que [1]. Ouvrage tr`es int´eressant.
[4] Linear Programming, Chv´atal ; 1983.
ouvrage tr`es didactique (style anglo-saxon...) avec de nombreux d´eveloppements pratiques tr`es
importants.
1.4. EL
´
EMENTS DE BIBLIOGRAPHIE 9
[5] Recherche op´erationnelle pour ing´enieurs Tome I et II, Hˆeche, Liebling, de Werra ; 2003.
malgr´e son titre ( !), contenu assez math´ematique ; contient des d´emonstrations int´eressantes.
[6] Programmation math´ematique. Th´eorie et algorithmes, Minoux ; 2008.
passe en revue de nombreuses m´ethodes contemporaines.
[7] Introduction `a l’algorithmique, Corman, Leiserson, Rivest ; 2002.
aspects algorithmiques des maths num´eriques, de la Recherche Op´erationnelle et des probabilit´es.
10 CHAPITRE 1. INTRODUCTION G
´
EN
´
ERALE
Chapitre 2
Programmation lin´eaire
2.1 Introduction
2.1.1 Mod´elisation
En R.O, mod´eliser un probl`eme consiste `a identifier les variables intrins`eques, les diff´erentes contraintes
auquelles sont soumises ces variables et l’objectif vis´e (optimisation). Dans un probl`eme de programmation
lin´eaire (PL) les contraintes et l’objectif sont des fonctions lin´eaires des variables.
Exemple d’un probl`eme de production.
Une usine fabrique 2 produits P
1
et P
2
en utilisant un certain nombre de ressources : ´equipement, main
d’oeuvre, mati`eres premi`eres. Ces besoins sont indiqu´es dans le tableau ci-dessous. Par ailleurs, chaque
ressource est disponible en quantit´e limit´ee (cf. tableau).
P
1
P
2
disponibilit´e
´equipement 3 9 81
main d’oeuvre 4 5 55
mati`ere premi`ere 2 1 20
Les deux produits P
1
et P
2
rapportent `a la vente respectivement des b´en´efices de 6 euros et 4 euros par
unit´e. Quelles quantit´es de produits P
1
et P
2
(valeurs non-n´ecessairement enti`eres) doit produire l’usine
afin de maximiser le b´en´efice total venant de la vente des 2 produits ?
• Choix des variables (les inconnues) : x
1
et x
2
sont respectivement les quantit´es des produits P
1
et
P
2
fabriqu´es (x
1
, x
2
∈ R).
• Choix de la fonction objectif `a maximiser : La fonction objectif F correspond au b´en´efice total. Elle
vaut F(x
1
, x
2
) = 6x
1
+ 4x
2
. Le probl`eme se traduit donc par
max
(x
1
,x
2
)
[F(x
1
, x
2
) = 6x
1
+ 4x
2
] .
• D´etermination des contraintes.
– La disponibilit´e de chacune des ressources s’´ecrit :
3x
1
+ 9x
2
≤ 81
4x
1
+ 5x
2
≤ 55
2x
1
+ x
2
≤ 20
– Positivit´e des variables : x
1
, x
2
≥ 0.
11
12 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
En r´esum´e, le probl`eme de production se mod´elise sous la forme
max
(x
1
,x
2
)
[F(x
1
, x
2
) = 6x
1
+ 4x
2
] .
sous les contraintes :
_
_
_
3x
1
+ 9x
2
≤ 81
4x
1
+ 5x
2
≤ 55
2x
1
+ x
2
≤ 20
x
1
, x
2
≥ 0
(2.1)
2.1.2 R´esolution graphique
Dans le cas d’un (PL) `a deux variables, on peut envisager une r´esolution graphique. Les contraintes
o` u apparaissent des in´egalit´es correspondent g´eom´etriquement `a des demi-plans. L’intersection de ces
demi-plans forme l’ensemble des variables satisfaisant `a toutes les contraintes (la partie hachur´ee de la
figure 2.1). A la fonction objectif F correspond une droite F(x
1
, x
2
) = 6x
1
+ 4x
2
= constante, de coeffi-
2x +x =20
x
3x +9x =81
4x +5x =55
1
2
1
1
x
1
F(x ,x )=6x +4x =
1 2 1
2
2
2
2
optimum
(−1,6/4)
0
5
10
5 15/2 10
constante
Fig. 2.1 – R´esolution graphique du probl`eme de production
cient directeur (−1, 6/4). La constante pr´ec´edente qui d´efinie la droite doit ˆetre la plus grande possible
(maximisation) et rencontrer l’ensemble des variables qui satisfont les contraintes. Pour d´eterminer cette
valeur maximale, on fait donc ”glisser” la droite (translation parall`ele `a la direction de la droite) du haut
vers le bas jusqu’`a rencontrer l’ensemble des variables satisfaisant les contraintes. Le maximum de F sur
cet ensemble des contraintes est alors atteint. On obtient ainsi la solution optimale (x
1
, x
2
) = (15/2, 5)
et ce qui donne une valeur maximale max(F) = 65.
On remarque que l’ensemble des contraintes (la partie hachur´ee de la figure 2.1) est un polygˆone convexe
et que le maximum de F est atteint en un sommet de ce polygˆone. Cette observation est, en fait, un
r´esultat g´en´eral que l’on ´etabliera dans les sections suivantes.
2.2. FORMES G
´
EN
´
ERALES D’UN PROGRAMME LIN
´
EAIRE 13
2.2 Formes g´en´erales d’un programme lin´eaire
2.2.1 Forme canonique mixte
Il s’agit d’un probl`eme de programmation lin´eaire (encore appel´e programme lin´eaire) ´ecrit sous la
forme suivante.
max
(x
1
,··· ,x
n
)
_
_
F(x
1
, ..., x
n
) = c
1
x
1
+· · · c
n
x
n
=
n

j=1
c
j
x
j
_
_
.
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
contraintes in´egalit´es : ∀i ∈ I
1
,
n

j=1
a
ij
x
j
= a
i1
x
1
+· · · + a
in
x
n
≤ b
i
contraintes ´egalit´es : ∀i ∈ I
2
,
n

j=1
a
ij
x
j
= b
i
contraintes de signes : ∀j ∈ J
1
, x
j
≥ 0
∀j ∈ J
2
, x
j
de signe quelconque.
(2.2)
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 = J
1
∪ J
2
est l’ensemble des indices des variables avec card(J) = n. Il y a
n variables.
2.2.2 Forme canonique pure
Sous cette forme, il n’y a pas de contraintes d’´egalit´e c’est-`a-dire I
2
= ∅ et J
2
= ∅.
On note
x = (x
1
, · · · , x
n
)

∈ R
n
c = (c
1
, · · · , c
n
)

∈ R
n
b = (b
1
, · · · , b
m
)

∈ R
m
et la matrice A de taille m×n :
A =
_
_
_
a
11
a
12
· · · a
1n
.
.
.
.
.
.
a
m1
a
m2
· · · a
mn
_
_
_
.
Un programme lin´eaire (PL) est dit sous forme canonique pure s’il s’´ecrit :
max
x
_
F(x) = c

x = c
1
x
1
+· · · c
n
x
n
_
sous les contraintes :
_
Ax ≤ b
x ≥ 0
(2.3)
2.2.3 Forme standard
Sous cette forme, I
1
= ∅ et J
2
= ∅. Un programme lin´eaire (PL) est dit sous forme standard s’il s’´ecrit :
max
x
_
F(x) = c

x
_
sous les contraintes :
_
Ax = b
x ≥ 0
(2.4)
14 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
On dit de plus que le PL est sous forme standard simpliciale si A de taille m×n avec m ≤ n, se d´ecompose
en :
A =
_
I
m
| H
_
(2.5)
o` u I
m
d´esigne la matrice identit´e de taille m×m et H est une matrice de taille m×(n −m).
2.2.4 Variable d’´ecarts
Proposition 2.1. Tout PL sous forme standard s’´ecrit de fa¸con ´equivalente en un PL sous forme
canonique pure et inversement.
D´emonstration. i) Soit un PL sous forme canonique pure. On a
Ax ≤ b ⇔
n

j=1
a
ij
x
j
+ e
i
= b
i
, ∀i = 1, · · · , m
o` u e
i
= b
i

n

j=1
a
ij
x
j
≥ 0
Ainsi,
_
Ax ≤ b
x ≥ 0

_
¸
¸
_
¸
¸
_
_
A | I
m
_
_
x
e
_
= b
_
x
e
_
≥ 0

_
˜
A˜ x = b
˜ x ≥ 0
o` u e = (e
1
, · · · , e
m
)

sont appel´ees variables d’´ecart.
ii) Soit un PL sous forme standard. On a
Ax = b ⇔
_
Ax ≤ b
Ax ≥ b

_
Ax ≤ b
−Ax ≤ −b

_
A
−A
_
x ≤
_
b
−b
_

˜
˜
Ax ≤
˜
b
o` u
˜
˜
A est une matrice de taille 2m×n et
˜
b ∈ R
2m
.
2.3 Solutions de base r´ealisables
On consid`ere d´esormais (sauf mention contraire) un PL toujours sous forme standard.
D´efinition 2.1. On appelle solution r´ealisable tout vecteur x qui satisfait les contraintes du PL i.e. tel
que Ax = b et x ≥ 0.
Hypoth`ese : On suppose d´esormais que la matrice A est de taille m×n avec rang(A) = m ≤ n .
On rappelle que le rang de A est le nombre maximal de lignes de A lin´eairement ind´ependantes. C’est aussi
le nombre de colonnes de A lin´eairement ind´ependantes. L’hypoth`ese de rang plein n’est pas restrictive
car si rang(A) < m le syst`eme Ax = b n’a pas de solution en g´en´eral. Si rang(A) < m et b ∈ Im(A),
il y a des ´equations redondantes dans le syst`eme Ax = b, qu’on peut donc supprimer pour obtenir un
nouveau syst`eme de rang plein. Sous l’hypoth`ese de rang plein, le syst`eme Ax = b admet toujours des
solutions. Si m < n, il y en a une infinit´e. Si m = n, la solution est unique et vaut x = A
−1
b, dans ce
cas, il n’y a rien `a maximiser...
2.3. SOLUTIONS DE BASE R
´
EALISABLES 15
Remarque. Pour la forme canonique pure avec Ax ≤ b, l’hypoth`ese de rang plein n’est pas non plus
restrictive car si rang(A) < m, il y a des contraintes in´egalit´es redondantes qu’on peut supprimer pour
obtenir un syst`eme de rang plein.
D´efinition 2.2. Soit B ⊂ {1, · · · , n} un ensemble d’indices avec card(B) = m tel que les colonnes A
j
,
j ∈ B, de A sont lin´eairement ind´ependantes. Autrement dit, la matrice carr´ee A
B
form´ee des colonnes
A
j
, j ∈ B, est inversible. On dit que l’ensemble B des indices est une base.
• Les variables x
B
= (x
j
, j ∈ B) sont appel´ees variables de base.
• Les variables x
H
= (x
j
, j / ∈ B) sont appel´ees variables hors-base.
Remarques.
– Sous l’hypoth`ese de rang plein, il existe toujours une base non vide.
– Quitte `a renum´eroter les indices, on peut toujours ´ecrire les d´ecompositions par blocs :
A = (A
B
| A
H
) o` u A
H
est la matrice form´ee des colonnes A
j
, j / ∈ B
x = (x
B
| x
H
)

Le syst`eme Ax = b est ´equivalent `a
A
B
x
B
+ A
H
x
H
= b.
Par la relation pr´ec´edente et du fait que la matrice A
B
est inversible, on peut fixer les variables hors-base
et les variables de base sont alors compl`etement d´etermin´ees.
D´efinition 2.3. On dit que x = (x
B
| x
H
)

est solution de base associ´ee `a la base B si
x
H
= 0.
Propri´et´es des solutions de base r´ealisables : Si x = (x
B
| x
H
)

est une solution de base r´ealisable
alors x
H
= 0 et x
B
= A
−1
B
b.
Exemple. Reprenons l’exemple du probl`eme de production de l’introduction. Sous forme standard (en
introduisant des variables d’´ecart), le PL s’´ecrit
max
(x
1
,x
2
)
[F(x
1
, x
2
) = 6x
1
+ 4x
2
] .
sous les contraintes :
_
_
_
3x
1
+ 9x
2
+ e
1
= 81
4x
1
+ 5x
2
+ e
2
= 55
2x
1
+ x
2
+ e
3
= 20
_
x
1
, x
2
≥ 0
e
1
, e
2
, e
3
≥ 0
(2.6)
On a m = 3, n = 5, rang(A) = m = 3. Une base est donn´ee par B = {3, 4, 5} avec A
B
=
_
_
1 0 0
0 1 0
0 0 1
_
_
.
La solution de base r´ealisable correspondante est x = (x
1
, x
2
, e
1
, e
2
, e
3
)

= ( 0, 0
.¸¸.
x
H
, 81, 55, 20
. ¸¸ .
x
B
=A
−1
B
b
)

.
Remarque. Il y a au plus C
m
n
solutions de base (toutes ne sont pas r´ealisables).
16 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
2.4 Propri´et´es g´eom´etriques des solutions de base r´ealisables
On note
D
R
= {x ∈ R
n
| Ax = b, x ≥ 0} , (2.7)
l’ensemble des solutions r´ealisables d’un PL sous forme standard.
Commen¸cons par rappeler les notions de poly`edre et d’ensemble convexe :
• Un poly`edre Q de R
n
est d´efini par Q = {x ∈ R
n
| Ax ≤ b} o` u A est une matrice m×n.
• Un ensemble E est dit convexe si ∀x, y ∈ E, λx + (1 −λ)y ∈ E pour tout 0 ≤ λ ≤ 1.
Proposition 2.2. L’ensemble D
R
des solutions r´ealisables est un poly`edre convexe, ferm´e.
Exemple. L’ensemble D
R
=
_
x ∈ R
3
| 2x
1
+ 3x
2
+ x
3
= 3, x
1
, x
2
, x
3
≥ 0
_
est repr´esent´e sur la figure 2.2.
x
x
x
3
2
1
1
2
3
1 2
0
1
2
Fig. 2.2 – Poly`edre des solutions r´ealisables
D´efinition 2.4. Un point x ∈ D
R
est un sommet (ou point extrˆeme) si et seulement s’il n’existe pas
y, z ∈ D
R
, y = z tels que x = λy + (1 −λ)z avec 0 < λ < 1.
Th´eor`eme 2.1. x est une solution de base r´ealisable si et seulement si x est un sommet de D
R
.
On a vu sur l’exemple de l’introduction que la solution ´etait atteinte sur un sommet de D
R
et corres-
pond donc `a une solution de base. Le r´esultat g´en´eral s’´enonce ainsi :
Th´eor`eme 2.2. L’optimum de la fonction objectif F sur D
R
, s’il existe, est atteint en au moins un
sommet de D
R
.
Pour r´esoudre un PL sous forme standard, il suffit de se restreindre aux solutions de base r´ealisables
(les sommets de D
R
). Tout se passe donc avec les solutions de base.
2.5. ALGORITHME DU SIMPLEXE 17
L’ensemble D
R
n’est pas n´ecessairement born´e. En fait pour un PL, 3 situations (et seulement 3)
peuvent se produire :
1. D
R
= ∅ : le PL n’a pas de solution.
2. D
R
= ∅ mais la fonction objectif F n’est pas major´ee sur D
R
: le maximum de F vaut +∞. Si D
R
est born´e, ce cas est exclu.
3. D
R
= ∅ et la fonction objectif F est major´ee sur D
R
: le PL admet une solution optimale (non
n´ecessairement unique).
Remarque. On a vu qu’il y a au plus C
m
n
solutions de base r´ealisables. Pour d´eterminer une solution
de base, on doit r´esoudre un syst`eme lin´eaire (x
B
= A
−1
B
b). La r´esolution d’un syst`eme lin´eaire par
une m´ethode directe de type Gauss/LU requi`ere de l’ordre de m
3
op´erations. Si on explore toutes les
solutions de base et que l’on compare les coˆ uts correspondants, on effectue de l’ordre de m
3
C
m
n
op´erations.
Ce nombre est vite tr`es grand avec n et m. Par exemple, avec n = 20 et m = 10, on a 3 · 10
8
op´erations.
Dans la m´ethode du simplexe, on va explorer seulement les sommets qui permettent d’augmenter la
fonction objectif. On va r´eduire ainsi le nombre de solution de base `a explorer et donc le nombre de
syst`eme lin´eaire `a r´esoudre.
2.5 Algorithme du simplexe
La m´ethode du simplexe est due `a G. Dantzig (1947). Elle comporte 2 phases.
• Phase 1 - Initialisation : Trouver une solution de base r´ealisable (ou bien d´etecter l’impossibilit´e).
• Phase 2 - Progression : On passe d’un sommet `a un sommet voisin pour augmenter la fonction
objectif (ou bien on d´etecte une fonction objectif F non major´ee).
2.5.1 L’algorithme du simplexe proprement dit : la phase 2
On dispose d’une solution de base r´ealisable x d’un PL sous forme standard. A une permutation pr`es
des colonnes , la matrice A peut s’´ecrire
A = (A
B
| A
H
)
avec A
B
une matrice carr´ee 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´ecompose ´egalement (`a la
mˆeme permutation pr`es des composantes)
x = (x
B
| x
H
)

Le but est de trouver une autre base B

et une solution de base x

associ´ee telles que
F(x

) > F(x) (x

est meilleur que x)
La m´ethode du simplexe consiste `a faire rentrer une variable hors-base dans la nouvelle base (variable
entrante) et faire sortir `a la place une variable de base (variable sortante).
a) Calcul des coˆ uts r´eduits et variable entrante
On ´ecrit la fonction objectif F avec les variables de base/hors-base. On a b = Ax = A
B
x
B
+ A
H
x
H
avec A
B
inversible donc x
B
= A
−1
B
(b −A
H
x
H
). On obtient donc
F(x) = c

x = c

B
x
B
+c

H
x
H
avec c = (c
B
| c
H
)

= c

B
A
−1
B
(b −A
H
x
H
) +c

H
x
H
= c

B
A
−1
B
b + (c

H
−c

B
A
−1
B
A
H
)x
H
18 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
Or x
B
= A
−1
B
b (car x
H
= 0) et c

B
A
−1
B
b = c

x = F(x) donc
F(x) = F(x) + (c

H
−c

B
A
−1
B
A
H
)x
H
. (2.8)
Le vecteur
L

H
= c

H
−c

B
A
−1
B
A
H
(2.9)
s’appelle vecteur des coˆ uts r´eduits.
– Si les coˆ uts r´eduits sont tous n´egatifs i.e. L

H
≤ 0, il n’est alors pas possible d’augmenter la fonction
objectif F : l’algorithme se termine normalement c’est-`a-dire qu’on a trouv´e une solution de base
r´ealisable optimale.
– Dans le cas contraire (i.e. ∃(L
H
)
i
> 0), on a int´erˆet `a faire entrer dans la base, la variable hors-base
qui a le coˆ ut r´eduit positif le plus grand possible.
On note e / ∈ B l’indice de la variable entrante. On choisit e tel que
(L
H
)
e
= max
j
_
(L
H
)
j
, (L
H
)
j
> 0
_
ce qu’on note par
e = argmax
j
_
(L
H
)
j
, (L
H
)
j
> 0
_
(2.10)
Remarque. Si on traite d’un probl`eme de minimisation c’est-`a-dire avec min F(x), alors la variable
entrante x
e
est d´etermin´ee par l’indice
e = argmin
j
_
(L
H
)
j
, (L
H
)
j
< 0
_
b) Variable sortante
Une fois l’indice e choisi, il faut d´eterminer quelle variable doit quitter la base. En maintenant la
relation Ax = b, on augmente x
e
jusqu’`a annuler une des variables de base. Cette variable sera alors la
variable sortante.
Ax = b ⇔ A
B
x
B
+ A
e
x
e
= b o` u A
e
d´esigne la e-i`eme colonne de A
⇔ x
B
= A
−1
B
(b −A
e
x
e
)
⇔ x
B
= x
B
−A
−1
B
A
e
x
e
⇔ x
B
= x
B
−zx
e
o` u l’on a not´e
z = A
−1
B
A
e
∈ R
m
. (2.11)
– Si z ≤ 0, on peut augmenter x
e
autant qu’on veut, on aura toujours la positivit´e de la variable de
base x
B
. La fonction objectif n’est pas major´ee sur D
R
i.e. le maximum de F vaut +∞. Dans ce
cas, l’algorithme s’arrˆete.
– Sinon (i.e. il existe z
i
> 0), pour avoir la positivit´e (x
B
)
i
−z
i
x
e
≥ 0 pour tout i, on choisit la variable
sortante pour laquelle le rapport (x
B
)
i
/z
i
pour i = 1, · · · , m avec z
i
> 0, est le plus petit possible.
On choisit
s = argmin
i
_
(x
B
)
i
z
i
, z
i
> 0
_
(2.12)
On a, dans ce cas, x
s
= 0 et x
B
≥ 0. La valeur de la variable entrante est donn´ee par
x
e
= min
i
_
(x
B
)
i
z
i
, z
i
> 0
_
(2.13)
2.5. ALGORITHME DU SIMPLEXE 19
R´esum´e de la m´ethode du simplexe en phase 2 (progression)
1. – Calcul des variables de base r´ealisables : ´etant donn´e A = (A
B
| A
H
), on calcule les variables de
base r´ealisables x
B
= A
−1
B
b ≥ 0.
– Calcul des coˆ uts r´eduits : L

H
= c

H
−c

B
A
−1
B
A
H
– Si L
H
≤ 0 alors x
B
est une solution optimale (→ arrˆet de l’algo.).
2. variable entrante : e = argmax
j
_
(L
H
)
j
, (L
H
)
j
> 0
_
3. variable sortante : Calcul de z = A
−1
B
A
e
puis s = argmin
i
_
(x
B
)
i
z
i
, z
i
> 0
_
.
4. On obtient une nouvelle base B

et une nouvelle matrice A
B
∗ dans laquelle la colonne A
e
remplace
la colonne A
s
. Calcul de A
−1
B

et retour en 1.
2.5.2 M´ethode des dictionnaires
On consid`ere un PL sous forme standard, c’est-`a-dire de la forme
max
x
F(x) = c

x
_
Ax = b
x ≥ 0
On se place `a une it´eration donn´ee dans la m´ethode du simplexe. On dispose d’une base B ainsi que
des variables de base x
B
et des variables hors-base x
H
. On veut obtenir une nouvelle solution de base
r´ealisable en d´eterminant des variables entrante et sortante pour augmenter F. Le principe de la m´ethode
des dictionnaires est le suivant :
Principe de la m´ethode des dictionnaires : on exprime les variables de base x
B
ainsi que F en
fonction des variables hors-base x
H
. On obtient un syst`eme lin´eaire qu’on appelle dictionnaire. On
choisit alors la variable entrante comme la variable de x
H
qui fait le plus augmenter F. On d´etermine
la variable sortante en choisissant la valeur de la variable entrante la plus grande possible tout en
maintenant les conditions de positivit´e sur les variables de base x
B
.
Exemple du probl`eme de production. Le probl`eme de production de l’introduction s’´ecrit sous forme
standard (variables d’´ecart e
1
, e
2
, e
3
)
max F(x
1
, x
2
) = 6x
1
+ 4x
2
_
¸
¸
_
¸
¸
_
3x
1
+ 9x
2
+ e1 = 81
4x
1
+ 5x
2
+ e2 = 55
2x
1
+ x
2
+ e3 = 20
x
1
, x
2
≥ 0, e
1
, e
2
, e
3
≥ 0
Etape 1.
– Solution de base r´ealisable initiale :
x
1
= 0, x
2
= 0, e
1
= 81, e
2
= 55, e
3
= 20 avec F = 0.
– Dictionnaire : On exprime les variables de base e
1
, e
2
, e
3
en fonction des variables hors-base
x
1
, x
2
.
e
1
= 81 −3x
1
−9x
2
e
2
= 55 −4x
1
−5x
2
e
3
= 20 −2x
1
−x
2
F = 6x
1
+ 4x
2
20 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
– Variable entrante x
e
: max
>0
{6, 4} = 6 ⇒ x
e
= x
1
.
– Variable sortante x
s
: on maintient les contraintes e
1
≥ 0, e
2
≥ 0, e
3
≥ 0
⇒x
1
= min
>0
{
81
3
,
55
4
,
20
2
} = 10 ⇒ x
s
= e
3
.
– Nouvelle Solution de base r´ealisable :
x
1
= 10 , x
2
= 0, e
1
= 51, e
2
= 15, e
3
= 0 avec F = 60.
Etape 2.
– Dictionnaire : On exprime la nouvelle variable de base x
1
en fonction de x
2
et e
3
(e
3
est une nou-
velle variable hors-base). On utilise la 3`eme ´equation du dictionnaire de l’´etape 1 et on substitue
x
1
dans les autres relations.
x
1
= 10 −
1
2
x
2

1
2
e
3
e
1
= 81 −3(10 −
1
2
x
2

1
2
e
3
) −9x
2
e
2
= 55 −4(10 −
1
2
x
2

1
2
e
3
) −5x
2
F = 6(10 −
1
2
x
2

1
2
e
3
) + 4x
2
ce qui donne le dictionnaire :
x
1
= 10 −
1
2
x
2

1
2
e
3
e
1
= 51 −
15
2
x
2
+
3
2
e
3
e
2
= 15 −3x
2
+ 2e
3
F = 60 + x
2
−3e
3
– Variable entrante x
e
: max
>0
{1, −3} = 1 ⇒ x
e
= x
2
.
– Variable sortante x
s
: on maintient x
1
≥ 0, e
1
≥ 0, e
2
≥ 0
⇒x
2
= min
>0
{
10
1/2
,
51
15/2
,
15
3
} = 5 ⇒ x
s
= e
2
.
– Nouvelle Solution de base r´ealisable (´etape 2) :
x
1
=
15
2
, x
2
= 5 , e
1
=
27
2
, e
2
= 0 , e
3
= 0 avec F = 65.
Etape 3.
– Dictionnaire : On exprime la nouvelle variable de base x
2
en fonction des variables hors-base e
2
et e
3
. On utilise la 3`eme ´equation du dictionnaire de l’´etape 2 et on substitue x
2
dans les autres
relations.
x
2
= 5 −
1
3
e
2
+
2
3
e
3
x
1
=
15
2
+
1
6
e
2

5
6
e
3
e
1
=
27
2
+
5
2
e
2

7
2
e
3
F = 65−
1
3
e
2

7
3
e
3
Tous les coˆ uts r´eduits sont ≤ 0 donc on ne peut plus augmenter F : l’optimum est atteint et la
solution optimale est
x

1
=
15
2
, x

2
= 5, e

1
=
27
2
, e

2
= 0, e

3
= 0 avec max F = 65.
2.5.3 M´ethode des tableaux
Les calculs pr´ec´edents peuvent se simplifier si on s’arrange pour avoir toujours ”A
B
= I
d
”. On dit
”qu’on maintient l’identit´e sous la base”. De cette fa¸con, la r´esolution d’un syst`eme A
B
x
B
= b est
2.5. ALGORITHME DU SIMPLEXE 21
imm´ediate, puisque x
B
= b. On va donc chercher `a travailler avec la forme simpliciale de PL (cf. (2.5)).
On suppose donc que la matrice A se d´ecompose en
A = (I
m
| A
H
)
o` u I
m
est la matrice identit´e d’ordre m, et on dispose d’une solution de base r´ealisable x = (x
B
| x
H
)

avec x
B
= b et x
H
= 0. Dans ce cas, les coˆ uts r´eduits (cf. (2.9)) se simplifient en :
L

H
= c

H
−c

B
A
H
(2.14)
et les indices e et s des variables entrante et sortante sont donn´ees par :
e = argmax
j
_
(L
H
)
j
, avec (L
H
)
j
> 0
_
s = argmin
i
_
b
i
a
ie
, avec a
ie
= (A
H
)
i,e
> 0
_ (2.15)
avec
x
e
=
b
s
a
se
. (2.16)
Une fois les variables entrante et sortante choisies, on doit retrouver un syst`eme simplicial.
a) Retour `a un syst`eme simplicial et mise `a jour des matrices de base
Apr`es permutation des variables entrante et sortante, la nouvelle base
˜
B et le nouvel ensemble des
indices hors-base
˜
H valent
¯
B = B +{e} −{s}
¯
H = H −{e} +{s}
(2.17)
La nouvelle matrice s’´ecrit alors
A

=
_
A
e
B
| A
e
H
_
.
La matrice A
e
B
est donn´ee par :
(s)

A
e
B
=
_
_
_
_
_
_
_
_
_
_
_
_
1 a
1,e
0
.
.
.
.
.
.
1
a
s,e
1
.
.
.
.
.
.
0 a
m,e
1
_
_
_
_
_
_
_
_
_
_
_
_
.
Puisque a
s,e
> 0, la matrice A
e
B
est inversible et on a :
(s)

A
−1
e
B
=
_
_
_
_
_
_
_
_
_
_
_
_
1 −a
1,e
/a
s,e
0
.
.
.
.
.
.
1
1/a
s,e
1
.
.
.
.
.
.
0 −a
m,e
/a
s,e
1
_
_
_
_
_
_
_
_
_
_
_
_
. (2.18)
22 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
Plus pr´ecis´ement, pour tout i = 1, · · · , m,
_
A
−1
e
B
_
ij
= δ
ij
si j = s et
_
A
−1
e
B
_
is
=
_
¸
_
¸
_

a
ie
a
se
, si i = s
1
a
se
, si i = s
On factorise alors la matrice A

par A

= A
e
B
_
I
m
|
¯
A
e
H
_
avec
¯
A
e
H
= A
−1
e
B
A
e
H
. (2.19)
On note x

la nouvelle solution de base apr`es permutation des variables entrante et sortante. On obtient
Ax = b ⇔ A

x

= b
⇔ A
e
B
_
I
m
|
¯
A
e
H
_
x

= b

_
I
m
|
¯
A
e
H
_
x

=
¯
b.
avec le second membre
¯
b = A
−1
e
B
b . (2.20)
On obtient ainsi un syst`eme sous forme simplicial.
En tenant compte de la forme explicite de A
−1
e
B
donn´e par (2.18), on a les formules suivantes pour le
calcul de
¯
A
e
H
.
Proposition 2.3. On note [M]
i
la i-`eme ligne (vecteur) d’une matrice M. On a les relations pour les
matrices
_
¯
A
e
H
_
i
=
_
A
e
H
¸
i

a
ie
a
se
_
A
e
H
¸
s
, ∀i = s
_
¯
A
e
H
_
s
=
1
a
se
_
A
e
H
¸
s
.
(2.21)
et de mˆeme avec le second membre :
¯
b
i
= b
i

a
ie
a
se
b
s
, ∀i = s
¯
b
s
=
b
s
a
se
.
(2.22)
b) Mise `a jour des coˆ uts r´eduits
On a F(x) = F
opt
+ L

H
x
H
o` u F
opt
= F(x) avec x une solution de base r´ealisable associ´ee `a la base
B. On veut exprimer F dans la nouvelle base
¯
B = B +{e} −{s} et avec le nouvel ensemble d’indices des
variables hors-base
¯
H = H −{e} +{s}.
Proposition 2.4. On a F(x) =
¯
F
opt
+
¯
L

e
H
x
e
H
avec
¯
F
opt
= F
opt
+ (L
H
)
e
¯
b
s
(2.23)
2.5. ALGORITHME DU SIMPLEXE 23
¯
L

e
H
= L

e
H
−(L
H
)
e
_
¯
A
e
H
_
s
(2.24)
avec
¯
b
s
=
b
s
a
se
et o` u
_
¯
A
e
H
_
s
d´esigne la s-i`eme ligne de
¯
A
e
H
.
D´emonstration. Si on note
L = (0 | L
H
)

∈ R
n
,
alors la fonction objectif s’´ecrit
F(x) = F
opt
+L

x = F
opt
+

j∈H
L
j
x
j
= F
opt
+

j∈H−{e}+{s}
L
j
x
j
+ L
e
.¸¸.
=(L
H
)
e
x
e
− L
s
.¸¸.
=0
x
s
= F
opt
+

j∈
e
H
L
j
x
j
+ (L
H
)
e
x
e
= F
opt
+L

e
H
x
e
H
+ (L
H
)
e
x
e
. (2.25)
On exprime ensuite x
e
par rapport aux nouvelles variables hors-base, en ´ecrivant la relation Ax = b sur
la composante s :
x
B
+ A
H
x
H
= b
ce qui donne
x
s
+

j∈H
a
sj
x
j
= b
s
.
On ´ecrit alors
x
s
+

j∈H−{e}
a
sj
x
j
+ a
se
x
e
= b
s
. (2.26)
Puisque a
ss
= 1 (car A
B
= I
m
), on obtient
x
s
+

j∈H−{e}
a
sj
x
j
=

j∈H−{e}+{s}
a
sj
x
j
=

j∈
e
H
a
sj
x
j
.
La relation (2.26) donne x
e
=
b
s
a
se

j∈
e
H
a
sj
a
se
x
j
. En notant
¯
b
s
=
b
s
a
se
et en remarquent que
_
¯
A
e
H
_
sj
=
a
sj
a
se
,
on obtient
x
e
=
¯
b
s

_
¯
A
e
H
_
s
x
e
H
,
o` u
_
¯
A
e
H
_
s
d´esigne la s-i`eme ligne de
¯
A
e
H
. En injectant l’expression de x
e
dans (2.25), on obtient :
F(x) = F
opt
+ (L
H
)
e
¯
b
s
. ¸¸ .
e
F
opt
+
_
L

e
H
−(L
H
)
e
_
¯
A
e
H
_
s
_
. ¸¸ .
e
L

e
H
x
e
H
.

c) Mise en place de la m´ethode des tableaux
A chaque ´etape de la m´ethode des tableaux, on regroupe dans un seul tableau, la matrice A et second
membre b, les coˆ uts r´eduits et la valeur F
opt
de la fonction objectif sur la solution de base courante. Dans
le tableau, on s´epare les variables de base des variables hors-base (voir le tableau 2.1).
24 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
variables de base x
B
variables hors-base x
H
A
B
= I
m
A
H
b
L
B
= 0 L
H
F
opt
Tab. 2.1 – M´ethode des tableaux
On utilise les formules de mise `a jour donn´ees par les Proposition (2.3) et (2.4). En traduisant ces
formules sur le tableau ci-dessus, la m´ethode des tableaux s’´ecrit alors :
1. choix de la variable entrante (e ∈ H) : e = argmax
j
_
(L
H
)
j
, avec (L
H
)
j
> 0
_
.
2. choix de la variable sortante (s ∈ B) : s = argmin
i
_
b
i
a
ie
, avec a
ie
= (A
H
)
ie
> 0
_
.
3. pour i = s, ligne[i] ←ligne[i] −
a
ie
a
se
ligne[s].
4. ligne[s] ←
1
a
se
ligne[s].
Remarque pratique importante. Compte tenu des relations (2.21)–(2.24), les transformations sur les
lignes concernent ´egalement le second membre et la ligne des coˆ uts r´eduits.
Au d´ebut de l’´etape suivante, on commence par permuter les variables entrante et sortante dans le tableau.
d) Exemple
Reprenons encore une fois le probl`eme de production (sous forme standard) :
max
(x
1
,x
2
)
[F(x
1
, x
2
) = 6x
1
+ 4x
2
] .
sous les contraintes :
_
_
_
3x
1
+ 9x
2
+ e
1
= 81
4x
1
+ 5x
2
+ e
2
= 55
2x
1
+ x
2
+ e
3
= 20
avec
_
x
1
, x
2
≥ 0
e
1
, e
2
, e
3
≥ 0
Une solution de base r´ealisable ´evidente est donn´ee par e
1
= 81, e
2
= 55, e
3
= 20 (variables de base) et
x
1
= x
2
= 0 (variables hors-base), ce qui donne une valeur de la fonction objectif F
opt
= 0.
Etape 1.
variables de base
variables
hors-base
e
1
e
2
e
3
x
1
x
2
b
1 0 0 3 9 81
0 1 0 4 5 55
0 0 1 2 1 20
0 0 0 6 4 F
opt
= 0
2.5. ALGORITHME DU SIMPLEXE 25
variable entrante : max
j
{(L
H
)
j
, (L
H
)
j
> 0} = 6 ⇒ x
(1)
e
= x
1
variable entrante.
variable sortante : x
(1)
e
= x
1
= min
_
81
3
,
55
4
,
20
2
_
=
20
2
⇒ x
(1)
s
= e
3
variable sortante.
L’inverse de la matrice de base est donn´ee par A
−1
B
1
=
_
_
1 0 −3/2
0 1 −2
0 0 1/2
_
_
.
Etape 2.
e
1
e
2
x
1
e
3
x
2
¯
b
1 0 0 -3/2 15/2 51
0 1 0 -2 3 15
0 0 1 1/2 1/2 10
0 0 0 -3 1 F
opt
= 60
variable entrante : max
j
{(L
H
)
j
, (L
H
)
j
> 0} = 1 ⇒ x
(2)
e
= x
2
variable entrante.
variable sortante : x
(2)
e
= x
2
= min
_
51
15/2
,
15
3
,
10
1/2
_
=
15
3
⇒ x
(2)
s
= e
2
variable sortante.
L’inverse de la matrice de base est donn´ee par A
−1
B
2
=
_
_
1 −5/2 0
0 1/3 0
0 −1/6 1
_
_
.
Cette ´etape correspond `a l’examen du sommet x = (x
1
= 10, x
2
= 0) de l’ensemble D
R
des solutions
r´ealisables (cf. Figure 2.1).
Etape 3.
e
1
x
2
x
1
e
3
e
2
¯
b
1 0 0 7/2 -5/2 27/2
0 1 0 -2/3 1/3 5
0 0 1 5/6 -1/6 15/2
0 0 0 -11/3 -1/3 F
opt
= 65
< 0 < 0
Tous les nouveaux coˆ uts r´eduits sont n´egatifs. L’optimum est donc atteint avec max F = 65.
Solution optimale x

:
_
e

1
= 27/2, x

2
= 5, x

1
= 15/2
e

3
= e

2
= 0
2.5.4 Finitude du simplexe
A chaque ´etape de l’algorithme du simplexe (en phase 2), on peut distinguer des cas remarquables qui
conduisent tous `a l’arrˆet de l’algorithme.
26 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
1. Si les coˆ uts r´eduits L
H
< 0, alors la solution de base r´ealisable courante est l’unique optimum.
D
R
F(x) = F
max
optimum unique
2. Si les coˆ uts r´eduits L
H
≤ 0, alors il y a deux cas remarquables :
i) si (L
H
)
e
= 0 et x
e
> 0, alors l’optimum n’est pas unique.
D
R
max
F(x) = F
optimums
ii) si (L
H
)
e
= 0 et x
e
= 0, alors l’optimum est unique (a priori). Dans ce cas, la base est dite
d´eg´en´er´ee c’est-`a-dire qu’il existe une variable de base nulle.
D
R
F(x) = F
max
optimum unique dégénéré
3. Si (L
H
)
e
> 0 et x
e
est non born´e alors la fonction objectif F n’est pas major´ee.
Une solution de base r´ealisable est dite d´eg´en´er´ee si au moins une des variables de base est nulle.
Th´eor`eme 2.3. Si au cours de l’algorithme du simplexe, aucune base rencontr´ee n’est d´eg´en´er´ee, alors
l’algorithme se termine en un nombre fini d’it´erations.
2.5. ALGORITHME DU SIMPLEXE 27
D´emonstration. A une it´eration donn´ee de l’algorithme, soit on d´etecte une fonction objectif non major´ee
(→arrˆet de l’algo.), soit elle est strictement croissante car
¯
F
opt
−F
opt
= (L
H
)
e
b
s
a
se
= (L
H
)
e
x
e
> 0 puisque
(L
H
)
e
> 0 et x
e
> 0 (par hypoth`ese, aucune base rencontr´ee n’est d´eg´en´er´ee). Par cons´equent, on ne
rencontre jamais une base d´ej`a rencontr´ee `a une it´eration pr´ec´edente. Le nombre de solution de base
r´ealisable ´etant fini (≤ C
m
n
), l’algorithme s’arrˆete n´ecessairement en un nombre fini d’it´erations.
Remarque : S’il existe une base d´eg´en´er´ee, alors on peut rencontrer un ´eventuel cyclage de l’algorithme :
on retrouve une base d´ej`a rencontr´ee et on boucle ind´efiniment. Pour traiter les cas de d´eg´en´erescence, on
peut appliquer la r`egle de Bland (1977) qui assure l’arrˆet de l’algorithme en un nombre fini d’it´erations.
Cette r`egle s’´enonce de la fa¸con suivante : Lorsque plusieurs variables sont susceptibles d’entrer ou de
sortir de la base, on choisit toujours celle qui a l’indice le plus petit.
2.5.5 Initialisation et variables artificielles : la phase 1
Pour un PL sous forme canonique pure avec les contraintes Ax ≤ b, x ≥ 0, on peut d´eterminer faci-
lement une solution de base r´ealisable dans le cas o` u b ≥ 0. En effet, sous forme standard les contraintes
deviennnent Ax+e = b, avec x, e ≥ 0 o` u e d´esignent les variables d’´ecarts. Une solution de base r´ealisable
´evidente est alors x = 0, e = b ≥ 0. Cependant, pour un PL sous forme standard, il n’y a pas toujours
de solution de base r´ealisable ´evidente. On va voir comment contruire des solutions de base r´ealisable :
c’est la phase d’initialisation du simplexe.
On consid`ere le PL sous forme standard
(PL)
_
¸
_
¸
_
max
x
_
F(x) = c

x
_
Ax = b
x ≥ 0
(2.27)
On ne suppose pas que la matrice A ∈ M
m×n
est de rang plein, ni qu’il existe bien des solutions
r´ealisables. Pour obtenir une solution de base r´ealisable ou bien pour d´etecter l’impossibilit´e, on in-
troduit un probl`eme de programmation lin´eaire auxiliaire pour des variables suppl´ementaires appel´ees
variables artificielles.
Soit a = (a
1
, · · · , a
m
) les variables artificielles et on consid`ere
(PLA)
_
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
_
min
(x,a)
m

i=1
a
i
Ax +a = b
x ≥ 0
a ≥ 0
(2.28)
On a la propri´et´e (´evidente) suivante.
Proposition 2.5. Un (PL) admet une solution r´ealisable si et seulement si le probl`eme auxiliaire (PLA)
admet une solution de base optimale avec a = 0.
Ce r´esultat fournit un proc´ed´e pratique pour obtenir une solution de base r´ealisable pour le probl`eme
(PL). On applique l’algorithme du simplexe au probl`eme auxiliaire (PLA). A la fin du simplexe, le coˆ ut
minimal est nul sinon on a d´etect´e l’impossibilit´e pour (PL) (i.e. D
R
= ∅). A la fin du simplexe sur
(PLA), si tout s’est d´eroul´e normalement (coˆ ut nul), on cherche `a ´eliminer de la base toutes les variables
artificielles. Deux cas de figure se pr´esentent alors :
1. On a r´eussi `a faire sortir toutes les variables artificielles. On passe `a la phase 2 du simplexe.
28 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
2. S’il reste des variables artificielles dans la base (base d´eg´en´er´ee) alors les lignes associ´ees `a ces
variables sont des contraintes redondantes qu’on ´elimine.
R´esum´e de la phase d’initialisation du simplexe (phase 1).
On note F
aux
la valeur de la fonction objectif du probl`eme auxiliaire (PLA) `a la fin du simplexe, c’est-`a-
dire F
aux
= min
(x,a)
m

i=1
a
i
.
1. Si F
aux
= 0 et a
j
∈ X
B
o` u X
B
d´esigne l’ensemble des variables de base pour (PLA), alors fin
normale de la phase 1. On passe `a la phase 2 du simplexe.
2. Si F
aux
= 0 et ∃a
j
∈ X
B
avec a
j
= 0, alors on supprime les lignes et colonnes associ´ees aux a
j
et
on passe `a la phase 2.
3. Si F
aux
> 0 alors pas de solution r´ealisable (D
R
= ∅).
2.6 Analyse post-optimale
L’analyse optimale permet de d´eterminer des intervalles de variations des donn´ees pour lesquels la base
optimale B

n’est pas modifi´ee. Elle permet de d´eterminer la sensibilit´e de (PL) par rapport aux donn´ees.
Une faible variation des donn´ees entraine-t-elle un changement important de la solution optimale ?
2.6.1 Analyse post-optimale de l’objectif
On regarde l’influence des coefficients de la fonction objectif sur l’optimum. On consid`ere un PL sous
forme standard qui admet une base optimale B

c’est-`a-dire un PL pour lequel l’algorithme du simplexe
se termine normalement. A l’optimum, on a la condition suivante d’optimalit´e :
Condition d’optimalit´e :
L

H
∗ = c

H
∗ −c

B
∗A

H
∗ ≤ 0 (2.29)
o` u A

H
∗ est la matrice hors-base obtenue `a l’optimum dans le tableau du simplexe. A une permutation
pr`es des colonnes, A se d´ecompose en A = (A
B
∗ | A
H
∗) et la matrice A

H
∗ est donn´ee par A

H
∗ = A
−1
B

A
H
∗.
La condition d’optimalit´e est une condition suffisante pour qu’une solution de base r´ealisable soit
optimale.
En effet, on a, pour tout x ∈ R
n
,
F(x) = F(x

) +L

H
∗x

H

o` u x

= (x

B
∗ | x

H
∗ = 0) est une solution de base r´ealisable associ´ee `a la base B

, avec x

B
∗ = A
−1
B

b. Par
cons´equent, sous la condition d’optimalit´e (2.29) c’est-`a-dire avec L

H
∗ ≤ 0, on a
F(x) ≤ F(x

), ∀x ≥ 0
c’est-`a-dire que x

est optimale.
On utilise la condition d’optimalit´e pour d´eterminer l’influence d’un coefficient de la fonction objectif
F. On remplace ce coefficient par un param`etre et on calcule la condition d’optimalit´e. On obtient alors
une condition sur ce param`etre. Cette condition est une condition n´ecessaire pour que la solution de base
optimale soit inchang´ee et une condition suffisante pour que la solution obtenue soit optimale.
Exemple. On reprend l’exemple du probl`eme de production de l’introduction et on veut regarder la
sensibilit´e de l’optimum par rapport au prix de vente unitaire du produit P
1
qui vaut 6. De combien
2.6. ANALYSE POST-OPTIMALE 29
peux-t-on faire varier ce prix, sans changer le plan de production ? On remplace le coefficient 6 par un
param`etre c
1
dans F :
c

B
∗ = (0, 4, c
1
), c

H
∗ = (0, 0).
On a trouv´e la solution de base optimale x

B
∗ = (e

1
, x

2
, x

1
), x
H
∗ = (e

3
, e

2
) avec e

1
= 27/2, x

2
= 5,
x

1
= 15/2 et F

= 65. De plus,
A

H
∗ =
_
_
7/2 −5/2
−2/3 1/3
5/6 −1/6
_
_
.
Les coˆ uts r´eduits valent donc
L

H
∗ = c

H
∗ −c

B
∗A

H
∗ =
_
8
3

5
6
c
1
,
c
1
6

4
3
_
.
La condition d’optimalit´e L

H
∗ ≤ 0 donne alors
16
5
≤ c
1
≤ 8.
Interpr´etation. Si on choisit
16
5
≤ c
1
≤ 8, la solution de base optimale est inchang´ee c’est-`a-dire que le
plan de production ne change pas. On a F

=
15
2
c
1
+ 20. Avec c
1
= 8 (la valeur max. permise pour c
1
),
on obtient F

= 80 soit un ´ecart de ∆F = 15.
2.6.2 Analyse post-optimale du second membre des contraintes
On examine `a pr´esent l’influence du second membre des contraintes sur la solution de base optimale.
Soit une base optimale B

. A l’optimum, une condition de faisabilit´e est satisfaite.
Condition de faisabilit´e :
x
B
∗ = A
−1
B

b ≥ 0. (2.30)
Pour d´eterminer l’influence d’un coefficient du second membre sur la solution optimale, on remplace
ce coefficient par un param`etre. On obtient ainsi un second membre d. On calcule alors la solution de
base x
B
∗ = A
−1
B

d et on impose la condition de faisabilit´e. On obtient de cette fa¸con une condition sur
le param`etre introduit. Cette condition est une condition n´ecessaire pour que la base optimale B

soit
inchang´ee. En revanche, les valeurs de la solution de base x
B
∗ changent, mais x
B
∗ est toujours une
solution de base r´ealisable optimale car on maintient les coˆ uts r´eduits L

H
∗ ≤ 0 inchang´es.
Remarque. On calcule A
−1
B

directement `a partir des tableaux du simplexe. Si l’algorithme du simplexe
se d´eroule en q +1 ´etapes, alors A
−1
B

= A
−1
B
q
×A
−1
B
q−1
×· · · ×A
−1
B
2
×A
−1
B
1
o` u la matrice A
−1
B
k
est d´etermin´ee
par (2.18) `a l’´etape k du simplexe.
Exemple. Avec l’exemple du probl`eme de production, on veut examiner la sensibilit´e de la solution
optimale par rapport `a la quantit´e disponible de main d’oeuvre qui vaut 55 unit´es. On introduit donc un
param`etre d
2
∈ R avec le second membre
d =
_
_
81
d
2
20
_
_
30 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
et on calcule x
B
∗ = A
−1
B

d avec A
−1
B

=
_
_
1 −5/2 7/2
0 1/3 −2/3
0 −1/6 5/6
_
_
. On obtient
x
B
∗ =
_
_
e

1
x

2
x

1
_
_
=
_
_
_
_
_
_
151 −
5
2
d
2
1
3
(d
2
−40)
1
6
(−d
2
+ 100)
_
_
_
_
_
_
. (2.31)
La condition de faisabilit´e x
B
∗ ≥ 0 donne alors :
40 ≤ d
2
≤ 60,4
Interpr´etation. Si on choisit 40 ≤ d
2
≤ 60,4 alors la solution de base r´ealisable x
B
∗ donn´ee par (2.31) est
optimale.
2.7 Dualit´e
2.7.1 Introduction et d´efinition
Revenons encore une fois au probl`eme de production de l’introduction. Supposons `a pr´esent qu’un
acheteur se pr´esente pour acheter toutes les ressources b
i
, 1 ≤ i ≤ m, de l’entreprise. Il propose `a
l’entreprise un prix unitaire y
i
, 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
´egal au profit c
j
qu’elle ferait en vendant ses produits. On doit donc avoir
3y
1
+ 4y
2
+ 2y
3
≥ c
1
= 6
9y
1
+ 5y
2
+ 1y
3
≥ c
2
= 4
y
1
, y
2
, y
3
≥ 0
(2.32)
De son cˆot´e, l’acheteur cherche `a minimiser le prix total d’achat. On se demande alors quels sont les prix
unitaires y
i
, 1 ≤ i ≤ m, que l’acheteur doit proposer `a l’entreprise en question pour qu’elle accepte de
vendre toutes ses ressources ? Le probl`eme peut donc s’´ecrire
min
y=(y
1
,y
2
,y
3
)
[G(y) = 81y
1
+ 55y
2
+ 20y
3
]
avec les contraintes (2.32).
D´efinition 2.5. Au programme lin´eaire primal
(PL)
max
x∈R
n
_
F(x) = c

x
_
_
Ax ≤ b
x ≥ 0
on associe le programme lin´eaire dual
(PLD)
min
y∈R
m
_
G(y) = b

y
_
_
A

y ≥ c
y ≥ 0
2.7. DUALIT
´
E 31
Comparaison primal/dual.
Primal Dual
max(F) ↔ min(G)
coefficient c de F ↔ second membre c
second membre b ↔ coefficient b de G
m contraintes in´egalit´es (≤) ↔ m contraintes de positivit´e
n contraintes de positivit´e ↔ n contraintes in´egalit´es (≥)
Si le probl`eme primal est sous forme standard avec les contraintes Ax = b alors on passe `a la forme
canonique pure en ´ecrivant les contraintes Ax = b ⇔
_
A
−A
_

_
b
−b
_
. De fa¸con g´en´erale, on a la
d´efinition suivante lorsque le probl`eme primal est sous forme canonique mixte :
Primal Dual
max
x∈R
n
_
F(x) = c

x
_
min
y∈R
m
_
G(y) = b

y
_
∀i ∈ I
1
,
n

j=1
a
ij
x
j
≤ b
i
∀i ∈ I
1
, y
i
≥ 0
∀i ∈ I
2
,
n

j=1
a
ij
x
j
= b
i
∀i ∈ I
2
, y
i
de signe quelconque
∀j ∈ J
1
, x
j
≥ 0 ∀j ∈ J
1
,
m

i=1
a
ij
y
i
≥ c
j
∀j ∈ J
2
, x
j
de signe quelconque ∀j ∈ J
2
,
m

i=1
a
ij
y
i
= c
j
2.7.2 Propri´et´es - Th´eor`emes de dualit´e
Proposition 2.6. Le dual du dual est le primal
D´emonstration. A partir de la d´efinition du dual d’un PL sous forme canonique pure :
min
y
_
G(y) = b

y
_
_
A

y ≥ c
y ≥ 0
⇐⇒
max
y
_
−G(y) = (−b)

y
_
_
−A

y ≤ −c
y ≥ 0
Si on prend le dual du dual, on a donc
min
x
_
(−c)

x
_
_
(−A

)

x ≥ (−b)

x ≥ 0
⇐⇒
max
x
_
c

x
_
_
Ax ≤ b
x ≥ 0
et on reconnait le probl`eme primal du d´epart.
On s’int´eresse `a pr´esent au lien entre les solutions de programmes lin´eaires en dualit´e.
32 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
Th´eor`eme 2.4. Th´ eor` eme faible de dualit´ e
Soit x une solution r´ealisable d’un (PL) sous forme canonique mixte et y une solution r´ealisable du
probl`eme dual (PLD). Alors :
1. F(x) ≤ G(y)
2. Si F(x) = G(y) alors x et y sont des solutions optimales de (PL) et (PLD) respectivement.
D´emonstration. Dans le cas o` u (PL) est sous forme canonique pure :
1. On a d’une part Ax ≤ b, x ≥ 0 et d’autre part A

y ≥ c, y ≥ 0. Par cons´equent,
F(x) = c

x ≤ (A

y)

x = y

Ax
.¸¸.
≤b
≤ y

b = G(y) car y ≥ 0
2. Soient x

et y

des solutions r´ealisables de (PL) et (PLD) respectivement telles que F(x

) = G(y

).
D’apr`es 1., pour toute solution r´ealisable x de (PL), on a F(x) ≤ G(y

) = F(x

) donc x

est une
solution r´ealisable optimale. Idem pour y

.
Th´eor`eme 2.5. Th´ eor` eme fort de dualit´ e
Si le probl`eme primal (PL) admet une solution r´ealisable optimale x

alors le probl`eme dual (PLD)
admet lui aussi une solution r´ealisable optimale y

et on a
F(x

) = G(y

).
D´emonstration. On suppose que (PL) est sous forme standard. Si (PL) admet une solution r´ealisable
optimale, il admet une solution de base r´ealisable optimale (cf. Th´eor`eme 2.2). On note B

la base
optimale et on d´esigne par x

la solution de base r´ealisable optimale : x

= A
−1
B

b. On choisit alors
y

= (A
−1
B

)

c
B
∗ .
Montrons que y

est une solution r´ealisable optimale pour le dual (PLD). On a
A

H
∗y

= A

H
∗(A
−1
B

)

c
B

=
_
A
−1
B

A
H

_

c
B

= c
H
∗ −L
H
∗.
Or, `a l’optimum tous les coˆ uts r´eduits sont n´egatifs ou nuls (L
H
∗ ≤ 0) donc A

H
∗y

≥ c
H
∗. Par d´efinition,
on a A

B
∗y

= c
B
∗ et donc on obtient
A

y

≥ c
y

de signe quelconque.
Par cons´equent, y

est une solution r´ealisable du dual (PLD). On remarquera que le probl`eme primal
(PL) ´etant mis sous forme standard, il n’y a pas de contrainte de positivit´e sur les variables y du dual.
Par ailleurs,
F(x

) = c

x

= c

B
∗A
−1
B

b
=
_
(A
−1
B

)

c
B

. ¸¸ .
y

_

b
= G(y

)
2.7. DUALIT
´
E 33
et donc par le Th´eor`eme faible de dualit´e, y

est optimale pour (PLD).
On a vu qu’il y avait 3 cas possibles (et seulement 3) pour le probl`eme primal (PL) :
(1) il existe (au moins) une solution optimale.
(2) l’ensemble D
R
des solutions r´ealisables n’est pas born´e et l’optimum est infini.
(3) pas de solution r´ealisable (D
R
= ∅).
Les mˆemes situations se retrouvent pour le probl`eme dual. Plus pr´ecis´ement, le lien entre les deux
probl`emes en dualit´e est donn´e par le r´esultat suivant.
Th´eor`eme 2.6. Etant donn´es un probl`eme primal (PL) et son dual (PLD), une et une seule des trois
situations suivantes peut se produire.
(a) les deux probl`emes poss`edent chacun des solutions optimales (`a l’optimum, les coˆ uts sont ´egaux).
(b) un des probl`emes poss`ede une solution r´ealisable avec un optimum infini, l’autre n’a pas de solution.
(c) aucun des deux probl`emes ne poss`ede de solution r´ealisable.
Il y a donc 3 situations (au lieu de 9) qui peuvent se r´esumer dans le tableau suivant :
Dual
(1) Solution optimale (2) Optimum infini (3) pas de solution
P
r
i
m
a
l
(1) Solution optimale (a) impossible impossible
(2) Optimum infini impossible impossible (b)
(3) pas de solution impossible (c) impossible
2.7.3 Conditions d’optimalit´e primal-dual (COPD)
On s’int´eresse au cas (a) o` u les probl`emes primal et dual poss`edent chacun des solutions optimales
(optimum fini). On peut alors calculer l’une `a partir de l’autre.
Th´eor`eme 2.7. Soient x et y des solutions r´ealisables respectivement du probl`eme primal (PL) et
du probl`eme dual (PLD). Alors x et y sont des solutions r´ealisables optimales si et seulement si les
conditions d’optimalit´e primal-dual (COPD) suivantes sont v´erifi´ees :
– Si une contrainte est satisfaite en tant qu’in´egalit´e 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 corres-
pondante de l’autre programme est une ´egalit´e.
Supposons que le probl`eme primal s’´ecrive sous forme canonique mixte. Alors x et y sont optimales
respectivement pour le probl`eme primal et le probl`eme dual si et seulement si on a les COPD :
_
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
_
• ∀i ∈ I
1
,
n

j=1
a
ij
x
j
= b
i
ou y
i
= 0
• ∀j ∈ J
1
,
m

i=1
a
ij
y
i
= c
j
ou x
j
= 0
34 CHAPITRE 2. PROGRAMMATION LIN
´
EAIRE
D´emonstration de la condition n´ecessaire du Th´eor`eme 2.7. Supposons pour simplifier que le probl`eme
primal (PL) soit mis sous forme canonique pure. Soient x et y des solutions r´ealisables optimales de (PL)
et (PLD) respectivement. On a donc Ax ≤ b, x ≥ 0 et A

y ≥ c, y ≥ 0. En introduisant les variables
d’´ecart e et ε respectivement pour (PL) et (PLD), on a
Ax +e = b
x ≥ 0, e ≥ 0
et
A

y −ε = c
y ≥ 0, ε ≥ 0
Dans ces conditions,
F(x) = c

x = (A

y −ε)

x = y

Ax −ε

x
G(y) = b

y = (Ax +e)

y = (Ax)

y +e

y = y

Ax +e

y.
Or d’apr`es le Th´eor`eme de la dualit´e forte, F(x) = G(y) donc on obtient
ε

x +e

y = 0 . (2.33)
Puisque x ≥ 0 et y ≥ 0, on a n´ecessairement
_
ε
i
x
i
= 0, ∀i
e
j
y
j
= 0, ∀j
ce qui donne les COPD (encore appel´ees ”relations d’exclusion”) :
_
Si ε
i
= 0 alors x
i
= 0
Si x
i
= 0 alors ε
i
= 0,
_
Si e
j
= 0 alors y
j
= 0
Si y
j
= 0 alors e
j
= 0.
La r´eciproque (condition suffisante) se d´emontre `a partir du Th´eor`eme faible de dualit´e.
Utilisation pratique des COPD.
La dualit´e et les COPD permettent souvent de v´erifier si une solution r´ealisable d’un (PL) est optimale
ou non, `a partir de la connaissance d’une solution optimale du probl`eme dual. Lorsque (PL) et (PLD)
ont des solutions r´ealisables optimales x

et y

respectivement, on a :

n

j=1
a
ij
x

j
< b
i
⇒ y

i
= 0

m

i=1
a
ij
y

i
> c
j
⇒ x

j
= 0
et
• y

i
> 0 ⇒
n

j=1
a
ij
x

j
= b
i
• x

j
> 0 ⇒
m

i=1
a
ij
y

i
= c
j
Exemple. Le probl`eme dual du probl`eme de production s’´ecrit
min
y
[G(y) = 81y
1
+ 55y
2
+ 20y
3
]
_
_
_
3y
1
+ 4y
2
+ 2y
3
≥ 6
9y
1
+ 5y
2
+ 1y
3
≥ 4
y
1
, y
2
, y
3
≥ 0
2.7. DUALIT
´
E 35
Le probl`eme primal (PL) admet la solution optimale :
e

1
= 27/2 > 0
COPD
=⇒ y

1
= 0
x

1
= 15/2 > 0
COPD
=⇒ 3y

1
+ 4y

2
+ 2y

3
= 6 (ε

1
= 0)
x

2
= 5 > 0
COPD
=⇒ 9y

1
+ 5y

2
+ y

3
= 4 (ε

2
= 0)
e

2
= e

3
= 0
En r´esolvant le syst`eme pour y

, on obtient la solution optimale du probl`eme dual :
y

1
= 0, y

2
= 1/3, y

3
= 7/3.

2

Table des mati`res e
1 Introduction g´n´rale e e 1.1 Quelques exemples et domaines d’applications 1.2 Formalisation . . . . . . . . . . . . . . . . . . 1.3 Contenu du cours . . . . . . . . . . . . . . . . 1.4 El´ments de bibliographie . . . . . . . . . . . e 5 5 8 8 8 11 11 11 12 13 13 13 13 14 14 16 17 17 19 20 25 27 28 28 29 30 30 31 33

de la R.O. . . . . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

2 Programmation lin´aire e 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Mod´lisation . . . . . . . . . . . . . . . . . . . . . . . . . e 2.1.2 R´solution graphique . . . . . . . . . . . . . . . . . . . . . e 2.2 Formes g´n´rales d’un programme lin´aire . . . . . . . . . . . . . e e e 2.2.1 Forme canonique mixte . . . . . . . . . . . . . . . . . . . 2.2.2 Forme canonique pure . . . . . . . . . . . . . . . . . . . . 2.2.3 Forme standard . . . . . . . . . . . . . . . . . . . . . . . . 2.2.4 Variable d’´carts . . . . . . . . . . . . . . . . . . . . . . . e 2.3 Solutions de base r´alisables . . . . . . . . . . . . . . . . . . . . . e 2.4 Propri´t´s g´om´triques des solutions de base r´alisables . . . . . ee e e e 2.5 Algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 L’algorithme du simplexe proprement dit : la phase 2 . . 2.5.2 M´thode des dictionnaires . . . . . . . . . . . . . . . . . . e 2.5.3 M´thode des tableaux . . . . . . . . . . . . . . . . . . . . e 2.5.4 Finitude du simplexe . . . . . . . . . . . . . . . . . . . . . 2.5.5 Initialisation et variables artificielles : la phase 1 . . . . . 2.6 Analyse post-optimale . . . . . . . . . . . . . . . . . . . . . . . . 2.6.1 Analyse post-optimale de l’objectif . . . . . . . . . . . . . 2.6.2 Analyse post-optimale du second membre des contraintes 2.7 Dualit´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 2.7.1 Introduction et d´finition . . . . . . . . . . . . . . . . . . e 2.7.2 Propri´t´s - Th´or`mes de dualit´ . . . . . . . . . . . . . ee e e e 2.7.3 Conditions d’optimalit´ primal-dual (COPD) . . . . . . . e

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3

4 ` TABLE DES MATIERES .

) des ph´nom`nes d’organisation qui traite de la maximisation d’un e e profit. o Deux ˆ de la ville sont reli´es entre elles par 1 pont. La question pos´e est la suivante : ` partir d’un point de d´part quelconque.O. Un premier exemple : Les ponts de K¨nigsberg (Euler 1735).O → interpr´tation des r´sultats → prise de d´cision. o La r´ponse (apport´e par Euler) est NON. existe-t-il un e a e chemin passant une et une seule fois par chaque pont et qui revient au point de d´part ? e Fig.O) → mod´lisation → e e e e e e r´solution par une m´thode de R.1 – La ville de K¨nigsberg et ses 7 ponts. a e Le sch´ma g´n´ral suivi par ces m´thodes est : Probl`me concret (de type R.O pourrait ˆtre la suivante : il s’agit d’un ensemble de m´thodes e e e d’analyse scientifique (maths et info. il n’existe pas de chemin eul´rien. e e e e e 1. Figure 1. on e e e constate que le graphe poss`de des noeuds (tous en fait !) reli´s ` un nombre impair d’arˆtes. d’une d´pense.O. D’autre part 6 autres ponts relient les ˆ ` ıles e ıles a la ville.Chapitre 1 Introduction g´n´rale e e Une d´finition possible de la R. d’un rendement ou bien de la minimisation d’un coˆt.1 Quelques exemples et domaines d’applications de la R. il y en a n´cessairement une autre (diff´rente) qui le quitte. 1. La preuve utilise un graphe : les arˆtes du graphe e e e repr´sentent les ponts et les sommets correspondent aux diff´rents endroits de la ville : les rives e e gauche et droite et les deux ˆ (cf. 1. e e 5 . Un tel chemin est appel´ chemin eul´rien. u e est avant tout un outil d’aide ` la d´cision. d’une performance. Alors n´cessairement e e e en chacun des noeuds du graphe il y a toujours un nombre pair d’arˆtes reli´es au noeud : s’il y a e e une arˆte qui arrive au noeud.2). La R. Par e e a e cons´quent. ıles Supposons qu’un tel chemin existe. Or.

Le web est mod´lis´ ` l’aide d’un e e ea graphe orient´ dont les sommets j repr´sentent les pages du Web et les arcs j → i les hyperliens.). 1. e e a Quels produits l’entreprise doit-elle fabriquer et en quelle quantit´ pour r´aliser le b´n´fice total e e e e le plus ´lev´ ? e e .6 ´ ´ CHAPITRE 1. Un probl`me de production e D´termination d’un plan optimal de fabrication : une entreprise fabrique plusieurs produits.2 – Graphe associ´ au probl`me des ponts de K¨nigsberg e e o 2.) en quantit´s limit´es.. e e e e e Chaque produit rapporte un certain b´n´fice (connu) ` l’entreprise.. Le probl`me de la d´termination des PageRank u e e e se ram`ne ` un probl`me aux valeurs propres de la forme µ = Aµ o` µ est le vecteur de tous les e a e u PageRank des pages web recens´es (environ 20 milliards. ce qui e exige des ressources particuli`res (mati`res premi`res. 1. personnel .. Graphe et PageRank Classement des pages Web utilis´ par les moteurs de recherches. INTRODUCTION GENERALE C A D B Fig.. Le principe est le e suivant : une page i est importante (score ´lev´) si beaucoup de pages importantes pointent vers i. e 3.3 – Exemple de pages Web et leurs PageRank Chaque page du web poss`de un score (PageRank) indiquant son importance. e e Fig. machines. e e Le score de la page i est d´fini par la valeur e µi = j→i 1 µj lj o` lj d´signe le nombre de liens partant de la page j.

maxx F (x) = c x = c1 x1 + · · · cn xn ← l’objectif Ax ≤ b ← les contraintes x≥0 4. Par exemple. Placement optimal de pi`ces 2D (Bin Packing). e n tˆches doivent ˆtre affect´es ` n machines (1 tˆche par machine). e e 7. a Trouver l’affectation qui minimise le coˆt total.1. e Un voyageur de commerce doit visiter n villes. QUELQUES EXEMPLES ET DOMAINES D’APPLICATIONS DE LA R. pièces Trouver le placement pour minimiser le nombre de plaques utilis´es. e a e plaque . e On dispose de plaques rectangulaires toutes identiques dans lesquelles on veut placer des pi`ces e rectangulaires sans chevauchement. Un probl`me d’affectation. e Une entreprise dispose de plusieurs d´pˆts (Di ) contenant chacun un certain nombre de containers. Le coˆt d’ex´cution de chaque a e e a a u e tˆche par chacune des machines est connu. e Trouver le plus court trajet passant par les n villes.. u Ce probl`me peut se mod´liser par programmation lin´aire en variables binaires mais il peut e e e ˆtre vu aussi comme un probl`me de flot maximal ` travers un graphe..O. e e a 6. e Ce probl`me pourra ˆtre ´tudi´ par des m´thodes heuristiques / m´thodes ´volutionnistes (algoe e e e e e e rithmes g´n´tiques). Ce probl`me sera r´solu par programmation dynamique. e e . Un probl`me de voyageur de commerce. e o disponibilit´ d´pˆts e e o M1 M2 M3 ↓ D1 5 3 4 8 D2 6 7 2 9 demande magasins → 4 5 8 Quelle est l’organisation des livraisons des containers pour minimiser le coˆt total de transport ? u Ce probl`me peut se mod´liser par programmation lin´aire en nombres entiers et sa r´solution e e e e peut se faire par S´paration et Evaluation. e 5. e o Diff´rents magasins (Mj ) commandent des containers. On connaˆ le coˆt de transport de chaque e ıt u d´pˆt aux magasins. Un probl`me de transport.1. 7 On verra que ce probl`me peut se mod´liser par programmation lin´aire qui s’´crit formellement e e e e sous la forme suivante. Les pi`ces ` placer ont des dimensions diff´rentes. La distance entre chaque ville est donn´e.

nonlin´aire. 1998/1985..).. Faure .3 Contenu du cours • Programmation lin´aire : aspects g´om´triques. e e e • X est l’ensemble des solutions possibles dites r´alisables (les contraintes). ` vitesse d’un million par seconde. e ouvrage r´cent qui contient un expos´ de m´thodes plus modernes que [1].) avec de nombreux d´veloppements pratiques tr`s e e e importants. e e • Graphes et R. probl`mes classiques). Picouleau . e e e e e algorithme A∗ .. Carlier.. tabou. prene e a drait 77094 ann´es . Chv´tal .8 ´ ´ CHAPITRE 1. 1. Les probl`mes stochastiques . m´thode du simplexe. [3] Optimisation discr`te – De la mod´lisation ` la r´solution par des logiciels de programmation e e a e math´matique.2 Formalisation Tous les probl`mes mentionn´s ci-dessus et pr´sent´s dans ce cours peuvent se formaliser de la fa¸on e e e e c suivante. Il est donc indispensable de trouver des m´thodes efficaces. a ouvrage tr`s didactique (style anglo-saxon.. un ”classique”. x ∈ X} • f : X → R est la fonction objectif.. Billionnet .. Chr´tienne. e Avec n = 20. INTRODUCTION GENERALE Tous les probl`mes pr´c´dents sont des probl`mes de combinatoire. quadratique. Tome 3 (Programmation lin´aire et extensions. Faure.O – Flot optimal dans un graphe – Probl`mes d’affectations (simples et multiples) e – Programmation en nombres entiers (PLNE) – Programmation dynamique • Introduction aux m´thodes heuristiques et ´volutionnistes : recuit simul´.. e contient des exercices classiques en lien avec [1].ne sont pas abord´s e a u e dans ce cours (processus de Markov. L’ensemble X est fini e mais en g´n´ral de tr`s grande taille. . pour le probl`me d’affece e e e e tation et du voyageur de commerce. Remarque. leurs e e e algorithmes). Lemaire. Roseaux : Bile e lionnet. ee [2] Exercices et probl`mes r´solus de recherche op´rationnelle : Tome 1 (Graphes : leurs usages. file d’attente. On cherche ` maximiser une fonction f sur un ensemble X donn´ : a e max{f (x). Ouvrage tr`s int´ressant.4 El´ments de bibliographie e [1] Pr´cis de recherche op´rationnelle – M´thodes et exercices d’application. dualit´. 2007. e e e 2008. algorithmes g´n´tiques. 1983. analyse de e e e e sensibilit´. dictionnaires.. il y a n! possibilit´s. e e e On peut envisager de fa¸on ´quivalente un probl`me de minimisation grˆce ` la relation c e e a a min f = − max(−f ). e e 1. e e e e e [4] Linear Programming. l’´num´ration des affectations (trajets) possibles.c’est-`-dire o` interviennent le hasard . Lemaire. 1. Par ex. f peut ˆtre lin´aire. ouvrage de r´f´rence.

4. 2003. Corman. e e passe en revue de nombreuses m´thodes contemporaines.´ 1. e 9 [7] Introduction ` l’algorithmique. Hˆche. de Werra . de la Recherche Op´rationnelle et des probabilit´s. contient des d´monstrations int´ressantes. e e e . Leiserson. Th´orie et algorithmes. 2002. e e e e [6] Programmation math´matique. ELEMENTS DE BIBLIOGRAPHIE [5] Recherche op´rationnelle pour ing´nieurs Tome I et II. 2008. e e e malgr´ son titre ( !). Liebling. Minoux . contenu assez math´matique . Rivest . a aspects algorithmiques des maths num´riques.

10 ´ ´ CHAPITRE 1. INTRODUCTION GENERALE .

mati`res premi`res.O. main e d’oeuvre.1 Introduction Mod´lisation e En R.1. Quelles quantit´s de produits P1 et P2 (valeurs non-n´cessairement enti`res) doit produire l’usine e e e e afin de maximiser le b´n´fice total venant de la vente des 2 produits ? e e • Choix des variables (les inconnues) : x1 et x2 sont respectivement les quantit´s des produits P1 et e P2 fabriqu´s (x1 . Par ailleurs. e e Exemple d’un probl`me de production. x2 ) = 6x1 + 4x2 ] . x2 ) = 6x1 + 4x2 . Dans un probl`me de programmation e e lin´aire (PL) les contraintes et l’objectif sont des fonctions lin´aires des variables. e e P1 ´quipement e main d’oeuvre mati`re premi`re e e 3 4 2 P2 9 5 1 disponibilit´ e 81 55 20 Les deux produits P1 et P2 rapportent ` la vente respectivement des b´n´fices de 6 euros et 4 euros par a e e unit´. Le probl`me se traduit donc par e (x1 . • D´termination des contraintes. les diff´rentes contraintes e e a e e auquelles sont soumises ces variables et l’objectif vis´ (optimisation). chaque e e e ressource est disponible en quantit´ limit´e (cf. e Une usine fabrique 2 produits P1 et P2 en utilisant un certain nombre de ressources : ´quipement. x2 ≥ 0. e 11 . x2 ∈ R).x2 ) max [F (x1 . tableau). Ces besoins sont indiqu´s dans le tableau ci-dessous. mod´liser un probl`me consiste ` identifier les variables intrins`ques. e – La disponibilit´ de chacune des ressources s’´crit : e e 3x1 + 9x2 ≤ 81 4x1 + 5x2 ≤ 55 2x1 + x2 ≤ 20 – Positivit´ des variables : x1 . Elle a e e vaut F (x1 .1 2.Chapitre 2 Programmation lin´aire e 2. e • Choix de la fonction objectif ` maximiser : La fonction objectif F correspond au b´n´fice total.

1). 2.x2 ) sous les contraintes :   3x1 + 9x2 ≤ 81 4x1 + 5x2 ≤ 55  2x1 + x2 ≤ 20 x1 . (x1 . Les contraintes a e o` apparaissent des in´galit´s correspondent g´om´triquement ` des demi-plans. on fait donc ”glisser” la droite (translation parall`le ` la direction de la droite) du haut e a vers le bas jusqu’` rencontrer l’ensemble des variables satisfaisant les contraintes. le probl`me de production se mod´lise sous la forme e e e e max [F (x1 . Le maximum de F sur a cet ensemble des contraintes est alors atteint. La constante pr´c´dente qui d´finie la droite doit ˆtre la plus grande possible e e e e (maximisation) et rencontrer l’ensemble des variables qui satisfont les contraintes. Cette observation est. On remarque que l’ensemble des contraintes (la partie hachur´e de la figure 2. e e e e . 6/4). un o r´sultat g´n´ral que l’on ´tabliera dans les sections suivantes. Pour d´terminer cette e valeur maximale. on peut envisager une r´solution graphique.6/4) x1 0 5 15/2 10 4x1 +5x =55 2 2x +x 2=20 1 Fig.1. x2 ) = 6x1 + 4x2 = constante. 5) et ce qui donne une valeur maximale max(F ) = 65.1 – R´solution graphique du probl`me de production e e cient directeur (−1. x2 ) = (15/2.x )=6x +4x = constante 1 2 1 2 10 optimum 3x +9x 2=81 1 5 (−1.1) est un polygˆne convexe e o et que le maximum de F est atteint en un sommet de ce polygˆne.1) 2. A la fonction objectif F correspond une droite F (x1 . en fait. x2 ≥ 0 (2.2 R´solution graphique e Dans le cas d’un (PL) ` deux variables. On obtient ainsi la solution optimale (x1 . PROGRAMMATION LINEAIRE En r´sum´. de coeffix2 F(x .12 ´ CHAPITRE 2. x2 ) = 6x1 + 4x2 ] . L’intersection de ces u e e e e a demi-plans forme l’ensemble des variables satisfaisant ` toutes les contraintes (la partie hachur´e de la a e figure 2.

cn ) ∈ Rn b = (b1 .   n max (x1 .2) L’ensemble I = I1 ∪ I2 est l’ensemble des indices de contraintes avec card(I) = m. 2.´ ´ ´ 2. il n’y a pas de contraintes d’´galit´ c’est-`-dire I2 = ∅ et J2 = ∅. bm ) ∈ Rm et la matrice A de taille m × n : a11  .··· . il y a m contraintes.2. xn ) ∈ Rn c = (c1 . Il y a n variables. aij xj = bi  j=1    contraintes de signes : ∀j ∈ J1 . xj de signe quelconque. .3) 2.. xj ≥ 0        ∀j ∈ J2 .  a12 ···  a1n . I1 = ∅ et J2 = ∅. amn am1 am2 · · · Un programme lin´aire (PL) est dit sous forme canonique pure s’il s’´crit : e e max F (x) = c x = c1 x1 + · · · cn xn x sous les contraintes : Ax ≤ b x≥0 (2.2 2. · · · .3 Forme standard Sous cette forme.2. (2. · · · . FORMES GENERALES D’UN PROGRAMME LINEAIRE 13 2.2. · · · .  n   contraintes in´galit´s : ∀i ∈ I1 . .1 Formes g´n´rales d’un programme lin´aire e e e Forme canonique mixte Il s’agit d’un probl`me de programmation lin´aire (encore appel´ programme lin´aire) ´crit sous la e e e e e forme suivante.2. e e a On note x = (x1 . . Autrement dit.  ... . e e aij xj = ai1 x1 + · · · + ain xn ≤ bi     j=1    n   contraintes ´galit´s : e e ∀i ∈ I2 .2 Forme canonique pure Sous cette forme. Un programme lin´aire (PL) est dit sous forme standard s’il s’´crit : e e max F (x) = c x x sous les contraintes : Ax = b x≥0 (2.xn ) F (x1 .4) . A= . xn ) = c1 x1 + · · · cn xn = j=1 cj xj  . L’ensemble J = J1 ∪ J2 est l’ensemble des indices des variables avec card(J) = n.

Si m = n. Si m < n. la solution est unique et vaut x = A−1 b. On a e n Ax ≤ b ⇔ j=1 aij xj + ei = bi . L’hypoth`se de rang plein n’est pas restrictive e e e car si rang(A) < m le syst`me Ax = b n’a pas de solution en g´n´ral. PROGRAMMATION LINEAIRE On dit de plus que le PL est sous forme standard simpliciale si A de taille m×n avec m ≤ n.14 ´ CHAPITRE 2. u e e ii) Soit un PL sous forme standard. il y en a une infinit´. D´monstration. Si rang(A) < m et b ∈ Im(A). i) Soit un PL sous forme canonique pure. u e e 2. e e e il y a des ´quations redondantes dans le syst`me Ax = b. tel e e que Ax = b et x ≥ 0. m n o` ei = bi − u j=1 aij xj ≥ 0 Ainsi.1. C’est aussi e e le nombre de colonnes de A lin´airement ind´pendantes. u ˜ 2..5) o` Im d´signe la matrice identit´ de taille m × m et H est une matrice de taille m × (n − m).1. · · · . a . On a Ax = b ⇔ Ax ≤ b ⇔ Ax ≥ b Ax ≤ b ⇔ −Ax ≤ −b A x≤ −A b −b ˜ ˜ ˜ ⇔ Ax ≤ b ˜ ˜ o` A est une matrice de taille 2m × n et b ∈ R2m .2. qu’on peut donc supprimer pour obtenir un e e nouveau syst`me de rang plein. e e On rappelle que le rang de A est le nombre maximal de lignes de A lin´airement ind´pendantes. se d´compose e en : A = Im | H (2. · · · . Tout PL sous forme standard s’´crit de fa¸on ´quivalente en un PL sous forme e c e canonique pure et inversement. Hypoth`se : On suppose d´sormais que la matrice A est de taille m × n avec rang(A) = m ≤ n . il n’y a rien ` maximiser. On appelle solution r´alisable tout vecteur x qui satisfait les contraintes du PL i. em ) sont appel´es variables d’´cart. Sous l’hypoth`se de rang plein.3 Solutions de base r´alisables e On consid`re d´sormais (sauf mention contraire) un PL toujours sous forme standard.e. dans ce e cas.4 Variable d’´carts e Proposition 2. ∀i = 1. e e D´finition 2. le syst`me Ax = b admet toujours des e e e solutions.. Ax ≤ b ⇔ x≥0        A | Im x e ≥0 x e =b ⇔ ˜x A˜ = b ˜ x≥0 o` e = (e1 .

de A sont lin´airement ind´pendantes. Autrement dit. e xB =A−1 b B .3. n = 5. e2 . 5} avec AB = 0 1 0 .´ 2. e1 . 4. est inversible. e e e D´finition 2. e 0 0 1 La solution de base r´alisable correspondante est x = (x1 . 81. Il y a au plus Cn solutions de base (toutes ne sont pas r´alisables). x2 . · · · . 20) . e2 . SOLUTIONS DE BASE REALISABLES 15 Remarque.2. n} un ensemble d’indices avec card(B) = m tel que les colonnes Aj . j ∈ B u e / x = (xB | xH ) Le syst`me Ax = b est ´quivalent ` e e a AB xB + AH xH = b. il y a des contraintes in´galit´s redondantes qu’on peut supprimer pour e e obtenir un syst`me de rang plein. j ∈ B) sont appel´es variables de base. x2 ≥ 0 e1 . Reprenons l’exemple du probl`me de production de l’introduction. 55.x2 ) max [F (x1 . sous les contraintes :   3x1 + 9x2 + e1 = 81 4x1 + 5x2 + e2 = 55  2x1 + x2 + e3 = 20 x1 . e xH m Remarque. B Exemple. l’hypoth`se de rang plein n’est pas non plus e restrictive car si rang(A) < m. j ∈ B) sont appel´es variables hors-base. Propri´t´s des solutions de base r´alisables : Si x = (xB | xH ) est une solution de base r´alisable e e e e alors xH = 0 et xB = A−1 b. e j ∈ B. – Sous l’hypoth`se de rang plein. rang(A) = m = 3. e • Les variables xH = (xj . la matrice carr´e AB form´e des colonnes e e e e j . A • Les variables xB = (xj . e – Quitte ` renum´roter les indices. On dit que l’ensemble B des indices est une base. j ∈ B. il existe toujours une base non vide. x2 ) = 6x1 + 4x2 ] . 0 .6)  1 0 0 On a m = 3. Soit B ⊂ {1. Par la relation pr´c´dente et du fait que la matrice AB est inversible. e3 ) = ( 0. e3 ≥ 0  (2. e D´finition 2.3. Pour la forme canonique pure avec Ax ≤ b. le PL s’´crit e e (x1 . Une base est donn´e par B = {3. On dit que x = (xB | xH ) e est solution de base associ´e ` la base B si e a xH = 0. / e Remarques. on peut toujours ´crire les d´compositions par blocs : a e e e A = (AB | AH ) o` AH est la matrice form´e des colonnes Aj . Sous forme standard (en e introduisant des variables d’´cart). on peut fixer les variables hors-base e e et les variables de base sont alors compl`tement d´termin´es.

e e x3 3 2 1 1 1 2 x1 0 2 x2 Fig.4 Propri´t´s g´om´triques des solutions de base r´alisables e e e e e DR = {x ∈ Rn | Ax = b. L’ensemble DR = x ∈ R3 | 2x1 + 3x2 + x3 = 3. 2. il suffit de se restreindre aux solutions de base r´alisables e e (les sommets de DR ). Proposition 2. λx + (1 − λ)y ∈ E pour tout 0 ≤ λ ≤ 1. (2. L’ensemble DR des solutions r´alisables est un poly`dre convexe.4. . est atteint en au moins un e e sommet de DR . x3 ≥ 0 est repr´sent´ sur la figure 2. x2 . y = z tels que x = λy + (1 − λ)z avec 0 < λ < 1. Un point x ∈ DR est un sommet (ou point extrˆme) si et seulement s’il n’existe pas e e y.2. Tout se passe donc avec les solutions de base. Th´or`me 2. e e e On a vu sur l’exemple de l’introduction que la solution ´tait atteinte sur un sommet de DR et correse pond donc ` une solution de base. ferm´.16 ´ CHAPITRE 2.1.2. y ∈ E. x est une solution de base r´alisable si et seulement si x est un sommet de DR . e Commen¸ons par rappeler les notions de poly`dre et d’ensemble convexe : c e • Un poly`dre Q de Rn est d´fini par Q = {x ∈ Rn | Ax ≤ b} o` A est une matrice m × n. PROGRAMMATION LINEAIRE 2. e e e Exemple. Pour r´soudre un PL sous forme standard.7) On note l’ensemble des solutions r´alisables d’un PL sous forme standard. L’optimum de la fonction objectif F sur DR . x1 . e e u • Un ensemble E est dit convexe si ∀x. z ∈ DR . x ≥ 0} .2 – Poly`dre des solutions r´alisables e e D´finition 2. Le r´sultat g´n´ral s’´nonce ainsi : a e e e e Th´or`me 2.2. s’il existe.

e m Remarque. ce cas est exclu. On va r´duire ainsi le nombre de solution de base ` explorer et donc le nombre de e a syst`me lin´aire ` r´soudre. avec n = 20 et m = 10. e e e • Phase 2 .5 Algorithme du simplexe La m´thode du simplexe est due ` G. On a vu qu’il y a au plus Cn solutions de base r´alisables. e a • Phase 1 . on a 3 · 108 op´rations. On obtient donc B F (x) = c x = cB xB + cH xH avec c = (cB | cH ) −1 = cB AB (b − AH xH ) + cH xH −1 = cB AB b + (cH − cB A−1 AH )xH B . On a b = Ax = AB xB + AH xH e avec AB inversible donc xB = A−1 (b − AH xH ).Initialisation : Trouver une solution de base r´alisable (ou bien d´tecter l’impossibilit´).5. Par exemple. inversible. ALGORITHME DU SIMPLEXE 17 L’ensemble DR n’est pas n´cessairement born´. on effectue de l’ordre de m3 Cn op´rations. Dantzig (1947). DR = ∅ : le PL n’a pas de solution. e e 2. Si DR e est born´.5. e 3.Progression : On passe d’un sommet ` un sommet voisin pour augmenter la fonction a objectif (ou bien on d´tecte une fonction objectif F non major´e). On d´compose ´galement (` la e e a mˆme permutation pr`s des composantes) e e x = (xB | xH ) Le but est de trouver une autre base B ∗ et une solution de base x∗ associ´e telles que e 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 e a entrante) et faire sortir ` la place une variable de base (variable sortante). Si on explore toutes les une m´thode directe de type Gauss/LU requi`re de l’ordre de m e e e m solutions de base et que l’on compare les coˆts correspondants. 2. A une permutation pr`s e des colonnes . En fait pour un PL. e e a e 2. DR = ∅ et la fonction objectif F est major´e sur DR : le PL admet une solution optimale (non e n´cessairement unique). DR = ∅ mais la fonction objectif F n’est pas major´e sur DR : le maximum de F vaut +∞. 3 situations (et seulement 3) e e peuvent se produire : 1. on va explorer seulement les sommets qui permettent d’augmenter la e fonction objectif. on doit r´soudre un syst`me lin´aire (xB = A−1 b). Pour d´terminer une solution e e de base. e e Dans la m´thode du simplexe. Elle comporte 2 phases. correspondant aux variables de base et AH une e matrice de taille m × (n − m). a a) Calcul des coˆ ts r´duits et variable entrante u e On ´crit la fonction objectif F avec les variables de base/hors-base.2. correspondant aux variables hors-base. la matrice A peut s’´crire e A = (AB | AH ) avec AB une matrice carr´e de taille m × m. u e Ce nombre est vite tr`s grand avec n et m.1 L’algorithme du simplexe proprement dit : la phase 2 e On dispose d’une solution de base r´alisable x d’un PL sous forme standard. La r´solution d’un syst`me lin´aire par e e e e e e B 3 op´rations.

la variable hors-base ee a qui a le coˆt r´duit positif le plus grand possible. PROGRAMMATION LINEAIRE Or xB = A−1 b (car xH = 0) et cB A−1 b = c x = F (x) donc B B F (x) = F (x) + (cH − cB A−1 AH )xH . On choisit e tel que / (LH )e = max (LH )j . on peut augmenter xe autant qu’on veut. on aura toujours la positivit´ de la variable de e base xB . l’algorithme s’arrˆte. Ax = b ⇔ ⇔ ⇔ ⇔ o` l’on a not´ u e z = A−1 Ae ∈ Rm . e – Dans le cas contraire (i. u e – Si les coˆts r´duits sont tous n´gatifs i. zi > 0 (2. En maintenant la e relation Ax = b. La valeur de la variable entrante est donn´e par e xe = min i AB xB + Ae xe = b o` Ae d´signe la e-i`me colonne de A u e e −1 ex ) xB = AB (b − A e xB = xB − A−1 Ae xe B xB = xB − zxe (xB )i . dans ce cas. on a int´rˆt ` faire entrer dans la base. Cette variable sera alors la a variable sortante.18 ´ CHAPITRE 2. pour avoir la positivit´ (xB )i −zi xe ≥ 0 pour tout i.11) – Si z ≤ 0. e – Sinon (i. B Le vecteur LH = cH − cB A−1 AH B s’appelle vecteur des coˆts r´duits.e. xs = 0 et xB ≥ 0. Dans ce e cas.8) (2. zi > 0 zi (2. (LH )j > 0 j (2. On choisit (xB )i s = argmin . le maximum de F vaut +∞.13) . on choisit la variable e sortante pour laquelle le rapport (xB )i /zi pour i = 1. Si on traite d’un probl`me de minimisation c’est-`-dire avec min F (x). est le plus petit possible. u e On note e ∈ B l’indice de la variable entrante. on augmente xe jusqu’` annuler une des variables de base. (LH )j > 0 j (2. La fonction objectif n’est pas major´e sur DR i. LH ≤ 0. il n’est alors pas possible d’augmenter la fonction u e e objectif F : l’algorithme se termine normalement c’est-`-dire qu’on a trouv´ une solution de base a e r´alisable optimale.12) i zi On a.10) Remarque.9) ce qu’on note par e = argmax (LH )j . alors la variable e a entrante xe est d´termin´e par l’indice e e e = argmin (LH )j . · · · . m avec zi > 0. (LH )j < 0 j b) Variable sortante Une fois l’indice e choisi. ∃(LH )i > 0).e. il faut d´terminer quelle variable doit quitter la base. B (2.e. il existe zi > 0).e.

5. B∗ −1 3.2 M´thode des dictionnaires e On consid`re un PL sous forme standard. On d´termine e la variable sortante en choisissant la valeur de la variable entrante la plus grande possible tout en maintenant les conditions de positivit´ sur les variables de base xB . e1 . x2 .). e1 = 81. On veut obtenir une nouvelle solution de base r´alisable en d´terminant des variables entrante et sortante pour augmenter F . e3 = 20 avec F = 0. On obtient un syst`me lin´aire qu’on appelle dictionnaire. e2 . x2 ≥ 0. e B – Calcul des coˆts r´duits : LH = cH − cB A−1 AH u e B – Si LH ≤ 0 alors xB est une solution optimale (→ arrˆt de l’algo. – Solution de base r´alisable initiale : e x1 = 0. e2 = 55. e3 ) e max F (x1 . on calcule les variables de e e e base r´alisables xB = A−1 b ≥ 0. c’est-`-dire de la forme e a maxx F (x) = c x Ax = b x≥0 On se place ` une it´ration donn´e dans la m´thode du simplexe. e2 . On e e choisit alors la variable entrante comme la variable de xH qui fait le plus augmenter F .2. zi 4. variable sortante : Calcul de z = AB Ae puis s = argmini 2. – Dictionnaire : On exprime les variables de base e1 . zi > 0 .5. e 2. Le principe de la m´thode e e e des dictionnaires est le suivant : Principe de la m´thode des dictionnaires : on exprime les variables de base xB ainsi que F en e fonction des variables hors-base xH . ALGORITHME DU SIMPLEXE R´sum´ de la m´thode du simplexe en phase 2 (progression) e e e 19 1. e1 = 81 − 3x1 − 9x2 e2 = 55 − 4x1 − 5x2 e3 = 20 − 2x1 − x2 F = 6x1 + 4x2 . variable entrante : e = argmaxj (LH )j . e3 ≥ 0 Etape 1. On obtient une nouvelle base B ∗ et une nouvelle matrice AB ∗ dans laquelle la colonne Ae remplace la colonne As . e Exemple du probl`me de production. On dispose d’une base B ainsi que a e e e des variables de base xB et des variables hors-base xH . e2 . Calcul de A−1 et retour en 1. – Calcul des variables de base r´alisables : ´tant donn´ A = (AB | AH ). (LH )j > 0 (xB )i . x2 = 0. x2 ) = 6x1 + 4x2   3x1 + 9x2 + e1 = 81   4x1 + 5x2 + e2 = 55  2x1 + x2 + e3 = 20   x1 . e3 en fonction des variables hors-base x1 . Le probl`me de production de l’introduction s’´crit sous forme e e e standard (variables d’´cart e1 .

e∗ = 0. e3 ≥ 0 ⇒ x1 = min{ >0 81 55 20 . >0 – Variable sortante xs : on maintient les contraintes e1 ≥ 0. On utilise la 3`me ´quation du dictionnaire de l’´tape 1 et on substitue e e e x1 dans les autres relations. e3 = 0 avec F = 65. 2 2 Etape 3. Etape 2. De cette fa¸on. e3 = 0 avec F = 60. PROGRAMMATION LINEAIRE – Variable entrante xe : max{6. e∗ = 0 avec max F = 65.20 ´ CHAPITRE 2. } = 5 ⇒ xs = e2 . e2 ≥ 0 ⇒ x2 = min{ >0 10 51 15 . e1 = . . e2 ≥ 0. } = 10 ⇒ xs = e3 . 1 3 2 2 2 2. la r´solution d’un syst`me AB xB = b est e c e e . On dit e e ”qu’on maintient l’identit´ sous la base”. −3} = 1 ⇒ xe = x2 . 3 4 2 – Nouvelle Solution de base r´alisable : e x1 = 10 . x2 = 5 . x2 = 5. e1 ≥ 0. e∗ = . – Dictionnaire : On exprime la nouvelle variable de base x2 en fonction des variables hors-base e2 et e3 . e2 = 15. e2 = 0 . .3 M´thode des tableaux e Les calculs pr´c´dents peuvent se simplifier si on s’arrange pour avoir toujours ”AB = Id ”. 4} = 6 ⇒ xe = x1 . – Dictionnaire : On exprime la nouvelle variable de base x1 en fonction de x2 et e3 (e3 est une nouvelle variable hors-base). 1/2 15/2 3 – Nouvelle Solution de base r´alisable (´tape 2) : e e x1 = 15 27 . >0 – Variable sortante xs : on maintient x1 ≥ 0.5. 1 x1 = 10 − 1 x2 − 2 e3 2 e1 = 81 − 3(10 − 1 x2 − 1 e3 ) − 9x2 2 2 1 e2 = 55 − 4(10 − 2 x2 − 1 e3 ) − 5x2 2 1 F = 6(10 − 1 x2 − 2 e3 ) + 4x2 2 ce qui donne le dictionnaire : 1 x1 = 10 − 2 x2 − 1 e3 2 e1 = 51 − 15 x2 + 3 e3 2 2 e2 = 15 − 3x2 + 2e3 F = 60 + x2 − 3e3 – Variable entrante xe : max{1. 1 x2 = 5 − 3 e2 + 2 e3 3 x1 = e1 = 15 2 27 2 1 + 6 e2 − 5 e3 6 + 5 e2 − 7 e3 2 2 7 F = 65− 1 e2 − 3 e3 3 Tous les coˆts r´duits sont ≤ 0 donc on ne peut plus augmenter F : l’optimum est atteint et la u e solution optimale est x∗ = 1 15 ∗ 27 . x2 = 0. On utilise la 3`me ´quation du dictionnaire de l’´tape 2 et on substitue x2 dans les autres e e e relations. e1 = 51.

e 1 −a1. avec (LH )j > 0 j (2..18) . .. et on dispose d’une solution de base r´alisable x = (xB | xH ) u e e avec xB = b et xH = 0. . .5.14) s = argmin i bi . 1/as. . (2..e /as. puisque xB = b.2. la nouvelle base B et le nouvel ensemble des e ˜ valent indices hors-base H B = B + {e} − {s} (2. 0 −am.17) H = H − {e} + {s} La nouvelle matrice s’´crit alors e A = AB | AH . la matrice AB est inversible et on a : e (s) ↓  1   .      Puisque as. 1 as. avec aie = (AH )i.16) Une fois les variables entrante et sortante choisies. ALGORITHME DU SIMPLEXE 21 imm´diate.9)) se simplifient en : u e LH = cH − cB AH et les indices e et s des variables entrante et sortante sont donn´es par : e e = argmax (LH )j . Dans ce cas. 0       . e a) Retour ` un syst`me simplicial et mise ` jour des matrices de base a e a ˜ Apr`s permutation des variables entrante et sortante.e > 0. .  .  .e .e /as. on doit retrouver un syst`me simplicial.e . On va donc chercher ` travailler avec la forme simpliciale de PL (cf.     1    . e a On suppose donc que la matrice A se d´compose en e A = (Im | AH ) o` Im est la matrice identit´ d’ordre m. .. am.e . . les coˆts r´duits (cf. 0  A−1 e B (2.15) avec (2.e 1 .e > 0 aie xe = bs . .e =    1     . . . ase (2. (2.5)). 1 a1.   . e e La matrice AB est donn´e par : e e (s) ↓       AB =  e      0 1 .

22) b) Mise ` jour des coˆ ts r´duits a u e On a F (x) = Fopt + LH xH o` Fopt = F (x) avec x une solution de base r´alisable associ´e ` la base u e e a B.22 Plus pr´cis´ment. e Proposition 2.  si i = s ase On factorise alors la matrice A par A = AB Im | AH e e B avec (2. ∀i = s e e ase H s i (2. ase ∀i = s (2. On a F (x) = Fopt + L e xH avec e H Fopt = Fopt + (LH )e bs (2.20) On obtient ainsi un syst`me sous forme simplicial. Proposition 2.21) 1 AH s . PROGRAMMATION LINEAIRE ij = δij si j = s et A−1 e B is  a  − ie . pour tout i = 1.3. e e A−1 e B ´ CHAPITRE 2. AH = e e ase s et de mˆme avec le second membre : e bi = bi − bs = bs . e (2.23) . · · · . m. e B Im | AH x = b.19) AH = A−1 AH . e En tenant compte de la forme explicite de A−1 donn´ par (2. ase aie bs . On a les relations pour les e matrices aie AH = AH i − A e .18). on a les formules suivantes pour le e e B calcul de AH . si i = s  ase =  1 . On veut exprimer F dans la nouvelle base B = B + {e} − {s} et avec le nouvel ensemble d’indices des variables hors-base H = H − {e} + {s}. On obtient Ax = b ⇔ A x = b ⇔ AB Im | AH x = b e e ⇔ avec le second membre b = A−1 b . e e e e On note x la nouvelle solution de base apr`s permutation des variables entrante et sortante.4. On note [M ]i la i-`me ligne (vecteur) d’une matrice M .

2. en ´crivant la relation Ax = b sur e la composante s : xB + AH xH = b ce qui donne xs + j∈H asj xj = bs .5.26) donne xe = on obtient bs − ase e j∈H asj bs xj . alors la fonction objectif s’´crit e F (x) = Fopt + L x = Fopt + j∈H Lj xj Le =(LH )e = Fopt + j∈H−{e}+{s} Lj xj + Lj xj + (LH )e xe e j∈H xe − Ls xs =0 = Fopt + = Fopt + LH xH + (LH )e xe . En injectant l’expression de xe dans (2. on obtient : e e e F (x) = Fopt + (LH )e bs + LH − (LH )e AH e e e Fopt e Le H s xH . (2. e sj = s o` AH u e s d´signe la s-i`me ligne de AH .25). Si on note e L = (0 | LH ) ∈ Rn . On ´crit alors e xs + j∈H−{e} asj xj + ase xe = bs . En notant bs = et en remarquent que AH e ase ase xe = bs − AH e xH . ase La relation (2. e e e D´monstration. ALGORITHME DU SIMPLEXE 23 L e = L e − (LH )e AH e H H s (2. on s´pare les variables de base des variables hors-base (voir le tableau 2. les coˆts r´duits et la valeur Fopt de la fonction objectif sur la solution de base courante. e c) Mise en place de la m´thode des tableaux e A chaque ´tape de la m´thode des tableaux.1).24) avec bs = bs et o` AH u e ase s d´signe la s-i`me ligne de AH . on regroupe dans un seul tableau. e . Dans u e le tableau.25) On exprime ensuite xe par rapport aux nouvelles variables hors-base. on obtient xs + j∈H−{e} asj xj = j∈H−{e}+{s} asj xj = e j∈H asj xj . la matrice A et second e e membre b. asj .26) Puisque ass = 1 (car AB = Im ). e e (2.

PROGRAMMATION LINEAIRE variables hors-base xH AB = Im AH b LB = 0 LH Fopt Tab. e u e Au d´but de l’´tape suivante.x2 ) max [F (x1 . avec aie = (AH )ie > 0 .24 variables de base xB ´ CHAPITRE 2. Etape 1. j bi . 3. e e d) Exemple Reprenons encore une fois le probl`me de production (sous forme standard) : e (x1 . sous les contraintes :   3x1 + 9x2 + e1 = 81 4x1 + 5x2 + e2 = 55  2x1 + x2 + e3 = 20 avec x1 . e3 = 20 (variables de base) et e e e x1 = x2 = 0 (variables hors-base). ligne[i] ← ligne[i] − ase 1 4. pour i = s. x2 ≥ 0 e1 .21)–(2. les transformations sur les lignes concernent ´galement le second membre et la ligne des coˆts r´duits. avec (LH )j > 0 . choix de la variable sortante (s ∈ B) : s = argmin i aie aie ligne[s].1 – M´thode des tableaux e On utilise les formules de mise ` jour donn´es par les Proposition (2. variables de base variables hors-base e1 1 0 0 0 e2 0 1 0 0 e3 0 0 1 0 x1 3 4 2 6 x2 9 5 1 4 b 81 55 20 Fopt = 0 . x2 ) = 6x1 + 4x2 ] . En traduisant ces a e formules sur le tableau ci-dessus. e2 . e2 = 55. ligne[s] ← ligne[s]. 2.3) et (2. Compte tenu des relations (2. 2.24). ase Remarque pratique importante. ce qui donne une valeur de la fonction objectif Fopt = 0. la m´thode des tableaux s’´crit alors : e e 1. e3 ≥ 0 Une solution de base r´alisable ´vidente est donn´e par e1 = 81.4). on commence par permuter les variables entrante et sortante dans le tableau. choix de la variable entrante (e ∈ H) : e = argmax (LH )j .

5. 0 1/2 (1) e3 -3/2 -2 1/2 -3 x2 15/2 3 1/2 1 (2) b 51 15 10 Fopt = 60 variable entrante : max{(LH )j . (LH )j > 0} = 6 ⇒ xe = x1 variable entrante. e1 1 0 0 0 x2 0 1 0 0 x1 0 0 1 0 e3 7/2 -2/3 5/6 -11/3 <0 e2 -5/2 1/3 -1/6 -1/3 <0 b 27/2 5 15/2 Fopt = 65 Tous les nouveaux coˆts r´duits sont n´gatifs. a e . 3 4 2 = L’inverse de la matrice de base est donn´e par A−1 e B1 Etape 2. e1 1 0 0 0 e2 0 1 0 0 x1 0 0 1 0 20 2  1 = 0 0 ⇒ xs = e3 variable sortante.1). x∗ = 5. x2 = 0) de l’ensemble DR des solutions e a r´alisables (cf. ⇒ xs = e2 variable sortante. . Figure 2. (LH )j > 0} = 1 ⇒ xe = x2 variable entrante. u e e Solution optimale x∗ : e∗ = 27/2.2. . j (1) 25 variable sortante : (1) xe = x1 = min 81 55 20 . j variable sortante : xe = x2 = min 15 51 15 10 (2) = .4 Finitude du simplexe A chaque ´tape de l’algorithme du simplexe (en phase 2). L’optimum est donc atteint avec max F = 65. 15/2 3 1/2  3  1 −5/2 0 L’inverse de la matrice de base est donn´e par A−1 = 0 1/3 0 . e Etape 3.5. on peut distinguer des cas remarquables qui e conduisent tous ` l’arrˆt de l’algorithme. x∗ = 15/2 1 2 1 e∗ = e∗ = 0 3 2 2. e B2 0 −1/6 1 (2) Cette ´tape correspond ` l’examen du sommet x = (x1 = 10. ALGORITHME DU SIMPLEXE variable entrante : max{(LH )j .  0 −3/2 1 −2  .

alors la solution de base r´alisable courante est l’unique optimum. Si au cours de l’algorithme du simplexe. Si (LH )e > 0 et xe est non born´ alors la fonction objectif F n’est pas major´e. PROGRAMMATION LINEAIRE 1. aucune base rencontr´e n’est d´g´n´r´e.26 ´ CHAPITRE 2. alors e e e e e e e l’algorithme se termine en un nombre fini d’it´rations. u e e optimum unique F(x) = F max DR 2. e e e e a optimum unique dégénéré F(x) = F max DR 3. e e Une solution de base r´alisable est dite d´g´n´r´e si au moins une des variables de base est nulle. e e e e e Th´or`me 2.3. optimums F(x) = F max DR ii) si (LH )e = 0 et xe = 0. Si les coˆts r´duits LH < 0. alors il y a deux cas remarquables : u e i) si (LH )e = 0 et xe > 0. alors l’optimum est unique (a priori). Dans ce cas. e . Si les coˆts r´duits LH ≤ 0. la base est dite d´g´n´r´e c’est-`-dire qu’il existe une variable de base nulle. alors l’optimum n’est pas unique.

27) On ne suppose pas que la matrice A ∈ Mm×n est de rang plein. Un (PL) admet une solution r´alisable si et seulement si le probl`me auxiliaire (PLA) e e admet une solution de base optimale avec a = 0. l’algorithme s’arrˆte n´cessairement en un nombre fini d’it´rations. aucune base rencontr´e n’est d´g´n´r´e). e ≥ 0 o` e d´signent les variables d’´carts. on ea e e e e e peut appliquer la r`gle de Bland (1977) qui assure l’arrˆt de l’algorithme en un nombre fini d’it´rations. Cependant. Pour obtenir une solution de base r´alisable ou bien pour d´tecter l’impossibilit´.28)  Ax + a = b   x≥0    a≥0 On a la propri´t´ (´vidente) suivante. on ine e e e e e troduit un probl`me de programmation lin´aire auxiliaire pour des variables suppl´mentaires appel´es e e variables artificielles. A la fin du simplexe. sous forme standard les contraintes e u deviennnent Ax+e = b. Par cons´quent. Soit a = (a1 . e a a . e e e Cette r`gle s’´nonce de la fa¸on suivante : Lorsque plusieurs variables sont susceptibles d’entrer ou de e e c sortir de la base. Deux cas de figure se pr´sentent alors : e 1. On a r´ussi ` faire sortir toutes les variables artificielles. DR = ∅). on choisit toujours celle qui a l’indice le plus petit. ALGORITHME DU SIMPLEXE 27 D´monstration. e = b ≥ 0. soit elle est strictement croissante car Fopt −Fopt = (LH )e e ase (LH )e > 0 et xe > 0 (par hypoth`se. A la fin du simplexe sur e e e (PLA). on peut d´terminer facie lement une solution de base r´alisable dans le cas o` b ≥ 0. avec x. En effet. si tout s’est d´roul´ normalement (coˆt nul). il n’y a pas toujours e de solution de base r´alisable ´vidente.a)   i=1 (P LA) (2.5 Initialisation et variables artificielles : la phase 1 Pour un PL sous forme canonique pure avec les contraintes Ax ≤ b. Pour traiter les cas de d´g´n´rescence. On consid`re le PL sous forme standard e   max F (x) = c x  x  Ax = b  x≥0 (P L) (2. ni qu’il existe bien des solutions r´alisables. Une solution de base r´alisable u e e e ´vidente est alors x = 0.).5. Ce r´sultat fournit un proc´d´ pratique pour obtenir une solution de base r´alisable pour le probl`me e e e e e (PL). alors on peut rencontrer un ´ventuel cyclage de l’algorithme : e e ee e on retrouve une base d´j` rencontr´e et on boucle ind´finiment. On applique l’algorithme du simplexe au probl`me auxiliaire (PLA). On va voir comment contruire des solutions de base r´alisable : e e e c’est la phase d’initialisation du simplexe. e e e e e Remarque : S’il existe une base d´g´n´r´e.5. · · · . pour un PL sous forme standard. ee e Proposition 2. On passe ` la phase 2 du simplexe. on ne e e e e ee e rencontre jamais une base d´j` rencontr´e ` une it´ration pr´c´dente. x ≥ 0. on cherche ` ´liminer de la base toutes les variables e e u ae artificielles.5.2. Le nombre de solution de base ea e a e e e m r´alisable ´tant fini (≤ Cn ). A une it´ration donn´e de l’algorithme. soit on d´tecte une fonction objectif non major´e e e e e e bs = (LH )e xe > 0 puisque (→ arrˆt de l’algo. le coˆt e u minimal est nul sinon on a d´tect´ l’impossibilit´ pour (PL) (i. 2.e. am ) les variables artificielles et on consid`re e  m   min  ai  (x.

A une permutation u H a pr`s des colonnes. S’il reste des variables artificielles dans la base (base d´g´n´r´e) alors les lignes associ´es ` ces e e e e e a variables sont des contraintes redondantes qu’on ´limine. e e e e Une faible variation des donn´es entraine-t-elle un changement important de la solution optimale ? e 2.6. Si Faux > 0 alors pas de solution r´alisable (DR = ∅). Cette condition est une condition n´cessaire pour que la solution de base e e optimale soit inchang´e et une condition suffisante pour que la solution obtenue soit optimale. alors fin u e normale de la phase 1. On obtient alors e e une condition sur ce param`tre. a 3. on a. A se d´compose en A = (AB ∗ | AH ∗ ) et la matrice A∗ ∗ est donn´e par A∗ ∗ = A−1 AH ∗ . On consid`re un PL sous e ∗ c’est-`-dire un PL pour lequel l’algorithme du simplexe forme standard qui admet une base optimale B a se termine normalement. Si Faux = 0 et aj ∈ XB o` XB d´signe l’ensemble des variables de base pour (PLA). c’est-`e a a m dire Faux = min (x. on a la condition suivante d’optimalit´ : e Condition d’optimalit´ : e LH ∗ = cH ∗ − cB ∗ A∗ ∗ ≤ 0 H (2.29) o` A∗ ∗ est la matrice hors-base obtenue ` l’optimum dans le tableau du simplexe. e Exemple. pour tout x ∈ Rn . PROGRAMMATION LINEAIRE 2. e R´sum´ de la phase d’initialisation du simplexe (phase 1). On remplace ce coefficient par un param`tre et on calcule la condition d’optimalit´.a) ai .6 Analyse post-optimale L’analyse optimale permet de d´terminer des intervalles de variations des donn´es pour lesquels la base e e optimale B ∗ n’est pas modifi´e. c’est-`-dire que x∗ est optimale. On reprend l’exemple du probl`me de production de l’introduction et on veut regarder la e sensibilit´ de l’optimum par rapport au prix de vente unitaire du produit P1 qui vaut 6.28 ´ CHAPITRE 2. a 2. i=1 1. De combien e . F (x) = F (x∗ ) + LH ∗ xH ∗ −1 o` x∗ = (x∗ ∗ | x∗ ∗ = 0) est une solution de base r´alisable associ´e ` la base B ∗ . Si Faux = 0 et ∃aj ∈ XB avec aj = 0.1 Analyse post-optimale de l’objectif On regarde l’influence des coefficients de la fonction objectif sur l’optimum. on a e e a F (x) ≤ F (x∗ ). e 2. En effet.29) c’est-`-dire avec LH ∗ ≤ 0. Par u e e a B H B cons´quent. sous la condition d’optimalit´ (2. alors on supprime les lignes et colonnes associ´es aux aj et e on passe ` la phase 2. e e On note Faux la valeur de la fonction objectif du probl`me auxiliaire (PLA) ` la fin du simplexe. On passe ` la phase 2 du simplexe. a ∀x ≥ 0 On utilise la condition d’optimalit´ pour d´terminer l’influence d’un coefficient de la fonction objectif e e F . e e e H H B∗ La condition d’optimalit´ est une condition suffisante pour qu’une solution de base r´alisable soit e e optimale. avec x∗ ∗ = AB ∗ b. Elle permet de d´terminer la sensibilit´ de (PL) par rapport aux donn´es. A l’optimum.

2 Analyse post-optimale du second membre des contraintes On examine ` pr´sent l’influence du second membre des contraintes sur la solution de base optimale. ANALYSE POST-OPTIMALE 29 peux-t-on faire varier ce prix. xH ∗ = (e∗ . e 1 2 1 3 2 1 2 B x∗ = 15/2 et F ∗ = 65. e Condition de faisabilit´ : e xB ∗ = A−1 b ≥ 0. a e Soit une base optimale B ∗ . x∗ . la solution de base optimale est inchang´e c’est-`-dire que le e a 5 15 plan de production ne change pas. 2 on obtient F ∗ = 80 soit un ´cart de ∆F = 15. On obtient ainsi un second membre d. mais xB ∗ est toujours une e u e e solution de base r´alisable optimale car on maintient les coˆts r´duits LH ∗ ≤ 0 inchang´s. En revanche. 2. c1 ). alors AB ∗ = ABq × A−1 × · · · × A−1 × A−1 o` la matrice A−1 est d´termin´e e e e e Bq−1 B2 B1 u Bk par (2. on veut examiner la sensibilit´ de la solution e e optimale par rapport ` la quantit´ disponible de main d’oeuvre qui vaut 55 unit´s. De plus. On obtient de cette fa¸on une condition sur le param`tre introduit. permise pour c1 ). Cette condition est une condition n´cessaire pour que la base optimale B ∗ soit e e inchang´e. 1   7/2 −5/2 A∗ ∗ = −2/3 1/3  . e∗ ) avec e∗ = 27/2.18) ` l’´tape k du simplexe. 0). on remplace e ce coefficient par un param`tre.30) Pour d´terminer l’influence d’un coefficient du second membre sur la solution optimale. sans changer le plan de production ? On remplace le coefficient 6 par un param`tre c1 dans F : e cB ∗ = (0. 5 16 ≤ c1 ≤ 8.2. On calcule A−1 directement ` partir des tableaux du simplexe. Avec c1 = 8 (la valeur max. On a trouv´ la solution de base optimale x∗ ∗ = (e∗ . Avec l’exemple du probl`me de production. B∗ (2. x∗ = 5. 4. Si l’algorithme du simplexe a B∗ −1 −1 se d´roule en q + 1 ´tapes. H 5/6 −1/6 Les coˆts r´duits valent donc u e LH ∗ = cH ∗ − cB ∗ A∗ ∗ = H La condition d’optimalit´ LH ∗ ≤ 0 donne alors e 16 ≤ c1 ≤ 8. cH ∗ = (0. une condition de faisabilit´ est satisfaite. − 3 6 6 3 . x∗ ). Si on choisit e 8 5 c1 4 − c1 .6.6. A l’optimum. On introduit donc un a e e param`tre d2 ∈ R avec le second membre e   81 d =  d2  20 . On calcule alors la solution de e −1 e c base xB ∗ = AB ∗ d et on impose la condition de faisabilit´. e Remarque. On a F ∗ = c1 + 20. e Interpr´tation. a e Exemple. les valeurs de la solution de base xB ∗ changent.

32) [G(y) = 81y1 + 55y2 + 20y3 ] avec les contraintes (2. Il propose ` e a l’entreprise un prix unitaire yi . ∗ 1  x1 (−d2 + 100) 6 et on calcule xB ∗ (2. y2 . 1 ≤ i ≤ m. Supposons ` pr´sent qu’un e a e acheteur se pr´sente pour acheter toutes les ressources bi . 1 ≤ i ≤ m.1 Dualit´ e Introduction et d´finition e Revenons encore une fois au probl`me de production de l’introduction.31) La condition de faisabilit´ xB ∗ ≥ 0 donne alors : e 40 ≤ d2 ≤ 60. D´finition 2.7 2.y2 .30  ´ CHAPITRE 2. On doit donc avoir e 3y1 + 4y2 + 2y3 ≥ c1 = 6 9y1 + 5y2 + 1y3 ≥ c2 = 4 y 1 . On se demande alors quels sont les prix oe a unitaires yi . pour chacune des ressources. y3 ≥ 0 De son cˆt´.32).7. l’acheteur cherche ` minimiser le prix total d’achat. 2. PROGRAMMATION LINEAIRE  1 −5/2 7/2 = A−1 d avec A−1 = 0 1/3 −2/3 . On obtient B∗ B∗ 0 −1/6 5/6   5  ∗ 151 − d2   2 e1   ∗ =  1  xB ∗ = x2  3 (d2 − 40)  . 1 ≤ i ≤ m.y3 ) (2.4 alors la solution de base r´alisable xB ∗ donn´e par (2. Au programme lin´aire primal e e max F (x) = c x Ax ≤ b x≥0 (P L) x∈Rn on associe le programme lin´aire dual e min G(y) = b y A y≥c y≥0 (P LD) y∈Rm . L’entreprise acceptera de lui vendre toutes ses ressources uniquement si elle obtient pour chaque produit Pj un prix de vente au moins ´gal au profit cj qu’elle ferait en vendant ses produits.31) est e e e optimale. que l’acheteur doit proposer ` l’entreprise en question pour qu’elle accepte de a vendre toutes ses ressources ? Le probl`me peut donc s’´crire e e min y=(y1 .5. Si on choisit 40 ≤ d2 ≤ 60. de l’entreprise.4 Interpr´tation.

De fa¸on g´n´rale. j=1 n aij xj ≤ bi aij xj = bi j=1 ∀i ∈ I1 . i=1 m aij yi ≥ cj aij yi = cj i=1 ∀j ∈ J2 . yi de signe quelconque m ∀i ∈ I2 .2 Propri´t´s . on a donc min (−c) x x ⇐⇒ −A y ≤ −c y≥0 max c x x (−A ) x ≥ (−b) x≥0 et on reconnait le probl`me primal du d´part.7. A partir de la d´finition du dual d’un PL sous forme canonique pure : e e min G(y) = b y y max −G(y) = (−b) y y A y≥c y≥0 Si on prend le dual du dual.Th´or`mes de dualit´ e e e e e Proposition 2. xj de signe quelconque ∀j ∈ J1 . on a la c e e −A −b d´finition suivante lorsque le probl`me primal est sous forme canonique mixte : e e Primal x∈Rn Dual y∈Rm max F (x) = c x n min G(y) = b y ∀i ∈ I1 .´ 2.6. 2. xj ≥ 0 ∀j ∈ J2 . e a e e e . Le dual du dual est le primal D´monstration.7. e e ⇐⇒ Ax ≤ b x≥0 On s’int´resse ` pr´sent au lien entre les solutions de programmes lin´aires en dualit´. P rimal max(F ) coefficient c de F second membre b m contraintes in´galit´s (≤) e e n contraintes de positivit´ e ↔ ↔ ↔ ↔ ↔ Dual min(G) second membre c coefficient b de G m contraintes de positivit´ e n contraintes in´galit´s (≥) e e 31 Si le probl`me primal est sous forme standard avec les contraintes Ax = b alors on passe ` la forme e a A b canonique pure en ´crivant les contraintes Ax = b ⇔ e ≤ . DUALITE Comparaison primal/dual. ∀j ∈ J1 . yi ≥ 0 ∀i ∈ I2 .

Th´or`me 2. Theoreme fort de dualite e e Si le probl`me primal (PL) admet une solution r´alisable optimale x∗ alors le probl`me dual (PLD) e e e ∗ et on a admet lui aussi une solution r´alisable optimale y e F (x∗ ) = G(y∗ ). Soient x∗ et y∗ des solutions r´alisables de (PL) et (PLD) respectivement telles que F (x∗ ) = G(y∗ ). Alors : e 1. On remarquera que le probl`me primal e e e (PL) ´tant mis sous forme standard. x ≥ 0 et d’autre part A y ≥ c. On choisit alors e e B∗ y∗ = (A−1 ) cB ∗ . Par cons´quent. Dans le cas o` (PL) est sous forme canonique pure : e u 1. Theoreme faible de dualite e e Soit x une solution r´alisable d’un (PL) sous forme canonique mixte et y une solution r´alisable du e e probl`me dual (PLD). Idem pour y∗ . e e Par ailleurs. Par cons´quent. PROGRAMMATION LINEAIRE ´ ` ´ Th´or`me 2. ` l’optimum tous les coˆts r´duits sont n´gatifs ou nuls (LH ∗ ≤ 0) donc AH ∗ y∗ ≥ cH ∗ . Si (PL) admet une solution r´alisable e e optimale. D´monstration. F (x) ≤ G(y) 2. pour toute solution r´alisable x de (PL). D´monstration.5.2). y∗ est une solution r´alisable du dual (PLD). On a e AH ∗ y∗ = AH ∗ (A−1 ) cB ∗ B∗ −1 = AB ∗ AH ∗ cB ∗ = cH ∗ − LH ∗ . F (x∗ ) = c x∗ = cB ∗ A−1 b B∗ −1 = (AB ∗ ) cB ∗ b y∗ = G(y∗ ) . il admet une solution de base r´alisable optimale (cf. Si F (x) = G(y) alors x et y sont des solutions optimales de (PL) et (PLD) respectivement. On suppose que (PL) est sous forme standard. on a F (x) ≤ G(y∗ ) = F (x∗ ) donc x∗ est une e e solution r´alisable optimale. e D’apr`s 1. Par d´finition.32 ´ CHAPITRE 2.. il n’y a pas de contrainte de positivit´ sur les variables y du dual. e ´ ` ´ Th´or`me 2. On a d’une part Ax ≤ b.4. e F (x) = c x ≤ (A y) x = y Ax ≤ y b = G(y) car y ≥ 0 ≤b 2. Or. On note B ∗ la base e e e optimale et on d´signe par x∗ la solution de base r´alisable optimale : x∗ = A−1 b. y ≥ 0. B∗ Montrons que y∗ est une solution r´alisable optimale pour le dual (PLD). a u e e e on a AB ∗ y∗ = cB ∗ et donc on obtient A y∗ ≥ c y∗ de signe quelconque.

Plus pr´cis´ment.7. e e e 33 On a (1) (2) (3) vu qu’il y avait 3 cas possibles (et seulement 3) pour le probl`me primal (PL) : e il existe (au moins) une solution optimale. de (PL)) est nulle. e e Supposons que le probl`me primal s’´crive sous forme canonique mixte. l’autre n’a pas de solution.7.3 Primal (1) Solution optimale (2) Optimum infini (3) pas de solution Conditions d’optimalit´ primal-dual (COPD) e On s’int´resse au cas (a) o` les probl`mes primal et dual poss`dent chacun des solutions optimales e u e e (optimum fini). (a) les deux probl`mes poss`dent chacun des solutions optimales (` l’optimum. Soient x et y des solutions r´alisables respectivement du probl`me primal (PL) et e e e e du probl`me dual (PLD).7. – Si la valeur d’une variable dans (PL) ou (PLD) est strictement positive alors la contrainte correspondante de l’autre programme est une ´galit´. a Th´or`me 2. e e pas de solution r´alisable (DR = ∅).  aij xj = bi ou yi = 0 1     j=1      • ∀j ∈ J1 . y∗ est optimale pour (PLD). Alors x et y sont des solutions r´alisables optimales si et seulement si les e e conditions d’optimalit´ primal-dual (COPD) suivantes sont v´rifi´es : e e e – Si une contrainte est satisfaite en tant qu’in´galit´ stricte dans (PL) (resp. une et une seule des trois e e e e situations suivantes peut se produire. DUALITE et donc par le Th´or`me faible de dualit´. On peut alors calculer l’une ` partir de l’autre. e e e e Th´or`me 2.   m aij yi = cj ou xj = 0 i=1 . les coˆts sont ´gaux). le lien entre les deux e e e e probl`mes en dualit´ est donn´ par le r´sultat suivant. e e e Il y a donc 3 situations (au lieu de 9) qui peuvent se r´sumer dans le tableau suivant : e (1) Solution optimale (a) impossible impossible Dual (2) Optimum infini impossible impossible (c) (3) pas de solution impossible (b) impossible 2. Etant donn´s un probl`me primal (PL) et son dual (PLD). l’ensemble DR des solutions r´alisables n’est pas born´ et l’optimum est infini. dans (PLD)) alors la e e variable correspondante de (PLD) (resp. Alors x et y sont optimales e e respectivement pour le probl`me primal et le probl`me dual si et seulement si on a les COPD : e e  n   • ∀i ∈ I . e e e (c) aucun des deux probl`mes ne poss`de de solution r´alisable. e e a u e (b) un des probl`mes poss`de une solution r´alisable avec un optimum infini.´ 2.6. e Les mˆmes situations se retrouvent pour le probl`me dual.

y2 . y ≥ 0.34 ´ CHAPITRE 2. Si ej = 0 alors yj = 0 Si yj = 0 alors ej = 0. En introduisant les variables d’´cart e et ε respectivement pour (PL) et (PLD). La dualit´ et les COPD permettent souvent de v´rifier si une solution r´alisable d’un (PL) est optimale e e e ou non. Le probl`me dual du probl`me de production s’´crit e e e min [G(y) = 81y1 + 55y2 + 20y3 ] y   3y1 + 4y2 + 2y3 ≥ 6 9y1 + 5y2 + 1y3 ≥ 4  y 1 . on a : e n • j=1 m ∗ aij x∗ < bi ⇒ yi = 0 j ∗ aij yi > cj ⇒ x∗ = 0 j i=1 • et n ∗ • yi > 0 ⇒ j=1 m aij x∗ = bi j ∗ aij yi = cj i=1 • x∗ > 0 ⇒ j Exemple. ε ≥ 0 ce qui donne les COPD (encore appel´es ”relations d’exclusion”) : e Si εi = 0 alors xi = 0 Si xi = 0 alors εi = 0. y3 ≥ 0 . Soient x et y des solutions r´alisables optimales de (PL) e et (PLD) respectivement. Supposons pour simplifier que le probl`me e e e e e primal (PL) soit mis sous forme canonique pure. PROGRAMMATION LINEAIRE D´monstration de la condition n´cessaire du Th´or`me 2. Puisque x ≥ 0 et y ≥ 0. e ≥ 0 Dans ces conditions. on a e Ax + e = b x ≥ 0. ej yj = 0.7. On a donc Ax ≤ b. e e a e e e Utilisation pratique des COPD. F (x) = G(y) donc on obtient e e e e ε x+e y =0 . Lorsque (PL) et (PLD) a e ont des solutions r´alisables optimales x∗ et y∗ respectivement.33) et A y−ε=c y ≥ 0. ∀i ∀j (2. F (x) = c x = (A y − ε) x = y Ax − ε x G(y) = b y = (Ax + e) y = (Ax) y + e y = y Ax + e y. ` partir de la connaissance d’une solution optimale du probl`me dual. on a n´cessairement e εi xi = 0. La r´ciproque (condition suffisante) se d´montre ` partir du Th´or`me faible de dualit´. x ≥ 0 et A y ≥ c. Or d’apr`s le Th´or`me de la dualit´ forte.

COPD 35 =⇒ ∗ y1 = 0 ∗ ∗ ∗ 3y1 + 4y2 + 2y3 = 6 (ε∗ = 0) 1 ∗ ∗ ∗ 9y1 + 5y2 + y3 = 4 (ε∗ = 0) 2 COPD =⇒ COPD =⇒ . y3 = 7/3.7.´ 2. y2 = 1/3. DUALITE Le probl`me primal (PL) admet la solution optimale : e e∗ = 27/2 > 0 1 x∗ = 15/2 > 0 1 x∗ = 5 > 0 2 e∗ = e∗ = 0 2 3 En r´solvant le syst`me pour y∗ . on obtient la solution optimale du probl`me dual : e e e ∗ ∗ ∗ y1 = 0.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->