Vous êtes sur la page 1sur 12

Chap 3 Programmation linéaire

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

La fonction z   c j x j s’appelle la fonction économique ou fonction objectif.


i 1

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.

1.2.1 Minimisation d’un coût sous des obligations de fonctionnement


n
min  z    c j x j
j 1

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é

di : demande de bien i à satisfaire


t ij : taux de production du bien i par l’activité j
cj : coût unitaire de l’activité j
x j : niveau de l’activité j
2. Deuxième interprétation :
i : activité
j : bien consommé (matière premières)
d i : niveau minimum de fonctionnement de l’activité i
t ij : taux de fonctionnement de l’activité i pour la consommation du bien j
c j : coût unitaire du bien j
x j : quantité consommée de bien j
1.2.2 Maximisation d’un gain sous des contraintes de capacité
n
max  z    c j x j
j 1

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.

Définition (contrainte saturée ou serrée)


Une contrainte d’inégalité est dite saturée (ou serrée) pour une solution si elle est
vérifiée avec le signe d’égalité et non saturée (ou non serrée) si elle est vérifiée avec
le signe d’inégalité stricte.

Théorème 1 : L’ensemble des solutions IP admissibles d’un problème de


programmation linéaire est soit :
 un polytope est une figure bornée à plusieurs côtés,
 un polyèdre convexe, non vide mais non borné,
 un ensemble vide.
Remarque :
Un polyèdre convexe est l’intersection (éventuellement vide) d’un nombre fini de
demi-espaces fermés et/ou d’hyperplans. Un polyèdre convexe, borné et non vide, est
appelé un polytope.
1.4. Caractérisation géométrique des solutions optimales
Théorème 2 :
3/9
1. Si IP est un polytope :
 Soit la solution optimale est unique et est située en un sommet de IP ;
 Soit il existe une infinité de solutions optimales qui sont les points d’une face
de IP ; ces solutions optimales sont donc combinaisons convexes d’un nombre
fini de sommets.
2. Si IP est un polyèdre convexe, non vide mais borné, en plus des situations
décrites ci-dessus, il est possible que le problème n’ai pas de solution optimale à
distance finie ; il existe une solution admissible (à l’infini) telle que z  .
3. Si IP est un ensemble vide, le problème n’a pas de solution optimale.

1.5. Résolution graphique


La résolution graphique d’un programme linéaire ne peut se faire que pour la
dimension 2 et 3. Elle est donc peu efficace mais permet de bien comprendre le rôle
de la programmation linéaire. Les étapes sont :
1. Tracer le domaine des solutions admissibles ;
2. Tracer les droites isomarges (resp. isocoût si on est dans un problème de
minimisation), i.e. les droites unissant les plans de production conduisant à une
même marge.
3. L’optimum est alors la solution réalisable située sur la droite isomarge la plus
haute (resp. sur la droite isocoût la plus basse).
4. En clair la solution optimale est située en au moins un sommet du polyèdre des
solutions admissibles ou réalisable IP.
Remarque :
Avec les notations introduites ci-dessus, l’équation de la droite isomarge est :
n

c
j 1
j xj  d d  0, n  3

1.6. Interprétation économique


Pour illustrer cette partie, on considère deux produits A1 et A2 que l’on produit et
vend dans les quantités x 1 et x 2 .
On veut trouver la solution optimale dans ce domaine. Pour cela, on peut penser à
maximiser le revenu tiré des productions, i.e. le chiffre d’affaires. Soit p 1 et p 2 les
prix de vente unitaire des produits x 1 et x 2 . Le chiffre d’affaires est alors :
p 1 x1  p 2 x 2

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

Puisque F ne dépend pas des variables x 1 et 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 .

Définition : (Primal – dual)


On considère le problème de maximisation suivant sous sa forme canonique:
n

(P) : max  z    c j x j
j 1

t
j 1
ij xj  di i  1 ,..., m

x j  0 j  1,..., n

On appelle programme dual (canonique) de (P) le programme linéaire suivant :


m

(D) : min  z '   d i y i


i 1

t
i 1
ji y i  cj j  1,..., n

yi  0 i  1 ,..., m

La forme matricielle des programmes (P) et (D) s’écrivent respectivement :


Primal :
(P) : max  z   c . x (1)
T .x  d (2)
x0 (3)
Dual : (D) : min  z '   y .d
(4)
t
T .y  c (5)

6/9
y0 (6)

Remarque très importante :


1°) Les programmes (P) et (D) sont dits primal et dual et vice versa.
2°) Si (P) est à maximiser alors (D) est à minimiser et vice versa.
3°) Les inégalités de (P) et (D) sont de sens opposés.
4°) Les seconds membres de (P) sont les coefficients de la fonction économique de
(D) et vice versa
5°) Les coefficients des lignes des contraintes de (P) sont les coefficients des
colonnes des contraintes de (D) et vice versa.
6°) Il y a autant de variables duales dans (D) que de contraintes dans le primal (P) et
vice versa.

Théorème (relations de complémentarité)


- Si le primal (P) admet une solution optimale alors le dual (D) admet une solution
optimale et vice versa et dans ce cas on a :

Valeur optimale du primal = Valeur optimale du dual.

- Soient x et y deux solutions optimales du primal (P) et du dual (D) respectivement.


Alors on a les relations de complémentarité suivantes (RC) :

y Tx  d   0 et c  yT x  0 (RC)

Autrement dit :

1°) Toutes les variables duales (respectivement primales) associées à des


contraintes non saturées du primal (respectivement du dual) sont nulles.

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

Ce théorème permet de résoudre le problème dual (D) connaissant la solution


optimale du primal (P) et vice versa.

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)
x0 (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)
x0 (6)

 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

Définition Soit I une base du système 2. On appelle réalisable de I ou sommet de


base I, et on note x I  , la solution réalisable ayant des composantes hors base
nulles.
Remarque :
Lorsque les variables de base sont non négatives la solution de base est admissible.
Lorsqu’au moins une variable de base est nulle, la solution de base est dite dégénérée.
Le problème sera dit non dégénéré si toutes les solutions de base admissibles sont
non dégénérées.
2. Passage d’un sommet à un autre
Le principe est de passer d’un sommet à un autre sommet adjacent. Pour cela, il faut
suivre une arête, c’est-à-dire donner une valeur non nulle à une variable hors base, et
se déplacer sur cette arête jusqu’à ce que l’on se trouve sur un nouveau sommet, i.e.,
q’une des anciennes variables de base s’annule. Dans l’algorithme du simplexe, le
choix de l’arête à suivre est le suivant :
 On introduit la variable hors base qui fait augmenter le plus la fonction
économique, que l’on appelle variable entrante.
 La variable sortante, imposée par les contraintes de non négativité, sera
la variable de base qui s’annulera la première lorsque l’on augmente la
valeur de la variable entrante.
 Il faut donc au préalable de ces deux étapes (puis à la suite de ces deux
étapes pour effectuer l’itération) exprimer les variables de base et la
fonction économique en fonction des variables hors bases de manière à

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.

Deuxième critère de Dantzig


xi
- On effectue les opérations x pour les indices lignes figurant dans le
ij

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

Vous aimerez peut-être aussi