Vous êtes sur la page 1sur 13

Programmation lineaire.

Methode du simplexe.
S. EL BERNOUSSI
25 octobre 2010
Table des mati`eres
1 Introduction. 2
2 Notion de programme lineaire. 2
2.1 Exemple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Forme generale dun programme lineaire. . . . . . . . . . 3
2.3 Formes matricielles classiques et convensions. . . . . . . . 3
2.4 Interpretation economique. . . . . . . . . . . . . . . . . . . . 3
3 Resolution graphique. 4
4 Principes de la resolution algebrique. 4
4.1 Bases , solutions de bases et solutions realisables. . . . . 4
4.2 Caracterisation algebrique des points extemes. . . . . . . 6
4.3 Proprietes fondamentales de la programmation lineaire. . . . . . 7
4.4 Operation de pivotage. . . . . . . . . . . . . . . . . . . . . . . . . 8
4.5 Algorithme du simplexe `a la main. . . . . . . . . . . . . . . . . . 8
5 Algorithme du simplexe . 8
5.1 Algorithme du simplexe. . . . . . . . . . . . . . . . . . . . . . . 9
5.1.1 Probl`emes souleves par la degenerescence. . . . . . . . . 10
5.2 Complexite de lalgorithme et ecacite pratique. . . . . . . . . . 10
6 Exercices 11
1
1 Introduction.
programmation lineaire est le domaine qui a eu le plus de succe en opti-
misation. Depuis sa formulation de 1930 `a 1940, et le developpement de la
methode de simplexe par Danzig en 1940, des chercheurs dans dierents do-
maines : economie, nance, ingenerie etc..., ont ete amene `a formuler et `a
resoudre des probl`emes lineaires, et meme quand le probl`eme etait non lineaire,
il etait modelise sous forme lineaire, car les mod`eles non lineaires necessitent
des algorithmes plus elabores et plus couteux.
La publication en 1984 du papier de Karmarkar est probablement levenement
le plus signicatif en programmation lineaire apr`es la decouverte de la methode
du simplexe. Linterret du travail de Karmarkar vient de la complexite po-
lynomiale de son algorithme, ce travail a donne naissance aux methodes de
points interieurs, qui restent jusqu`a present un domaine de recherche tr`es actif.
2 Notion de programme lineaire.
Un programme lineaire est la maximisation ou la minimisation dune fonction
lineaire sous des contraintes lineaires.
2.1 Exemple.
Voici un petit exemple traitable par la programmation lineaire.
Une usine produit deux ciments, rapportant 500Dh et 700Dh par tonne.
Une tonne du ciment N

1 necessite 40 min de calcination dans un four `a


chaux et 20 min de broyage.
Une tonne du ciment N

2 necessite 30 min de calcination dans un four `a


chaux et 30 min de broyage.
Le four et latelier de broyage sont disponibles 6h et 8h par jour. Combien de
ciment de chaque type peut-on produire par jour pour maximiser le benece ?
Ce probl`eme se modelise comme suit :
_

_
Max z = 500x
1
+ 700x
2
(1)
40x
1
+ 30x
2
360 (2)
20x
1
+ 30x
2
480 (3)
x
1
0, x
2
0 (4)
(1) : est le prot total qui est `a optimiser appele fonction objective.
(2) et (3) sont des contraintes. (2) est la disponibilite du four et (3) est la
disponibilite du broyeur.
(4) est le domaine des variables.
2
2.2 Forme generale dun programme lineaire.
_

_
(1) max ou min
n

j=1
c
j
x
j
(2) i = 1, ..., m :
n

j=1
a
ij
x
j
, = ou b
i
(3) j = 1, ..., n x
j
0
(1) : fonction objective.
(2) : m contraintes lineaires.
(3) : contraintes de positivite.
2.3 Formes matricielles classiques et convensions.
Notons par x = (x
1
, x
2
, ..., x
n
)
T
le vecteur des variables. b = (b
1
, b
2
, ..., b
m
)
T
le second membre des contraintes, c = (c
1
, c
2
, ..., c
n
)
T
le vecteur cout ou prot
associe aux variables et A la matrice mn des a
ij
.
_

_
Forme canonique :
max z = cx
Ax b
x 0.
,
_

_
Forme standard :
max z = cx
Ax = b
x 0.
La forme canonique avec des contraintes sutilise dans la representation
graphique, et la forme standard avec des contraintes egalite sutilise dans la
resolution algebrique.
Remarque 1 Ces formes ne servent qu`a simplier les representations theoriques.
Dans la realite un probl`eme lineaire peut comporter des contraintes egalitees
ou inegalitees.
Ainsi
n

j=1
a
ij
x
j
= b
i

_

_
n

j=1
a
ij
x
j
b
i

j=1
a
ij
x
j
b
i
et
n

j=1
a
ij
x
j
b
i

n

j=1
a
ij
x
j
+ e
i
..
variable decart.
= b
i
max z = min z
x R, x = x
+
x

avec x
+
et x

R
+
.
2.4 Interpretation economique.
Un programme lineaire a une interpretation economique tr`es large :
Un acteur economique qui exerce n activites avec des intensites x
j
`a determiner.
Ces activites utilisent m resources. La quantite a
ij
de resources i necessaires
3
pour exerser lactivite j avec une intensite 1. On connait le prot (en maximisa-
tion) et le cout (en minimisation). c
j
correspond `a une intensite 1 de lactivite
j.
3 Resolution graphique.
On resoud graphiquement le probl`eme suivant :
max z = x
1
+ 2x
2
x
1
+x
2
6
x
2
3
x
1
, x
2
0
matriciellement on a m = 2, n = 2, c = (1, 2),
x = (x
1
, x
2
)
T
, b = (6, 3)
T
et A =
_
1 1
0 1
_
.
(la resolution se fait en cours)
4 Principes de la resolution algebrique.
La resolution algebrique utilise la forme standard, o` u A est une matrice mn
de rang m.
(P)
_
_
_
max z = cx
Ax = b
x 0
4.1 Bases , solutions de bases et solutions realisables.
Les bases de A sont les matrices mm inversibles extraites de A.
Soit B une base de A. On partitionne A sous la forme suivante : A = [B N]
( on suppose pour faciliter la presentation que les colonnes de bases sont les m
premi`eres colonnes), on partitionne de meme les vecteurs x et c. x = (x
B
, x
N
)
T
et c = (c
B
, c
N
)
T
.
Ax = b
Bx
B
+Nx
N
= b
x
B
= B
1
b B
1
Nx
N
.
z = cx = c
B
x
B
+c
N
x
N
= c
B
B
1
b +
_
c
N
c
B
B
1
N
_
x
N
.
4
On note c
N
= c
N
c
B
B
1
N.
Le probl`eme (P) secrit alors sous la forme :
(P

)
_
_
_
max z = c
B
B
1
b +c
N
x
N
x
B
= B
1
b B
1
Nx
N
x
B
, x
N
0
Cest la forme canonique par rapport `a la base B.
x

est dite solution de base si elle verie Ax

= b et x

=
_
x
B
= B
1
b
x
N
= 0
_
.
Si en plus x
B
0 alors x

est une solution de base realisable.


x

est dite solution realisable si elle verie les contraintes cest `a dire Ax

=
b et x

0.
5
Exemple 2 Determiner les bases et les bases realisables du syst`eme suivant :
x
1
+x
2
+x
3
= 6
x
2
+x
4
= 3
x
1
, x
2
, x
3
, x
4
0
A=
_
1 1 1 0
0 1 0 1
_
.
1. B
1
=
_
A
1
A
2

=
_
1 1
0 1
_
= x
B1
= B
1
1
b =
_
1 1
0 1
_

_
6
3
_
=
_
3
3
_
0.
B
1
est une base realisable.
B
2
=
_
A
1
A
3

=
_
1 1
0 0
_
= det B
2
= 0.
B
2
nest pas une base.
B
3
=
_
A
1
A
4

=
_
1 0
0 1
_
= x
B3
= B
1
3
b =
_
6
3
_
0.
B
3
est une base realisable.
B
4
=
_
A
2
A
3

=
_
1 1
1 0
_
= x
B4
= B
1
4
b =
_
3
3
_
0. B
4
est une base realisable.
B
5
=
_
A
2
A
4

=
_
1 0
1 1
_
= x
B5
= B
1
5
b =
_
6
3
_
0.
B
3
nest pas une base realisable.
B
6
=
_
A
3
A
4

=
_
1 0
0 1
_
= x
B6
= B
1
6
b =
_
6
3
_
0.
B
6
est une base realisable.
4.2 Caracterisation algebrique des points extemes.
Denition 3 Un ensemble X est convexe si : x, y X et , [0, 1]
avec + = 1; on a x +y X.
Denition 4 Une combinaison lineaire delements de X (

n
1

i
x
i
) est dite
convexe si

n
1

i
= 1 et
i
0.
6
Notons X = {x | Ax = b, x 0} , lensemble des solutions realisables de (P).
Cet ensemble est convexe.
Denition 5 * Lensemble X est appele un polytope convexe.
* Un polytope borne est un poly`edre convexe.
* Un point extreme dun polytope ou dun poly`edre convexe X, est un point
qui ne peut etre exprime comme combinaison convexe dautres points de X.
* On app`ele support de x, lenseble des indices des composantes non nulles.
On le note sup p(x).
Theor`eme 6 Lensemble des points extremes du polytope X, correspond `a len-
semble des solutions de base realisables.
Theor`eme 7 Si c
N
0 alors la solution de base realisable correspondante
est solution optimale du programme lineaire (P).
( Voir la demonstration en cours)
Exemple 8 determiner les bases optimales du probl`eme suivant :
max z = x
1
+ 2x
2
x
1
+x
2
+x
3
= 6
x
2
+x
4
= 3
x
1
, x
2
, x
3
, x
4
0
nous avons deja verie que B
1
, B
3
, B
4
, B
6
etaient realisables pour verier
loptimalite nous allons calculer le c
N
associe.
B
1
: c
N
= c
N
c
B
B
1
N
= (0 0) (1 2)
_
1 1
0 1
__
1 0
0 1
_
= (1 1) < 0.
. B
1
est optimale, z

= c
B
B
1
b = 9.
B
3
: c
N
= (1 1). B
3
est non optimale, et z

= 6.
B
4
: c
N
= (1 2). B
4
est non optimale, et z

= 6.
B
6
: c
N
= (1 2). B
6
est non optimale, et z

= 0.
Do` u la seule base optimale est B
1
, la solution optimale correspondante est
x

=
_
_
_
_
3
3
0
0
_
_
_
_
.
4.3 Proprietes fondamentales de la programmation lineaire.
Proposition 9 Si une fonction lineaire atteint son maximum (ou minimum)
sur le polytope X alors cet optimum a lieu en un sommet de X(point exteme de
X).
7
Proposition 10 Si X = , il existe au moins un sommet (point exteme).
Remarque 11 Pour 100 contraintes de 400 variables choisir 100 colonnes
parmis 400 est de lordre de 100
100
sommets.
Lalgorithme du simplexe empreinte un chemin astusieu de facon `a maxi-
miser le prot.
4.4 Operation de pivotage.
Denition 12 Etant donnee une m n matrice A, 1 r m et 1 s n
tels que A
s
r
= 0. La matrice D denie par :
D
j
i
=
_
_
_
_
_
1 si j = i, j = r
1
A
s
r
si j = i = r

A
s
i
A
s
r
si j = r, i = r
0 sinon
est appelee matrice de pivotage sur lelement A
s
r
de A.
Theor`eme 13 Si on applique loperation de pivotage `a la matrice (A, b) du
syst`eme Ax = b, on obtient la matrice (DA, Db). Le syst`eme DAx = Db est
equivalent `a Ax = b.
4.5 Algorithme du simplexe `a la main.
_

_
max z = x
1
+ 2x
2
x
1
+x
2
+x
3
= 6
x
2
+ x
4
= 3
x
1
, x
2
, x
3
, x
4
0
lalgorithme consiste `a construire une suite de bases realisables, de prot
croissant jusqu`a ce quil ny ait plus de gain possible.
(voir cours pour lexemple)
5 Algorithme du simplexe .
Theor`eme 14 Etant donne un programme lineaire
(PP)
_
_
_
max z = +cx
Ax = b
x 0
o` u A est une matrice mn de rang m. (PP) est ecri sous forme canonique par
rapport `a une base B.
8
1. Si c 0 la base B est optimale, et la solution de base associee est solution
optimale de (PP).
2. Sil existe s une colonne de A : A
s
/ B, avec c
s
> 0 et I = {i : A
s
i
> 0} =
alors (PP) na pas de solution optimale.
3. Sil existe s une colonne de A : A
s
/ B, avec c
s
> 0 et I = {i : A
s
i
> 0} =
. Soit r tel que
br
A
s
r
= min
iI
_
bi
A
s
i
_
et soit x
t
la variable correspondant `a la
r
i` eme
ligne de base c`ad que A
t
= e
r
alors on verie apr`es pivotage de la
matrice des coecients de (PP) sur A
s
r
, que la base B

= B+{A
s
}\{A
t
}
est realisable et que le nouveau programme est ecrit sous forme canonique
par rapport `a la nouvelle base B

.
5.1 Algorithme du simplexe.
On dispose dune base realisable B
0
.
1. B
0
base realisable du depart. Iteration k = 0.
2. k k + 1.
3. `a literation k. Soit B la base courante x = (x
B
, x
N
) la solution de base
correspondante : calculer

b = B
1
b
= c
B
B
1
(les multiplicateurs du simplexe)
c
N
= c
N
N
4. si c
N
0 : loptimum est atteint.
si s tel que c
s
> 0 alors
5. soit A
s
la colonne s de A : calculer A
s
= B
1
A
s
si A
s
0 stop : loptimum est non borne (+)
sinon calculer x
s
=

br
A
s
r
= min
_

bi
A
s
i
: A
s
i
> 0
_
6. soit x
t
la variable correspondant `a la r
i` eme
ligne de la base, c`ad telle que
B
1
A
t
= e
r
(m-vecteur `a composantes toutes nulles sauf la composante
r egale `a 1); alors la variable s prend la valeur x
s
> 0 (entre en base) ; la
variable t sannule ( x
t
= 0)( sort de la base) la nouvelle base realisable

B =
B +{A
s
} {A
t
} , calculer linverse de la nouvelle base

B
1
et retourner
`a (2).
Remarque 15 - Dans (6) on a suppose que x
s
> 0 c`ad que

b
r
> 0. Si

b
r
= 0
alors la nouvelle solution obtenue est la meme que la precedente, et ce sommet
est represente par plusieurs bases realisables cest un cas de degenerescence. Si
(P)est ecrit sous forme canonique par rapport `a une base optimale

B alors :
- Si c

N
< 0 la solution de (P) est unique.
9
- Si c
s
= 0, s

N alors la solution nest pas unique en generale.
On peut choisir x
s
= min
_
b
bi
c
A
s
i
:

A
s
i
> 0
_
, on determine ainsi un ensemble de
solutions realisable pour lesquels z =

.
Theor`eme 16 Convergence nie.
Sous lhypoth`ese de non-degenerescence, lalgorithme du simplexe converge
en un nombre ni diterations.
Demonstration. Il sut dobserver que le nombre de sommets est ni, et
que la croissance stricte de z interdit de passer deux fois par le meme sommet.
5.1.1 Probl`emes souleves par la degenerescence.
Dans le cas de degenerescence o` u

b
r
= 0, on a x
s
=

br
A
s
r
= 0. Alors
la valeur de la fonction z ne varie pas apr`es le changement de base (en eet
z( x) = z
B
+c
s
x
s
= z
B
).
Il est possible apr`es un certain nombre de changements de bases de retrouver
une base deja rencontree et de cycler indeniment.
On peut regler le probl`eme de plusieurs facons.
1. Par perturbation des donnees du probl`eme.
2. Par des r`egles de selection du pivot(R.G. Bland 1977).
A chaque iteration de lalgorithme du simplexe
parmis toutes les variables susceplibles dentrer en base (c`ad telles que
c
s
> 0) choisir celle du plus petit indice.
parmis toutes les variables susceptibles de quitter la base (c`ad toute les
variables x
r
telles que
br
A
s
r
= min{
bi
A
s
i
: A
s
i
> 0} choisir celle du plus petit
indice.
Bland a montre que meme en cas de degenerescence cette r`egle assure la
convergence nie de la methode du simplexe.
5.2 Complexite de lalgorithme et ecacite pratique.
Levaluation de la complexite dun algorithme est letude du nombre maximal
doperations elementaires quil necessite dans le pire des cas.
Kelle et Minty (1972) ont construit des probl`emes
necessitant lexamen dun nombre de sommets croissant
exponentiellement en fonction de la taille du
probl`eme (contraintes et variables) la complexite
de la methode du simplexe est donc exponentielle.
10
6 Exercices
Serie N1
Programmation lineaire
Exercise 17 Montrer que le probl`eme doptimisation :
(P)
_

_
min r.x +s.y
B.x +D.y f
M.x +N.y g
P.x +Q.y = h
x 0
est un programme lineaire.
Exercise 18 Considerons le programme lineaire suivant :
(P)
_

_
min x
1
+ 2x
2
+ 3x
3
x
1
+ 2x
2
3x
3
= 1
2x
1
x
2
5x
3
2
x
1
+ 3x
2
+ 3x
3
1
x
1
, x
2
0
1. Mettre ce programme sous forme canonique, sous forme standard.
2. Le probl`eme etant mis sous la forme standard, on a m = 3 et n = 6
Ecrire A
2
, A
3
, A
4
posons I = {1, 3} et J = {2, 4, 5} .
Ecrire b
I
, C
J
, A
I
, A
J
, A
J
I
.
Exercise 19 Montrer que le probl`eme doptimisation suivant :
(P)
_
_
_
min C.x
A.x = b

j
x
j

j
, j = 1, ..., n
est un programme lineaire. Lecrire sous forme standard.
Exercise 20 Montrer que le probl`eme doptimisation :
(P)
_

_
min c.x
n

i=1
| v
i
|
A.x Uv = b
x 0
(o` u U est la matrice unite de la forme (m, m)), peut secrire sous forme dun
programme lineaire.
Exercise 21 Un grossiste desire renouveler son stock de savon. Il sadresse `a
trois fabricants F1, F2 et F3 pour une commande de 20 unites (unite=100kg).
Il est cependant tenu dacheter une quantite non nulle aux fabricants F1 et
F2.
Quelles sont les commandes `a passer `a chacun de ces fournisseurs de mani`ere
`a avoir une depense minimale, si lon sait que
11
F1 peut fournir au maximum 10 unites, mais naccepte jamais une com-
mande inferieure `a 5 unites.
F2 peut fournir au maximum 8 unites, mais naccepte jamais une com-
mande inferieure `a 4 unites.
F3 peut fournir au maximum 9 unites.
Les prix dachat unitaires (en centaines de DH) aupr`es de chaque fabricant
sont les suivants :
F1 : 11 pour les 5 premiers et 9 pour les suivants.
F2 : 8.
F3 : 10.
Exercise 22 Un editeur dispose de deux depots, D
1
et D
2
, possedant respective-
ment 5 et 4 exemplaires dun ouvrage. Trois libraires, L
1
, L
2
, L
3
lui demandant
respectivement 2, 3 et 4 exemplaires de cet ouvrage au cours de la journee. Si
les couts unitaires de transport des depots vers les libraires sont les quantites
indiquees dans le tableau ci-dessous, determiner le plan de transport de co ut
minimums.
L
1
L
2
L
3
D
1
2 5 2
D
2
7 3 6
Exercise 23 On consid`ere le probl`eme lineaire suivant :
(P)
_

_
max z = x
1
+ 3x
2
x
1
+x
2
+t
1
= 14
2x
1
+ 3x
2
+t
2
= 12
2x
1
x
2
+t
3
= 12
x
i
0, t
i
0, i = 1, 2, 3.
1. Donner toutes les solutions de bases de (P).
2. Donner les solutions de bases realisables de (P).
3. Representer graphiquement les solutions de bases et les solutions de bases
realisables. Resoudre graphiquement le probl`eme.
4. Determiner la base optimale, puis ecrire le probl`eme sous forme canonique
par rapport `a cette base.
Exercise 24 Soit le syst`eme lineaire
(1) Ax = b. A M
m,n
(R) , b R
m
, x R
n
3 cas sont possibles :
1. Le syst`eme est de plein rang. Montrer que lensemble des solutions {x | Ax = b} =
. La solution est unique si m = n.
12
2. Le syst`eme nest pas de plein rang et {x | Ax = b} = . Montrer que dans
ce cas y (R
m
)
t
tel que yA = 0 et yb = 0. (on dit que le syst`eme est
incompatible)
3. Le syst`eme nest pas de plein rang et {x | Ax = b} = . Montrer quil existe
y (R
m
)
t
tel que
(a) yA = 0 et yb = 0.
(b) I {1, ..., m} tel que (2) A
I
x = b
I
est de plein rang et
equivalent `a (1).
Les equations A
i
x = b
i
i / I sont dites redondantes. Chaque equation
redondante peut etre exprimee comme combinaison lineaire des equations
de lensemble I.
4. Application :
(a) Determiner le rang du syst`eme Ax = b, avec
A =
_
_
3 4 2 5 1
2 1 3 0 1
1 2 0 3 1
_
_
et b =
_
_
6
1
4
_
_
.
(b) Donner un syst`eme equivalent (2) A
I
x = b
I
.
(c) Donner une base de A
I
et resoudre (2) suivant cette base.
13