Vous êtes sur la page 1sur 35

Graphes

et
Recherche Operationnelle
ESIAL 2`eme annee
Notes de cours de J.-F. Scheid
2010-2011
2
Table des mati`eres
1 Introduction generale 5
1.1 Quelques exemples et domaines dapplications de la R.O. . . . . . . . . . . . . . . . . . . 5
1.2 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Contenu du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 Elements de bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2 Programmation lineaire 11
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Modelisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Resolution graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Formes generales dun programme lineaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 decarts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Solutions de base realisables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.4 Proprietes geometriques des solutions de base realisables . . . . . . . . . . . . . . . . . . . 16
2.5 Algorithme du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.1 Lalgorithme du simplexe proprement dit : la phase 2 . . . . . . . . . . . . . . . . 17
2.5.2 Methode des dictionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.5.3 Methode des tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.5.4 Finitude du simplexe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5.5 Initialisation et variables articielles : la phase 1 . . . . . . . . . . . . . . . . . . . 27
2.6 Analyse post-optimale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.1 Analyse post-optimale de lobjectif . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.6.2 Analyse post-optimale du second membre des contraintes . . . . . . . . . . . . . . 29
2.7 Dualite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.1 Introduction et denition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.7.2 Proprietes - Theor`emes de dualite . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.7.3 Conditions doptimalite primal-dual (COPD) . . . . . . . . . . . . . . . . . . . . . 33
3
4 TABLE DES MATI
`
ERES
Chapitre 1
Introduction generale
Une denition possible de la R.O pourrait etre la suivante : il sagit dun ensemble de methodes
danalyse scientique (maths et info.) des phenom`enes dorganisation qui traite de la maximisation dun
prot, dune performance, dun rendement ou bien de la minimisation dun co ut, dune depense. La R.O.
est avant tout un outil daide `a la decision.
Le schema general suivi par ces methodes est : Probl`eme concret (de type R.O) modelisation
resolution par une methode de R.O interpretation des resultats prise de decision.
1.1 Quelques exemples et domaines dapplications de la R.O.
1. Un premier exemple : Les ponts de Konigsberg (Euler 1735).
Deux les de la ville sont reliees entre elles par 1 pont. Dautre part 6 autres ponts relient les les `a
la ville. La question posee est la suivante : `a partir dun point de depart quelconque, existe-t-il un
chemin passant une et une seule fois par chaque pont et qui revient au point de depart ?
Fig. 1.1 La ville de Konigsberg et ses 7 ponts.
La reponse (apportee par Euler) est NON. La preuve utilise un graphe : les aretes du graphe
representent les ponts et les sommets correspondent aux dierents endroits de la ville : les rives
gauche et droite et les deux les (cf. Figure 1.2).
Supposons quun tel chemin existe. Un tel chemin est appele chemin eulerien. Alors necessairement
en chacun des noeuds du graphe il y a toujours un nombre pair daretes reliees au noeud : sil y a
une arete qui arrive au noeud, il y en a necessairement une autre (dierente) qui le quitte. Or, on
constate que le graphe poss`ede des noeuds (tous en fait !) relies `a un nombre impair daretes. Par
consequent, il nexiste pas de chemin eulerien.
5
6 CHAPITRE 1. INTRODUCTION G

EN

ERALE
A
C
B
D
Fig. 1.2 Graphe associe au probl`eme des ponts de Konigsberg
2. Graphe et PageRank
Classement des pages Web utilise par les moteurs de recherches. Le web est modelise `a laide dun
graphe oriente dont les sommets j representent 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 eleve) si beaucoup de pages importantes pointent vers i.
Le score de la page i est deni par la valeur

i
=

ji
1
l
j

j
o` u l
j
designe le nombre de liens partant de la page j. Le probl`eme de la determination 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 recensees (environ 20 milliards...).
3. Un probl`eme de production
Determination dun plan optimal de fabrication : une entreprise fabrique plusieurs produits, ce qui
exige des ressources particuli`eres (mati`eres premi`eres, machines, personnel ...) en quantites limitees.
Chaque produit rapporte un certain benece (connu) `a lentreprise.
Quels produits lentreprise doit-elle fabriquer et en quelle quantite pour realiser le benece total
le plus eleve ?
1.1. QUELQUES EXEMPLES ET DOMAINES DAPPLICATIONS DE LA R.O. 7
On verra que ce probl`eme peut se modeliser par programmation lineaire qui secrit formellement
sous la forme suivante.
max
x
F(x) = c

x = c
1
x
1
+ c
n
x
n
lobjectif
_
Ax b les contraintes
x 0
4. Un probl`eme de transport.
Une entreprise dispose de plusieurs depots (D
i
) contenant chacun un certain nombre de containers.
Dierents magasins (M
j
) commandent des containers. On connat le co ut de transport de chaque
depot aux magasins. Par exemple,
disponibilite depots
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 lorganisation des livraisons des containers pour minimiser le co ut total de transport ?
Ce probl`eme peut se modeliser par programmation lineaire en nombres entiers et sa resolution
peut se faire par Separation et Evaluation.
5. Un probl`eme daectation.
n taches doivent etre aectees `a n machines (1 tache par machine). Le co ut dexecution de chaque
tache par chacune des machines est connu.
Trouver laectation qui minimise le co ut total.
Ce probl`eme peut se modeliser par programmation lineaire en variables binaires mais il peut
etre vu aussi comme un probl`eme de ot 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 donnee.
Trouver le plus court trajet passant par les n villes.
Ce probl`eme sera resolu 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 dierentes.
plaque
pices
. . .
Trouver le placement pour minimiser le nombre de plaques utilisees.
Ce probl`eme pourra etre etudie par des methodes heuristiques / methodes evolutionnistes (algo-
rithmes genetiques).
8 CHAPITRE 1. INTRODUCTION G

EN

ERALE
Tous les probl`emes precedents sont des probl`emes de combinatoire. Par ex., pour le probl`eme daec-
tation et du voyageur de commerce, il y a n! possibilites.
Avec n = 20, lenumeration des aectations (trajets) possibles, `a vitesse dun million par seconde, pren-
drait 77094 annees ... Il est donc indispensable de trouver des methodes ecaces.
1.2 Formalisation
Tous les probl`emes mentionnes ci-dessus et presentes dans ce cours peuvent se formaliser de la facon
suivante. On cherche `a maximiser une fonction f sur un ensemble X donne :
max{f(x), x X}
f : X R est la fonction objectif. f peut etre lineaire, quadratique, nonlineaire...
X est lensemble des solutions possibles dites realisables (les contraintes). Lensemble X est ni
mais en general de tr`es grande taille.
On peut envisager de facon equivalente un probl`eme de minimisation grace `a la relation
minf = max(f).
1.3 Contenu du cours
Programmation lineaire : aspects geometriques, methode du simplexe, dictionnaires, analyse de
sensibilite, dualite.
Graphes et R.O
Flot optimal dans un graphe
Probl`emes daectations (simples et multiples)
Programmation en nombres entiers (PLNE)
Programmation dynamique
Introduction aux methodes heuristiques et evolutionnistes : recuit simule, tabou, algorithmes genetiques,
algorithme A

.
Remarque. Les probl`emes stochastiques - cest-`a-dire o` u interviennent le hasard - ne sont pas abordes
dans ce cours (processus de Markov, le dattente...).
1.4 Elements de bibliographie
[1] Precis de recherche operationnelle Methodes et exercices dapplication, Faure, Lemaire, Picouleau;
2008.
ouvrage de reference, un classique.
[2] Exercices et probl`emes resolus de recherche operationnelle : Tome 1 (Graphes : leurs usages, leurs
algorithmes), Tome 3 (Programmation lineaire et extensions, probl`emes classiques). Roseaux : Bil-
lionnet, Carlier, Chretienne, Lemaire, Faure ; 1998/1985.
contient des exercices classiques en lien avec [1].
[3] Optimisation discr`ete De la modelisation `a la resolution par des logiciels de programmation
mathematique, Billionnet ; 2007.
ouvrage recent qui contient un expose de methodes plus modernes que [1]. Ouvrage tr`es interessant.
[4] Linear Programming, Chvatal ; 1983.
ouvrage tr`es didactique (style anglo-saxon...) avec de nombreux developpements pratiques tr`es
importants.
1.4. EL

EMENTS DE BIBLIOGRAPHIE 9
[5] Recherche operationnelle pour ingenieurs Tome I et II, Heche, Liebling, de Werra ; 2003.
malgre son titre ( !), contenu assez mathematique ; contient des demonstrations interessantes.
[6] Programmation mathematique. Theorie et algorithmes, Minoux ; 2008.
passe en revue de nombreuses methodes contemporaines.
[7] Introduction `a lalgorithmique, Corman, Leiserson, Rivest ; 2002.
aspects algorithmiques des maths numeriques, de la Recherche Operationnelle et des probabilites.
10 CHAPITRE 1. INTRODUCTION G

EN

ERALE
Chapitre 2
Programmation lineaire
2.1 Introduction
2.1.1 Modelisation
En R.O, modeliser un probl`eme consiste `a identier les variables intrins`eques, les dierentes contraintes
auquelles sont soumises ces variables et lobjectif vise (optimisation). Dans un probl`eme de programmation
lineaire (PL) les contraintes et lobjectif sont des fonctions lineaires des variables.
Exemple dun probl`eme de production.
Une usine fabrique 2 produits P
1
et P
2
en utilisant un certain nombre de ressources : equipement, main
doeuvre, mati`eres premi`eres. Ces besoins sont indiques dans le tableau ci-dessous. Par ailleurs, chaque
ressource est disponible en quantite limitee (cf. tableau).
P
1
P
2
disponibilite
equipement 3 9 81
main doeuvre 4 5 55
mati`ere premi`ere 2 1 20
Les deux produits P
1
et P
2
rapportent `a la vente respectivement des beneces de 6 euros et 4 euros par
unite. Quelles quantites de produits P
1
et P
2
(valeurs non-necessairement enti`eres) doit produire lusine
an de maximiser le benece total venant de la vente des 2 produits ?
Choix des variables (les inconnues) : x
1
et x
2
sont respectivement les quantites des produits P
1
et
P
2
fabriques (x
1
, x
2
R).
Choix de la fonction objectif `a maximiser : La fonction objectif F correspond au benece 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
] .
Determination des contraintes.
La disponibilite de chacune des ressources secrit :
3x
1
+ 9x
2
81
4x
1
+ 5x
2
55
2x
1
+ x
2
20
Positivite des variables : x
1
, x
2
0.
11
12 CHAPITRE 2. PROGRAMMATION LIN

EAIRE
En resume, le probl`eme de production se modelise 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 Resolution graphique
Dans le cas dun (PL) `a deux variables, on peut envisager une resolution graphique. Les contraintes
o` u apparaissent des inegalites correspondent geometriquement `a des demi-plans. Lintersection de ces
demi-plans forme lensemble des variables satisfaisant `a toutes les contraintes (la partie hachuree de la
gure 2.1). A la fonction objectif F correspond une droite F(x
1
, x
2
) = 6x
1
+ 4x
2
= constante, de coe-
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 Resolution graphique du probl`eme de production
cient directeur (1, 6/4). La constante precedente qui denie la droite doit etre la plus grande possible
(maximisation) et rencontrer lensemble des variables qui satisfont les contraintes. Pour determiner 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 lensemble 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 lensemble des contraintes (la partie hachuree de la gure 2.1) est un polygone convexe
et que le maximum de F est atteint en un sommet de ce polygone. Cette observation est, en fait, un
resultat general que lon etabliera dans les sections suivantes.
2.2. FORMES G

EN

ERALES DUN PROGRAMME LIN

EAIRE 13
2.2 Formes generales dun programme lineaire
2.2.1 Forme canonique mixte
Il sagit dun probl`eme de programmation lineaire (encore appele programme lineaire) 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 inegalites : i I
1
,
n

j=1
a
ij
x
j
= a
i1
x
1
+ + a
in
x
n
b
i
contraintes egalites : 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)
Lensemble I = I
1
I
2
est lensemble des indices de contraintes avec card(I) = m. Autrement dit, il y a
m contraintes. Lensemble J = J
1
J
2
est lensemble des indices des variables avec card(J) = n. Il y a
n variables.
2.2.2 Forme canonique pure
Sous cette forme, il ny a pas de contraintes degalite cest-`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 mn :
A =
_
_
_
a
11
a
12
a
1n
.
.
.
.
.
.
a
m1
a
m2
a
mn
_
_
_
.
Un programme lineaire (PL) est dit sous forme canonique pure sil secrit :
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 lineaire (PL) est dit sous forme standard sil secrit :
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 mn avec m n, se decompose
en :
A =
_
I
m
| H
_
(2.5)
o` u I
m
designe la matrice identite de taille mm et H est une matrice de taille m(n m).
2.2.4 Variable decarts
Proposition 2.1. Tout PL sous forme standard secrit de facon equivalente en un PL sous forme
canonique pure et inversement.
Demonstration. 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

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 appelees variables decart.


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 2mn et



b R
2m
.
2.3 Solutions de base realisables
On consid`ere desormais (sauf mention contraire) un PL toujours sous forme standard.
Denition 2.1. On appelle solution realisable tout vecteur x qui satisfait les contraintes du PL i.e. tel
que Ax = b et x 0.
Hypoth`ese : On suppose desormais que la matrice A est de taille mn avec rang(A) = m n .
On rappelle que le rang de A est le nombre maximal de lignes de A lineairement independantes. Cest aussi
le nombre de colonnes de A lineairement independantes. Lhypoth`ese de rang plein nest pas restrictive
car si rang(A) < m le syst`eme Ax = b na pas de solution en general. Si rang(A) < m et b Im(A),
il y a des equations redondantes dans le syst`eme Ax = b, quon peut donc supprimer pour obtenir un
nouveau syst`eme de rang plein. Sous lhypoth`ese de rang plein, le syst`eme Ax = b admet toujours des
solutions. Si m < n, il y en a une innite. Si m = n, la solution est unique et vaut x = A
1
b, dans ce
cas, il ny a rien `a maximiser...
2.3. SOLUTIONS DE BASE R

EALISABLES 15
Remarque. Pour la forme canonique pure avec Ax b, lhypoth`ese de rang plein nest pas non plus
restrictive car si rang(A) < m, il y a des contraintes inegalites redondantes quon peut supprimer pour
obtenir un syst`eme de rang plein.
Denition 2.2. Soit B {1, , n} un ensemble dindices avec card(B) = m tel que les colonnes A
j
,
j B, de A sont lineairement independantes. Autrement dit, la matrice carree A
B
formee des colonnes
A
j
, j B, est inversible. On dit que lensemble B des indices est une base.
Les variables x
B
= (x
j
, j B) sont appelees variables de base.
Les variables x
H
= (x
j
, j / B) sont appelees variables hors-base.
Remarques.
Sous lhypoth`ese de rang plein, il existe toujours une base non vide.
Quitte `a renumeroter les indices, on peut toujours ecrire les decompositions par blocs :
A = (A
B
| A
H
) o` u A
H
est la matrice formee 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 precedente et du fait que la matrice A
B
est inversible, on peut xer les variables hors-base
et les variables de base sont alors compl`etement determinees.
Denition 2.3. On dit que x = (x
B
| x
H
)

est solution de base associee `a la base B si


x
H
= 0.
Proprietes des solutions de base realisables : Si x = (x
B
| x
H
)

est une solution de base realisable


alors x
H
= 0 et x
B
= A
1
B
b.
Exemple. Reprenons lexemple du probl`eme de production de lintroduction. Sous forme standard (en
introduisant des variables decart), le PL secrit
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 donnee par B = {3, 4, 5} avec A
B
=
_
_
1 0 0
0 1 0
0 0 1
_
_
.
La solution de base realisable 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 realisables).
16 CHAPITRE 2. PROGRAMMATION LIN

EAIRE
2.4 Proprietes geometriques des solutions de base realisables
On note
D
R
= {x R
n
| Ax = b, x 0} , (2.7)
lensemble des solutions realisables dun PL sous forme standard.
Commencons par rappeler les notions de poly`edre et densemble convexe :
Un poly`edre Q de R
n
est deni par Q = {x R
n
| Ax b} o` u A est une matrice mn.
Un ensemble E est dit convexe si x, y E, x + (1 )y E pour tout 0 1.
Proposition 2.2. Lensemble D
R
des solutions realisables est un poly`edre convexe, ferme.
Exemple. Lensemble D
R
=
_
x R
3
| 2x
1
+ 3x
2
+ x
3
= 3, x
1
, x
2
, x
3
0
_
est represente sur la gure 2.2.
x
x
x
3
2
1
1
2
3
1 2
0
1
2
Fig. 2.2 Poly`edre des solutions realisables
Denition 2.4. Un point x D
R
est un sommet (ou point extreme) si et seulement sil nexiste pas
y, z D
R
, y = z tels que x = y + (1 )z avec 0 < < 1.
Theor`eme 2.1. x est une solution de base realisable si et seulement si x est un sommet de D
R
.
On a vu sur lexemple de lintroduction que la solution etait atteinte sur un sommet de D
R
et corres-
pond donc `a une solution de base. Le resultat general senonce ainsi :
Theor`eme 2.2. Loptimum de la fonction objectif F sur D
R
, sil existe, est atteint en au moins un
sommet de D
R
.
Pour resoudre un PL sous forme standard, il sut de se restreindre aux solutions de base realisables
(les sommets de D
R
). Tout se passe donc avec les solutions de base.
2.5. ALGORITHME DU SIMPLEXE 17
Lensemble D
R
nest pas necessairement borne. En fait pour un PL, 3 situations (et seulement 3)
peuvent se produire :
1. D
R
= : le PL na pas de solution.
2. D
R
= mais la fonction objectif F nest pas majoree sur D
R
: le maximum de F vaut +. Si D
R
est borne, ce cas est exclu.
3. D
R
= et la fonction objectif F est majoree sur D
R
: le PL admet une solution optimale (non
necessairement unique).
Remarque. On a vu quil y a au plus C
m
n
solutions de base realisables. Pour determiner une solution
de base, on doit resoudre un syst`eme lineaire (x
B
= A
1
B
b). La resolution dun syst`eme lineaire par
une methode directe de type Gauss/LU requi`ere de lordre de m
3
operations. Si on explore toutes les
solutions de base et que lon compare les co uts correspondants, on eectue de lordre de m
3
C
m
n
operations.
Ce nombre est vite tr`es grand avec n et m. Par exemple, avec n = 20 et m = 10, on a 3 10
8
operations.
Dans la methode du simplexe, on va explorer seulement les sommets qui permettent daugmenter la
fonction objectif. On va reduire ainsi le nombre de solution de base `a explorer et donc le nombre de
syst`eme lineaire `a resoudre.
2.5 Algorithme du simplexe
La methode du simplexe est due `a G. Dantzig (1947). Elle comporte 2 phases.
Phase 1 - Initialisation : Trouver une solution de base realisable (ou bien detecter limpossibilite).
Phase 2 - Progression : On passe dun sommet `a un sommet voisin pour augmenter la fonction
objectif (ou bien on detecte une fonction objectif F non majoree).
2.5.1 Lalgorithme du simplexe proprement dit : la phase 2
On dispose dune solution de base realisable x dun PL sous forme standard. A une permutation pr`es
des colonnes , la matrice A peut secrire
A = (A
B
| A
H
)
avec A
B
une matrice carree 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 decompose egalement (`a la
meme 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

associee telles que


F(x

) > F(x) (x

est meilleur que x)


La methode 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 reduits 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)
sappelle vecteur des co uts reduits.
Si les co uts reduits sont tous negatifs i.e. L

H
0, il nest alors pas possible daugmenter la fonction
objectif F : lalgorithme se termine normalement cest-`a-dire quon a trouve une solution de base
realisable optimale.
Dans le cas contraire (i.e. (L
H
)
i
> 0), on a interet `a faire entrer dans la base, la variable hors-base
qui a le co ut reduit positif le plus grand possible.
On note e / B lindice de la variable entrante. On choisit e tel que
(L
H
)
e
= max
j
_
(L
H
)
j
, (L
H
)
j
> 0
_
ce quon note par
e = argmax
j
_
(L
H
)
j
, (L
H
)
j
> 0
_
(2.10)
Remarque. Si on traite dun probl`eme de minimisation cest-`a-dire avec minF(x), alors la variable
entrante x
e
est determinee par lindice
e = argmin
j
_
(L
H
)
j
, (L
H
)
j
< 0
_
b) Variable sortante
Une fois lindice e choisi, il faut determiner 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
designe 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 lon a note
z = A
1
B
A
e
R
m
. (2.11)
Si z 0, on peut augmenter x
e
autant quon veut, on aura toujours la positivite de la variable de
base x
B
. La fonction objectif nest pas majoree sur D
R
i.e. le maximum de F vaut +. Dans ce
cas, lalgorithme sarrete.
Sinon (i.e. il existe z
i
> 0), pour avoir la positivite (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 donnee par
x
e
= min
i
_
(x
B
)
i
z
i
, z
i
> 0
_
(2.13)
2.5. ALGORITHME DU SIMPLEXE 19
Resume de la methode du simplexe en phase 2 (progression)
1. Calcul des variables de base realisables : etant donne A = (A
B
| A
H
), on calcule les variables de
base realisables x
B
= A
1
B
b 0.
Calcul des co uts reduits : L

H
= c

H
c

B
A
1
B
A
H
Si L
H
0 alors x
B
est une solution optimale ( arret de lalgo.).
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 Methode des dictionnaires
On consid`ere un PL sous forme standard, cest-`a-dire de la forme
max
x
F(x) = c

x
_
Ax = b
x 0
On se place `a une iteration donnee dans la methode du simplexe. On dispose dune 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
realisable en determinant des variables entrante et sortante pour augmenter F. Le principe de la methode
des dictionnaires est le suivant :
Principe de la methode 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 lineaire quon appelle dictionnaire. On
choisit alors la variable entrante comme la variable de x
H
qui fait le plus augmenter F. On determine
la variable sortante en choisissant la valeur de la variable entrante la plus grande possible tout en
maintenant les conditions de positivite sur les variables de base x
B
.
Exemple du probl`eme de production. Le probl`eme de production de lintroduction secrit sous forme
standard (variables decart 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 realisable 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 realisable :
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 letape 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 realisable (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 letape 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 reduits sont 0 donc on ne peut plus augmenter F : loptimum 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 Methode des tableaux
Les calculs precedents peuvent se simplier si on sarrange pour avoir toujours A
B
= I
d
. On dit
quon maintient lidentite sous la base. De cette facon, la resolution dun syst`eme A
B
x
B
= b est
2.5. ALGORITHME DU SIMPLEXE 21
immediate, 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 decompose en
A = (I
m
| A
H
)
o` u I
m
est la matrice identite dordre m, et on dispose dune solution de base realisable x = (x
B
| x
H
)

avec x
B
= b et x
H
= 0. Dans ce cas, les co uts reduits (cf. (2.9)) se simplient en :
L

H
= c

H
c

B
A
H
(2.14)
et les indices e et s des variables entrante et sortante sont donnees 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 secrit alors
A

=
_
A
e
B
| A
e
H
_
.
La matrice A
e
B
est donnee 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 precisement, 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

= 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
donne 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) dune matrice M. On a les relations pour les
matrices
_

A
e
H
_
i
=
_
A
e
H

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 meme 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 reduits
On a F(x) = F
opt
+ L

H
x
H
o` u F
opt
= F(x) avec x une solution de base realisable associee `a la base
B. On veut exprimer F dans la nouvelle base

B = B +{e} {s} et avec le nouvel ensemble dindices 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

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
designe la s-i`eme ligne de

A
e
H
.
Demonstration. Si on note
L = (0 | L
H
)

R
n
,
alors la fonction objectif secrit
F(x) = F
opt
+L

x = F
opt
+

jH
L
j
x
j
= F
opt
+

jH{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
+

jH
a
sj
x
j
= b
s
.
On ecrit alors
x
s
+

jH{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
+

jH{e}
a
sj
x
j
=

jH{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
designe la s-i`eme ligne de

A
e
H
. En injectant lexpression 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 methode des tableaux


A chaque etape de la methode des tableaux, on regroupe dans un seul tableau, la matrice A et second
membre b, les co uts reduits et la valeur F
opt
de la fonction objectif sur la solution de base courante. Dans
le tableau, on separe 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 Methode des tableaux
On utilise les formules de mise `a jour donnees par les Proposition (2.3) et (2.4). En traduisant ces
formules sur le tableau ci-dessus, la methode des tableaux secrit 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 reduits.
Au debut de letape 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 realisable evidente est donnee 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.
Linverse de la matrice de base est donnee 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.
Linverse de la matrice de base est donnee par A
1
B
2
=
_
_
1 5/2 0
0 1/3 0
0 1/6 1
_
_
.
Cette etape correspond `a lexamen du sommet x = (x
1
= 10, x
2
= 0) de lensemble D
R
des solutions
realisables (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 reduits sont negatifs. Loptimum 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 lalgorithme du simplexe (en phase 2), on peut distinguer des cas remarquables qui
conduisent tous `a larret de lalgorithme.
26 CHAPITRE 2. PROGRAMMATION LIN

EAIRE
1. Si les co uts reduits L
H
< 0, alors la solution de base realisable courante est lunique optimum.
D
R
F(x) = F
max
optimum unique
2. Si les co uts reduits L
H
0, alors il y a deux cas remarquables :
i) si (L
H
)
e
= 0 et x
e
> 0, alors loptimum nest pas unique.
D
R
max
F(x) = F
optimums
ii) si (L
H
)
e
= 0 et x
e
= 0, alors loptimum est unique (a priori). Dans ce cas, la base est dite
degeneree cest-`a-dire quil existe une variable de base nulle.
D
R
F(x) = F
max
optimum unique dgnr
3. Si (L
H
)
e
> 0 et x
e
est non borne alors la fonction objectif F nest pas majoree.
Une solution de base realisable est dite degeneree si au moins une des variables de base est nulle.
Theor`eme 2.3. Si au cours de lalgorithme du simplexe, aucune base rencontree nest degeneree, alors
lalgorithme se termine en un nombre ni diterations.
2.5. ALGORITHME DU SIMPLEXE 27
Demonstration. A une iteration donnee de lalgorithme, soit on detecte une fonction objectif non majoree
(arret de lalgo.), 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 rencontree nest degeneree). Par consequent, on ne
rencontre jamais une base dej`a rencontree `a une iteration precedente. Le nombre de solution de base
realisable etant ni ( C
m
n
), lalgorithme sarrete necessairement en un nombre ni diterations.
Remarque : Sil existe une base degeneree, alors on peut rencontrer un eventuel cyclage de lalgorithme :
on retrouve une base dej`a rencontree et on boucle indeniment. Pour traiter les cas de degenerescence, on
peut appliquer la r`egle de Bland (1977) qui assure larret de lalgorithme en un nombre ni diterations.
Cette r`egle senonce de la facon suivante : Lorsque plusieurs variables sont susceptibles dentrer ou de
sortir de la base, on choisit toujours celle qui a lindice le plus petit.
2.5.5 Initialisation et variables articielles : la phase 1
Pour un PL sous forme canonique pure avec les contraintes Ax b, x 0, on peut determiner faci-
lement une solution de base realisable dans le cas o` u b 0. En eet, sous forme standard les contraintes
deviennnent Ax+e = b, avec x, e 0 o` u e designent les variables decarts. Une solution de base realisable
evidente est alors x = 0, e = b 0. Cependant, pour un PL sous forme standard, il ny a pas toujours
de solution de base realisable evidente. On va voir comment contruire des solutions de base realisable :
cest la phase dinitialisation 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
mn
est de rang plein, ni quil existe bien des solutions
realisables. Pour obtenir une solution de base realisable ou bien pour detecter limpossibilite, on in-
troduit un probl`eme de programmation lineaire auxiliaire pour des variables supplementaires appelees
variables articielles.
Soit a = (a
1
, , a
m
) les variables articielles 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 propriete (evidente) suivante.
Proposition 2.5. Un (PL) admet une solution realisable si et seulement si le probl`eme auxiliaire (PLA)
admet une solution de base optimale avec a = 0.
Ce resultat fournit un procede pratique pour obtenir une solution de base realisable pour le probl`eme
(PL). On applique lalgorithme du simplexe au probl`eme auxiliaire (PLA). A la n du simplexe, le co ut
minimal est nul sinon on a detecte limpossibilite pour (PL) (i.e. D
R
= ). A la n du simplexe sur
(PLA), si tout sest deroule normalement (co ut nul), on cherche `a eliminer de la base toutes les variables
articielles. Deux cas de gure se presentent alors :
1. On a reussi `a faire sortir toutes les variables articielles. On passe `a la phase 2 du simplexe.
28 CHAPITRE 2. PROGRAMMATION LIN

EAIRE
2. Sil reste des variables articielles dans la base (base degeneree) alors les lignes associees `a ces
variables sont des contraintes redondantes quon elimine.
Resume de la phase dinitialisation du simplexe (phase 1).
On note F
aux
la valeur de la fonction objectif du probl`eme auxiliaire (PLA) `a la n du simplexe, cest-`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
designe lensemble des variables de base pour (PLA), alors n
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 associees aux a
j
et
on passe `a la phase 2.
3. Si F
aux
> 0 alors pas de solution realisable (D
R
= ).
2.6 Analyse post-optimale
Lanalyse optimale permet de determiner des intervalles de variations des donnees pour lesquels la base
optimale B

nest pas modiee. Elle permet de determiner la sensibilite de (PL) par rapport aux donnees.
Une faible variation des donnees entraine-t-elle un changement important de la solution optimale ?
2.6.1 Analyse post-optimale de lobjectif
On regarde linuence des coecients de la fonction objectif sur loptimum. On consid`ere un PL sous
forme standard qui admet une base optimale B

cest-`a-dire un PL pour lequel lalgorithme du simplexe


se termine normalement. A loptimum, on a la condition suivante doptimalite :
Condition doptimalite :
L

H
= c

H
c

B
A

H
0 (2.29)
o` u A

H
est la matrice hors-base obtenue `a loptimum dans le tableau du simplexe. A une permutation
pr`es des colonnes, A se decompose en A = (A
B
| A
H
) et la matrice A

H
est donnee par A

H
= A
1
B

A
H
.
La condition doptimalite est une condition susante pour quune solution de base realisable soit
optimale.
En eet, on a, pour tout x R
n
,
F(x) = F(x

) +L

H
x

o` u x

= (x

B
| x

H
= 0) est une solution de base realisable associee `a la base B

, avec x

B
= A
1
B

b. Par
consequent, sous la condition doptimalite (2.29) cest-`a-dire avec L

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

), x 0
cest-`a-dire que x

est optimale.
On utilise la condition doptimalite pour determiner linuence dun coecient de la fonction objectif
F. On remplace ce coecient par un param`etre et on calcule la condition doptimalite. On obtient alors
une condition sur ce param`etre. Cette condition est une condition necessaire pour que la solution de base
optimale soit inchangee et une condition susante pour que la solution obtenue soit optimale.
Exemple. On reprend lexemple du probl`eme de production de lintroduction et on veut regarder la
sensibilite de loptimum 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 coecient 6 par un
param`etre c
1
dans F :
c

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

H
= (0, 0).
On a trouve 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 reduits valent donc
L

H
= c

H
c

B
A

H
=
_
8
3

5
6
c
1
,
c
1
6

4
3
_
.
La condition doptimalite L

H
0 donne alors
16
5
c
1
8.
Interpretation. Si on choisit
16
5
c
1
8, la solution de base optimale est inchangee cest-`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 present linuence du second membre des contraintes sur la solution de base optimale.
Soit une base optimale B

. A loptimum, une condition de faisabilite est satisfaite.


Condition de faisabilite :
x
B
= A
1
B

b 0. (2.30)
Pour determiner linuence dun coecient du second membre sur la solution optimale, on remplace
ce coecient 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 faisabilite. On obtient de cette facon une condition sur


le param`etre introduit. Cette condition est une condition necessaire pour que la base optimale B

soit
inchangee. En revanche, les valeurs de la solution de base x
B
changent, mais x
B
est toujours une
solution de base realisable optimale car on maintient les co uts reduits L

H
0 inchanges.
Remarque. On calcule A
1
B

directement `a partir des tableaux du simplexe. Si lalgorithme du simplexe


se deroule en q +1 etapes, alors A
1
B

= A
1
B
q
A
1
B
q1
A
1
B
2
A
1
B
1
o` u la matrice A
1
B
k
est determinee
par (2.18) `a letape k du simplexe.
Exemple. Avec lexemple du probl`eme de production, on veut examiner la sensibilite de la solution
optimale par rapport `a la quantite disponible de main doeuvre qui vaut 55 unites. 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 faisabilite x
B
0 donne alors :
40 d
2
60,4
Interpretation. Si on choisit 40 d
2
60,4 alors la solution de base realisable x
B
donnee par (2.31) est
optimale.
2.7 Dualite
2.7.1 Introduction et denition
Revenons encore une fois au probl`eme de production de lintroduction. Supposons `a present quun
acheteur se presente pour acheter toutes les ressources b
i
, 1 i m, de lentreprise. Il propose `a
lentreprise un prix unitaire y
i
, 1 i m, pour chacune des ressources. Lentreprise acceptera de lui
vendre toutes ses ressources uniquement si elle obtient pour chaque produit P
j
un prix de vente au moins
egal au prot c
j
quelle 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 cote, lacheteur cherche `a minimiser le prix total dachat. On se demande alors quels sont les prix
unitaires y
i
, 1 i m, que lacheteur doit proposer `a lentreprise en question pour quelle accepte de
vendre toutes ses ressources ? Le probl`eme peut donc secrire
min
y=(y
1
,y
2
,y
3
)
[G(y) = 81y
1
+ 55y
2
+ 20y
3
]
avec les contraintes (2.32).
Denition 2.5. Au programme lineaire primal
(PL)
max
xR
n
_
F(x) = c

x
_
_
Ax b
x 0
on associe le programme lineaire dual
(PLD)
min
yR
m
_
G(y) = b

y
_
_
A

y c
y 0
2.7. DUALIT

E 31
Comparaison primal/dual.
Primal Dual
max(F) min(G)
coecient c de F second membre c
second membre b coecient b de G
m contraintes inegalites () m contraintes de positivite
n contraintes de positivite n contraintes inegalites ()
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 facon generale, on a la
denition suivante lorsque le probl`eme primal est sous forme canonique mixte :
Primal Dual
max
xR
n
_
F(x) = c

x
_
min
yR
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 Proprietes - Theor`emes de dualite
Proposition 2.6. Le dual du dual est le primal
Demonstration. A partir de la denition du dual dun 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 depart.
On sinteresse `a present au lien entre les solutions de programmes lineaires en dualite.
32 CHAPITRE 2. PROGRAMMATION LIN

EAIRE
Theor`eme 2.4. Th eor` eme faible de dualit e
Soit x une solution realisable dun (PL) sous forme canonique mixte et y une solution realisable 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.
Demonstration. Dans le cas o` u (PL) est sous forme canonique pure :
1. On a dune part Ax b, x 0 et dautre part A

y c, y 0. Par consequent,
F(x) = c

x (A

y)

x = y

Ax
..
b
y

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

et y

des solutions realisables de (PL) et (PLD) respectivement telles que F(x

) = G(y

).
Dapr`es 1., pour toute solution realisable x de (PL), on a F(x) G(y

) = F(x

) donc x

est une
solution realisable optimale. Idem pour y

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

alors le probl`eme dual (PLD)


admet lui aussi une solution realisable optimale y

et on a
F(x

) = G(y

).
Demonstration. On suppose que (PL) est sous forme standard. Si (PL) admet une solution realisable
optimale, il admet une solution de base realisable optimale (cf. Theor`eme 2.2). On note B

la base
optimale et on designe par x

la solution de base realisable optimale : x

= A
1
B

b. On choisit alors
y

= (A
1
B

c
B
.
Montrons que y

est une solution realisable 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 loptimum tous les co uts reduits sont negatifs ou nuls (L
H
0) donc A

H
y

c
H
. Par denition,
on a A

B
y

= c
B
et donc on obtient
A

c
y

de signe quelconque.
Par consequent, y

est une solution realisable du dual (PLD). On remarquera que le probl`eme primal
(PL) etant mis sous forme standard, il ny a pas de contrainte de positivite sur les variables y du dual.
Par ailleurs,
F(x

) = c

= c

B
A
1
B

b
=
_
(A
1
B

c
B

. .
y

b
= G(y

)
2.7. DUALIT

E 33
et donc par le Theor`eme faible de dualite, y

est optimale pour (PLD).


On a vu quil y avait 3 cas possibles (et seulement 3) pour le probl`eme primal (PL) :
(1) il existe (au moins) une solution optimale.
(2) lensemble D
R
des solutions realisables nest pas borne et loptimum est inni.
(3) pas de solution realisable (D
R
= ).
Les memes situations se retrouvent pour le probl`eme dual. Plus precisement, le lien entre les deux
probl`emes en dualite est donne par le resultat suivant.
Theor`eme 2.6. Etant donnes 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 loptimum, les co uts sont egaux).
(b) un des probl`emes poss`ede une solution realisable avec un optimum inni, lautre na pas de solution.
(c) aucun des deux probl`emes ne poss`ede de solution realisable.
Il y a donc 3 situations (au lieu de 9) qui peuvent se resumer dans le tableau suivant :
Dual
(1) Solution optimale (2) Optimum inni (3) pas de solution
P
r
i
m
a
l
(1) Solution optimale (a) impossible impossible
(2) Optimum inni impossible impossible (b)
(3) pas de solution impossible (c) impossible
2.7.3 Conditions doptimalite primal-dual (COPD)
On sinteresse au cas (a) o` u les probl`emes primal et dual poss`edent chacun des solutions optimales
(optimum ni). On peut alors calculer lune `a partir de lautre.
Theor`eme 2.7. Soient x et y des solutions realisables respectivement du probl`eme primal (PL) et
du probl`eme dual (PLD). Alors x et y sont des solutions realisables optimales si et seulement si les
conditions doptimalite primal-dual (COPD) suivantes sont veriees :
Si une contrainte est satisfaite en tant quinegalite stricte dans (PL) (resp. dans (PLD)) alors la
variable correspondante de (PLD) (resp. de (PL)) est nulle.
Si la valeur dune variable dans (PL) ou (PLD) est strictement positive alors la contrainte corres-
pondante de lautre programme est une egalite.
Supposons que le probl`eme primal secrive 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
Demonstration de la condition necessaire du Theor`eme 2.7. Supposons pour simplier que le probl`eme
primal (PL) soit mis sous forme canonique pure. Soient x et y des solutions realisables optimales de (PL)
et (PLD) respectivement. On a donc Ax b, x 0 et A

y c, y 0. En introduisant les variables


decart 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 dapr`es le Theor`eme de la dualite forte, F(x) = G(y) donc on obtient

x +e

y = 0 . (2.33)
Puisque x 0 et y 0, on a necessairement
_

i
x
i
= 0, i
e
j
y
j
= 0, j
ce qui donne les COPD (encore appelees relations dexclusion) :
_
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 reciproque (condition susante) se demontre `a partir du Theor`eme faible de dualite.
Utilisation pratique des COPD.
La dualite et les COPD permettent souvent de verier si une solution realisable dun (PL) est optimale
ou non, `a partir de la connaissance dune solution optimale du probl`eme dual. Lorsque (PL) et (PLD)
ont des solutions realisables optimales x

et y

respectivement, on a :

j=1
a
ij
x

j
< b
i
y

i
= 0

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 secrit
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 resolvant 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.

Vous aimerez peut-être aussi