Académique Documents
Professionnel Documents
Culture Documents
Programmation linéaire
Position du problème
La programmation linéaire est un des domaines les plus utilisés de la RO. Elle permet de
traiter un vaste ensemble de problèmes d’optimisation dans des contextes divers comme la
gestion de stocks, flux de transport, distribution de tâches à des personnels, recherche de plans
de fabrication etc. . . La modélisation de ces problèmes débouche sur des équations ou
inéquations linéaires (exprimant les différentes contraintes) dont on cherche les solutions
permettant d’optimiser une fonction économique elle-même linéaire. De plus on supposera
que les variables considérées sont astreintes à être positives (contraintes de positivité). On
appelle une telle formulation un programme linéaire (PL).
Un agriculteur peut utiliser 2 types d'engrais X et Y, pour fertiliser ses terres : il sait que
celles-ci requièrent, par hectare et par an, au moins 60 kg de potasse, 120 kg de calcium et 90
kg de nitrates. Les deux types d'engrais coûtent le même prix au poids; Ils contiennent, en
plus d'un produit neutre :
pour X : 1 kg de potasse, 3 kg de calcium et 3 kg de nitrates;
pour Y : 2 kg de potasse, 2 kg de calcium et 1 kg de nitrates.
Comment l'agriculteur peut-il fertiliser ses cultures au moindre coût ? Il s'agit d'un problème à
2 inconnues x et y (nombres positifs), représentant les quantités d'engrais de types X et Y à
acheter par hectare et par an.
Les contraintes imposées sur la fertilisation d'un hectare peuvent s'écrire
1x+ 2y ≥ 60
3x+ 2y ≥ 120
3x +y ≥90
Le problème consiste à trouver x et y de façon à minimiser la fonction objectif Z=x+y (le coût
étant proportionnel à la quantité d'engrais achetée par hectare et par an).
D'une manière générale, un problème de programmation linéaire simple consiste à déterminer
les valeurs numériques de n variables x1, x2,…, xn satisfaisant m contraintes de façon à
maximiser (ou à minimiser) une quantité Z qui est elle-même une fonction linéaire. On
obtient ainsi les deux formulations suivantes:
1
Remarque
On peut toujours se ramener à un problème de maximisation. En effet, minimiser la fonction
économique z revient à maximiser −z : on remplace ci par −ci.
Les contraintes xj ≥ 0, pour j ∈ {1, . . . , n} sont appelées contraintes de positivité. On peut
toujours se ramener à ce cas en introduisant de nouvelles variables : Si xj≤ 0, on pose = xj
tel que ≥ 0. Si xj est de signe quelconque, on introduit deux variables et ≥ 0, tel que
xj=
∈
∈
A=
On dit qu’un PL est mis sous forme standard « FS », si toutes ses contraintes (en dehors des
contraintes de positivité) sont des égalités. Il est donc de la forme :
2
Exemple
Min (Z)= 5x1+ 3x2 Min (Z)= 5x1+ 3x2
x1 - x2 ≥ 2 FS x1 - x2 – x3=2
2x1 + 3x2 ≤ 4 2x1 + 3x2 + x4 = 4
-x1 + 6x2 =10 -x1 + 6x2 =10
x1≥ 0 ; x2≥ 0 x1≥ 0 ; x2≥ 0 ; x3≥ 0 ; x4≥ 0
x1 et x2 sont des variables de décision, x3 et x4 sont des variables d’écart.
Remarque
La forme canonique imposent en plus des contraintes de positivité que le second membre soit
positif (ie. bi ≥ 0 ∈ ). Si dans un PL un ou plusieurs bi sont négatif, il suffit de
multiplier la ième contrainte par . NB : Contrairement à la forme standard, la forme
canoniquen’est pas toujours obtenue directement en multipliant les contraintes de type ≥ par
-1.
Définitions et propositions
L’ensemble Dr ={x≥0 tel que Ax≤b}s’il existe est un polyèdre convexe (un polyèdre Q de Rn
est un ensemble défini par ∈
Solution réalisable
On appelle ainsi toute solution de P satisfaisant toutes les contraintes (y compris donc les
contraintes de positivité). x ∈Dr
Point extrême (sommet)
3
Solution de base
Une solution de base doit donc avoir au plus variables non nulles ou encore (en d’autres
termes) au moins variables nulles.
Remarque : Il y a au plus solutions de base (toutes ne sont pas réalisables). Notons aussi
que dans un PL écrit sous forme canonique, une solution de base réalisable évidente est
ajoutant des variables d’écart. Les variables d’écart sont ainsi les variables de base et les
variables de décision sont les variables hors base. La matrice B est alors la matrice identité Im.
La fonction objectif dans ce cas (forme canonique) s’écrit en fonction des variables hors base.
Remarque importante :Pour mettre un problème sous forme canonique, il faut donc mettre
en évidence la matrice identité Im comme base, avoir le second membre positif et écrire la
fonction objectif en fonction des variables hors base.
Exemple
Soit le problème linéaire suivant:
4
On peut montrer facilement que la solution définie par:
est une solution de base réalisable. En effet,
1. Elle est réalisable puisqu’elle vérifie les contraintes du problème.
3. De plus, les variables hors base sont nulles. . possède donc n-m
variables nulles.
Cependant la solution réalisable n’est pas une
solution de base réalisable. En effet, cette solution possède une seule variable nulle, alors que
toute solution de base du PL précédent doit contenir au moins deux variables nulles.
Proposition1.
x est une solution de base réalisable, alors x est un point extrême de Dr.
Solution optimale
Une solution réalisable est optimale si pour tout ∈
NB : Dans le cas d’un problème de minimisation, le sens de l’inégalité est inversée bien sur.
Proposition2. Une solution optimale si elle existe est atteinte en au moins une qui est de base
réalisable (donc en un point extrême de ).
La proposition précédente stipule que si la solution optimale (fini) existe, alors elle doit être
forcément un des sommets (point extrême) du polyèdre convexe des solutions réalisables. Ce
résultat (non démontré dans ce cours) est très important et est la base de l’algorithme du
simplexe qui sera étudié dans la suite de ce chapitre.
Résultat : Soient un PL à résoudre et l’ensemble de ses solutions réalisables.
Trois situations sont possibles :
Le problème P n’a pas de solution
2. on a alors deux sous cas :
5
un polygone convexe. Dans le cas général, si le PL a des solutions, il en existe toujours au
moins une qui est de base, c’est un sommet (ou point extrême) du polygone. Il suffit de
chercher la position de la droite Z = c1x1 + c2x2 pour laquelle Z a une valeur extrémale, et le
sommet (ou l'arête) du polygone des solutions pour laquelle cette valeur est atteinte. Dans le
cas général, l’ensemble des solutions réalisables d’un PL détermine dans l’espace des
décisions (Rn) un ensemble convexe appelé domaine réalisable, qui est :
– soit l’ensemble vide (contraintes contradictoires),
– soit un ensemble polyédrique convexe non borné,
– soit un polyèdre convexe.
Exemples
Max(z) = x1 + 3x2
Max(z) = x1 + x2
6
la fonction objectif), le dernier point rencontré dans l’ensemble des solutions réalisable
est la solution optimale de P. La valeur optimale de la fonction objectif est
Algorithme du simplexe
L’algorithme du simplexe a été mis au point par George Dantzig en 1947. Il consiste à
améliorer progressivement une solution de base (correspondant à l'une des extrémités du
polyèdre), en se déplaçant le long des arêtes du polyèdre des solutions réalisables.
L’algorithme s’arrête après un nombre fini d’itérations quand il n’est plus possible
d’améliorer la solution de base actuelle. La solution optimale est alors atteinte si elle existe
bien sur. Une itération de l’algorithme consiste à passer d’un sommet du polyèdre à un
sommet voisin. Cependant pour pouvoir démarrer l’algorithme du simplexe, nous devons
disposer d’une solution de base réalisable de départ. Nous verrons dans les sections qui
suivent comment obtenir une solution de base réalisable de départ. D’autre part, l’algorithme
du simplexe permet aussi de détecter un problème qui ne contient pas de solution ou qui n’est
pas borné (l’optimum tend vers ). Nous expliquons graphiquement la démarche de
l’algorithme du simplexe à travers l’exemple de l’introduction.
7
Dans l'exemple ci-dessus, on peut partir de la solution correspondant au point A
correspondant à = 0, 3 + = 90. En posant =3 + - 90, on peut exprimer la
fonction objectif Z sous la forme : , et les contraintes sous la forme
8
une variable de base (ce qui revient à la faire sortir de la base). On poursuit cette amélioration
jusqu'à obtention de la solution optimale.
Nous constatons donc qu’une étape (itération) de l’algorithme du simplexe consiste à passer
d’une solution de base réalisable (point extrême) à une autre de meilleur coût, ce qui
correspond concrètement à faire sortir une variable de la base et faire entrer une autre à sa
place. L’algorithme s’arrête quand nous nous pouvons plus améliorer la fonction objectif.
Nous devons donc décrire ces trois critères pour un problème de maximisation dans les
paragraphes suivants :
Critère d’entrée d’une variable en base
Parmi les variables candidates à entrer en base (coefficient ), nous choisissons celle qui
a le coefficient dans la fonction objectif le plus grand puisqu’il s’agit de maximiser la fonction
objectif. La variable qui entre en base vérifie donc : = .
∈
Rappelons que nous notons par H l’ensemble des indices hors base. La colonne est appelé
colonne pivot.
Critère de sortie d’une variable de la base
Parmi les variables candidates à sortir de la base (coefficient ), nous choisissons la
variable la première qui s’annule quand on augmente la valeur de la variable hors base
tel que toutes les autres variables de base restent positives (la nouvelle solution e base reste
Dans la méthode dite « des tableaux de simplexe », on présente à la fois les données du
problème, et la solution en cours d'optimisation, sous forme d'un tableau. dans lequel les
lignes correspondent aux équations : = bi, i ∈ {1, . . . ,m}
la dernière ligne du tableau correspondant à la fonction objectif: Z = ∑ j=1,m+n cj xj +c
9
Dans la première colonne à gauche nous trouvons les variables de base, et dans la dernière
colonne à droite le second membre .
….. …..
Z ….. …..
Si xi est une variable de base, alors on doit avoir aii =1, et aij =0 pour toute variable de base
xj ≠ xi c'est-à-dire que l'équation associée à xi permet d'exprimer xi en fonction des variables
hors base :
De même, si est une variable de base, on doit avoir cj = 0, de façon que la fonction objectif
s'exprime en fonction des variables hors base :
Z=
Si tous les coefficients sont négatifs, le maximum est atteint: en effet, du fait des
contraintes xj≥0, ne peut dépasser la valeur c.
Sinon, il est possible d'améliorer la solution en faisant entrer dans la base une variable hors
base xe (on choisira celle qui correspond au plus grand des coefficients positifs).
On obtient une nouvelle solution de base en faisant sortir de la base l'un des xs : pour que les
contraintes soient respectées, on doit choisir s de façon que le quotient bs / asr soit minimal
parmi les bi/air (tq air 0) positifs.
En remplaçant par cette expression dans les équations associées aux lignes du tableau,
nous obtenons les équations correspondant à la nouvelle base :
∑ (xj hb ) aij xj + xi = bi
Z = ∑ (xj hb ) xj +c
10
Etape 0. Initialisation : Mettre le problème sous forme canonique (Exprimer la fonction objectif
(économique) en fonction des variables hors base). Mettre en évidence une solution de base réalisable
de départ. Construire le premier tableau du simplexe
Etape 1. Test d’optimalité
Si tous les coefficients de Z (les coûts réduits) sont négatifs, alors Terminé ; la solution de base
actuelle est optimale.
Sinon
Etape 2. Choix de la variable entrante en base
- Choisir la variable hors base dont le coût réduit est positif et est le plus grand.
=
∈
Etape 3. Choix de la variable sortante de la base
- Choisir la variable qui sort de la base celle qui vérifie
Etape 4. Opération pivot
Remplacer les par . Remplacer les par
Retour à étape 1
Exemple
La résolution de l'exemple du chapitre par la méthode des tableaux commence par mettre le
PL sous forme standard en introduisant des variables d’écart , avec
Remarque: Le but de cette transformation est d’obtenir une solution de base de départ
réalisable (condition initiale de l’algorithme du simplexe). Cette solution est
0,90,0,60,120) Les variables de base sont . Les autres variables sont bien sur
hors base donc nulles.
On construit le premier tableau de simplexe correspondant à cette solution de base réalisable :
x y u v w b
W 5 0 -2 0 1 120
V 3 0 -2 1 0 60
y 3 1 -1 0 0 90
Z 2 0 -1 0 0 -90
11
Nous avons le seul coefficient de Z positif, donc la variable entre en base. Pour savoir
quelle est la variable qui sort de la base, nous calculons le minimum des rapports (
(en rouge dans le tableau précédent). Nous construisons maintenant le deuxième tableau de
x y u v w b
W 0 0 4/3 -5/3 1 20
x 1 0 -2/3 1/3 0 20
y 0 1 1 -1 0 30
Z 0 0 1/3 -2/3 0 -50
En utilisant les mêmes règles pour le choix de la variable qui entre en base et celle qui sort de
la base, entre dans la base, et en sort (c’est indiqué dans le deuxième tableau par des
flèches), nous obtenons le troisième tableau de simplexe suivant :
x y u v w b
u 0 0 1 -5/4 3/4 15
x 1 0 0 -1/2 1/2 30
y 0 1 0 1/4 -3/4 15
Z 0 0 0 -1/4 -1/4 -45
Les coefficients cj sont tous deux négatifs : le maximum est atteint. On retrouve ainsi la
solution .
Un problème linéaire est dit dégénéré si une ou plusieurs variable(s) de base sont nulles.
Partant d’une telle base, la fonction objectif peut ne plus croître à chaque itération (rester
constante). Un phénomène de cyclage peut apparaître dans cette situation: retomber sur une
base (et donc un sommet) déjà visitée dans les itérations précédentes. Il existe plusieurs
méthodes remédiant à ce problème. La plus fiable est celle utilisant la règle de Bland donnée
dans le théorème suivant :
Il ne peut y avoir cyclage lorsqu’à toute itération effectuée à partir d’un tableau dégénéré, on
choisit les variables entrantes et sortantes comme celles de plus petit indice parmi les
candidats possibles.
12
Obtention d’une base réalisable de départ
Si le problème initial n’est pas sous la forme canonique, même en introduisant des variables
d’écart, nous n’obtiendrons pas aisément une solution de base de départ: en effet, certaines
des variables introduites figureront avec le coefficient −1 du fait du changement du sens de
l’inégalité dans la contrainte correspondante. G. Dantzig et d’autres chercheurs de RAND
Corporation ont mis au point la méthode de deux phases dans le but est de répondre à ce
problème. Elle consiste à introduire de nouvelles variables , dites variables artificielles qui
figureront provisoirement dans la formulation du PL jusqu’à l’obtention, si possible, d’une
base de départ avec les variables initiales. Un problème dit problème auxiliaire est alors défini
par ces nouvelles contraintes avec comme fonction objectif à maximiser égale à
(k étant le nombre des variables artificielles introduites). La première phase de cette méthode
consiste à appliquer l’algorithme du simplexe au problème auxiliaire jusqu’à faire sortir toutes
les variables artificielles de la base et annuler les coefficients de la fonction objectif La
deuxième phase consiste à appliquer l’algorithme du simplexe au problème linéaire obtenu à
partir de la première phase (en oubliant et les variables artificielles . La figure suivante
illustre les étapes de cette méthode.
Début
Initialisation
Mettre le PL sous forme standard. Rendre positif le second membre .
Introduire les variables artificielles nécessaires dans les contraintes (de telle sorte à
avoir la base : pour chaque contrainte parmi les
contraintes nécessitant l’introduction d’une variable artificielle.
Phase 1
Résoudre le problème auxiliaire
étant le vecteur des variables artificielles.
Phase 2
Si ∈ =0 (toutes les variables artificielles sont sorties de la base)
Alors résoudre le PL initial en prenant comme solution d base de départ la
solution obtenue à l’issue de la première phase.
Sinon le PL n’a pas de solution réalisable
Fin
Remarques
13
4. Si à l’issue de la première phase, nous ne pouvons pas avoir une solution de base
réalisable (une ou plusieurs variables artificielles ne sont pas sorties de la base et les
coefficients sont tous nuls), alors le PL initial n’a pas de solution réalisable
( . On dit aussi que les contraintes sont contradictoires
Exemple
On veut résoudre le PL suivant :
max(z) = 5x1 + 7x2
Première phase
x1 x2 x3 x4 x5 y1 y2 b
y1 1 1 -1 0 0 1 0 6
y2 1 0 0 -1 0 0 1 4
x5 0 1 0 0 1 0 0 3
ψ 2 1 -1 -1 0 0 0 10
Z 5 7 0 0 0 0 0 0
Remarque : Nous avons inclus la fonction objectif Z du problème initiale dans le tableau
pour ne pas recalculer les coefficients de Z en fonction des variables hors base à la fin de la
première phase.
14
x1 x2 x3 x4 x5 y1 b
y1 0 1 -1 0 0 1 2
x1 1 0 0 -1 0 0 4
x5 0 1 0 0 1 0 3
ψ 0 1 -1 1 0 0 2
Z 0 7 0 5 0 0 -20
x1 x2 x3 x4 x5 b
x2 0 1 -1 1 0 2
x1 1 0 0 -1 0 4
x3 0 0 1 -1 1 1
ψ 0 0 0 0 0 0
Z 0 0 7 -2 0 -34
Une solution de base réalisable est donc : X = (x1, x2, x3, x4, x5) = (4, 2, 1, 0, 0).
Deuxième phase
x3 entre en base et x5 sort en sort. Nous obtenons le tableau suivant dans lequel le seul
coefficient de la fonction objectif positif est or la colonne de x4 ne comporte que des
nombres ≤ 0, le problème est dans ce cas non borné.
x1 x2 x3 x4 x5 b
x2 0 1 0 0 1 3
x1 1 0 0 -1 0 4
t1 0 0 1 -1 1 1
Z 0 0 0 5 -7 -41
.
Un problème borné est un PL dont l’optimum tend vers l’infini. Le domaine des solutions
réalisables est dans ce cas non borné. Attention, ceci ne veut pas dire que l’optimum d’un
15
problème dont l’ensemble des solutions réalisables est non borné, tend toujours vers l’infini.
Le problème suivant en est un contre exemple :
Max(z) = −3x1 + 4x2
Problème contradictoire
Nous pouvons vérifier graphiquement, ou en utilisant l’algorithme des deux phases que le PL
précédent est sans solution réalisable.
C’est un problème dont le nombre de solutions optimales (finies) est infini. Ça peut être un
segment de droite par exemple. Le domaine des solutions réalisable peut être borné ou non.
Nous reconnaissons ce type de problème lorsqu’en appliquant le simplexe, dans le dernier
tableau, une variable hors base possède un coefficient nul dans la fonction objectif. Si nous
effectuons une itération supplémentaire, nous obtenons une autre solution optimale. Dans ce
cas, toute combinaison convexe de ces deux solutions est aussi une solution optimale. Le PL
suivant est un exemple de ce type de problème :
Max(z) = x1 + x2
16
Nous remarquons facilement que si nous faisons une résolution graphique du PL précédent, la
droite délimitant le demi-plan correspondant à la première contrainte est parallèle au
faisceaux de droites représentant la fonction objectif. Les solutions optimales sont tous les
points du segment de droite appartenant à l’ensemble des solutions réalisables.
Exercices
Exercice 1
Une entreprise fabrique deux produits qu’elle désire vendre à un autre pays. Le produit A
rapporte 400DA/kg et le produit B rapporte 600DA/kg.
Ayant des moyens financiers limités, la société ne peut utiliser qu’un seul avion. Celui-ci ne
peut transporter que 50000 DA et à un volume de 2000 m3.
Le produit A a un volume de 0.032 m3 par KG ; Le produit B a un volume de 0.1 m3 par kg.
Formuler ce problème algébriquement
Exercice 2
Exercice 3
Un éleveur désire acheter une tonne d’un aliment pour bétail qui est obtenu en mélangeant
trois produits bruts : orge, arachide et sésame. L’aliment ainsi conditionné devra comporter au
moins 22 % de protéine et 3.6 % de graisse, pour se conformer aux normes internationales. Il
s’agit de déterminer la composition à coût minimal de cet aliment.
Le tableau ci-dessous indique les pourcentages de protéines et de graisse contenus,
respectivement dans l’orge, l’arachide et le sésame, ainsi que le coût par tonne de chacun des
produits bruts.
17
1/ Formuler le problème algébriquement
2/ Montrer qu’il est possible de réduire la dimension du problème, puis résoudre
géométriquement le problème obtenu.
Exercice 4
Résoudre graphiquement les PL suivants :
Exercice5
Exercice 6
Résoudre le PL suivant en utilisant la méthode des deux phases pour trouver une première
solution de base réalisable.
Exercice 7
1/ Peut-on obtenir une solution de base réalisable avec la méthode du simplexe des deux
phases. Justifier votre réponse.
2/ Faire une résolution graphique.
3/ Que pouvez vous conclure.
18