Chapitres 123
Chapitres 123
Chapitres 123
La Programmation Linéaire
Introduction
1
II) Formulation mathématiques d’un programme linéaire (PL)
Identifier les contraintes du problème et les présenter sous forme d' un système
d’équations linéaires. ( a11x1 a12 x2 a1N xN b)
1
Ces hypothèses résument celles qui ont été donné par G. B. Dantzig : La proportionnalité, La non-
négativité, l’additivité et la linéarité de la fonction objectif
2
Pour un problème de minimisation le système se présente comme suit
Min c1 x1 c2 x2 cN x N
s .c a11x1 a12 x2 a1N xN b1
a21x1 a22 x2 a2 N xN b2
aM 1 x1 aM 2 x2 aMN xN bN
x1 0 , x2 0 , , xN 0
3. Formulation
Plusieurs problèmes dans divers domaines peuvent être représentés par des modèles
de PL. L’utilisation de ces techniques de modélisation s’est approfondie par la
construction des algorithmes et des logiciels capables de résoudre des problèmes avec
autant de variables de décision que de contraintes.
Une usine fabrique deux types de jouets en bois : des soldats et des trains. Les
données de ce problème sont représentées dans le tableau suivant :
Menuiserie Finition
1 soldat 1h de travail 2h de travail
1 train 1h de travail 1h de travail
3
demande des trains et des soldats est illimitée. Sachant que Le prix de vente du jouet
de type soldat est de 3 dinars et celui de type train est de 2 dinars, déterminer le plan
de production qui maximise le profit de l'usine.
On note par :
x1= le nombre de soldats produits chaque semaine,
x2= le nombre de trains produits chaque semaine.
D'après les données, on définie les contraintes suivantes représentent la disponibilité
des facteurs de production:
Menuiserie: on dispose de 80 heures de menuiseries, pour fabrique 1 soldat il faut
1 heure et pour un train il faut 1 heure. la contrainte liée à la menuiserie est :
x1 x 2 80
Finition : la finition d’1 soldat nécessite 2 heures de travail, et celle d'1 train
nécessite 1 heure, le fabriquant ne dispose que de 100 heures de travail. La
contrainte liée à la limitation de la finition est:
2 x1 x2 100 .
Il s'agit d'un programme linéaire à deux variables de décision, la fonction objectif est
la suivante : z 3x1 2 x 2 .
Max 3 x1 2 x 2
s .c. x1 x 2 80
2 x1 x 2 100
x1 0, x 2 0
Un des meilleurs exemples qui explique bien la formulation d'un PL est celui lié au
problème de l'agriculteur. Par conséquent, on reprend dans ce qui suit les différentes
étapes de sa formulation.
2
Exemple du cours du Prof. Mohamed Saleh Hannachi
4
Cet agriculteur veut allouer 150 hectares de surface irrigable entre la culture de
tomates et la culture de piments. Pour cela, il dispose de 480 heures de main d’œuvre
et de 440 m3 d’eau. L'hectare de tomates demande 1 heure de main d’œuvre, 4 m3
d’eau et donne un bénéfice net de 100 dinars. Cependant, 1 hectare de piments
nécessite 4 heures de main d’œuvre, 2 m3 d’eau et donne un bénéfice net de 200
dinars.
De plus, pour des raisons de protection du prix des tomates le bureau du périmètre
irrigué ne lui permet pas de cultiver plus de 90 hec de tomates.
Quelle est donc la meilleure allocation de ses différentes ressources ?
Formulation du problème en un PL :
5
Max 100 x1 200 x2
s.c. x1 x2 150
4 x1 2 x2 440
x1 4 x2 480
x1 90
x1 0, x2 0
Comme pour l'exemple précédent ce problème fait l'un des plus connus dans la
programmation linéaire des problèmes de minimisation. En conséquence, nous avons
vue utile de le reprendre dans ce chapitre.
Un spécialiste a fabriqué des pilules pour guérir les malades atteints d’un rhume. Ces
pilules sont fabriquées selon deux formats :
La petite taille : contient deux grains d’aspirine, cinq grains de bicarbonate et un
grain de codéine.
La grande taille : contient un grain d’aspirine, huit grains de bicarbonate et six
grains de codéine.
Pour guérir le rhume, le malade a besoin de 12 grains d’aspirine, 74 grains de
bicarbonate et 24 grains de codéine.
Déterminer le nombre de pilules minimales à prescrire au sujet pour qu’il soit guérit.
Formulation du problème en un PL :
Les variables de décision sont :
x1 : le nombre de pilules de petite taille.
x2 : le nombre de pilules de grande taille.
Les variables de décision x1 et x2 sont positives : x1 0, x2 0 .
Les contraintes liées au problème sur les valeurs possibles de x1 et x2 sont :
3
An introduction to linear programming and the theory of games, A. M. Glicksman
6
une petite pilule contient 2 grains d’aspirine et une grande pilule contient 1 seul
grain d’aspirine. La prescription doit contenir des pilules avec au moins 12 grains
d’aspirine. on obtient la contrainte suivante :
2 x1 x2 12
La prescription du spécialiste doit contenir au moins 74 grains de bicarbonate.
Ainsi la contrainte suivante doit être satisfaite :
5x1 8x2 74 .
La prescription doit contenir au moins 24 grains de codéine donc la contrainte
suivante doit être satisfaite :
x1 6 x2 24 .
La quantité de pilules à prescrire est celle qui minimise le nombre total des pilules, La
fonction objectif est donc la suivante:
z x1 x2 .
7
CHAPITRE 2
I. Introduction
Pour répondre à cette question, la méthode graphique est l’une des premières
méthodes utilisées à ce sujet. Cette méthode permet de résoudre le PL mis sous forme
d'un problème mathématique.
Cette représentation se limite seulement au cadran positif vue que les variables de
décision sont positives. Cette région s’appelle la "Zone des solutions possibles" du
problème notée ZSR.
Min z x1 x 2
s .c. 2 x1 x 2 12
5 x1 8 x 2 74
x1 6 x 2 24
x1 0 , x 2 0
8
Remarque:
Ainsi, pour le problème de médecine les contraintes sont représentées par des
droites. Pour celle relative au grain d’aspirine : 2 x1 x2 12 . L’ensemble des
solutions qui vérifient cette inégalité est le même que celui qui vérifie 2 x1 x2 12 .
Pour la vérification, il suffit de prendre un point de cette zone et voir s'il satisfait la
contrainte en question.
Et ainsi de suite jusqu'à représenter toutes les contraintes et définir les zones des
points qui les satisfont.
Enfin, il devient possible de définir une solution réalisable du problème. Cette solution
vérifié toutes les contraintes, c’est à dire elle appartient aux zones relatifs à chacune
des contraintes du PL. Le graphique obtenue est le suivant :
x2
Zone des
12 solutions
réalisables
x1
6 12 24
9
Pour z =0, la fonction objectif est représentée de la manière suivante :
Pour z=6, c’est à dire que le nombre de pilules à prescrire est égal à 6 pilules. La
fonction objectif est représentée comme suit :
Dans ce cadrant positif, on peut tracer une infinité de droites qui représentent les
différentes valeurs de la fonction objectif, qui sont parallèles entre elles.
Puisqu'il s'agit d'un problème de minimisation, on doit diminuer la fonction objectif
(voire graphique) jusqu'à avoir la solution réalisable qui permet de minimiser cette
fonction
x2
12
x1
6
z 18
z 6 z 12
Après avoir fait la représentation graphique, le problème qui se pose est de connaître
qu’elle est la droite qui correspond à la valeur minimale de la fonction objectif ? C'est
l'objet de la section suivante.
1) Résolution graphique
10
x2
12
B
x1
6 12
Z=10
Ainsi le nombre de pilules de petites tailles est égal à 2 et 8 pour les pilules de grande
taille.
Remarque: la solution optimale d'un PL est un point extrême qui se trouve sur le
bord de l’ensemble des solutions. Cette solution est dite solution réalisable de base.
x2
12 A
B
3 C D
x1
6 12
11
A(0,12) : donne une valeur de la fonction z x1 x2 0 12 12
IV. Application
Max 3 x1 2 x 2
s .c. x1 x 2 80
2 x1 x 2 100
x1 0, x 2 0
ZSR
12
Le tableau suivant présente les différents points extrêmes :
On conclut que le meilleur plan de production est donné par le point B (20,60) qui est
l'intersection des deux contraintes : 20 soldats et 60 trains, qui permettent de donner la
valeur maximale de la fonction objectif qui est égale à 180
Corrigé :
a) M in Z 2 x1 x 2
Sc x1 2 x 2 4
x1 x 2 3
3x1 x 2 5
x1 , x 2 0
13
b) M ax Z 3x 1 2x 2
Sc 2x 1 x 5
2
x1 x 2 1
x1 x 3
2
x1 , x 2 0
c) M ax Z x 1 2x 2
Sc 2x 1 x 2 2
x 1 2x 2 5
x1 4 x 2 4
x1 , x 2 0
14
15
CHAPITRE 3
L’Algorithme de simplexe
I. Introduction
La résolution d'un PL par la représentation graphique est liée au problème avec deux
variables de décision. Ainsi, si un problème possède plus que deux variables (qui est
le cas le plus fréquent) à détermine, il faut passer à une autre méthode adapté à ce
genre de problème.
Dans ce chapitre nous commençons par présenter la méthode de simplexe pour les
problèmes de maximisation.
Cette étape consiste à mettre le PL sous une forme standard qui consiste à introduire
des variables supplémentaires dans chaque contrainte qui permettent de réécrire les
contraintes avec les inégalités ( ) sous la forme d'égalités.
16
La forme standard est le suivant :
Max c1 x1 c2 x2 c N x N Max c1 x1 c2 x2 c N x N
s .c a11 x1 a12 x2 a1N x N b1 s .c a1 1x1 a1 2 x2 a1 N x N S1 b1
a21 x1 a22 x2 a2 N x N b2 a2 1 x1 a 2 2 x2 a2 N x N S 2 b2
a M 1 x1 a M 2 x2 a MN x N bM a M 1 x1 a M 2 x2 a MN x N S M bM
x1 0 , x2 0 , , x N 0 x1 0 , x2 0 , , x N 0
S1 0 , S 2 0 , , S M 0
Initial Standard
Max 100 x1 200 x2 Max 100 x 200 x
1 2
s.c. x1 x2 150 s .c. x x S1 150
1 2
4 x1 2 x2 440 4 x 2 x S 2 440
1 2
x1 4 x2 480 x 4 x S 3 480
1 2
x1 90 x S4 90
1
x1 0, x2 0 x 0, x 0
1 2
s .c. 10 x1 5 x 2 s1 200
2 x1 3 x 2 s 2 60
x1 s 3 34
x 2 s4 14
x1 0, x 2 0; s1 0; s 2 0; s3 0; s 4 0
17
non négatives. La valeur des variables d'écart à l'optimum représente les ressources
non utilisées.
- On pose n - m variables égales à 0. Ces variables sont dites des variables hors
base notées : V.H.B.
- On résout le système pour les autres variables. Qui sont appelées des variables
de base : V. B.
- Les variables obtenues sont appelées solutions de base (la solution de base
contient les variables de base et aussi les variables hors base).
Le nombre de variables à annuler ou les variables hors bases sont telles que n-m=6-
4=2
Donc on a deux variables hors base, et comme la solution initiale de base est l'origine
alors pour le programme donné ci-dessus, une solution réalisable de base serait celle
où x1 = x2 = 0,
"La méthode de simplexe est une procédure itérative permettant de passe d’une
solution réalisable de base à une autre afin de trouver la solution optimale".
18
IV. La présentation des tableaux
Comme nous l'avons mentionné plus haut, une solution réalisable de base est obtenue
en annulant les (n-m) variables de décision et par suite la valeur des variables d'écart
est directement donnée par le second membre. De même les contraintes de non
négativité des variables d'écart sont satisfaites.
P1) Les variables d'écart dans un problème mis sous sa forme standard, il y a m
variables avec un coefficient non nul figurant dans chaque contraintes: S1, S2,
S3 et S4.
P2) Toutes les valeurs du second membre des contraintes doivent être positives.
(les composants du vecteur b)
Après avoir mis le programme linéaire sous une forme qui vérifie les deux propriétés
P1 et P2, l’étape suivante est de tracer le tableau de simplexe initial.
Le modèle général des tableaux de simplexe 4 est :
s .c. 0 0 s1 200
0 0 2 s 2 60
0 s 3 34
0 s4 14
x1 0 , x2 0; s1 0; s 2 0; s3 0; s 4 0
A = (aij)i,j
coefficients variables Valeur
des de base des matrice des coefficients
variables variables
des contraintes du programme
de base de base
standard
4
Hatem Mnasri (2001) "NOTE DU COURS DE RECHERCHE OPERATIONNELLE"
19
Pour notre exemple le tableau de simplexe initial est le suivant :
Coefficients des Variables de Base (les contributions nulles des variables d'écart de la
solution de base initiale).
Cette étape consiste de passer de cette solution réalisable de base initiale à une
solution réalisable de base qui améliore la valeur de la fonction objectif. Afin
d'améliorer cette solution il faut générer une autre solution de base qui augmente la
valeur de la fonction objectif. Autrement dit, on doit choisir une variable hors base et
une variable de base et les permuter de telle façon que la nouvelle solution donne une
valeur plus grande de la fonction objectif.
La 1ère ligne: notée zj, représente la variation de la valeur de la fonction objectif qui
résulte du fait qu’une unité de la variable correspondante à la jème colonne de la
matrice A est amenée dans la base.
La valeur z1 est calculée en multipliant les coefficients de la première colonne de la
matrice A relatifs à la variable x1 par les coefficients ci de la première colonne.
Généralement, on a :
zj = aij ci
i
20
La 2ème ligne: notée cj - zj, représente l’effet net de l’augmentation d’une unité de la
jème variable
cj 1000 1200 0 0 0 0
x1 x2 s1 s2 s3 s4
0 s1 200 10 5 1 0 0 0
0 s2 60 2 3 0 1 0 0
0 s3 34 1 0 0 0 1 0
0 s4 14 0 1 0 0 0 1
zj 0 0 0 0 0 0
cj - zj 1000 1200 0 0 0 0
21
Dans notre exemple, on obtient le tableau suivant :
cj 1000 1200 0 0 0 0
Qi/aik
x1 x2 s1 s2 s3 s4
0 s1 200 10 5 1 0 0 0 40
0 s2 60 2 3 0 1 0 0 30
0 s3 34 1 0 0 0 1 0
0 s4 14 0 1 0 0 0 1 14 VS
zj 0 0 0 0 0 0
cj - zj 1000 1200 0 0 0 0
VE
cj 1000 1200 0 0 0 0
x1 x2 s 1 s 2 s 3 s 4
0 s1 . . 0 1 0 0 .
0 s2 . . 0 0 1 0 .
0 s3 . . 0 0 0 1 .
1200 x2 14 0 1 0 0 0 .
On doit à présent déterminer les coefficients aij de la nouvelle matrice A et les valeurs
Qi des variables de base (les cases avec des valeurs manquantes).
Pour faire les calcules nécessaires on utilise la règle de pivot :
22
cj 1000 1200 0 0 0 0 cj 1000 1200 0 0 0 0
Qi/aik
x1 x2 s1 s2 s3 s4 x1 x2 s 1 s 2 s 3 s 4
0 s1 10 0 1 0 0 .
0 s1 200 10 5 1 0 0 0 40
30
0 s2 . . 0 0 1 0 .
0 s2 60 2 3 0 1 0 0
0 s3 34 . 0 0 0 1 .
0 s3 34 1 0 0 0 1 0
14
1200 x2 14 0 1 0 0 0 .
0 s4 14 0 1 0 0 0 1
10 1 0 5
La valeur trouvée est 10 : 10
1
34 1 14 0
34
1
cj 1000 1200 0 0 0 0
x1 x2 s1 s2 s3 s4
0 s1 130 10 0 1 0 0 -5
0 s2 18 2 0 0 1 0 -3
0 s3 3 1 0 0 0 1 0
1200 x2 14 0 1 0 0 0 1
23
La question qui se pose maintenant est à quel point il faut augmenter la valeur de la
fonction objectif? Pour répondre, on applique la règle qui permet de s'arrêter et de
donner le tableau optimale. Ainsi l'algorithme du simplexe s'arrête lorsque: les cj-zj
sont négatives ou nulles pour un problème de maximisation. c j z j 0
cj 1000 1200 0 0 0 0
Qi/aik
x1 x2 s1 s2 s3 s4
0 s1 130 10 0 1 0 0 -5 13
0 s2 18 2 0 0 1 0 -3 9
0 s3 3 1 0 0 0 1 0 3 VS (s3)
1200 x2 14 0 1 0 0 0 1
cj 0 1200 0 0 0 1200
cj-zj 1000 0 0 0 0 -1200
VE(x1)
cj 1000 1200 0 0 0 0
x1 x2 s1 s2 s3 s4
0 s1 100 0 0 1 0 -10 -5
0 s2 6 0 0 0 1 -2 -3
1000 x1 3 1 0 0 0 1 0
1200 x2 14 0 1 0 0 0 1
cj 1000 1200 0 0 1000 1200
cj-zj 0 0 0 -1000 -1200
Avec : Z=1000.3+1200.14=19800
24
V. Procédure de la méthode du simplexe:
Dans ce qui suit on présente les étapes à suivre pour résoudre un problème de
maximisation sous des contraintes de type et avec un second membre positif.
25