Académique Documents
Professionnel Documents
Culture Documents
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 :
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
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 :
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
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
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
x1 = 0, x2 = 30, x3 = 40, x4 = 10 x5 = 0
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
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
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
max M = cT
e xe + u (2a)
xe
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
1 x 1 + 2 x 2 + . . . + n x n
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
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 = 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
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)
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.
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 :
x1 + 3x2 18
x1 + x 2 8
2x1 + x2 14
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