Académique Documents
Professionnel Documents
Culture Documents
S6 Ro PDF
S6 Ro PDF
Recherche opérationnelle
(Programmation linéaire)
Année universitaire
2020/2021
Modélisation
1. Introduction
On suppose que :
1
2.2. La construction d’un modèle linéaire (Modélisation)
Variables de décision
Fonction objectif
— de même, la quantité x2 du produit B lui permet de faire un profit de (60 x2) dh.
(50 x1 + 60 x2) dh
z = 50 x1 + 60 x2
La grandeur z est une fonction qui, à chaque plan de production (une quantité
de A, une quantité de B), associe le nombre de dirhams que l’entreprise retirerait
2
comme profit si elle adoptait ce plan. Cette fonction z, qui traduit l’objectif de
notre problème, s’appelle fonction objectif ou fonction économique. Et, comme
nous cherchons à rendre z aussi grand que possible, nous écrivons :
Maximiser z où z = 50 x1 + 60 x2
Max z = 50 x1 + 60 x2
Contraintes
Temps d’utilisation de m ≤ 8.
Or, ce temps utilisé est la somme des heures consacrées à chacun des types de
produits. Pour le produit A, le temps nécessaire à la fabrication de la quantité x1 se
calcule ainsi :
x1 + 2x2 ≤ 8 (m)
On emploie le signe « ≤ », et non « = », car il n’est pas obligatoire que toutes les
heures disponibles soient utilisées pour la fabrication des produits A et B, bien
qu’il ne soit pas interdit qu’il en soit ainsi.
3
2x1 + 2x2 ≤ 10 (p)
Contraintes de positivité
x1 , x2 ≥ 0.
Afin de ramener les contraintes à des égalités (qui sont plus faciles à traiter que
les inégalités), on introduit des variables d’écart. Ces variables seront toujours,
comme les variables de décision x1 et x2, positives ou nulles.
Après l’ajout des variables d’écart x3, x4 et x5 relatives aux contraintes (m), (p) et
(q), nous obtenons la formulation :
4
2.4. Généralisation :
5
Méthode graphique
Dans cette section nous présentons une technique de résolution de programme
linéaire à deux variables x1 et x2. Dans ce cas on peut utiliser une représentation
graphique du programme linéaire. La représentation graphique sera utile pour
acquérir une compréhension intuitive des principes de base de la programmation
linéaire.
1. Enoncé du problème
Une entreprise de fabrication de chassis envisage la production de deux nouveaux
modèles au moyen des capacités de ses trois ateliers. Il s’agit respectivement d’un
chassis en aluminium et d’un chassis en bois. Le premier produit nécessite le
passage dans le premier atelier pour fabriquer le cadre en aluminium et dans le
troisième atelier où le verre est monté sur le chassis. Tandis que le second produit
nécessite le passage dans le deuxième atelier pour fabriquer le cadre en bois et
dans le troisième atelier où le verre est monté sur le chassis. Les profits unitaires,
les temps de fabrication de chacun des produits dans chacun des ateliers ainsi que
les capacités hebdomadaires de ces ateliers sont donnés au tableau suivant :
2. Formulation du problème
6
3. Construction de la région réalisable
On appelle région réalisable, l’ensemble des valeurs de variables de décision qui satisfont
toutes les contraintes.
Dans le cas de l’exemple, c’est l’ensemble des points (x1, x2) satisfaisant les
inégalités suivantes :
La région réalisable est donc l’intersection des cinq demi-plans correspondant aux cinq
inégalités.
Tout d’abord, les contraintes x1 ≥0 et x2 ≥ 0 signifient que tous les points (x1; x2)
représentant des solutions acceptables doivent être dans le premier quadrant, soit
à droite de l’axe Ox2 et au-dessus de l’axe Ox1.
7
Puisque toutes les contraintes du modèle linéaire sont de la même forme, il suffit
de les prendre en considération tour à tour, en procédant, pour chaque contrainte
comme suit :
— choisir 2 points de la droite associée. Afin de faciliter les calculs, on peut choisir
les deux points ayant chacun une coordonnée nulle. Puis tracer cette droite ;
— déterminer de quel côté de la droite associée la contrainte est satisfaite. Pour
repérer rapidement le bon côté, il suffit de regarder si le point (0; 0) est du bon
côté ;
— tracer une flèche pointant vers ce côté.
8
La prise en considération graphique de la contrainte (A3) se traduit par le tracé de
la droite d’équation :
3x1 + 2x2 = 18 (3)
et par l’exclusion des points situés au-dessus de cette droite.
Proposition :
La valeur optimale de la fonction objectif d’un problème de programmation linéaire est
obtenue à l’un des sommets de la région réalisable si cet ensemble existe et est borné.
La région réalisable que nous venons de construire ne détermine pas une solution,
mais tout un domaine contenant un nombre infini de points. Il va falloir repérer
un plan de production optimal, c’est-à-dire un point (x1*, x2*) vérifiant toutes les
contraintes et permettant à z de prendre sa plus grande valeur sur la région
réalisable.
9
Pour cela, on va considérer des valeurs successives de la fonction économique :
z=p
Ce qui correspond graphiquement à des droites parallèles
300x1 + 500x2 = p
Les points d’une de ces droites sont donc le lieu de tous les points donnant la
même valeur du profit (d’où le nom de droites d’isoprofits).
Tracer une première droite d’isoprofit permet d’obtenir une illustration de la
pente de z. En traçant une deuxième permet de déterminer la direction selon
laquelle la valeur de z augmente. Ainsi, en augmentant petit à petit la valeur de p
dans l’équation (300x1 + 500x2 = p), on obtient des droites parallèles, chacune plus
loin de l’origine que les précédentes.
Remarques
Vide
Borné (une solution optimale existe toujours)
Non borné (une solution optimale peut exister comme elle ne peut pas
exister)
Lorsque la région réalisable n’est pas borné la proposition précédente n’offre pas
de garanties quant à l’existence d’une solution optimale.
11
12
Algorithme du simplexe
Méthode des tableaux
Introduction
Lorsqu’on considère un programme linéaire ayant plus de 2 variables, la
résolution graphique devient difficile, mais les propriétés restent les mêmes.
Si la fonction objectif peut avoir une valeur optimale dans la région réalisable,
celle-ci se trouve en un des sommets de la région réalisable. Pour atteindre la
valeur optimale, seuls les sommets doivent donc être examinés.
On pourrait donc en déduire qu’il suffit de calculer la valeur de la fonction
objectif à chaque sommet et de choisir finalement la plus grande de ces valeurs;
mais cette approche est impraticable pour les grands programmes.
Une procédure "intelligente" est donc nécessaire : l’algorithme du simplexe
utilise une procédure itérative qui permet de trouver la valeur optimale ou, à
défaut, met en évidence que la région réalisable est vide.
13
Cette forme standard du programme linéaire correspond à la forme matricielle
suivante :
Max z = c x
Ax=b
x≥0
Définition :
Soit A une matrice (m × (n+m)) de rang m.
Une base est une matrice B(m × m) extraite de A dont le déterminant est non nul,
(inversible).
Soit B une base, alors en permutant les colonnes de A, on peut toujours mettre A
sous la forme :
A = (H B)
où H est la sous-matrice formée par les colonnes de A qui ne sont pas dans la
base.
De même on peut écrire x=( )
Ax = b
(H B) ( )=b
H +B =b
B-1H + B-1B = B-1b
= B-1b - B-1H
14
On remarque que le système à résoudre possède m égalités et n + m inconnues.
Donc les valeurs de n variables peuvent être fixées arbitrairement, par exemple à
zéro. On dit qu’elles sont mises hors base.
Définition :
On appelle variables hors base les n variables (parmi n+m variables) fixées
à zéros.
Les m variables restantes sont appelées variables de base.
Définition :
On appelle solution de base une solution où en ayant choisi n variables hors
base (nulles), on obtient une solution unique en résolvant les m contraintes
d’égalité obtenues en ajoutant les variables d’écart.
Propriété :
15
Méthode des tableaux
On peut vérifier cette propriété sur l’exemple de fabrication des chassis dont la
représentation graphique est donnée à la figure suivante.
A la figure, les sommets (0; 0), (0; 6), (2; 6), (4; 3), (4; 0) correspondent à des
solutions de base réalisables tandis que les points (0; 9), (4; 6) et (6; 0)
correspondent à des solutions de base non réalisables, comme le montre le
tableau suivant
16
Tableau initial
Variables
hors Base
Base x1 x2 x3 x4 x5 b
Variables
de Base x3 1 0 1 0 0 4
x4 0 2 0 1 0 12
x5 3 2 0 0 1 18
z 300 500 0 0 0 0
On a ajouté au-dessus du tableau le nom des variables pour voir à quelle variable
correspond chaque colonne du tableau.
Plusieurs caractéristiques d’un tableau simplexe sont à remarquer :
— Tout d’abord, on peut lire directement sur le tableau les valeurs des variables
de base. Si x1 = x2 = 0, on obtient x3 = 4, x4 = 12 et x5 = 18. Soit xB = b.
— Dans la dernière ligne, on trouve un coefficient égal à 0 pour chaque variable
de base (la fonction z est exprimée en fonction des seuls variables hors base).
— La matrice carrée correspondant aux variables de base est la matrice identité.
— Enfin, le dérnier coefficient de la dernière ligne donne l’opposé de la valeur
de z.
17
Tableau 2 :
Dans le cas où le coefficient dans la colonne entrante est négatif ou nul, la ligne
n’entre pas en compte dans le calcul du minimum.
La variable sortante est alors la variable de base dont la valeur se lit dans la ligne
18
où le minimum se produit : ici, il s’agit de la deuxième ligne et donc de la variable
x4. On encadre alors la ligne où le minimum se produit. Cette ligne reçoit le nom
de ligne pivot :
19
2. Transformation de la colonne pivot : après avoir ramené par division le
pivot à 1, toutes les éléments situé au-dessus et au-dessous du pivot deviennent
zéro.
20
En appliquant ces opérations au tableau initial, on obtient le deuxième tableau :
Tableau 3
– Comme il ne reste plus comme coefficient positif (dans la dernière ligne) que
300, on introduit x1 dans la base. La colonne de x1 devient la colonne pivot.
– La division de la colonne des seconds membres par la colonne pivot révèle que
le plus faible rapport correspond à la ligne x5. C’est x5 qui quitte la base. Alors le
nombre 3 devient le nouveau pivot.
21
Le dernier pas de la deuxième itération consiste à déterminer la nouvelle solution
de base au moyen du pivotage :
22
2. Transformation des autres cases du tableau : Nous utilisons la règle du
rectangle pour transformer le reste des coefficients. Le résultat est le suivant :
Le chemin suivi par la méthode des tableaux est illustré par la figure suivante.
23
Résumé
La règle du rectangle :
′
×
= −
a’ est la valeur modifiée du coefficient a qui est considéré.
b est l’élément situé sur la même ligne que a, mais dans la colonne du pivot.
c est l’élément situé dans la même colonne que a, mais sur la ligne du pivot.
24
Dualité
1. Introduction
Quels prix unitaires y1, y2, et y3, l'acheteur doit-il proposer à l'entreprise en question
pour qu'elle accepte de vendre toutes ses ressources ?
25
L'entreprise acceptera de lui vendre toutes ses ressources uniquement si
elle obtient, pour chaque produit, un prix de vente supérieur ou égal au
profit qu'elle ferait en vendant ses produits.
Pour le produit P1
3 unités de la ressource A,
4 unités de la ressource B,
2 unités de la ressource C.
L’acheteur propose :
y1 pour acheter 1 unité de A,
y2 pour acheter 1 unité de B,
y3 pour acheter 1 unité de C.
Ce bénéfice est : 6
Pour le produit P2
Similairement à ce qui précède, on écrit
26
De son coté, l'acheteur cherche à minimiser le prix total d’achat des
ressources A (81), B (55), C (20).
Les problèmes (P) et (D) utilisent en fait exactement les mêmes données
numériques. On peut les lire directement à partir du tableau ci-dessous;
(P) correspond à une lecture ligne par ligne, (D) à une lecture colonne par
colonne.
PRIMAL (Max)
x1 x2 b
y1 3 9 ≤ 81
y2 4 5 ≤ 55
DUAL (Min)
y3 2 1 ≤ 20
≥ ≥
c 6 4
La dualité associe à tout problème linéaire un autre problème linéaire qui est
appelé problème dual du problème initial; par opposition le problème initial est
appelé problème primal.
27
Considérons un problème de maximisation sous forme canonique :
Règles de dualisation
Remarque :
Le dual d’un problème linéaire de minimisation est un problème linéaire de
maximisation.
Le dual du problème dual est le problème primal.
28
Remarque :
Le programme linéaire initial doit être mis sous forme canonique avant de
déterminer son dual.
2. Propriétés de la dualité
Dualité forte
le primal possède une solution optimale (x1*, . . ., xn*)
si et seulement si
le dual possède une solution optimale (y1*, . . ., ym*).
Dans ce cas, les fonctions objectifs z et w ont la même valeur optimale,
Autrement dit :
La ième contrainte primale n’est pas saturée ⟹ la ième variable (de décision) duale est nulle.
La jème variable (de décision) primale est non nulle ⟹ la jème contrainte duale est saturée.
29
Exemple :
Appliquons le TEC au problème linéaire suivant :
1) On a
La 2ème contrainte primale n’est pas saturée ⟹ la 2ème variable duale est nulle.
⟹ y2 = 0
La 3ème contrainte primale n’est pas saturée ⟹ la 3ème variable duale est nulle.
⟹ y3=0
2) On a
La 2ème variable primale n’est pas nulle ⟹ la 2ème contrainte duale est saturée.
⟹ 3y1 + y2 + 4y3 = 25
⟹ 3y1 = 25 car y2 = y3 = 0
⟹ y1 = 25/3
3) Cette solution y2 =y3 = 0, y1 = 25/3 ne satisfait pas la 1ère contrainte duale
y1 + y2 + 7y3 ≥15
Et par suite elle n’est pas réalisable.
4) La solution primale précédente x1=0 , x2 = 32 n’est donc pas optimale .
30
Exercice
vérifier que (x1 , x2, x3, x4 )= (3,0,7,0) est une solution réalisable optimale en appliquant
le théorème des écarts complémentaires.
Max z =
31
Base x1 x2 s1 s2 s3 b
s1 3 9 1 0 0 81
s2 4 5 0 1 0 55
s3 2 1 0 0 1 20
z 6 4 0 0 0 0
Variable entrante : max (6, 4)= 6 correspond à la variable hors base x1.
Donc x1 va entrer dans la base.
81 55 20 20
Variable sortante : min ( , , )= correspond à la variable de base s3 .
3 4 2 2
Donc s3 va sortir de la base
Base x1 x2 s1 s2 s3 b
15 3
s1 0 1 0 − 51
2 2
s2 0 3 0 1 -2 15
1 1
x1 1 0 0 10
2 2
z 0 1 0 0 -3 -60
Variable entrante : x2
51 15 10 15
Variable sortante : min ( , , )= correspond à la variable de base s2.
15/2 3 1/2 3
Donc s2 va sortir de la base
32
On obtient donc le tableau suivant
Base x1 x2 s1 s2 s3 b
5 7 27
s1 0 0 1 −
2 2 2
1 2
X2 0 1 0 − 5
3 3
1 5 15
x1 1 0 0 −
6 6 2
1 7
z 0 0 0 − − -65
3 3
Les variables de décision du dual sont associées aux variables d’écart du primal.
Réciproquement,
les variables d’écart du dual sont associées aux variables de décision du primal.
33
PRIMAL
z = 65 x1 x2 s1 s2 s3
27
valeurs optimales 5 0 0
2
1 7
valeurs marginales 0 0 0 − −
3 3
DUAL w = 65 t1 t2 y1 y2 y3
1 7
valeurs optimales 0 0 0
3 3
15 27
valeurs marginales − -5 − 0 0
2 2
Le programme dual :
34
EXERCICES
35
UNIVERSITÉ MOHAMMED PREMIER ANNÉE UNIVERSITAIRE : 2019-2020
FACULTÉ PLURIDISCIPLINAIRE DE NADOR SEMESTRE 6
DÉPARTEMENT : ÉCONOMIE-GESTION RECHERCHE OPÉRATIONNELLE
M a x z = 4x1 + 3x2
2x1 + x2 ≤ 8
x1 + 2x2 ≤ 7
(P )
x2 ≤ 3
x1 ≥ 0, x2 ≥ 0
Exercice 2 : Deux usines produisent du papier de trois qualités différentes. Elles ont des commandes
pour chaque type de papier : la compagnie qui gère les usines a des contrats pour fournir 16 tonnes
de papier de qualité inférieure, 5 tonnes de papier de qualité moyenne, et 20 tonnes de papier de
qualité supérieure.
Il coûte 10 000 DH par jour pour faire fonctionner l’usine A et 20 000 DH par jour pour l’usine B.
L’usine A produit 8 tonnes de papier de qualité inférieure, 1 tonne de papier de qualité moyenne
et 2 tonnes de papier de qualité supérieure par jour. L’usine B produit 2 tonnes de papier de qualité
inférieure, 1 tonne de papier de qualité moyenne et 7 tonnes de papier de qualité supérieure par
jour.
On cherche combien de jours chaque usine doit fonctionner afin de satisfaire la demande de la
façon la plus économique.
1. Modéliser le problème ci-dessus sous forme d’un programme linéaire.
2. Résoudre graphiquement ce programme.
Exercice 3 : Une entreprise fabrique trois produits P1 , P2 et P3 . Pour réaliser ce projet, elle utilise trois
centres de fabrication. Les temps opératoires, en heure par unité, à chaque centre de fabrication
sont les suivants :
P1 P2 P3 Temps disponible
Centre I 4 2 4 80 heures
Centre I 2 2 3 50 heures
Centre I 1 3 3 40 heures
La contribution unitaire de chaque produit au bénéfice est la suivante : 50 DHS pour P1 , 30 DHS
pour P2 , 40 DHS pour P3 .
1. Déterminer la fonction économique et les contraintes.
2. Donner la forme canonique du programme Linéaire régissant le problème.
3. Écrire ce programme linéaire sous forme standard.
4. Résoudre ce programme par la méthode du Simplexe (Tableaux).
5. Le centre II est-il pleinement utilisé ?
Exercice 4 : On considère le programme linéaire suivant
x1 + x2 + x3 ≤ 200
3x1 + 2x2 + 4x3 ≤ 400
(P )
x1 + 2x2 ≤ 300
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0
x1 0
1. Vérifier que la solution x2
x3
= 150 est réalisable.
25
2. Écrire (D) le programme dual de (P ). 0
3. En utilisant le théorème des écarts complémentaires, montrer que la solution 150 est optimale
25
pour le programme (P ).
x1 + x2 + 7x3 ≥ 15
(P ) 3x1 + x2 + 4x3 ≥ 25
x1 ≥ 0, x2 ≥ 0, x3 ≥ 0