Vous êtes sur la page 1sur 14

Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

Méthodes opérationnelles d’aide à la décision

Dans toute entreprise, se prennent régulièrement des décisions qui vont conditionner et orienter son
avenir. Il y a ainsi des décisions de financement, des décisions d'investissement ou encore des décisions
d'exploitation. En général, ces décisions ne sont pas autonomes (elles sont en effet limitées par les contraintes
du marché, de capacités de production, de qualité, de délai de livraison, d’affectation du personnel, de budget,
de la législation, etc).

De nombreuses techniques permettent au décideur de prendre certaines décisions (arbre de décision,


critère de choix d’investissement, techniques de programmation linéaires, ordonnancement, etc). Les outils qu'il
devra mettre en œuvre, dépendent du problème initial et de la connaissance plus ou moins précise du décideur.
C’est pour aider le décideur dans ces choix parfois complexes qu’est apparue la Recherche
Opérationnelle, discipline visant à apporter des outils quantitatifs d’aide à la décision. Ces modèles apportent
une représentation de la réalité et de ses contraintes plus facile à manipuler, une formulation claire des critères
qui guident les choix, et donc une rationalisation des décisions découlant de leur utilisation.

La Recherche Opérationnelle propose des méthodes scientifiques combinant notamment des


techniques de modélisation, des outils mathématiques et des techniques de développement informatiques
afin de traiter des problèmes d’optimisation et élaborer de meilleures décisions. Parmi les méthodes qu’elle
propose nous allons nous intéressé en particulier aux méthodes suivantes:

- La programmation linéaire ;
- La théorie des graphes ;
- L’ordonnancement.

1
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

Chapitre I- Programmation linéaire


La programmation linéaire est une méthode de recherche opérationnelle qui permet de résoudre des
problèmes d’optimisation d’objectifs (maximisation des profits ou minimisation des coûts) sous des contraintes
techniques de production (capacité maximale de ressources, temps d’exécution du processus, qualité associée
au processus, etc).

Section I formulation et résolution d’un modèle de programme linéaire


I-1 Formulation d’un programme linéaire:
Une entreprise fabrique deux produits X1 et X2. Chacun d’eux est produit par deux machines différentes.
* Chaque unité du produit X1 nécessite 4 heures d’utilisation de la machine 1 et 2 heures de la machine
2.
* Chaque unité du produit X2 nécessite 3 heures d’utilisation de la machine 1 et 5 heures de la machine
2.
* Les capacités de travail des machines sont respectivement de 120 heures pour la première et 130
heures pour la seconde.
* Le profit attendu est de 5 unités monétaires par unité du produit X1 et de 4 unités monétaires du
produit X2.
* On sait d’autre part que le marché n’est pas saturé et que toute la production peut être écoulée.
Comment déterminer le nombre d’unités du produit X1 et ceux X2 de manière à maximiser le profit de
l’entreprise, en tenant compte des capacités de production des deux machines ?

I-1-1 Formulation
Le terme formulation désigne la traduction d’un problème réel sous formes d’équations mathématiques.
a- La fonction objectif :
Soit f la fonction objectif ou la fonction économique
f est « le profit de l’entreprise »
Il faut maximiser le profit de l’entreprise.
max f = 5x1 + 4x2
b- Les variables :
Les variables du programme, encore appelées variables structurelles ou d’activité, sont données
dans l’énoncé.
Le profit de l’entreprise dépend des quantités des produits X1 et X2 à fabriquer. Les variables sont donc :
x1 « nombre d’unités du produit X1 à produire »
x2 « nombre d’unités du produit X2 à produire »
c- Les contraintes
On distingue deux types de contraintes.

- Les contraintes techniques : elles sont données dans l’énoncé.


En tenant compte des capacités de production de la machine 1 qui est de 120 heures, et étant donné que
- Chaque unité du produit X1 nécessite 4 heures d’utilisation de la machine 1 ; et
- Chaque unité du produit X2 nécessite 3 heures d’utilisation de la machine 1 ; et que
On aura alors :
4x1 + 3x2 ≤ 120

En tenant compte des capacités de production de la machine 2 qui est de 130 heures, on aura alors :
2x1 + 5x2 ≤ 130

2
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

- Les contraintes implicites (ou de signe):


L’entreprise peut produire 0 ou des valeurs positives.
x1 ≥ 0
x2 ≥ 0

Cette contrainte s’appelle aussi condition de non négativité des variables économiques
(production, prix, etc).

d- La formulation
Pour maximiser le profit de l’entreprise, il faut résoudre le programme linéaire (ou problème)
suivant :
max f = 5x1 + 4x2
Sous les contraintes
▪ économiques
4x1 + 3x2 ≤ 120
2x1 + 5x2 ≤ 130
▪ de signe
x1 ≥ 0
x2 ≥ 0
Sous forme matricielle, on aura :

𝑥1
F=[5 4] [ 𝑥 ]
2

4 3 x1 120
[ ] [x ] ≤ [ ]
2 5 2 130
x1 ≥ 0
x2 ≥ 0

I-2 Résolution graphique:

Le problème posé peut être résolu graphiquement :

- On considère le quart du plan où les valeurs de x1 et x2 sont positives.

- On représente les deux droites limites :

𝐷1 : 4x1 + 3x2 − 120 = 0


𝐷2 : 2x1 + 5x2 − 130 = 0

3
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

45
X2
40

35

30
b
droite D1
25
c droite D2
20 Linéaire (droite D1)
15 Linéaire (droite D2)

10

5 d
a
0 X1
0 20 40 60 80

- On délimite l’ensemble des points qui vérifient les contraintes, on l’appelle région réalisable ou région
des solutions admissibles. Elle est représentée par l’ensemble des points à l’intérieur du polygone abcc

- Pour obtenir la solution optimale, on remplace les coordonnées de chaque sommet du polygone
dans la fonction économique. Et on choisit le point (x1,x2) qui optimise cette fonction.

x1 x2 f
a 0 0 0
b 0 26 104
c 15 20 155
d 30 0 150

L’entreprise devra produire 15 unités du produit X1 et 20 unités du produit X2 pour avoir un profit
maximum de 155 unités monétaire (5*15+4*20).

Limites de la représentation graphique :

✓ la solution graphique est valable dans le cas de deux variables. dans le cas de trois, on utilise une
représentation dans l’espace.
✓ il est bien entendu que l’exemple introductif est simple. Cependant, dans la réalité il s’agit de centaines
de produits et de multiples contraintes.
✓ Dans ce cas, la résolution d’un problème de programmation linéaire nécessite des algorithmes.

4
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

I-3 l’algorithme du simplexe:


Encore appelé « algorithme de Dantzig » ou « méthode des tableaux », l’algorithme du simplexe est une
méthode itérative qui permet de trouver la solution d’un programme linéaire. Cette méthode s’appuie sur une
caractéristique des programmes linéaires : l’ensemble des solutions possibles est convexe.

I-3-1 Formulation générale


Il existe différentes manières d’écrire un programme :
• La forme canonique (les contraintes sous forme d’inégalités ≤ 𝑜𝑢 ≥ );
• La forme standard ou alogo du simplexe (les contraintes sous forme d’égalités).

a- La forme canonique :
Tout programme linéaire écrit sous la forme canonique se présente de la manière suivante :

max f = d1 x1 + d2 x2 + d3 x3 + ⋯ + dn xn
Sous les contraintes
a11 x1 + a12 x2 + a13 x3 + ⋯ + a1n xn ≤ 𝑏1
a21 x1 + a22 x2 + a23 x3 + ⋯ + a2n xn ≤ 𝑏2
{
am1 x1 + am2 x2 + a3 x3 + ⋯ + amn xn ≤ 𝑏𝑛

x1 ≥ 0
x2 ≥ 0
{
xn ≥ 0
Si on appelle,
D désigne la matrice ligne (d1, d2,…,dn) ;
Xs désigne la matrice colonne des variables structurelles ;
B désigne la matrice colonne des quantités limites des inéquations exprimant les contraintes ;
A est la matrice des aij ;
alors on peut écrire le programme sous une des deux formes suivantes :

❖ Si l’on a une fonction objectif à maximiser et des contraintes d’infériorité.

max f = DXS
Sous les contraintes
AXS ≤ 𝐵
{
XS ≥ 0

❖ Si l’on a une fonction objectif à minimiser et des contraintes de supériorité.

min f = DXS
Sous les contraintes
AXS ≥ 𝐵
{
XS ≥ 0
❖ On peut avoir à optimiser une fonction objectif et des contraintes mixtes

La forme canonique d’un programme linéaire est donc une fonction objectif à optimiser sous
des contraintes d’inégalité.
5
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

b- La forme standard

Un programme linéaire est de forme standard si :


❖ les contraintes :
▪ Portent sur des variables positives ;
▪ Se présentent sous forme d’un système d’équations linéaires.
❖ La fonction objectif est à maximiser

max f = d1 x1 + d2 x2 + d3 x3 + ⋯ + dn xn

Sous les contraintes


a11 x1 + a12 x2 + a13 x3 + ⋯ + a1n xn = 𝑏1
a21 x1 + a22 x2 + a23 x3 + ⋯ + a2n xn = 𝑏2
{
am1 x1 + am2 x2 + a3 x3 + ⋯ + amn xn = 𝑏𝑛

x1 ≥ 0
x2 ≥ 0
{
xn ≥ 0

Sous forme matricielle, on aura :


optimiser f = DXS
Sous les contraintes
AXS = 𝐵
{
XS ≥ 0

La forme standard d’un programme linéaire est donc une fonction objectif à maximiser sous
des contraintes d’égalité.

c- Passage de la forme canonique à la forme standard :

Pour passer de la forme canonique à la forme standard, il faut :


- transformer les inéquations en équations ;
- avoir une fonction objectif à maximiser.

➢ Passage des inéquations aux équations :


Une inégalité peut être remplacée par une égalité en ajoutant une variable supplémentaire positive
𝑥𝑛+1 ≥ 0 appelée variable d’écart.

3x1 ≤ 2
Exemple
3x1 ≥ 2

3x + x2 = 2
avec x2 ≥ 0
3x − x2 = 2

6
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

D’une manière générale,


a11 x1 + a12 x2 + a13 x3 + ⋯ + a1n xn ≤ 𝑏1

a11 x1 + a12 x2 + a13 x3 + ⋯ + a1n xn + xn+1 = 𝑏1

et
a11 x1 + a12 x2 + a13 x3 + ⋯ + a1n xn ≥ 𝑏1

a11 x1 + a12 x2 + a13 x3 + ⋯ + a1n xn − xn+1 = 𝑏1


➢ Maximiser la fonction objectif
Si la fonction objectif de la forme canonique est à minimiser, il faut se ramener à une fonction objectif
à maximiser, il s’agit dans ce cas, de maximiser son opposé :

min f = d1 x1 + d2 x2 + d3 x3 + ⋯ + dn xn

max f′ = −d1 x1 − d2 x2 − d3 x3 − ⋯ − dn xn

Ainsi tout programme linéaire sous forme canonique peut se ramener à un programme sous
forme standard.
La forme standard est utilisée par l’algorithme du simplexe.

Dans notre exemple, on aura la forme standard suivante:

max f = 5x1 + 4x2


Sous les contraintes
▪ économiques
4x1 + 3x2 + 𝑒1 = 120
2x1 + 5x2 + 𝑒2 = 130
▪ de signe
x1 ≥ 0, x2 ≥ 0 , e1 ≥ 0et e2 ≥ 0
Sous forme matricielle, on aura :

𝑥1
F=[5 4] [ 𝑥 ]
2

x1
4 3 1 0 x2 120
[ ] [e ] = [ ]
2 5 0 1 1 130
e2

7
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

I-3-2 Algorithme du simplexe

La méthode de résolution du problème de programmation linéaire a été découverte par Dantzig et


Kantorovith en 1950.

C’est un procédé qui permet, en partant d’une solution initiale (appelée Solution Réalisable de Base :SRB)
d’atteindre le plus rapidement possible la solution optimale.

Une solution réalisable est une solution qui appartient à l’ensemble des solutions possibles.

a-Détermination de la Solution Réalisable de Base (SRB):


• Les variables de base sont les variables dont l’écriture matricielle fait apparaître 1 et 0. Par convention,
ces variables sont non nuls.
• Les variables hors base sont les autres. Par convention, ces variables sont nulles.

x1
4 3 1 0 x2 120
[ ] [e ] = [ ]
2 5 0 1 1 130
e2
Dans notre cas,
Les variables de base sont : e1 et e2
Les variables hors base sont x1 et x2
On aura,
x1=0
x2=0
e1=120
e2=130

On aura, f= 5 x1 +4 x2 =0
• Cette solution admissible est une SRB mais elle n’est pas optimale car on ne produit rien.

Définition 1: les solutions admissibles est un ensemble de valeurs données


aux variable qui satisfont toutes les contraintes.
Définition 2: une solution optimale est une solution admissible qui optimise
la fonction objectif.

On va passer à une autre solution grâce à l’algorithme du Simplexe.

b-Mise en œuvre de l’algrithme du Simplexe:


• Le passage d’une SRB à une autre s’analyse comme le passage d’une base à une autre. Il y aura échange
d’une variable de base contre une variable hors base.
• Ce changement de base représente le passage d’un sommet du polygone à un autre.
• On regroupe généralement les données sous la forme d’un tableau.

8
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

Tableau de simplexe
Résultat
Fonction objectif f0 -5 -4 0
Variable de base e1 4 3 120
e2 2 5 130
x1 x2
Variable hors base
Échange d’une variable hors base contre une variable de base
• Test d’entrée: il se fait au niveau de la fonction objectif: on choisit parmi les variables hors base la
colonne qui a la plus petite valeur.
• Test de sortie: il se fait en divisant, ligne par ligne, la colonne résultat par les valeurs de la colonne de
la variable entrante. On choisit parmi les variables de base la ligne qui a le plus petit résultat.
Tableau de simplexe (I)
Test d’entrée
Résultat Test de sortie

Fonction objectif f0 -5 -4 0

Variable de base e1 4 3 120 120/4=30


e2 2 5 130 130/2=75
x1 x2
Pivot Variable hors base Ligne pivot

Colonne pivot
Dans notre cas, la nouvelle base s’obtient par l’échange de e1 contre x1.

On aura le tableau suivant :

Tableau de simplexe (II)

Résultat
Fonction objectif f0
Variable de base x1
e2
e1 x2
Variable hors base

9
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

Formules de changement de base:

• Soit P le pivot: c’est la valeur qui se trouve à l’intersection de la ligne et de la colonne sélectionnée.
la nouvelle valeur qui remplace P est NP=1/P
• Soit L la ligne de pivot: L NL= L/P
• Soit C la colonne de pivot: C NC= - C/P
• Soit Aij les autres valeurs: Aij NAij = Aij – (Lj*Ci)/P
avec Lj = valeur de la ligne de pivot correspondant à Aij
Ci = valeur de la colonne de pivot correspondant à Aij

Dans notre cas,

Ancienne valeur Nouvelle valeur


Pivot 4 1/4
Ligne pivot 3 3/4
Colonne pivot -5 -(-5/4)=5/4
2 -2/4 =1/2
Les autres valeurs -4 -4-(-5x3)/4=-1/4
5 5-(2x3)/4=7/2

Tableau de simplexe (II)

Résultat
Fonction objectif f0 5/4 -1/4
Variable de base x1 1/4 3/4 30
e2 1/2 7/2 70
e1 x2
Variable hors base

les variable hors base sont e1 et x2 c'est-à-dire e1=0 et x2=0


A partir des équations relatives aux contraintes économiques, on peut déterminer les variables de base x1 et
e2.
4x1 + 3x2 + e1 = 120(I)
2x1 + 5x2 + e2 = 130 (II)

A partir de (I), en remplaçant x2 et e1 par leur valeur respective, on aura :


4x1 = 120 𝑠𝑜𝑖𝑡 x1 = 30

A partir de (II), en remplaçant x1 et x2 par leur valeur respective, on aura :


e2 = 70

La solution est optimale quand tous les coefficients


de la fonction objectif sont positifs. On arrête
alors l’algorithme.
10
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

Détermination de la nouvelle base:

Tableau de simplexe (II)

Test d’entrée
Résultat test de sortie
Fonction objectif f0 5/4 -1/4
Variable de base x1 1/4 3/4 30 30/(3/4)=40
e2 1/2 7/2 70 70/(7/2)=20
e1 x2
Variable hors base

la nouvelle base s’obtient par l’échange de e2 contre x2.

on aura le tableau suivant :


Tableau de simplexe (III)

Résultat
Fonction objectif f0 34/28=17/14 1/14
Variable de base x1 10/28 -3/14 15
x2 -1/7 2/7 20
e1 e2
Variable hors base

Tous les coefficients de la fonction objectif sont


positifs. La solution est optimale

c- Interprétation des résultats

À l’optimum,
• x1= 15 unités.
• x2= 20 unités.
• le profit maximal est de 5*15+4*20= 155 UM.
• e1, e2, représentent les écart entre les valeurs limites des contraintes et les valeurs techniquement
utilisées.
• e1=e2=0 les contraintes 1 et 2 relatives aux heures machines M1 et M2 sont saturées. les capacités de
production des deux machines sont pleinement exploitées.

4*15+3*20=120 heures machines M1


2*15+5*20=130 heures machines M1

Une variation du second membre de chacune de ces deux contraintes engendre un changement dans la
valeur de la solution optimale.
11
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

le coût ( ou valeur ) marginal


 Les variations de la valeur de la fonction objectif par des variations marginales (des petites variations)
sur une contrainte sont données par les valeurs des variables d’écart dans la fonction objectif.

• Les valeurs marginales des variables de base sont égales à 0.


• Les valeurs marginales des variables hors base sont données par la ligne fonction objectif.

variable x1 x2 e1 e2
Valeur marginale 0 0 17/14 1/14

si la capacité des heures machine 1 augmente d’une heure la valeur de la fonction objectif augmente de
17/14(soit de 1.214286 um) elle passe de 155 um à 156.214 um.

Le coût marginal « Cmi » mesure l’amélioration de la valeur de la fonction objectif quand la


contrainte i est relâchée et de manière symétrique la détérioration de la valeur de la fonction objectif
quand la contrainte i est resserrée.
• Quand on «maximise» amélioration signifie augmentation
• Quand on «minimise» amélioration signifie diminution

I-4 utilisation du logiciel LINDO:

A l’heure actuelle, il existe plusieurs logiciels permettant la résolution de programme linéaire : LINDO, GAMS,
MATLAB, VISUAL Xpress. Nous allons utiliser le LINDO (Lineai INterative and Discret Optimizer) parce
qu’il est facile à manipuler et il offre des commandes qui nous aide à l’analyse des modèles en utilisant la
méthode de Simplexe.

Lindo peut être téléchargeable à partir d’internet. Vous pouvez vous référez au cite suivant pour mieux
appréhender son utilisation : Mode utilisation lindo: http://fr.slideshare.net/zaouimed/programmation-linniaire

Dans notre cas, la résolution du programme à l’aide du logiciel LINDO nous donne les informations suivantes :

LP OPTIMUM FOUND AT STEP 2

OBJECTIVE FUNCTION VALUE

1) 155.0000

VARIABLE VALUE REDUCED COST


X1 15.000000 0.000000
X2 20.000000 0.000000

ROW SLACK OR SURPLUS DUAL PRICES


2) 0.000000 1.214286
3) 0.000000 0.071429

NO. ITERATIONS= 2

12
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

Interprétation des résultats :


LP OPTIMUM FOUND AT STEP 2

Ceci veut dire que le programme linéaire admet une solution optimale finie, et qu’elle a été obtenue suite à
deux itérations de l’algorithme du simplexe.
1) 155.0000
Cette valeur représente la valeur de la fonction objectif à l’optimalité.
VARIABLE VALUE REDUCED COST
X1 15.000000 0.000000
X2 20.000000 0.000000
à l’optimum :

x1= 15 unités,

x2=20 unités

Le coût réduit (reduced cost) est nul pour x1et pour x2 car à l’optimum x1>0 et x2 >0. Elles sont deux
variables de base.
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 1.214286
3) 0.000000 0.071429

LINDO affiche les variables d’écart relative à chaque contrainte du programme ( 2) pour e1, et 3) pour e2).
leur valeur sont données dans la deuxième colonne (slack or surplus) à l’optimalité du programme linéaire.

e1=0 et e2=0 les deux contraintes sont saturées.

La troisième colonne affiche les prix fictifs ou le coût marginal (dual prices) relatif à chaque variable.

le Cm de e1= 1.214286 si on augmente les ressources machines 1 de 1 heures la valeur de la fonction objectif
passe de 155 um à 156.214286 um (ce résultat peut être vérifié par la résolution du PL suivant :

max f = 5x1 + 4x2


subject to
4x1 + 3x2 ≤ 12𝟏
2x1 + 5x2 ≤ 130
end

On vérifie bien que la solution optimale coïncide avec celle trouvée par l’algorithme du simplexe

13
Mme Yosr Salhi Méthodes opérationnelles d’aide à la décision 2020/2021

LINDO affiche aussi le tableau de simplexe relatif à la solution en cours (en utilisant la commande tableau
dans l’icône reprts).

THE TABLEAU

ROW (BASIS) X1 X2 SLK 2 SLK 3


1 ART 0.000 0.000 1.214 0.071 155.000
2 X1 1.000 0.000 0.357 -0.214 15.000
3 X2 0.000 1.000 -0.143 0.286 20.000

La première colonne nous donne las variables de base. on vérifie bien que l’écriture matricielle des variables de
base (x1 et x2) fait apparaître 1 et 0
La deuxième ligne nous donnes les valeurs marginales ( reduced cost pour les variable de base et dual prices
les variables hors base)
La dernière colonne est relative à la colonne résultat.

14

Vous aimerez peut-être aussi