Sie sind auf Seite 1von 56

Programmation Linéaire

Par Ghali ABDALLAOUI


Définitions
Programmation Linéaire est une des
méthodes de la Recherche Opérationnelle
R.O. = «outils d’aide à la décision face à
des situations très complexes»
Domaines d’application : tous
Débuts : durant la 2ème guerre mondiale
Exemples d’application
Programmes de production
Fonctionnement d’entités industrielles
Ordonnancement de travaux sur machines
Gestion des files d’attente
Gestion des stocks
Suivi des grands projets
Flots dans des réseaux
Tournées et chemins les plus courts
Transport et affectation
Objet du cours
Etudier une seule technique de RO :
Programmation linéaire
Méthode principale de RO
Très puissante
Très répandue
Parmi les premières techniques
Facile à programmer sur ordinateur
Objectifs à atteindre
Apprendre à traduire des problèmes réels
à l’aide de variables, équations et
inéquations : Formulation
Apprendre à résoudre des problèmes
réels une fois formulés sous forme d’un
modèle mathématique
Analyser les résultats obtenus
Exemple 1

Une entreprise
utilise 3 matières premières M1, M2 et M3

pour fabriquer deux produits A et B


Produit A
Pour fabriquer un mètre de A, il faut :
– 2 tonnes de M1,
– 2 tonnes de M2,
– et 1 tonne de M3

La vente d‘1 mètre de A rapporte un profit


de 300 DH
Produit B
Pour fabriquer un mètre de B, il faut :
– 3 tonnes de M1,
– 1 tonne de M2,
– 1 tonne de M3

La vente d‘1 mètre de B rapporte un profit


de 250 DH
Ressources
L’entreprise dispose de :
– 900 tonnes de M1,
– 400 tonnes de M2,
– et 350 tonnes de M3
Résumé

A B Disp.
M1 2 3 900

M2 2 1 400

M3 1 1 350

Profit 300 250


Problème à résoudre
Déterminer les quantités à fabriquer des produits A et B pour
que l'entreprise :

puisse maximiser son profit,

dans les limites de ses possibilités


Proposition 1
Ne rien produire : 0 de A et 0 de B

A B reste
M1 2 3 900 - 2*0 - 3*0 = 900
M2 2 1 400 - 2*0 - 1*0 = 400
M3 1 1 350 - 1*0 - 1*0 = 350
Profit 300 250 300*0 + 250*0 = 0
Proposition 2
Produire 150 de A et 0 de B

A B reste
M1 2 3 900 - 2*150 - 3*0 = 600
M2 2 1 400 - 2*150 - 1*0 = 100
M3 1 1 350 - 1*150 - 1*0 = 200
Profit 300 250 300*150 + 250*0 = 45 000
Proposition 3
Produire 150 de A et 150 de B

A B reste
M1 2 3 900 - 2*150 - 3*150 = 150
M2 2 1 400 - 2*150 - 1*150 = - 50 !
M3 1 1 350 - 1*150 - 1*150 = 50
Profit 300 250 300*150 + 250*150 = 75 000
Proposition 4
Produire le maximum possible du produit A
(car il a le profit unitaire le plus grand)

A Disp. max
M1 2 900 900/2 = 450
M2 2 400 400/2 = 200
M3 1 350 350/1 = 350

200 de A 0 de B
Proposition 4 (suite)
Produire le maximum possible du produit A;
c.a.d. 200 de A et 0 de B

A B reste
M1 2 3 900 - 2*200 - 3*0 = 500
M2 2 1 400 - 2*200 - 1*0 = 0
M3 1 1 350 - 1*200 - 1*0 = 150
Profit 300 250 300*200 + 250*0 = 60 000
Proposition 5
Produire le maximum possible du produit B
(on peut toujours essayer !)

B Disp. max
M1 3 900 900/3 = 300
M2 1 400 400/1 = 400
M3 1 350 350/1 = 350

300 de B 0 de A
Proposition 5 (suite)
Produire le maximum possible du produit B;
c.a.d. 300 de B et 0 de A

A B reste
M1 2 3 900 - 2*0 - 3*300 = 0
M2 2 1 400 - 2*0 - 1*300 = 100
M3 1 1 350 - 1*0 - 1*300 = 50
Profit 300 250 300*0 + 250*300 = 75 000 !
Résumé
Proposition A B Profit
1 0 0 0
2 150 0 45 000
3 150 150 ---------
4 200 0 60 000
5 0 300 75 000
Que conclure ?
On a 5 propositions
La meilleure est la dernière
Peut-on faire mieux ?
Proposition 6
Produire 75 de A et 250 de B

A B reste
M1 2 3 900 - 2*75 - 3*250 = 0
M2 2 1 400 - 2*75 - 1*250 = 0
M3 1 1 350 - 1*75 - 1*250 = 25
Profit 300 250 300*75 + 250*250 = 85 000
La question est toujours …

Peut-on faire mieux ?


A B Dis
Formulation M1 2 3 900
M2 2 1 400
M3 1 1 350
On note : Pr 300 250
XA = le nombre de mètres à fabriquer du produit A
XB = le nombre de mètres à fabriquer du produit B
2XA est la quantité de M1 requise pour fabriquer les XA
mètres de A
2XA tonnes

t/m m
A B Dis
Formulation M1 2 3 900
M2 2 1 400
M3 1 1 350
On note : Pr 300 250
XA = le nombre de mètres à fabriquer du produit A
XB = le nombre de mètres à fabriquer du produit B
2XA quantité (tonnes) de M1 requise pour fabriquer A
3XB quantité (tonnes) de M1 requise pour fabriquer B
2XA + 3XB tonnes de M1 à utiliser pour fabriquer A et B

2XA + 3XB ≤ 900 (tonnes) (M1)


A B Dis
Formulation M1 2 3 900
M2 2 1 400
M3 1 1 350
On note : Pr 300 250
XA = le nombre de mètres à fabriquer du produit A
XB = le nombre de mètres à fabriquer du produit B

2XA + 3XB ≤ 900 (tonnes) (M1)

2XA + XB ≤ 400 (tonnes) (M2)

XA + XB ≤ 350 (tonnes) (M3)

XA ≥ 0 XB ≥ 0
A B Dis
Formulation M1 2 3 900
M2 2 1 400
M3 1 1 350
On note : Pr 300 250
XA = le nombre de mètres à fabriquer du produit A
XB = le nombre de mètres à fabriquer du produit B

Le calcul du profit total :


Profit
300 x XA + 250 x XB total
en DH

DH / m m DH / m m

Profit engendré par A en DH Profit engendré par B en DH


Le problème à résoudre :

Chercher des valeurs de XA et XB qui permettent de maximiser


P = 300XA + 250XB
sous les contraintes :
2XA + 3XB ≤ 900 (tonnes) (M1)

2XA + XB ≤ 400 (tonnes) (M2)

XA + XB ≤ 350 (tonnes) (M3)

XA ≥ 0 XB ≥ 0
Le problème s’écrit :
Max P = 300XA + 250XB

2XA + 3XB ≤ 900 (tonnes) (M1)

2XA + XB ≤ 400 (tonnes) (M2)


s/c
XA + XB ≤ 350 (tonnes) (M3)

XA ≥ 0 XB ≥ 0
Un peu de vocabulaire :
Fonction
Max P = 300XA + 250XB objectif
2XA + 3XB ≤ 900 (tonnes) (M1)

2XA + XB ≤ 400 (tonnes) (M2)


s/c
XA + XB ≤ 350 (tonnes) (M3)

XA ≥ 0 XB ≥ 0

Variables de
Contraintes décision
Plus de vocabulaire :
Max P = 300XA + 250XB

2XA + 3XB ≤ 900 fonctions à deux variables et sont


toutes linéaires
2XA + XB ≤ 400
s/c ( XA = 1XA + 0XB
XA + XB ≤ 350 XB = 0XA + 1XB )
XA ≥ 0 XB ≥ 0

Le problème est dit un « problème de programmation linéaire »


– programmation car il établit un programme de production ou
d’action en général
– linéaire car toutes les fonctions sont linéaires
On l’appelle aussi un « Programme linéaire »
On utilise PL = Programmation Linéaire ou PL = Programme Linéaire
( en anglais LP = Linear Programming ou LP = Linear Program )
Un problème d’irrigation
une ferme de 1000 hectares
cultures : le blé, l'orge et le maïs.
Dispo. Ou
Blé Orge Maïs contrainte
Besoins eau 7 Millions
6400 6400 7200 m3
m3/ha
Rendements 1,6
en fourrage 900 600 4500 Millions
UF/ha UF

Profit DH/ha 4470 2310 2650


Quel est le problème ?
On cherche à déterminer les surfaces à
consacrer aux différentes cultures pour
maximiser le profit total dégagé par le
périmètre.
Formulation
B, G, M désignent respectivement les surfaces (en ha)
emblavées en blé, orge et maïs

Max P = 4 470 B + 2 310 G + 2 650 M

B+ G+ M ≤ 1000 (ha) ; sol


6 400 B + 6 400 G + 7 200 M ≤ 7 000 000 (m3) ; eau
s/c
900 B + 600 G + 4 500 M ≥ 1 600 000 (UF) ;
fourrage
B≥0 G≥0 M≥0
Un problème de mélange
Un éleveur peut utiliser 3 types de grains pour nourrir
ses animaux.

Unités d’éléments nutritifs


dans 1 kg des grains : Quantité minimale
requise / semaine
1 2 3
Élément nutritif A 2 3 7 1250
Élément nutritif B 1 1 1 250
Élément nutritif C 5 3 1 900
Coût (Dh/kg) 41 35 96
Quel est le problème ?
L'éleveur cherche à répondre aux besoins
nutritifs de ses animaux au moindre coût.
Formulation
Gi le nombre de kilogrammes de grains i (i = 1, 2, 3) que
l'éleveur doit acquérir par semaine

Min C = 41 G1 + 35 G2 + 96 G3

2 G1 + 3 G2 + 7 G3 ≥ 1 250 ; (unités) (élément A)


G1 + G2 + G3 ≥ 250 ; (unités) (élément B)
s/c
5 G1 + 3 G2 + G3 ≥ 900 ; (unités) (élément C)
G1 ≥ 0 G2 ≥ 0 G3 ≥ 0
Un petit peu de théorie
Tout problème de programmation linéaire peut être
ramené à la forme suivante dite forme standard
Transformations
Variable
Variable
de
Maximiser f(x)  surplus
Minimiser –f(x)d’écart
Xj ≤ 0  Xj = - X’j ; X’j ≥ 0
Xj de signe quelconque 


Cas particulier :
Le système Ax = b sera supposé non redondant.

Cette hypothèse est équivalente à


rang(A) = m et par conséquent m  n.
Définition 1
On appelle base B toute sous-matrice carrée
régulière (mxm) extraite de A (il en existe au
moins une, puisque rang(A) = m).
Les m variables associées aux colonnes d'une
base B sont appelées variables de base
Variables de base  un sous vecteur xB
Variables hors base  un sous vecteur xN.
Soit B une base, en permutant les colonnes de
A, Ax = b  BxB + NxN = b
Définition 2
On appelle solution de base (associée à la
base B), la solution particulière de
BxB + NxN = b obtenue en posant XN = 0.
 XB = B-1b
Une solution de base est dite réalisable si
XB ≥ 0
Une solution de base est dite dégénérée si
le vecteur B-1b a des composantes nulles.
Exemple 1
solution de base
admissible non-
dégénérée

x1 = 2
x2 = 2
x4 = 2
Exemple 2
solution de base
non-admissible
non-dégénérée
Exemple 3
solution de base
non-admissible
non-dégénérée
Exemple 4
solution de base
admissible
dégénérée
Exemple 5

solution admissible du système, mais


elle n'est pas de base
Convexité
Un ensemble C  En est convexe si pour
tout couple de points x, y  C et pour tout
nombre réel   [0,1]

• Dans un ensemble convexe C  En , tout


point z pour lequel il n'existe aucun couple
de points distincts x, y  C et aucun
nombre réel   ]0,1[ tels que
z = x + (1- )y , est un point extrême.
Théorème 1

Soit

où A est une matrice de dimension mxn et


b  Em.
x* est un point extrême de X si et
seulement si x* est une solution de base
réalisable de X.
Théorème 2 :
Théorème Fondamental de PL
Soit le programme linéaire (P) suivant:

où A est une matrice réelle mxn de rang m.


i. Si (P) admet une solution réalisable, alors
il admet une solution de base réalisable.
ii.Si (P) une solution optimale finie, alors
admet une solution de base optimale.
Le théorème fondamental
– Confirme la remarque faite lors de la
résolution graphique de plusieurs
exemples: chaque fois qu’il y a une
solution optimale, un point extrême
est optimal
– Suggère de se limiter uniquement
aux solutions de base réalisables

Mais comment ?
C’est l’objet du chapitre 2

Das könnte Ihnen auch gefallen