Académique Documents
Professionnel Documents
Culture Documents
1. La programmation linéaire
Introduction à la recherche opérationnelle
La recherche opérationnelle est un processus d’aide à la décision qui permet de
trouver une solution optimale (si elle existe) grâce à la modélisation mathématique.
La modélisation mathématique peut se décliner en plusieurs types d’optimisation : la
programmation linéaire, la programmation non linéaire, le contrôle optimal… Nous
traiterons ici la programmation linéaire. On aborde dans ce cours la recherche
opérationnelle appliquée à l’économie et la gestion avec le but :
De modéliser un problème économique en un problème de programmation
linéaire ;
D’optimiser une fonction sous contraintes ;
D’interpréter en terme économique les résultats fournis par la programmation
linéaire.
Un modèle est une représentation de la réalité qui capture « l’essence » de la réalité,
i.e. l’angle qui nous intéresse. La programmation linéaire est un outil qui permet de
résoudre les cas les plus simples. Le but essentiel est d’introduire le principe de
modélisation et le rôle de la programmation mathématique. Dans la réalité, la
programmation mathématique utilisée est souvent plus complexe que la
programmation linéaire (programmation non linéaire, programmation probabiliste,
contrôle optimal) et les calculs se font informatiquement.
Formulation d’un problème de programmation linéaire (P.L.) :
En P.L. la fonction à optimiser et les contraintes à respecter sont linéaires (variables
au premier degré). La forme générale d’un problème de P.L. est la suivante :
n
Opt z c j x j (1)
j 1
t
j 1
ij xj di i 1 ,..., p (2)
n
t
j 1
ij xj di i p 1,..., m (3)
x j 0 j 1 ,... q (4)
x j signe quelconque j q 1,..., n (5)
Avec c j , t i j , d i constantes et x j variables.
n
1/9
Les inéquations 2 et équations 3 sont les contraintes réelles.
Les inéquations 4 sont les contraintes de non négativité.
La fonction à optimiser peut être soit une fonction à minimiser, soit une fonction à
maximiser. On présente ici les cas généraux de minimisation et maximisation avec
l’interprétation économique de chaque élément du programme.
t j 1
ij xj di i 1 ,..., m
x j 0 j 1,..., n
1. Première interprétation :
i : bien produit
j : activité
t j 1
ij xj di i 1 ,..., m
x j 0 j 1 ,..., n
1. Première interprétation :
2/9
i : bien consommé et j : activité
di : quantité disponible de bien i
t ij : taux d’utilisation du bien i par l’activité j
cj : gain unitaire de l’activité j
x j : niveau de l’activité j
2. Deuxième interprétation :
i : activité
j : bien produit
di : capacité maximum de fonctionnement de l’activité i
t ij : taux de fonctionnement de l’activité i pour la production du bien j
cj : gain unitaire du bien j
x j : quantité produite de bien j
1.3 Caractérisation des solutions admissibles
Une solution est admissible si elle satisfait toutes les contraintes.
La région admissible est l’ensemble IP des solutions admissibles ou réalisables.
Une solution optimale est une solution admissible qui optimise la fonction
d’optimisation.
c
j 1
j xj d d 0, n 3
4/9
Au niveau du chiffre d’affaires, on ne tient pas compte des coûts. Une entreprise peut
faire un chiffre d’affaires important sans pour autant réaliser de bénéfices. Si l’on
veut maximiser le gain de l’entreprise, on cherche alors à maximiser ses bénéfices,
i.e. son chiffre d’affaire moins ses coûts. Les coûts se distinguent en coûts fixes (frais
administratifs, équipements,…) et coûts variables (coût des matières premières, coût
de main d’œuvre,…). On représente les coûts fixes par la constante F et v 1 et v 2 les
coûts variables des deux biens. La fonction à maximiser est alors :
max( p1 v1 ) x1 ( p 2 v 2 ) x 2 F
Retrancher une constante ne change pas notre problème de maximisation. On appelle
marge sur coût variable la différence entre le chiffre d’affaires et les coûts variables
et marge sur coût variable unitaire la différence entre le prix d’un bien et le coût
variable unitaire de ce bien. Maximiser les bénéfices revient donc à maximiser la
marge sur coût variable :
max( p1 v1 ) x 1 ( p 2 v 2 ) x 2
5/9
2. Dualité
A chaque contrainte, on peut associer un nombre appelé « prix dual » défini comme
l’accroissement marginal de la fonction économique lorsque le second membre de la
contrainte considérée varie d’une unité. A l’optimum, la solution du programme et les
prix duaux vérifient alors un ensemble de relations, les relations de complémentarité,
qui constituent des conditions nécessaires et suffisantes d’optimalité. Ces conditions
généralisent les conditions de Lagrange et sont un cas particulier des conditions de
Kuhn et Tücker qui interviennent en programmation non linéaire. D’un point de vue
économique, les prix duaux permettent de localier les modes d’extension les plus
profitables.
Définition :( Les prix duaux comme accroissement marginaux de la fonction
économique)
Le prix dual associé à la contrainte i est la variation de la fonction économique pour
une variation unitaire du second membre de la contrainte i .
(P) : max z c j x j
j 1
t
j 1
ij xj di i 1 ,..., m
x j 0 j 1,..., n
t
i 1
ji y i cj j 1,..., n
yi 0 i 1 ,..., m
6/9
y0 (6)
y Tx d 0 et c yT x 0 (RC)
Autrement dit :
7/9
2°) Les autres variables duales (respectivement primales) associées à des
contraintes saturées du primal (respectivement du dual) saturent les contraintes
du dual (respectivement du primal) auxquelles elles sont associées.
Remarque
8/9
3. Algorithme du simplexe (ou méthode de Dantzig)
La solution optimale, si elle existe, se trouve sur l’un des sommets. Lorsque l’on est
en dimension supérieure à 2, une méthode consiste à calculer la fonction économique
pour tous les sommets admissibles. On a besoin au préalable d’écrire notre problème
sous forme standard.
La forme standard
Toutes les contraintes d’inégalité sont mises sous forme d’égalité par l’introduction
de variables d’écart non négatives (autant de variables d’écart que de contraintes). On
obtient sous la forme matricielle le programme standard :
maxz cx (1)
( PS) Ax d (2)
x0 (3)
où A m n , c 1 n , x 1 n , d m 1 . (PS) est appelé programme standard.
On suppose le système Ax d non redondant.
Théorème 3.1 : Le problème de P.L. étant mis sous forme standard, chaque sommet
du polyèdre IP correspond à une et une seule solution de base admissible et
inversement.
On pourrait donc calculer la fonction économique pour tous les sommets à partir de la
forme algébrique et trouver la solution optimale du problème, même si la dimension
est supérieure à 2. Mais le nombre de calcul associé explose rapidement.
L’algorithme du simplexe permet de diminuer fortement le nombre de calcul.
Remarque : simplexe désigne un polyèdre convexe de IRn possédant n 1
sommets.
Algorithme du simplexe
Idée : L’algorithme du simplexe consiste à passer d‘un sommet initial du
polyèdre des solutions réalisables (ou admissibles) vers un sommet adjacent tout
en ayant soin :
- de ne pas diminuer la valeur de la fonction économique,
- de garder les variables en base positives.
L’algorithme du simplexe contient donc deux phases :
Phase 1 : procédure d’initialisation
Soit la solution initiale est évidente (le cas en général dans ce cours), soit on applique
la méthode des variables artificielles, complément de l’algorithme du simplexe (non
abordée dans le cadre de ce cours).
Phase 2 : procédure itérative
Calculer, à partir d’une solution de base admissible, la solution de base admissible
adjacente donnant la meilleure amélioration de la fonction économique. Comme ces
9/9
solutions sont adjacentes, les ensembles d’indices de base (1) et hors base (J) ne
différeront que d’un seul indice. Le changement de base peut donc se faire
relativement aisément.
1. Initialisation : solution réalisable de base (I)
Soit B une sous matrice de T carré et régulière d’ordre m telle que :
max z c B x B c R x R (4)
Bx B Rx R d (5)
x0 (6)
Où
B m m , R m ( n m , T ( B , R )
Les m variables de x B sont appelés variables de base. Notons I l’ensemble des
m indices de base : xB xi , i I
Les n m variables de x R sont appelées variables hors base. Notons
J l’ensemble des n m indices hors base : x R x j j J
10/9
pouvoir définir la variable entrante et la variable sortante. On impose un
coefficient de 1 sur les variables de base. L’expression de la fonction
économique en fonction des variables hors base permet de voir si, par
rapport au niveau actuel de la fonction économique, l’introduction d’une
variable hors base améliore ce résultat. On en déduit logiquement le test
d’arrêt de l’algorithme : lorsque aucune variable hors base ne peut
augmenter la valeur actuelle de notre fonction économique, alors on a
obtenu la solution optimale.
3. Récapitulatif : le tableau du simplexe
Le tableau du simplexe permet la mécanisation des calculs décrits précédemment.
Dans la pratique, les résolutions numériques se font sur ordinateur. Le but principal
de la présentation du tableau du simplexe est donc de comprendre ce que chaque
étape représente :
- choix de la variable hors base qui augmente le plus la fonction économique :
choix de la variable entrante ;
- choix de la variable de base qui limite le plus le niveau de la fonction
économique : choix de la variable sortante ;
- expression des variables de base et de la fonction économique en fonction des
variables hors base de manière à pouvoir déterminer les choix précédents.
Important :
Au niveau du tableau du simplexe, ces étapes se systématisent de la manière
suivante
Premier critère de Dantzig
- la colonne qui entre dans la base est celle d’indice j ayant le plus grand
coefficient de marge (j 0) le pus grand strictement positif.
tableau colonne de droite. La colonne qui sort de la base est celle d‘indice i
xi
ayant le plus petit rapport ( x 0) strictement positif.
ij
Règles pratiques
- On repère (en encerclant) le pivot = x ij où i est déterminer par le
deuxième critère et j par le premier critère.
- on divise les valeurs de la ligne du pivot par le pivot
11/9
- l‘indice i qui sort de la base (colonne de gauche) devient l’indice j qui entre
dans la base.
- Toutes les lignes du tableau ayant un zéro (0) dans la colonne du pivot ne
sont pas modifiées.
- Les autres lignes du tableau (ayant un élément différent de zér0) sont
modifiées comme suit :
* On multiplie la nouvelle ligne du pivot par l‘élément différent de zéro et on
la soustrait de la ligne à modifiée ;
* Cette opération s’applique également à la ligne de la fonction économique
toute fois dans la colonne solution on effectue une addition au lieu d’une
soustraction.
Remarque :
1°) Le tableau du simplexe est optimal dès l’or que tous les coefficients de la
fonction économique sont inférieurs ou égaux à zéro (j 0).
2°) On modifiera alors toujours en priorité la ligne de la fonction
économique.
Théorème 3.2
Soient ej ; j =1 ; …. ; m les variables d’écart associées aux contraintes du
primal et yj ; j =1 ; …. ; m les variables duales associées
respectivement à ces contraintes du primal. Alors dans le tableau optimal du
simplexe on a :
1°) yj = - ej ; j = 1 ; …. ; m,
2°) Valeur optimale du dual = Valeur optimale du primal
3°) Et vice versa.
12/9