Vous êtes sur la page 1sur 49

Programmation linaire

D IDIER M AQUIN


Ecole Nationale Superieure dElectricite et de Mecanique

Institut National Polytechnique de Lorraine


Mathematiques `
discretes `
cours de 2eme
annee


Programmation lineaire p.1/49
Programmation linaire
Problmes doptimisation sous contraintes (cas
particulier)
Fonction objectif et contraintes linaires (par rapport
aux variables inconnues).
Formulation gnrale :

max M = cT x
x
sous les contraintes Ax b
x0
avec x n , A mn , b m et m < n.
On recherchera indiffremment maximiser ou
minimiser

Programmation lineaire p.2/49
Exemple 1 Problme de transport
On dsire acheminer des marchandises de n dpts m
points de vente
On connat :

cij , i = 1..n et j = 1..m, cot de transport (i, j ),


Xi , i = 1..n, stocks des dpts,
Dj , j = 1..m, niveaux de demande aux points de vente.

On recherche, pour chaque couple (i, j ), la quantit (posi-


tive) xij transporter du dpt Xi au point de vente Dj .


Programmation lineaire p.3/49
Exemple 1 Problme de transport
Solution du problme de programmation linaire:
n X
X m
min cij xij
xij 0
i=1 j=1
Xn
sous les contraintes xij = Dj j = 1, . . . , m
i=1
Xm
xij = Xi i = 1, . . . , n
j=1

Le critre reprsente le cot total de transport. Les con-


traintes expriment lgalit de loffre et de la demande pour
chaque point de vente et chaque dpt.

Programmation lineaire p.4/49
Exemple 2 Pb de la ration alimentaire
On dsire nourrir au moindre cot une collectivit tout en
assurant une fourniture minimale de vitamines, sels
minraux, protnes, glucides, etc.
On connat :

Ai vecteur de composition du produit i,


ci cot pour 100 grammes (par exemple) de laliment i,
b vecteur des quantits minimales requises pour le
consommateur.


Programmation lineaire p.5/49
Exemple 2 Pb de la ration alimentaire
Le problme rsoudre, si lon dispose de n aliments de
base est :
n
X
min ci x i
xi
i=1
Xn
sous les contraintes Ai xi b
i=1
xi 0
Problme de programmation linaire tout fait classique.
Intervient frquemment en agriculture (rations pour
animaux) ou dans lindustrie (mlanges de produits
ptroliers ayant des caractristiques minimales volatilit,
indices doctanes, etc ).

Programmation lineaire p.6/49
Simplexe Exemple
Considrons le problme suivant :

max M = 40x1 + 60x2 (1a)


x

sous les contraintes 2x1 + x2 70


x1 + x2 40
x1 + 3x2 90 (1b)
x1 0
x2 0

Premire approche : rsolution graphique.


Programmation lineaire p.7/49
Rsolution graphique

x2

2x1 + x2 = 70

x1 + 3x2 = 90

x2 = 0 x1
x1 + x2 = 40
x1 = 0


Programmation lineaire p.8/49
Rsolution graphique

x2

2x1 + x2 = 70

x1 + 3x2 = 90

x2 = 0 x1
x1 + x2 = 40
x1 = 0
M=0

Programmation lineaire p.9/49
Rsolution graphique

x2

2x1 + x2 = 70

x1 + 3x2 = 90

x2 = 0 x1
x1 + x2 = 40
x1 = 0
M=0 M = 900

Programmation lineaire p.10/49
Rsolution graphique

x2

2x1 + x2 = 70

25
x1 + 3x2 = 90

M = 2100
x2 = 0 x1
15
x1 + x2 = 40
x1 = 0
M=0 M = 900

Programmation lineaire p.11/49
Rsolution graphique

x2

2x1 + x2 = 70

25
x1 + 3x2 = 90

M = 2100
x2 = 0 x1
15
x1 + x2 = 40
x1 = 0
M=0 M = 900

Programmation lineaire p.12/49
Mthode systmatique Simplexe
Ncessit dune mthode systmatique Mthode du
simplexe
Premire ide : transformation des contraintes ingalit
en contraintes galit
Introduction de variables dcart

Introduisons donc les variables x3 , x4 et x5 pour obtenir les


galits :

2x1 + x2 + x3 = 70
x1 + x 2 + x4 = 40
x1 + 3x2 + x5 = 90

xj 0, j = 1, . . . , 5

Programmation lineaire p.13/49
Mthode systmatique Simplexe
2x1 + x2 + x3 = 70
x1 + x 2 + x4 = 40
x1 + 3x2 + x5 = 90

Systme de trois quations cinq inconnues,


Equations indpendantes ; rang de la matrice du
systme gal 3,
Si lon impose arbitrairement la valeur de deux des
variables, les trois variables restantes peuvent tre
dduites.
Solution de base : x1 = x2 = 0

x3 = 70, x4 = 40 x5 = 90


Programmation lineaire p.14/49
Mthode systmatique Simplexe
Valeur du critre M = 40x1 + 60x2 nulle,
Pour augmenter M , il faut augmenter x1 ou x2 ,
On choisit x2 (meilleure sensibilit) en conservant
x1 = 0.
x3 = 70 x2 0 x2 70
x4 = 40 x2 0 x2 40
x5 = 90 3x2 0 x2 30

Valeur maximale admissible x2 = 30.


Nouvelle solution admissible :

x1 = 0, x2 = 30, x3 = 40, x4 = 10 x5 = 0

Nouvelles variables de base x2 , x3 et x4 .



Programmation lineaire p.15/49
Mthode systmatique Simplexe
Nouvelle valeur du critre M = 40x1 + 60x2 = 1800,
Une et une seule variable de base, x3 , x4 ou x5 ,
intervient dans chaque quation,
Chaque nouvelle variable de base x2 , x3 et x4 ne doit
intervenir que dans une seule quation.
Il suffit dextraire la valeur de x2 de la troisime quation
et de substituer son expression dans les deux
premires.
5/3 x1 + x3 1/3 x5 = 40
2/3 x1 + x4 1/3 x5 = 10
1/3 x1 + x2 + 1/3 x5 = 30


Programmation lineaire p.16/49
Mthode systmatique Simplexe
Nouvelle valeur du critre M = 1800 + 20x1 20x5 ,
On choisit daugmenter x1 en conservant x5 = 0
x3 = 40 5/3 x1 0 x1 24
x4 = 10 2/3 x1 0 x1 15
x5 = 30 1/3 x1 0 x1 90

Valeur maximale admissible x1 = 15.


Nouvelle solution admissible :

x1 = 15, x2 = 25, x3 = 15, x4 = 0 x5 = 0

Nouvelles variables de base x1 , x2 et x3 .


Programmation lineaire p.17/49
Mthode systmatique Simplexe
Nouvelle valeur du critre M = 2100 30x4 10x5 ,
La seule manire de modifier x4 et x5 consiste les
rendre positives
Diminution de la valeur du critre M ,
Il nexiste donc plus damlioration possible et la
dernire solution obtenue est la solution optimale,
La valeur du critre est alors gale 2100,
Mme rsultat que la solution graphique (!)


Programmation lineaire p.18/49
Interprtation gomtrique
La solution optimale (x1 , x2 ) ne peut pas tre
strictement lintrieur du polytope des contraintes,
Au moins une des ingalits est sature (satisfaite en
tant qugalit),
Sinon, on pourrait ajouter un petit multiple positif de la
paire de coefficient dfinissant le critre (40, 60) la
solution (x1 , x2 ),
Nouvelle solution (x1 + 40, x2 + 60) conduisant une
valeur de critre M = 40(x1 + ) + 60(x2 + ) suprieure
la valeur M = 40x1 + 60x2 suppose initialement
optimale ce qui conduit une contradiction.


Programmation lineaire p.19/49
Interprtation gomtrique
La solution optimale (x1 , x2 ) doit se trouver sur la
frontire du polytope des contraintes,

x2

V2 (0, 30) :1800

V3 (15, 25) :2100

V4 (30, 10) :1800

x1
V1 (0, 0) : 0 V5 (35, 0) :1400


Programmation lineaire p.20/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 2 1 1 0 0 70
0 1 1 0 1 0 40
0 1 3 0 0 1 90
1 40 60 0 0 0 0


Programmation lineaire p.21/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 2 1 1 0 0 70
0 1 1 0 1 0 40
0 1 3 0 0 1 90
1 40 60 0 0 0 0


Programmation lineaire p.22/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 2 1 1 0 0 70/1 = 70
0 1 1 0 1 0 40/1 = 40
0 1 3 0 0 1 90/3 = 30
1 40 60 0 0 0 0


Programmation lineaire p.23/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 2 1 1 0 0 70
0 1 1 0 1 0 40
0 1/3 1 0 0 1/3 30
1 40 60 0 0 0 0

M x1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 1 1 0 1 0 40
0 1/3 1 0 0 1/3 30
1 40 60 0 0 0 0

Programmation lineaire p.24/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 1 1 0 1 0 40
0 1/3 1 0 0 1/3 30
1 40 60 0 0 0 0

M x1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 2/3 0 0 1 1/3 10
0 1/3 1 0 0 1/3 30
1 40 60 0 0 0 0

Programmation lineaire p.25/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 2/3 0 0 1 1/3 10
0 1/3 1 0 0 1/3 30
1 40 60 0 0 0 0

M x 1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 2/3 0 0 1 1/3 10
0 1/3 1 0 0 1/3 30
1 20 0 0 0 20 1800

Programmation lineaire p.26/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 2/3 0 0 1 1/3 10
0 1/3 1 0 0 1/3 30
1 20 0 0 0 20 1800


Programmation lineaire p.27/49
Oprations matricielles
Critre et contraintes

M x1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 403/5 = 24
0 2/3 0 0 1 1/3 103/2 = 15
0 1/3 1 0 0 1/3 303/1 = 90
1 20 0 0 0 20 1800


Programmation lineaire p.28/49
Oprations matricielles
Critre et contraintes

M x 1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 1 0 0 3/2 1/2 15
0 1/3 1 0 0 1/3 30
1 20 0 0 0 20 1800


Programmation lineaire p.29/49
Oprations matricielles
Critre et contraintes

M x 1 x2 x3 x4 x5 b
0 5/3 0 1 0 1/3 40
0 1 0 0 3/2 1/2 15
0 1/3 1 0 0 1/3 30
1 20 0 0 0 20 1800

M x 1 x2 x3 x4 x5 b
0 0 0 1 5/2 1/2 15
0 1 0 0 3/2 1/2 15
0 0 1 0 1/2 1/2 25
1 0 0 0 30 10 2100

Programmation lineaire p.30/49
Position du problme gnral
Problme gnral :

max M = cT x
x
sous les contraintes Ax b
x0

Introduction de variables dcart, xn+1 , . . . , xn+m

max M = cT
e xe + u (2a)
xe

sous les contraintes Ae xe = b


(2b)
xe 0


Programmation lineaire p.31/49
Dfinitions
Tout vecteur xe satisfaisant les contraintes galit est
appel vecteur admissible,
Un vecteur admissible qui maximise le critre est
appel vecteur admissible optimal.
Lensemble Xad = {xe |Ae xe = b, xe 0} est lensemble
des solutions admissibles du problme.


Programmation lineaire p.32/49
Dfinitions polytopes convexes
Un sous-ensemble S de IRn est dit convexe ssi :

x S, y S, [0, 1] x + (1 )y S

Le demi-espace ferm des (x1 , x2 , . . . , xn ) vrifiant :

1 x 1 + 2 x 2 + . . . + n x n

est un ensemble convexe.


Lintersection dun nombre fini de sous-ensembles
convexes de IRn est un ensemble convexe.
Un polytope convexe de IRn est lintersection dun
nombre fini de demi-espaces ferms.
Un polydre convexe de IRn est un polytope born.


Programmation lineaire p.33/49
Dfinitions polytopes convexes
Lensemble S des solutions admissibles dun problme
de programmation linaire est soit
un polytope convexe (cas des domaines non
borns),
soit un polydre convexe (cas des domaines
borns),
Etant donns k points x1 , x2 , . . . , xk de IRn , on appelle
combinaison linaire convexe de ces k points, un point
x tel que:
1 x 1 + 2 x 2 + . . . + k x k
Pk
avec i 0, i = 1, . . . , k et i=1 i = 1,


Programmation lineaire p.34/49
Dfinitions polytopes convexes
On appelle points extrmes dun polytope ou dun
polydre convexe S , un point x S qui ne peut pas tre
exprim comme combinaison linaire convexe dautres
points y S (y 6= x). Ces points correspondent aux
sommets du polytope.
Tout point x dun polydre convexe S IRn est
combinaison linaire convexe de points extrmes de S .


Programmation lineaire p.35/49
Dfinitions
Un problme de programmation linaire m contraintes
et n variables est dit non-dgnr si toute
sous-matrice de dimension m m extraite de la matrice
augmente [Ae , b] de dimension m (q + 1) est
non-singulire,
Si tel nest pas le cas, le problme est dit dgnr.
Les variables associes aux colonnes de la matrice B ,
matrice non-singulire de dimension m m extraite de
Ae sont appeles variables de base. Les autres
variables sont dites hors base,
Une solution dans laquelle les variables hors base sont
toutes nulles est appele solution de base.


Programmation lineaire p.36/49
Mthode du simplexe
On crit Ae sous la forme Ae = [B, N ] o N dsigne les
colonnes de Ae qui ne sont pas dans B ,
On partitionne les vecteurs xe en [xB , xN ] et cTe en
 T T
cB , c N ,
Toute solution du problme vrifie Ae xe = b, c--d :

BxB + N xN = b

La solution de base associe la base B est la solution


particulire obtenue en posant xN = 0. Le vecteur xB
est alors dtermin de faon unique par la rsolution du
systme de Cramer :

BxB = b, soit xb = B 1 b

Programmation lineaire p.37/49
Mthode du simplexe
On ne modifie le systme linaire des contraintes
Ae xe = b en le multipliant par une matrice rgulire K .
La solution prcdente a t obtenue en choisissant
K = B 1 . On a en effet

Ae xe = b BxB + N xN = b
Ae xe = b xB + B 1 N xN = B 1 b

Critre initial :

M = cTe xe = cTB xB + cTN xN


 
M = cTB B 1 b + cTN cTB B 1 N xN

M = M (x) + cTN xN

Programmation lineaire p.38/49
Mthode du simplexe
Critre initial :
M = M (x) + cTN xN
Une condition ncessaire et suffisante pour que B soit
une base admissible optimale (au sens o la solution
de base associe est admissible et optimale) est que le
vecteur des cots rduits des variables hors base soit
ngatif ou nul ; cN 0.
En effet, dans ce cas, comme xN 0, le terme cTN xN
est ncessairement ngatif ou nul. Comme lon cherche
maximiser la valeur du critre, cela signifie que lon a
atteint loptimum et quil est gal M (x).


Programmation lineaire p.39/49
Mthode du simplexe
On considre une base quelconque B i et xi la solution
correspondante,
Sil existe une variable hors base xs telle que la
composante de rang s du vecteur de cots rduits cN
que lon notera cN (s) est positive, alors
a) on peut augmenter indfiniment la valeur de xs sans
sortir de lensemble des solutions admissibles et,
dans ce cas, loptimum du critre est non born,
b) il existe une autre base B i+1 et une autre solution de
base xi+1 telle que lon ait M (xi+1 ) > M (xi )


Programmation lineaire p.40/49
Mthode du simplexe
xi xiB , xiN B 1 b,
   
On part de la solution = = 0
On envisage un dplacement dans lequel la variable xs
est la seule parmi les variables hors base changer de
valeur : nulle dans la solution xi , elle va prendre une
valeur xs = > 0.
La nouvelle solution x = [xB , xN ] obtenue vrifiera :

xN = es

o es est un vecteur de la dimension de xN avec toutes


ses composantes nulles sauf la composante de rang s
gale 1.


Programmation lineaire p.41/49
Mthode du simplexe
La valeur de doit tre choisie de telle sorte que
x = [xB , xN ] reste une solution admissible, cest--dire :

xB = B 1 b B 1 N xN 0

avec :
xN = es
do :
xB = b N s 0
En regroupant les contraintes, on a :
(
xN = es
xB = b N s


Programmation lineaire p.42/49
Mthode du simplexe
Contraintes : (
xN = es
xB = b N s
Deux cas peuvent alors se prsenter :
Cas 1 : N s 0
La valeur de peut tre aussi grande que lon veut,
on aura toujours xB 0 et loptimum du critre est
non born


Programmation lineaire p.43/49
Mthode du simplexe
Contraintes : (
xN = es
xB = b N s
Deux cas peuvent alors se prsenter :
Cas 2 : i(1 i m) | N s (i) > 0
La valeur de ne peut tre augmente indfiniment ;
la plus grande valeur de est dfinie par :
 
b(i) b(r)
= min =
i,N s (i)>0 N s (i) N s (r)

et lon a M (xi+1) = M (xi ) + cN (s) > M (xi ).



Programmation lineaire p.44/49
Mthode du simplexe
Si le problme est non dgnr, on remarque que
cette solution a exactement m composantes non nulles.
la variable xs , nulle dans xi , est devenue strictement
positive,
la variable xr , strictement positive dans xi a
maintenant pour valeur :

xr = b(r) N s (r) = 0
i+1
 i+1 i+1 
La solution x = xB , xN est une solution de base.
Elle correspond la base B i+1 dduite de B i en
remplaant la colonne r par la colonne s (bases B i et
B i+1 adjacentes.


Programmation lineaire p.45/49
Problme de lartisan chocolatier
Un artisan chocolatier dcide de confectionner des ufs en chocolat.
En rserves, il lui reste 18 kg de cacao, 8 kg de noisettes et 14 l de
lait.
Il a deux spcialits : luf Extra et luf Sublime.
Un uf Extra ncessite 1 kg de cacao, 1 kg de noisettes et 2 l de lait.
Un uf Sublime ncessite 3 kg de cacao, 1 kg de noisettes et 1 l de
lait.
Il fera un profit de 20 Euros en vendant un oeuf Extra, et de 30 Euros
en vendant un uf Sublime.

Combien dufs Extra et Sublime doit-il fabriquer pour faire le plus


grand bnfice possible ?


Programmation lineaire p.46/49
Problme de lartisan chocolatier
Notons x1 le nombre dufs Extra et x 2 le nombre
dufs Sublime produire. Le chocolatier cherche
maximiser la fonction objectif :

max z = 20x1 + 30x2

tant donnes les rserves du chocolatier, les


contraintes suivantes devront tre satisfaites

x1 + 3x2 18
x1 + x 2 8
2x1 + x2 14

On a, de plus, les deux contraintes

x1 0, x2 0

Programmation lineaire p.47/49
Problme de lartisan chocolatier


Programmation lineaire p.48/49
Problme de lartisan chocolatier


Programmation lineaire p.49/49

Vous aimerez peut-être aussi