Programmation Lineaire
Programmation Lineaire
Programmation Lineaire
RECHERCHE OPERATIONNELLE
Programmation linéaire 32
Recherche opérationnelle
Un programme linéaire se présente sous forme d’une fonction linéaire z = f(x) qu’il faut
optimiser sous des contraintes (équations et/ou inéquations) linéaires.
A- Illustration
Une entreprise fabrique deux types de produits P1 et P2 avec trois matières premières A, B et
C tel que :
- pour produire P1 il faut 3 kilogrammes de A, 3 litres de B et 7 C ;
- pour fabriquer P2, il 6 kg de A, 1 litre de B et 6 C.
Les disponibilités en matières premières sont limitées à 3.000 kg de A, 1.500 litres de B et
4.200 C.
La marge réalisée est de 30 F par unité de P1 et 50 F par unité de P2.
Travail à faire
Quel est le programme maximisant la marge ?
B- Mathématisation du problème
a- VARIABLES D’ACTIVITE
x1 = la quantité de P1 à vendre
x2 = la quantité de P2 à vendre
b- FONCTION ECONOMIQUE
Encore appelée fonction objectif, la fonction économique est une fonction linéaire de
variables x1 , x2 que l’on cherche à optimiser. Ici nous allons la maximiser.
Soit Z la marge, la fonction économique devient :
Max Z = 30 x1+ 50 x2
Programmation linéaire 33
Recherche opérationnelle
c- CONTRAINTES
Comme les quantités ne peuvent pas être négatives, on parle de contrainte de non négativité :
x1 ≥ 0 et x2 ≥ 0
Ensuite nous allons traiter les contraintes de disponibilité des facteurs de production.
Prenons la matière première A : pour fabriquer une unité de P1 on a besoin de 3 kg de A. si
l’on décide de fabriquer par exemple 8 unités de P1 on utilisera 24 kg (3 kg X 8) de A. comme
nous ne savons pas combien d’unités nous devons produire, nous dirons pour produire x1
unités de P1, nous aurons besoin de 3 x1 kg de A. on fait la même chose pour le produit P2.
Pour x2 unités de P2 on a besoin de 6 x2 kg de la matière première A. on a donc
3 x1+ 6 x2
Mais le texte impose une contrainte : les disponibilités en matières premières sont limitées à
3.000 kg de A. Ce qui signifie qu’il faut utiliser une quantité totale de la matière première A
inférieure ou égale à 3.000 kg.
3 x1+ 6 x2 ≤ 3.000
Enfin, on procède ainsi pour toutes les matières premières et les tous les produits.
Ce que l’on trouve peut se résumer dans le tableau suivant :
2- Forme canonique
Après avoir choisi les variables d’activité, sorti la fonction économique et trouver les
contraintes, il faut les présenter dans un certain ordre : c’est la forme canonique.
Max Z = 30 x1+ 50 x2
Programmation linéaire 34
Recherche opérationnelle
Exemple 1:
Un hôtel veut renouveler une partie de son équipement. Il faut changer au moins 72 coussins,
48 rideaux et 32 draps.
Deux ateliers de confections font les offres suivantes :
- l’atelier A1 propose 1 lot de 12 coussins, 4 rideaux et 4 draps au prix de 42.000F ;
- l’atelier A2 propose 1 lot de 6 coussins, 6 rideaux et 4 draps au prix de 33.000F.
C- Résolution graphique
Ce type de résolution n’est possible que lorsqu’on a que deux (2) variables d’activité.
Après avoir mathématisé le problème et l’avoir écrit sous forme canonique, il faut représenter
le problème.
1- Procédures de résolution
a- Les étapes
Il faut donner une valeur arbitraire à Z afin de pouvoir représenter la fonction économique par
une droite (∆1). Ensuite, tracer des droites parallèles à (∆1) qui passe par chaque sommet.
Le sommet le plus éloigné de l’origine est la solution dans le cas d’une maximisation.
En cas de minimisation, c’est le sommet le plus proche qui est solution.
La méthode énumérative
La zone des solutions admissibles (ou encore zone d’acceptabilité) forme un polygone. L’un
des sommets est solution optimale. Aussi, faut-il calculer, pour tous les sommets, la valeur de
Z pour n’en retenir que l’optimum.
Exemple 2 :
Soit à résoudre le problème suivant:
Programmation linéaire 35
Recherche opérationnelle
3 x1 + 4 x2 160
6 x1 + 3 x2 180
x1 =16 ,
x2 28,
d'où Z = 47200.
Programmation linéaire 36
Recherche opérationnelle
O C
la région des solutions admissibles est un polygone que nous nommerons OABC avec :
Calculons :
Comme nous sommes dans un programme de maximisation, alors c’est le Z le plus élevé qui
est solution du problème. Ici c’est ZB et les coordonnées du point B sont les quantités
recherchées.
On a donc : x1 = 16 et x2= 28 pour Z = 47.200
Programmation linéaire 37
Recherche opérationnelle
Comme nous sommes dans un programme de maximisation, alors c’est le Z le plus élevé qui
est solution du problème. Ici c’est ZB et les coordonnées du point B sont les quantités
recherchées.
1- Algorithme du simplexe
Un algorithme est une procédure de traitement d’une catégorie de problèmes. La méthode du
simplexe est une technique algébrique qui permet de trouver la solution d’un programme
linéaire d’une façon ordonnée et précise, ceci, quel que soit le nombre de variables. Cette
méthode est itérative c'est-à-dire le même principe se répète plusieurs fois jusqu’à la solution
optimale, si elle existe.
2- Procédure de résolution
A partir de l’illustration (3-1-), nous allons donner les étapes à suivre.
Max Z = 30 x1+ 50 x2
Sous les contraintes
3 x1+ 6 x2 ≤ 3.000
3 x1+ x2 ≤ 1.500
7 x1+ 6 x2 ≤ 4.200
x1 ≥ 0 ; x2 ≥ 0
Programmation linéaire 38
Recherche opérationnelle
variables x1 x2 e1 e2 e3
VHB - - - R
x1 x2
VB
e1 3 6 1 0 0 3.000
e2 3 1 0 1 0 1.500
e3 7 6 0 0 1 4.200
Z 30 50 0 0 0 0
VE
L’écriture linéaire de Z = 30 x1+ 50 x2+ 0e1 + 0e2 + 0e3 (ligne en pointillés) montre que la
production de x1 ou de x2 augmente la valeur de Z. Donc la solution associée à ce 1er tableau
n’est pas optimale.
Règle générale :
L’optimum est atteint lorsque les coefficients dans la fonction économique sont tous
négatifs ou nuls.
- Tableau 2
* Variable entrante (VE)
C’est la variable hors base pouvant entrer en base. Il faut prendre le coefficient positif le plus
grand dans la ligne Z du tableau et voir la variable qui lui correspond.
Dans un problème de recherche du maximum, il parait évident de commencer par fabriquer le
produit ayant la contribution économique la plus grande.
Dans notre exemple, 50 (dans la case orange) est le plus grand coefficient positif de la ligne
de Z, ce qui correspond à la variable entrante VE = x2 (case verte).
Une fois cette colonne remplie, la variable sortante correspond au coefficient positif le plus
petit de la colonne C.
Programmation linéaire 39
Recherche opérationnelle
VS = e1 (correspond à 500)
Variables x1 x2 e1 e2 e3
VHB - - - R C
x1 x2
VB
VS e1 3 6 1 0 0 3.000 500
e2 3 1 0 1 0 1.500 1.500
e3 7 6 0 0 1 4.200 700
Z 30 50 0 0 0 0
VE
Dans le tableau 2, e1 en ligne (case rouge) sera remplacé par x2 (case verte)
* Le pivot
Programmation linéaire 40
Recherche opérationnelle
2ème tableau
VHB R
x1 x2 e1 e2 e3
VB x1 - e1 - -
x2 ½ 1 1/6 0 0 500
e2 5/2 0 -1/6 1 0 1.000
e3 4 0 -1 0 1 1.200
Z 5 0 -25/3 0 0 -25.000
x1 = 0 produit P1
x2 = 500 produits P2
e1 = 0 = matière première A épuisée
e2 =1.000 = quantité de matière première B encore disponibles
e3 = 1.200 = quantité de matière première C encore disponibles.
Dans la ligne de Z, le coefficient de la variable hors base x1 est 5. C’est dire que cette solution
n’est pas optimale.
- Tableau 3
variables x1 x2 e1 e2 e3 R
VHB - - e1 - e3
VB
x2 0 1 7/24 0 -1/8 350
e2 0 0 11/24 1 5/8 250
x1 1 0 -1/4 0 ¼ 300
Z 0 0 -85/12 0 -5/4 -26.500
Conclusion : la solution de base réalisable associée à ce tableau est x1 = 300, x2 = 350, e1= 0,
e2 = 250 et e3 = 0.
Tous les coefficients des variables hors base (VHB) de la ligne de Z sont négatifs ou nuls.
Cette solution est optimale et on a Z = 26.500 pour une production de 300 unités de P1 et 350
unités de P2.
Les quantités de matières premières A et C sont épuisées tandis que 250 litres de B sont
encore disponibles.
Programmation linéaire 41
Recherche opérationnelle
Dans la ligne de Z, il y a la valeur -85/12 (colonne de e1). Cette valeur est appelée valeur
marginale et signifie que si l’on augmente les disponibilités de la matière première A d’une
unité, la fonction économique va s’accroître d’une valeur de 85/12 ≈ 7,0833 F. On fait la
même analyse pour la matière première C, où Z va se valoriser de 5/4 ≈ 1,25.
3- Programme dual
A chaque problème de maximisation correspond un problème de minimisation impliquant les
mêmes données, et vice versa. Il existe un lien étroit entre leurs solutions optimales.
Le programme écrit en premier est appelé primal et le second qui en découle est dit dual.
Exemple:
Forme canonique
Primal Dual
4x + 3y + z
2 x1+ x2
Ecriture matricielle
Primal Dual
x1 x
ax (1.200 1.000) in (160 180 95) y
x2 z
x1
x 1.200
y
x2
z 1.000
x1 0 ; x2 0
x y z
Programmation linéaire 42
Recherche opérationnelle
Cette méthode a été exposée plus haut. C’est seulement la présentation des résultats dans le
tableau qui est différente. Ainsi, à partir d’un exemple nous allons voir comment lire les
résultats.
Primal
- Forme canonique:
Passage au dual
Forme canonique :
Forme standard :
Programmation linéaire 43
Recherche opérationnelle
Tableau initial
Variables x y z R C
VHB x y z
VB
12 4 4 1 0 42.000 3.500
6 6 2 0 1 33.000 5.500
W 72 48 32 0 0 0
L’optimum n’est pas atteint
VE = x VS= Pivot = 12
Tableau 2 :
variables x y z R C
VHB - y z
VB
x 1 1/3 1/3 1/12 0 3.500 10.500
Tableau 3
Variables x y z
R C
VHB
VB
x 1 0 1/3 1/8 -1/12 2.500 7.500
y 0 1 0 -1/8 1/4 3.000 +∞
W 0 0 8 -3 -6 - 324.000
L’optimum n’est pas atteint
VE= z VS= x Pivot= 1/3
Tableau 4
VHB X y z R
VB
z 3 0 1 3/8 -1/4 7.500
Programmation linéaire 44
Recherche opérationnelle
Tous les coefficients de la ligne de Z sont négatifs ou nuls. La solution de base réalisable
associée à ce tableau est :
(P) x1 x2 e1 e2 e3 Z
(D) x y z W
Programmation linéaire 45
Recherche opérationnelle
TRAVAUX DIRIGES
Exercice 2 :L’usine ‘ Mo-BLA’ produit 3 qualités de pagnes : noir bleu et blanc dans 2
ateliers successifs A1 et A2 selon les caractéristiques techniques et économiques suivantes :
Exercice 3 :-Pour boiser son domaine, monsieur Kroupair a besoin de 1.600 plants de teks,
600 pieds de jatropha et 1.500 pieds de Sampa. Il reçoit les propositions suivantes :
Problème n°1
Partie A
Résoudre graphiquement le programme linéaire suivant :
𝑋≥0;𝑌≥0
6𝑋 + 2𝑌 ≥ 12
2𝑋 + 2𝑌 ≥ 8
4𝑋 + 12𝑌 ≥ 24
𝑊(min) = 2 000 000𝑋 + 1 600 000𝑌
Programmation linéaire 46
Recherche opérationnelle
Partie B
Une PME Ivoirienne opérant dans le textile, possède deux usines U1 et U2 qui n’ont pas les
mêmes capacités de production et qui sont en deux lieux distincts. Ces usines produisent à
partir du coton ivoirien, trois qualités de tissus appelées respectivement qualité supérieure
(QS), qualité moyenne (QM) et qualité normale (QN) .Ces trois qualités sont demandées sur
le marché.
Cette PME s’est engagée à fournir par semaine, à une société française, 12 tonnes de tissus
QS, 8 tonnes de tissus QM et 24 tonnes de tissus QN.
L’usine U1 produit par jour, 6 tonnes de tissus QS, 2 tonnes de tissus QM et 4 tonnes de tissus
QN, pour un coût de production de 2 000 000 F.
L’usine U2 produit par jour, 2 tonnes de tissus QS, 2 tonnes de tissus QM et 12 tonnes de
tissus QN, pour un coût de production de 1 600 000 F.
Travail à faire :
1. Déterminer le programme linéaire (P), en vue de minimiser les coûts de production.
2. En utilisant la méthode graphique, déterminer le nombre X de jours par semaine, et le
nombre Y de jours par semaine, pendant lesquels les usines U1 etU2 doivent fonctionner pour
que les engagements soient tenus aux coûts minimum.
3. Écrire le programme dual (D) associé au programme primal (P) en désignant par X 1 ; X2 et
X3 les variables réelles du programme dual(D).
4. Présenter la 1ère itération du programme dual(D).
e1, e2 étant les variables d’écart associées au programme dual (D), on considère le tableau
suivant correspondant à la résolution partielle de ce programme dual.
Variables x1 x2 x3 e1 e2
HB - - x3 e1 e2 SM
B
x1 1 1/4 0 3/16 -1/16 275 000
x2 0 1/8 1 -1/32 3/32 87 500
Z 0 2 0 -3/2 -3/2 -5 400 000
Problème n°2
La société des carrières d’ABIDJAN a pour objet l’extraction et la distribution de matériaux
de carrière.
Elle doit assurer, pour les travaux routiers, la fourniture aux ponts et chaussées de graviers en
divers calibres.
Un marché, portant sur les quantités suivantes :
Programmation linéaire 47
Recherche opérationnelle
Après extraction, la pierre est concassée. Les graviers ainsi obtenus sont triés selon leur
calibre. Chaque tonne de pierre fournit les quantités suivantes de graviers (exprimées en
tonnes) :
Pierre P1 :
Graviers calibre 1 0,36 tonne
Graviers calibre 2 0,40 tonne
Graviers calibre 3 0,16 tonne
Problème n°3
Par suite de graves incidents intervenus dans un village du pays, le programme alimentaire
mondial (P.A.M) doit distribuer des vivres aux populations sinistrées. Une entreprise est
sollicitée pour conditionner ces vivres (sachets de riz de 5 Kg, des bouteilles d’huile 1L, des
boites de conserve) dans trois types de cartons marqués C1, C2 et C3. Les contenus imposés
pour chaque carton sont les suivants :
Pour satisfaire les besoins des sinistrés, le P.A.M doit distribuer au moins 12 350 sachets de
riz, 40 040 bouteilles d’huile, et 28 800 boites de conserve.
Le conditionnement des cartons est facturé à 320 F le carton C1, 360 F le carton C2 et 500 F le
carton C3.
L’organisme désire satisfaire les besoins au moindre coût.
Travail à faire :
1. Écrire le programme linéaire (P) correspondant au problème.
2. Écrire le programme dual (D) associé au programme (P) précédent, en désignant par Y1, Y2
et Y3 les variables d’activités du programme dual(D).
3. e1 , e2,e3 étant les variables d’ écart associées au programme dual (D) on considère le tableau
suivant correspondant à la résolution partielle de ce programme dual.
Programmation linéaire 48
Recherche opérationnelle
Variables y1 y2 y3 e1 e2 e3
HB y1 - - - e2 e3 C
B
e1 10/3 0 0 1 -2/3 0 80
y3 1/3 0 1 0 1/12 -1/20 5
y2 0 1 0 0 -1/20 1/20 7
Z 2750 0 0 0 -398 -562 - 424 280
Problème n°4
Travail à faire :
1°- a / Déterminer pour la confection de chaque modèle, le montant global des coûts.
Programmation linéaire 49
Recherche opérationnelle
Programmation linéaire 50
Recherche opérationnelle
NOTIONS ESSENTIELLES
2- Fonction économique
3- Variables d’activité
4- Contraintes
6- Méthode énumérative
7- Méthode du simplexe
9- Variables d’écart
11- Pivot
Programmation linéaire 51