Vous êtes sur la page 1sur 20

Support de cours : Introduction à la

programmation linéaire
Viet Hung Nguyen
Hung.Nguyen@lip6.fr

UPEC - Master ScTIC 0


La programmation linéaire

Forme canonique d’un programme linéaire de n variables non-négatives


and m contraintes :

max cx (1)
s.c. (2)
Ax ≤ b (3)
x≥0 (4)

où cT ∈ Rn (cT est c transposé, c est donc un vecteur ligne), x ∈ Rn, b ∈ Rm et


A ∈ Rm×n. (0 ∈ Rn est un vecteur dont tous les composantes sont nulles).
(1) est la fonction objectif.
(3) sont les contraintes.
UPEC - Master ScTIC 1
On peut transformer n’importe quel programme linéaire sous forme
canonique :

• Toute égalités ax = β est remplacée par deux inégalités ax ≤ β et ax ≥ β.

• Multiplier par un scalaire négatif pour inverser le sens des inégalités et


le sens de l’optimisation (maximisation vs minimisation) si nécessaire.

• Remplacer les variables xi libre de signe par la différence des deux


variables non-négatives xi1 − xi2.

UPEC - Master ScTIC 2


Exemple

max 4x1 + 5x2


s.c.
2x1 + x2 ≤ 8
x1 + 2x2 ≤ 7
x2 ≤ 3
x1 ≥ 0, x2 ≥ 0
   
  8 2 1
On a c = 4 5 , b = 7 et A = 1 2.
3 0 1

UPEC - Master ScTIC 3


Forme standard

max cx
s.c.
Ax = b
x≥0

On peut toujours transformer la forme canonique en forme standard en


ajoutant des variables d’écart.
UPEC - Master ScTIC 4
Forme canonique Forme standard

max cx max cx
s.c. s.c.
Ax ≤ b Ax + Ie = b

 x≥0 x ≥ 0, e ≥ 0
e1
où e =  ..  ∈ Rn est le vecteur dont les composantes sont les variables
en
d’écart.
Exemple.

UPEC - Master ScTIC 5


Forme canonique Forme standard

max 4x1 + 5x2 max 4x1 + 5x2


s.c. s.c.
2x1 + x2 ≤ 8 2x1 + x2 + e1 = 8
x1 + 2x2 ≤ 7 x1 + 2x2 + e2 = 7
x2 ≤ 3 x2 + e3 = 3
x1 ≥ 0, x2 ≥ 0 x1, x2, e1, e2, e3 ≥ 0
On va travailler par la suite sur la forme standard. De plus, on va supposer
que l’origine 0 ∈ Rn est toujours une solution pour la forme canonique du
problème.

UPEC - Master ScTIC 6


Forme standard : base et solution de base

Pour une question simplification de notations, on re-écrit la forme


standard comme suit:

max cx
s.c.
Ax = b
x≥0

où c ∈ Rn, x ∈ Rn, b ∈ Rm et A ∈ Rm×n. Soit J = {1, . . . , n} l’ensemble des


indices des colonnes de A. Pour tout sous-ensemble B ⊂ J, soit N = J \ B
et soient AB et AN respectivement les sous matrices de A consistant en
les colonnes indexées par B et par N.
UPEC - Master ScTIC 7
Forme standard : base et solution de base (cont.)

Définition. B est une base si AB est carrée (i.e. ∈ mathbbRm×m) and


régulière (i.e. A−1
B existe).

On associe à la base B le vecteur x̄ ∈ Rn qui se décompose en x̄B =


A−1B × b et x̄N = 0. On appelle x̄ solution de base B. De plus, si x̄ ≥ 0 alors
x̄ est une solution de base réalisable. Dans ce cas, on dit que B est une
base réalisable.
 

Dans la décomposition x̄ = B , les composantes de x̄B sont appelées
x̄N
les variables de base et celles de x̄N sont appelées les variables hors
base.

UPEC - Master ScTIC 8


Ré-expression des contraintes principales (hormis les
contraintes de non-négativité) par rapport à une base

Étant donnée
  une base réalisable B, on peut récrire Ax = b en
x
AB AN × B = b ou ABxB + AN xN = b.
 
xN

Multiplier ce système par A−1


B , on obtient

xB + A−1 −1
B AN xN = AB b

ou encore
xB = A−1 −1
B b − AB AN xN ,

UPEC - Master ScTIC 9


Coûts réduits ou profits marginaux

Utilisons cette expression pour exprimer la fonction objectif par


uniquement les variables hors base xN :
 
xB
= cBxB + cN xN = cB(A−1 −1
 
cx = cB cN × B b − A B AN xN ) + cN xN
xN

= cBA−1 −1
B b + (cN − cB AB AN )xN
Soit Π ∈ Rm = cBA−1 B , les composantes de Π sont appelée les
multiplicateurs du simplexe.

Soit c̄T ∈ Rn où c̄B = 0 et c̄N = cN − ΠT AN . On appelle c̄, le vecteur des


coût réduits (si l’objectif est une minimisation) ou profits marginaux (si
l’objectif est une maximisation).
UPEC - Master ScTIC 10
Tableau du simplexe associé à une base

Étant donné une base B, on associe à B le tableau suivant:


J
−1
B A−1B A b̄ où b̄ = A B b.
c̄ −Πb
Ce tableau nous renseigne les informations suivantes à propos de B:

• Est ce que B est réalisable ? (A−1


B b ≥ 0 ?)

• Est ce que B est optimale ? (c̄ ≤ 0 si maximisation et c̄ ≥ 0 si


minimisation).

• La solution de base x associée à B est xB = b̄ and xN = 0. Elle est


réalisable si B est réalisable et elle est optimale si B est optimale.

UPEC - Master ScTIC 11


Changement de base

On peut améliorer la solution actuelle si elle n’est pas optimale en


faisant un changement de base. La procédure est la suivante.

• Choisir une variable hors base x j où j ∈ N tel que c̄ j > 0 si on est en


maximisation et c̄ j < 0 si on est en minimisation. La variable x j est
appelée la variable entrante.

• Soit y = A−1
B A j la colonne j du tableau. On calcule

b̄k
i = argmin( : k ∈ B t.q.yk > 0)
yk

La variable xi est appelée la variable sortante.


UPEC - Master ScTIC 12
• On obtient une nouvelle base B = (B \ {i}) ∪ { j}. On effectue une
opération de pivot sur l’élément à la la ligne i et colonne j pour obtenir
le tableau associé à la nouvelle base.

UPEC - Master ScTIC 13


Opération de pivot sur le tableau du simplexe

On suppose que n première colonnes du tableau


J est indexées par J. La dernière colonne qui est en
fait b̄ prend l’indice n + 1. Les m premières lignes
B A−1B A b̄
du tableau sont indexées par B. La dernière ligne
c̄ −Πb
qui se compose de c̄ et −Πb prend également
l’indice n + 1.
L’opération de pivot sur l’élément à la ligne i et à la colonne j (i.e. le pivot)
est comme suit.

• On divise la ligne i par le pivot.

• Tous les éléments de la colonne j à l’exception du pivot deviennent 0.

• Pour tout autre élément à une ligne h et à une colonne k, la nouvelle


UPEC - Master ScTIC 14
0
valeur thk est calculée par la formule suivante.

0 th jtik
thk = thk − ,
ti j

UPEC - Master ScTIC 15


Méthode du simplex du tableau

Initialisation. Construire le tableau associé à la base formée par les


variables d’écart.

Pas 1. Si la base est optimale (i.e. c̄ ≤ 0 pour maximisation et c̄ ≥ 0 pour


minimisation) alors STOP.

Pas 2. Choisir une variable entrante x j tel que c̄ j ≤ 0 pour maximisation


ou c̄ j ≥ 0 pour minimisation. Si la colonne j du tableau contient que les
éléments non-positifs (sauf la dernière ligne) alors STOP le problème
est non-borné.

Pas 3. Déterminer une variable sortante xi.


UPEC - Master ScTIC 16
Pas 4. Effectuer l’opération de pivot sur l’élément à la ligne i et à la
colonne j. Retour au Pas 1.

UPEC - Master ScTIC 17


Exercice.

On souhaite tirer le meilleur rendement d’un avion transporteur qui


rapporte 3K euros par tonne de fret transportée dans la cabine et 1K
euros par tonne de fret transportée dans la soute, sachant que la capacité
de la soute est de 20 tonnes et celle de la cabine est de 10 tonnes,
que pour des raisons de sécurité, la charge maximale que peut accepter
l’avion est de 28 tonnes et enfin que, pour des raisons d’équilibrage, le
fret de la cabine amputé d’une tonne ne doit pas excéder les deux tiers
du fret de la soute.

1. Modéliser ce problème comme un programme linéaire sous forme


canonique.

2. Effectuer une résolution graphique et en déduire le rendement optimal


par vol.
UPEC - Master ScTIC 18
3. Mettre le programme de la Question 1 sous forme standard et le
résoudre par la méthode du simplexe tableau.

UPEC - Master ScTIC 19

Vous aimerez peut-être aussi