Académique Documents
Professionnel Documents
Culture Documents
Version 1 - 2014
Programmation linéaire: Formulation
Les étapes de formulation d’un PL
RO 1
Programmation linéaire: Formulation
Formulation théorique
RO 2
Programmation linéaire: Formulation
Formulation théorique
RO 3
Programmation linéaire: Formulation
Formulation théorique
RO 4
Programmation linéaire: Formulation
Formulation théorique
RO 5
Programmation linéaire: Formulation
Formulation théorique
RO 6
Programmation linéaire: Formulation
Formulation théorique
RO 7
Programmation linéaire: Formulation
Formulation théorique
RO 8
Programmation linéaire: Formulation
Formulation théorique
• Forme canonique
max c T x
s.c Ax b
x0
• Forme standard
max c T x
s.c Ax b
x0
Avec :
• x est le vecteur des inconnues, de dimension n.
• A est la matrice des contraintes, de dimension m×n.
• b est le terme constant, de dimension m.
• c est le gradient de la fonction objectif de dimension n .
RO 9
Programmation linéaire: Formulation
TERMINOLOGIE DU MODÈLE
max c T x
s.c Ax b
x0
• Activités
– Ensemble des actes et opérations à effectuer
– j = 1,…n activités
• Ressources
– Moyens disponibles pour effectuer les activités
– bi, i = 1,…m ressources
• Quantité requise de ressource
– Quantité unitaire de ressources consommées pour chaque activité aij
• Niveau activation
– Quantité de ressources affectée à une activité
– xj = niveau d’activation de l’activité j
• Coût ou profit
– Mesure de performance de l’allocation des ressources aux activités cj
RO 10
Programmation linéaire: Terminologie
max cT x
s.c Ax b
x0
l xu
• x1,…xn : variables de décisions
• La fonction linéaire à optimiser cTx est la fonction objectif ou fonction coût.
• Les contraintes prennent la forme d’équations et d’inéquations linéaires.
• Les contraintes de la forme l ≤ x ≤ u sont appelées des contraintes de
bornes. Elles se résument souvent à des contraintes de non-négativité x ≥ 0
• Si le vecteur x satisfait toutes les contraintes, x est une solution admissible.
• L’ensemble de toutes les solutions admissibles est domaine admissible D.
• Une solution admissible x* qui maximise la fonction objectif (i.e. cT x* ≥ cT x
pour tout x admissible) est la solution optimale.
• La valeur d’une solution est la valeur de la fonction objectif en cette
solution.
RO 11
Programmation linéaire: Terminologie
max c T x
s.c Ax b
x0
l xu
• Solution réalisable
– Solution où toutes les contraintes du modèle sont satisfaites
• Zone de solution
– Ensemble de toutes les solutions réalisables
• Solution optimale
– Solution réalisable où la fonction objectif atteint la meilleure valeur,
maximum ou minimum
– Plusieurs solutions optimales possibles
RO 12
Programmation linéaire: Formulation
Autres formes d’un programme linéaire
Un programme linéaire peut se mettre sous de multiples formes, toutes
équivalentes: minimisation maximisation : min f(x) = −max (−f(x))
RO 13
Programmation linéaire: Formulation
Autres formes d’un programme linéaire
Un programme linéaire peut se mettre sous de multiples formes, toutes
équivalentes: minimisation maximisation : min f(x) = −max (−f(x))
On peut changer le sens de l’inégalité, ou passer le terme constant de gauche
à droite: Ax b Ax b
RO 14
Programmation linéaire: Formulation
Autres formes d’un programme linéaire
Un programme linéaire peut se mettre sous de multiples formes, toutes
équivalentes: minimisation maximisation : min f(x) = −max (−f(x))
On peut changer le sens de l’inégalité, ou passer le terme constant de gauche
à droite: Ax b Ax b
On peut remplacer les inégalités par des égalités en introduisant des
variables d’écart toutes positives :
Ax b 0 Ax b y 0 , y 0
RO 15
Programmation linéaire: Formulation
Autres formes d’un programme linéaire
Un programme linéaire peut se mettre sous de multiples formes, toutes
équivalentes: minimisation maximisation : min f(x) = −max (−f(x))
On peut changer le sens de l’inégalité, ou passer le terme constant de gauche
à droite: Ax b Ax b
On peut remplacer les inégalités par des égalités en introduisant des
variables d’écart toutes positives :
Ax b 0 Ax b y 0 , y 0
On peut passer de l’égalités à des inégalités:
Ax b Ax b
Ax b
Ax b Ax b
RO 16
Programmation linéaire: Formulation
Autres formes d’un programme linéaire
Un programme linéaire peut se mettre sous de multiples formes, toutes
équivalentes: minimisation maximisation : min f(x) = −max (−f(x))
On peut changer le sens de l’inégalité, ou passer le terme constant de gauche
à droite: Ax b Ax b
On peut remplacer les inégalités par des égalités en introduisant des
variables d’écart toutes positives :
Ax b 0 Ax b y 0 , y 0
On peut passer de l’égalités à des inégalités:
Ax b Ax b
Ax b
Ax b Ax b
Tout nombre réel peut être écrit comme la différence de deux nombres
positives:
x : x1 x2 ; x1 , x2 0
RO 17
Programmation linéaire: Formulation
Autres formes d’un programme linéaire
Un programme linéaire peut se mettre sous de multiples formes, toutes
équivalentes: minimisation maximisation : min f(x) = −max (−f(x))
On peut changer le sens de l’inégalité, ou passer le terme constant de gauche
à droite: Ax b Ax b
On peut remplacer les inégalités par des égalités en introduisant des
variables d’écart toutes positives :
Ax b 0 Ax b y 0 , y 0
On peut passer de l’égalités à des inégalités:
Ax b Ax b
Ax b
Ax b Ax b
Tout nombre réel peut être écrit comme la différence de deux nombres
positives:
x : x1 x2 ; x1 , x2 0
On peut enfin transposer le programme : Ax b 0 xT AT bT 0
RO 16
Programmation linéaire: Formulation
Exemple de mise sous forme canonique
PL initial min z 3 x1 4 x2
s.c. x1 x2 6
x1 2 x2 4
x1
x2 0
PL canonique équivalent
RO 17
Programmation linéaire: Formulation
Exemple de mise sous forme canonique
PL initial min z 3 x1 4 x2
s.c. x1 x2 6
x1 2 x2 4
x1
x2 0
PL canonique équivalent
max 3 x1' 3 x1'' 4 x2
s.c. x1' x1'' x2 6
x1' x1'' x2 6
x1' x1'' 2 x2 4
x1' , x1'' , x2 0
RO 17
Programmation linéaire: Exemple de modélisation
Problème d’allocation de ressources
RO 18
Programmation linéaire: Exemple de modélisation
Problème d’allocation de ressources
Définissons les deux variables de décision
• x1 : le nombre de mètres de câble de 5 mm de diamètre à produire chaque
semaine,
• x2 : le nombre de mètres de câble de 10 mm de diamètre à produire
chaque semaine.
Le chiffre d’affaires associé à une production (x1, x2) est:
z = 50 x1 + 200 x2.
Il ne faut pas dépasser les capacités de production:
x1 + 4x2 ≤ 21 000
et satisfaire les contraintes de demande:
x2 ≤ 4/10 (x1 + x2) et x1 ≤ 15 000
Finalement on ne peut pas produire des quantités négatives:
x1 ≥ 0, x2 ≥ 0.
RO 19
Programmation linéaire: Exemple de modélisation
Problème d’allocation de ressources
Modèle
Pour maximiser le chiffre d’affaires de la vente, il faut déterminer les
valeurs x1 et x2 solution du programme linéaire
Max z = 50 x1 + 200 x2
s.c. x1 + 4 x2 ≤ 21000
−4 x1 + 6 x2 ≤ 0
x1 ≤ 15000
x1 , x2 ≥ 0
x1
Notation matricielle: c 50 200 , x
x2
max c T x
1 4 21000
s.c Ax b
A 4 6 et b 0
x0 1 0 15000
RO 20
Programmation linéaire: Exemple de modélisation
Problème de recouvrement
Lu Ma Me Je Ve Sa Di
13 18 21 16 12 25 9
Les chauffeurs travaillent cinq jours d’affilée (et peuvent donc avoir leurs
deux jours adjacents de congé n’importe quand dans la semaine).
Objectifs : Déterminer les effectifs formant les sept équipes possibles de
chauffeurs de manière à :
• couvrir tous les besoins,
• engager un nombre minimum de chauffeurs.
RO 21
Programmation linéaire: Exemple de modélisation
Problème de recouvrement
Modélisation:
Variables de décision : On associe une variable de décision à chacune des
sept équipes possibles
• x1 : nombre de chauffeurs dans l’équipe du lundi (repos le samedi et le
dimanche),
• x2 : nombre de chauffeurs dans l’équipe du mardi,
• ...
• x7 : nombre de chauffeurs dans l’équipe du dimanche.
Fonction objectif : On veut minimiser le nombre total de chauffeurs
engagés
z = x1 + x2 + x3 + x4 + x 5 + x6 + x7
RO 22
Programmation linéaire: Exemple de modélisation
Problème de recouvrement
Contraintes : Le nombre de chauffeurs présents chaque jour doit être suffisant
x1 + x4 + x5 + x6 + x7 ≥ 13 (Lundi)
x1 + x2 + x5 + x6 + x7 ≥ 18 (Mardi)
x1 + x2 + x3 + x6 + x7 ≥ 21 (Mercredi)
x1 + x2 + x3 + x4 + x7 ≥ 16 (Jeudi)
x1 + x2 + x3 + x4 + x5 ≥ 12 (Vendredi)
x2 + x3 + x4 + x5 + x6 ≥ 25 (Samedi)
x3 + x4 + x5 + x6 + x7 ≥ 9 (Dimanche)
Contraintes de bornes : Le nombre de chauffeurs dans chaque équipe doit non
seulement être non négatif mais également entier !
x1 , x2 , x3 , x4 , x5 , x6 , x7 ≥ 0 et entiers
Ce problème n’est pas un PL mais un programme linéaire en nombres entiers
(PLNE) !
RO 23
Programmation linéaire: Exercices de modélisation
Problème d’agriculture
RO 24
Programmation linéaire: Exercices de modélisation
Problème d’agriculture
Formulation du problème en un PL :
Etape 1 : Identification des variables de décision :
x1 : la surface allouée à la culture des tomates x1 0
x2 : la surface allouée à la culture des piments x2 0
Eau : 4 x1 2 x2 440
Main d’œuvre : x1 4 x2 480
Culture de la tomate : x1 90
z 100 x1 200 x2
RO 25
Programmation linéaire: Exercices de modélisation
Sélection de Médias
Une entreprise désire effectuer une campagne publicitaire dans la télévision,
la radio et les journaux pour un produit lancé récemment sur le marché. Le
but de la campagne est d’attirer le maximum possible de clients. Les résultats
d’une étude de marché sont donnés par le tableau suivant :
Télévision Radio Journaux
Locale Par satellite
Coût d’une publicité 40 Dh 75 Dh 30 Dh 15 Dh
Nombre de client potentiel par publicité 400 900 500 200
Nombre de client potentiel femme par publicité 300 400 200 100
Pour la campagne, on prévoit de ne pas payer plus que 800Dh pour toute la
campagne et on demande que ces objectifs soient atteints :
1. Au minimum 2000 femmes regardent, entendent ou lisent la publicité ;
2. La campagne publicitaire dans la télévision ne doit pas dépasser 500 Dh ;
3. Au moins 3 spots publicitaires seront assurer par la télévision locale et au
moins de deux spots par la télévision par satellite.
4. Le nombre des publicités dans la radio ou dans les journaux sont pour
chacun entre 5 et 10.
RO 26
Programmation linéaire: Exercices de modélisation
Problème de production
Pour fabriquer deux produits P1 et P2 on doit effectuer des opérations sur
trois machines M1, M2 et M3, successivement mais dans un ordre quelconque.
Les temps unitaires d’exécution sont donnés par le tableau suivant :
M1 M2 M3
P1 11 mn 7 mn 6 mn
P2 9 mn 12 mn 16 mn
On supposera que les machines n’ont pas de temps d’inactivité. La
disponibilité pour chaque machine sont :
165 heures (9900 minutes) pour la machine M1 ;
140 heures (8400 minutes) pour la machine M2 ;
160 heures (9600 minutes) pour la machine M3 .
Le produit P1 donne un profit unitaire de 900 Dh et le produit P2 un profit
unitaire de 1000 Dh.
Dans ces conditions, combien doit-on fabriquer mensuellement de produits
P1 et P2 pour avoir un profit total maximum ?
RO 27
Programmation linéaire: Exercices de modélisation
Problème de mélange
Un industriel veut produire un alliage Z à 30% de plomb, 30% de zinc et 40%
d’étain. Supposons qu’il puisse se procurer sur le marché des alliages A, B, C,
D, E, F, G, H, I dont les compositions et les prix respectifs sont donnés dans le
tableau suivant :
RO 28
Programmation linéaire: Exercices de modélisation
Problème de médecine
RO 30
Programmation linéaire: Exercices de modélisation
Problème d’alimentation
RO 31
Programmation linéaire: Résolution Graphique
2. Tracer les droites isocoût, i.e. les droites unissant les plans de
production conduisant au même coût.
RO 32
Programmation linéaire: Résolution Graphique
Interprétation géométrique
• L’ensemble des solutions d’une inéquation correspond à un demi-plan.
• L’ensemble des solutions d’une équation correspond à une droite.
• L’ensemble des solutions d’un système d’équations et d’inéquations
correspond à l’intersection des demi-plans et des droites associés à chaque
élément du système.
• Cette intersection, appelée domaine admissible, définit une région
polygonale.
• Les lignes de niveau de la fonction objectif sont des droites parallèles.
• Il existe des solutions admissibles de valeur z si la ligne de niveau associée à
cette valeur intersecte le domaine admissible D du problème.
• Pour déterminer la valeur maximale atteignable par une solution admissible,
il suffit de faire glisser le plus loin possible une ligne de niveau de la fonction
objectif, dans le sens du gradient, jusqu’à ce qu’elle touche encore tout juste D.
• Les points de contact ainsi obtenus correspondent aux solutions optimales.
RO 33
Programmation linéaire: Résolution Graphique
Résultat d’une optimisation linéaire
Le domaine admissible d’un PL peut être
• vide. Dans un tel cas le problème est sans solution admissible:
contraintes contradictoires (et ne possède évidemment pas de solution
optimale).
• borné (et non vide). Le problème possède toujours au moins une
solution optimale, quelle que soit la fonction objectif.
• non borné. Dans ce cas, selon la fonction objectif choisie,
Si Min: il y a une solution finie (des solutions optimales) ;
Si Max: il peut exister des solutions admissibles de valeur
arbitrairement grande (ou petite). Dans un tel cas le PL n’admet pas
de solution optimale finie et est dit non borné.
Questions:
• Donner un exemple de programme linéaire qui n’a pas de solution.
• Proposer un PL qui a des solutions, mais pas de solution optimale.
• Proposer un PL qui a plusieurs solutions optimales.
RO 34
Programmation linéaire: Résolution Graphique
Problème de production
RO 35
Programmation linéaire: Résolution Graphique
modélisation
Soit x et y les quantités de produits X et Y fabriqués.
La quantité totale de produits A utilisée est 2x + 3y. Cette quantité ne doit pas
dépasser 180, d'où la première contrainte.
2x + 3y ≤ 180
De même, pour les produits B et C, on obtient:
2x + y ≤ 120
x + 3y ≤ 150
Bien entendu, les quantités x et y sont positives: x, y ≥ 0
Enfin, on tente de maximiser le profit qui est le total des bénéfices sur la vente
des produits X plus celui des produits Y: max: 3x + 4y. Le programme linéaire
est donc le suivant :
max: z = 3x + 4y
s.c.: 2x + 3y ≤ 180
2x + y ≤ 120
x + 3y ≤ 150
x,y≥0
RO 36
Programmation linéaire: Résolution Graphique
max: z = 3x + 4y
s.c.: 2x + 3y ≤ 180 (A)
2x + y ≤ 120 (B)
x + 3y ≤ 150 (C)
x,y≥0 y
120
60 (B)
Les solutions admissibles b
sont représentées par la 50 c
zone rouge (a,b,c,d,e). (A)d
(C)
Ce sont les solutions qui
satisfont les contraintes. e x
a 90 150
60
RO 37
Programmation linéaire: Résolution Graphique
Solution graphique
z = 3x + 4y. y
Pour z = 0, on a la droite D1,
Pour z = 120, on a la droite D2,
Et pour z = 180, on a une autre
droite D3,
b
On remarque que les droites 50 c
D1, D2 et D3 sont parallèles et
on s'aperçoit facilement qu'en d
déplaçant la droite vers le D3
D2
haut on augmente le profit z. x
e
a D
1 60
On s’arrête lorsqu’il y a un minimum de points communs avec la surface
colorée. Le point restant ici est d. Il représente la solution pour laquelle le
profit est maximum.
RO 38
Programmation linéaire: Résolution Graphique
Solution graphique
y
Finalement pour trouver les
coordonnées du point d, qui
est l’intersection des deux
droites (A) et (B), il suffit de (B)
résoudre le système :
b (A) z =255
2 x 3 y 180 50 c
2 x y 120 d
e x
a
60
RO 39
Programmation linéaire: Résolution Graphique
Exemple 1
max z 25 x1 30 x2 x2
s.c. 7 x1 10 x2 56000
0 x1 6000 x1 = 6000
0 x2 4000 6000 x2 = 1400
4500 192000
RO 40
Programmation linéaire: Résolution Graphique
Exemple 2
Représenter graphiquement les contraintes et visualiser l’ensemble des
solutions. Identifier une solution optimale.
min z x1 x2 x2
s.c. x1 2 x2 3
3
2 x1 x2 3
x1 , x2 0
c=(1,1)T
x1 2 x2 3
2 x1 x2 3 x1
1.5 3
x1 , x2 0 w=0 w=1
RO 41
Programmation linéaire: Exercice de résolution
Problème de production
Une usine fabrique 2 sortes de produits p1 et p2 à l’aide de 2 machines m1 et
m2 :
p1 p2
m1 30 20 minutes
m2 40 10
m1 disponible 6000 min/mois
m2 disponible 4000 min/mois
1 p1 fabriqué rapporte 400 €
1 p2 fabriqué rapporte 200 €
RO 43
Programmation linéaire: Résolution Graphique
Exemples triviaux
1. Une entreprise gagne 5Dh chaque fois qu’elle vend 1 litre de produit chimique.
Elle désire maximiser son profit.
Profit (Dh)
1 Litres
• Observations :
– Fonction objectif linéaire
– Pas de contraintes
– Solution infinie
• Commentaire : La solution est toujours infinie lorsque la fonction objectif est
linéaire et qu’il n’y a pas de contraintes
RO 44
Programmation linéaire: Exemples triviaux
2. Un laboratoire achète 30Dh le litre de produit chimique. Il dispose d’un budget de
1000Dh. Quelle quantité maximale peut-il acheter ?
Coût (Dh)
300
10 Litres
• Observations :
– Réponse évidente : 1000 / 30 litres
– Bien que l’on puisse dépenser 1000Dh ou moins, on dépense exactement
1000Dh
• Commentaires :
– Si la fonction objectif et les contraintes sont linéaires, il y a au moins une
contrainte active à la solution
– La contrainte g(x) ≤ 0 est dite active en x* ssi g(x*)=0
RO 45
Programmation linéaire: Exemples triviaux
3. Un laboratoire achète 30Dh le litre de produit chimique. Il dispose d’un budget de
1000Dh et doit en acheter au minimum 40 litres. Quelle quantité maximale peut-
il acheter ?
Coût (Dh)
300
10 40 Litres
• Observations :
– Problème impossible
– Contraintes incompatibles
• Commentaire :
– La solution peut ne pas exister. On dit que le problème ne possède pas
de solution admissible.
RO 47
Programmation linéaire: Exemples triviaux
4. Un laboratoire achète 3$ un microprocesseur. Il dispose d’un budget de 10$.
Quelle quantité maximale peut-il acheter ?
Coût ($)
1 10/3 Microprocesseurs
• Observations :
– Impossible d’acheter des parties de microprocesseurs
– Malgré que la fonction objectif et les contraintes soient linéaires, le
budget ne sera pas totalement dépensé
• Commentaire :
– Lorsque les variables sont entières, les résultats théoriques peuvent être
différents
RO 48