Vous êtes sur la page 1sur 6

Recherche Oprationnelle

Programmation linaire

1. PROGRAMMATION LINAIRE
La programmation linaire est une des techniques les plus remarquables
utilises en recherche oprationnelle. Depuis quelques dizaines dannes elle sest
dveloppe une vitesse foudroyante pour devenir un outil de gestion
indispensable dans plusieurs entreprises modernes et dans diffrents domaines
tels que la gestion de production, linformatique, la tlcommunication,
Elle consiste loptimisation dun problme industriel ou conomique
modlis par un modle mathmatique linaire. Plus prcisment, la
programmation linaire consiste optimiser une fonction conomique linaire
(fonction objectif), tout en respectant un certain nombre dquations ou
dinquations linaires (contraintes).
En effet, lorsque toutes les fonctions du problme mathmatique gnral :

min (max) f ( X ) sujet gi ( X ) , , bi , i 1,..., m


X 0

sont linaires, on dit quon a un problme de programmation linaire, ou plus


familirement, un programme linaire (PL). Dans ce cours, on tudie en dtails
une mthode itrative trs efficace pour obtenir la solution optimale dun
problme de programmation linaire. Elle a t dveloppe par George DANTZIG
en 1974 et elle est connue sous le nom de mthode du simplexe .
1.1

Forme gnrale dun programme linaire

Le problme de programmation linaire gnral peut tre formul comme


suit : on dsire trouver la valeur de n variables de dcision non
ngatives, x j , j 1,..., n , satisfaisant m quations ou inquations
linaires (contraintes) :
a11 x1 a12 x2

... a1n xn

b1

ak1 x1 ak 2 x2

... akn xn

bk

ak 1,1 x1 ak 1,2 x2 ... ak 1,n xn bk 1


a 1 x1 a 2 x2

... a n xn

(1.1)

a 1,1 x1 a 1,2 x2 ... a 1,n xn b 1


am1 x1 am 2 x2

... amn xn

bm

tout en minimisant ou maximisant une fonction conomique linaire :


n

Z c j x j c1 x1 c2 x2 ... cn xn .

(1.2)

j 1

Tous les paramtres ( aij , bi , c j ) sont des constantes connues.

Notes de cours

Imed KHEMILI / 2014

Recherche Oprationnelle

Programmation linaire

Forme canonique et standard dun programme linaire

1.2
1.2.1

Forme canonique

On dit quun programme linaire est sous la forme canonique si on a un


problme de maximisation, toutes les contraintes sont du type et les variables
de dcisions sont non ngatives, soit le modle suivant :
n

Max
Z

cjxj

j 1

sujet :

a11 x1 a12 x2 ... a1n xn


a x a x
... a2 n xn
21 1 22 2

am1 x1 am 2 x2 ... amn xn

xj 0

b1

(1.3)

b2
bm

Remarque : tout problme de programmation linaire peut tre mis sous la


forme canonique grce aux transformations suivantes :
-

Transformer les variables ngatives en variables positives, en


remplaant xi par xi' xi . Sil y a des variables sans contraintes de
signes, on pose xi xi xi o xi max( xi ,0) et xi max( xi ,0). Les
nouvelles variables xi , xi sont videmment positives.

Transformer les contraintes de type en ingalits de type en


les multipliant par -1.

Remplacer les contraintes de type par deux contraintes une de type


, lautre de type .

Passer de Min vers Max (si loptimisation est une minimisation) en


posant W Z . On aura donc Min Z Max (Z ) Max (W ) .
Exemple :

Min Z 3x1 x3

sujet :
x1 2 x2 3x3 2

4 x2 x3 5

x1
, x3 0

x2
0

1.2.2

Max W 3x1 x3

sujet :
x1 2 x2 ' 3 x3 2

'

4
x

5
2
3

4 x2' x3 5

x1
, x2 ' , x3 0

Forme standard

On dit quun programme linaire est sous la forme standard si on a un


problme de maximisation, toutes les contraintes sont du type et les variables
de dcisions sont non ngatives, soit le modle suivant :

Notes de cours

Imed KHEMILI / 2014

Recherche Oprationnelle

Programmation linaire

Max
Z

cjxj

j 1

sujet :

a11 x1 a12 x2 ... a1n xn b1


a x a x
... a2 n xn b2
21 1 22 2

am1 x1 am 2 x2 ... amn xn bm

xj 0

Remarque : Pour pouvoir rsoudre un programme linaire, il faut passer


obligatoirement par la forme standard. Ce passage (de forme canonique vers la
forme standard) ncessite lutilisation de ce quon appelle variables dcarts
(positives ou nulles). Tout problme de programmation linaire peut tre mis
sous la forme standard grce aux transformations suivantes :
-

Transformer les variables ngatives en variables positives comme on a


prsent prcdemment.

Transformer les contraintes de type en ingalits de type en


les multipliant par -1.

Transformer les contraintes de type en galits de type = en


introduisant une nouvelle variable positive, xn i dite variable dcart,
dans la contrainte i.

Pondrer les variables dcarts par zro dans la fonction objectif.

La forme standard du modle (1.3) est :


nm

Max
Z

c j x j c1 x1 c2 x2 ... cn xn 0 xn1 ... 0 xnm

j 1

sujet :

b1
a11 x1 a12 x2 ... a1n xn xn 1
a x a x
... a2 n xn
xn 2
b2
21 1 22 2

am1 x1 am 2 x2 ... amn xn


xn m bm

xj 0

(1.4)

Exemple :
Max Z 3x1 x2

sujet :
Soit le (PL) : x1 2 x2 2

4 x x 5
1 2
x1 , x2 0

Notes de cours

Max Z 3x1 x2

sujet :
la forme standard est : x1 2 x2 x3 2 .
4 x x x 5
1
2
4

x1 , x2 , x3 , x4 0

Imed KHEMILI / 2014

Recherche Oprationnelle

1.3

Programmation linaire

criture matricielle dun programme linaire

En criture matricielle, la forme canonique dun programme linaire est la


suivante :
Max Z C T X

Sujet :
.

AX B
X 0

Pour le programme linaire (1.3) :

c1
x1
a11

C , X , A
c
x
a
n
n
m1

a1n
b1


et B .
b
amn
m

La forme standard (1.4) peut scrire sous la forme matricielle comme suit :
Max Z C 'T X '

Sujet :

A' X ' B
X '0

avec :
x1
c1


a11

xn
cn
a21
C ' , X '
, A'

xn 1
0


am1


0
xn m

a1n

1 0

a2 n

0 1

amn

0 0

0
b1

0

et B .

m
1

Exemple :
Soit le programme linaire (sous forme canonique) suivant :
Max Z 3x1 x2

sujet :

x1 2 x2 2
4 x x 5
1 2
x1 , x2 0

Max Z C T X

Sujet :
sa forme matricielle est :
AX B
X 0

x
3
1 2
2
avec : C , X 1 , A
et B .
4 1
1
5
x2

Notes de cours

Imed KHEMILI / 2014

Recherche Oprationnelle

Programmation linaire

Max Z 3x1 x2

sujet :
La forme standard correspondante est : x1 2 x2 x3 2 .
4 x x x 5
2
4
1
x1 , x2 , x3 , x4 0

Max Z C 'T X '

Sujet :
Son criture matricielle est :
.
A
'
X
'

X '0

x1
3


x2
1
1 2 1 0
2

avec : C '
, X ' , A'
et B .

x3
0
4 1 0 1
5
0
x

4
Modlisation dun problme

1.4

Afin de bien illustrer les mcanismes de la programmation linaire, on


dbute avec un exemple simple deux variables.
1.4.1

Exemple

Un industriel veut fabriquer deux produits P1 et P2 partir de trois


composants (ressources) : , et .
Le produit P1 rapporterait un bnfice de 8 dinars et consommerait 5 units
de , 2 units de et 1 unit de .
Le produit P2 rapporterait un bnfice de 6 dinars et consommerait 3 units
de , 3 units de et 3 units de .
Les disponibilits des composants par semaine sont : 3000 units de , 2400
units de et 1800 units de .
Combien de produit P1 et P2 devrait-il fabriquer pour maximiser le bnfice ?
1.4.2

Modlisation

Pour modliser le problme par un programme linaire :


1. Dfinir tout dabord les variables de dcision, pour cela on note par :
-

x1 : le nombre de produit P1 quon cherche fabriquer.

x2 : le nombre de produit P2 quon cherche fabriquer.

2. Exprimer, par la suite, la fonction objectif quon cherche optimiser.


Soit maximiser un bnfice : Z 8x1 6 x2 .
3. tablir enfin les contraintes quon doit respecter, concernant les
limitations des ressources disponibles.

Notes de cours

Imed KHEMILI / 2014

Recherche Oprationnelle

5 x1 3x2 3000

Soit : 2 x1 3x2 2400


x 3x 1800
2
1

Programmation linaire

(Disponibilit en composant )
(Disponibilit en composant )
(Disponibilit en composant )

Le programme linaire permettant de maximiser les bnfices de lindustriel


est donc le suivant :
MaxZ 8 x1 6 x2
sujet :

5 x1 3 x2 3000

2 x1 3 x2 2400
x1 3x2 1800

x1 , x2 0

(1.5)

Sa forme standard est :


MaxZ 8 x1 6 x2
sujet :

5 x1 3x2 x3 3000

2 x1 3 x2 x4 2400
x1 3x2 x5 1800

x1 , x2 , x3 , x4 , x5 0

Notes de cours

Imed KHEMILI / 2014