Telechargé par Ken Za

Chapitre 1 PL

publicité
Introduction
Au cours de la seconde guerre mondiale, l’armée de l’air des États-Unis eut de nombreux problèmes
concernant l’allocation de ses ressources, tant humaines que matérielles. Naturellement, plusieurs spécialistes
se penchèrent sur la question et parmi eux, George Dantzig. Peu après la guerre, en 1946, ce dernier
formula de manière plus générale ce genre de problèmes, les problèmes de programmation linéaire et
proposa une méthode de résolution, la méthode du simplexe.
Initialement développée à des fins militaires, la programmation linéaire est une technique d’optimisation utilisée aujourd’hui dans beaucoup de domaines et diverses applications notamment dans l’industrie
pétrolière, la chimie, l’énergie, le transport, les réseaux. . .
Supposons qu’une compagnie fabrique plusieurs produits différents et que pour chacun de ces produits il y a des coûts de fabrication différents en main-d’oeuvre et en matières premières. La compagnie
connaı̂t le bénéfice qu’elle réalise en vendant chacun de ces produits. La compagnie doit alors se poser
la question suivante : quelle quantité de chacun des produits doit-on fabriquer pour obtenir un bénéfice
global maximal ? En général, de tels problèmes peuvent être assez complexes. Cependant, dans le cas
où la fonction à optimiser est linéaire et où les contraintes peuvent s’exprimer par des inéquations, la
programmation linéaire s’avère très efficace.
Notons que la compréhension de la programmation linéaire est essentielle pour la compréhension
de modèles plus sophistiqués (programmation non linéaire, programmation stochastique, contrôl optimal. . . ).
4
Chapitre
1
Éléments de Base de la Programmation
Linéaire
1.1 Modélisation d’un Problème de programmation linéaire
Un modèle est une représentation de la réalité qui capture l’essentiel de la réalité. Modéliser un
problème de programmation linéaire revient à distinguer trois éléments essentiels appelés facteurs. On
distingue trois type de facteurs :
1. Facteurs contrôlables : Ce sont les facteurs que l’on peut modifier dans le système. On les appelle
variables de décision.
2. Facteurs non contrôlables : Ce sont les paramètres du système étudié et sur lesquels on ne peut
apporter aucune modification. On les appelle contraintes.
3. L’objectif : Il concrétise le but à atteindre à travers l’étude.
1.2 Exemples
Pour mieux illustrer la nature des problèmes abordés en programmation linéaire ainsi que la technique de résolution utilisée, considérons les exemples suivants :
Exemple (Problème de Transport). Une entreprise stocke un produit dans trois dépôts différents A1 ,
A2 et A3 . Les quantités stockées sont respectivement a1 , a2 et a3 . Les dépôts doivent alimenter quatre
points de vente B1 , B2 , B3 et B4 .
La quantité nécessaire au point de vente Bi est bi .
Le coût de transport d’une unité du produit du dépôt Ai vers le point de vente Bj est cij .
Comment l’entreprise doit elle répartir les stocks du produit entre les points de vente afin de minimiser ses frais de transport ?
1.2.0.1 Identification des variables de décision
Notons par :
xij ≥ 0, i = 1, . . . , 3, j = 1, . . . , 4
la quantité du produit à acheminer de Ai vers Bj .
5
(1.1)
1.2 Exemples
6
1.2.0.2 Contraintes du problème
Le total des quantités à acheminer du dépôt A1 vers les différents points de vente ne peut pas excéder
la quantité de stock disponible au dépôt A1 . De même pour les dépôt A2 et A3 .

 x11 + x12 + x13 + x14 ≤ a1 ,
x21 + x22 + x23 + x24 ≤ a2 ,

x31 + x32 + x33 + x34 ≤ a3 ,
que l’on peut écrire sous forme :
4
X
xij ≤ ai , ∀i = 1, . . . , 3
(1.2)
j=1
Le total des quantités acheminées des différents dépôt vers B1 doit être supérieur ou égal à la quantité
nécessaire pour le fonctionnement de ce dernier. De même pour tous les autres points de vente B2 , B3 et
B4 .

x11 + x21 + x31 ≥ b1 ,



x12 + x22 + x32 ≥ b2 ,
x13 + x23 + x33 ≥ b3 ,



x14 + x24 + x34 ≥ b4 ,
que l’on peut écrire sous forme :
3
X
xij ≥ bj , ∀j = 1, . . . , 4
(1.3)
i=1
1.2.0.3 Fonction Objectif
Minimiser le coût total de transport.
min f (x11 , x12 , . . . , x34 ) =
3 X
4
X
cij xij
(1.4)
i=1 j=1
En réécrivant les formules (1.1), (1.2), (1.3) et (1.4) nous aurons le modèle de programmation linéaire
suivant :

3 X
4
X



min
cij xij




i=1
j=1



s/c



4
 X
xij ≤ ai , ∀i = 1, . . . , 3


j=1



3

X



xij ≥ bj , ∀j = 1, . . . , 4




 i=1
xij ≥ 0, i = 1, . . . , 3, j = 1, . . . , 4.
Exemple (Problème de Planification de Production). Soient m machines M1 , M2 , . . . , Mm qui fabriquent en série n types de produits P1 , P2 , . . . , Pn . On suppose que la machine Mi est d’une capacité
maximale de di unités de temps (i=1,2, . . . , m) et que la fabrication d’une unité du produit Pj nécessite
l’utilisation de la machine Mi durant tij unités de temps.
Soit cj le gain relatif à la production d’une unité du produit Pj (j=1,2, . . . , n). Quel plan proposez vous
pour l’entreprise afin de lui procurer un bénéfice maximal ?
1.3 Résolution Graphique
7
1.2.0.4 Identification des variables de décision
Notons par :
xj ≥ 0, j = 1, 2, . . . , n
(1.5)
la quantité du produit Pj à fabriquer.
1.2.0.5 Contraintes du problème
Le total des unités de temps passées sur la machine M1 pour la fabrication de x1 , x2 , . . . xn unités
des produits P1 , P2 , . . . Pn respectivement ne peut pas excéder la capacité maximale d1 de la machine.
De même pour toutes les autres machines M2 , M3 , . . . , Mm .


t11 x1 + t12 x2 + . . . t1n xn ≤ d1 ,


 t21 x1 + t22 x2 + . . . t2n xn ≤ d2 ,
..

.


 t x + t x + ...t x ≤ d
m1 1
m2 2
mn n
m
que l’on peut écrire sous forme :
n
X
tij xj ≤ di , i = 1, . . . , m.
(1.6)
j=1
1.2.0.6 Fonction Objectif
Maximiser le gain total de l’entreprise.
max f (x1 , x2 , . . . , xn ) =
n
X
cj xj .
(1.7)
j=1
En réécrivant les formules (1.5), (1.6) et (1.7) nous aurons le modèle de programmation linéaire suivant :

n
X



max
cj xj .




j=1


s/c
n
X



tij xj ≤ di , i = 1, . . . , m




j=1


xj ≥ 0, j = 1, 2, . . . , n.
1.3 Résolution Graphique
Lorsqu’il n’y a que deux variables de décision, un problème linéaire peut être résolu de manière
purement graphique en suivant le processus suivant :
1. On dessine les demi-plans des contraintes. On trace la droite frontière en remplaçant les inégalités
par des égalités).
2. On détermine le domaine X définissant l’ensemble des points satisfaisant toutes les contraintes.
Le domaine X est l’intersection de tous les demi-plans.
1.3 Résolution Graphique
8
3. On trace la droite représentant la fonction objectif et passant par l’origine
4. On translate la droite de la fonction objectif selon son vecteur normal.
5. Le point optimal est le dernier point du domaine X que la droite de la fonction objectif touchera
lors de son déplacement.
6. Le vecteur normal de la droite définissant la fonction objectif indique le sens dans lequelµon doit
¶
a
la translater pour trouver le point optimal : la droite ax1 + bx2 + c a pour vecteur normal
.
b
7. Si le vecteur normal indique un déplacement vers le haut, la fonction objectif doit couper l’axe
Ox2 le plus haut possible dans le cas d’une maximisation, et le plus bas possible dans le cas d’une
minimisation, tout en touchant le domaine X.
8. Si le vecteur normal indique un déplacement vers le bas, la fonction objectif doit couper l’axe
Ox2 le bas possible dans le cas d’une maximisation, et le plus haut possible dans le cas d’une
minimisation, tout en touchant le domaine X.
9. Si le vecteur normal est un vecteur horizontal (cas rare mais possible), la fonction objectif ne
coupera pas l’axe Ox2 . Le point optimal sera, selon les cas, le plus éloigné ou le plus proche de
l’axe Ox2 .
Exemple. À l’approche de l’Aid, un artisan chocolatier décide de confectionner des oeufs en chocolat.
En allant inspecter ses réserves, il constate qu’il lui reste 18 kg de cacao, 8 kg de noisettes et 14 kg de
lait. Il a deux spécialités : l’oeuf Extra et l’oeuf Sublime. Un oeuf Extra nécessite 1 kg de cacao, 1 kg de
noisettes et 2 kg de lait. Un oeuf Sublime nécessite 3 kg de cacao, 1 kg de noisettes et 1 kg de lait. Il fera
un profit de 20 DA. en vendant un oeuf Extra, et de 30 DA. en vendant un oeuf Sublime. Combien d’oeufs
Extra et Sublime doit-il fabriquer pour faire le plus grand bénéfice possible ?
Formulation du problème
Notons x1 ≥ 0 le nombre d’oeufs Extra et x2 ≥ 0 le nombre d’oeufs Sublime à produire.
Étant données les réserves du chocolatier, les contraintes suivantes devront être satisfaites :
1. La quantité totale de cacao utilisée ne devrait pas excéder 18kg
x1 + 3x2 ≤ 18
2. La quantité totale de noisettes utilisée ne devrait pas excéder 8kg
x1 + x2 ≤ 8
3. La quantité totale de lait utilisée ne devrait pas excéder 14kg
2x1 + x2 ≤ 14
Le chocolatier cherche à maximiser la fonction objectif suivante :
max z = 20x1 + 30x2
Le problème linéaire à résoudre est alors :
max Z = 20x1 + 30x2 .
x1 + 3x2 ≤ 18
x1 + x2 ≤ 8
2x1 + x2 ≤ 14
x1 , x 2 ≥ 0
(1.8)
1.3 Résolution Graphique
9
x2
6
L’ensemble des solution réalisables
Á
20x1 + 30x2 = 0 X
¼
-
x1 + 3x2 = 18
x1 + x2 = 8
x1
2x1 + x2 = 14
F IG . 1.1 – Résolution graphique
La figure 1.1 indique dans sa partie hachurée l’ensemble des points (x1 , x2 ) qui satisfont les contraintes
du problème (1.8). Tous les couples (x1, x2) de la partie hachurée satisfont les contraintes. Mais en fait,
la solution optimale sera toujours l’un des sommets du polyèdre délimitant le domaine X des solutions
réalisables. Il s’agit dans ce cas des sommets suivants :
1. intersection de la droite d’équation x1 + x2 = 14 avec l’axe Ox1 : (7, 0).
2. intersection de la droite d’équation x1 + 3x2 = 18 avec l’axe Ox2 : (0, 6).
3. intersection des droites x1 + x2 = 8 et 2x1 + x2 = 14 : (6, 2) ;
4. intersection des droites x1 + x2 = 8 et x1 + 3x2 = 18 : (3, 5) ;
5. le point origine (0,0) ;
Le vecteur normal de la droite définissant la fonction objectif
indique
le sens dans lequel on doit la
µ
¶
20
translater pour trouver le point optimal. le vecteur normal
de la droite 20x1 + 30x2 = 0 indique
30
un déplacement vers le haut, la fonction objectif doit alors couper l’axe Ox2 le plus haut possible, tout en
touchant le domaine des solutions réalisables. On s’aperçoit que celle qui conserve un point en commun
avec la région réalisable est la droite qui passe par le sommet (3,5). La solution optimale est donc
(x∗1 , x∗2 ) = (3, 5) et le bénéfice du chocolatier serait
Z ∗ = 20(3) + 30(5) = 210Da
Téléchargement