Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre4 Ilyas

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 37

Programmation Linéaire

Chapitre 4 : Résolution de programmes linéaires

Ilyas Himmich
i.himmich@insea.ac.ma

22 décembre 2021
Introduction

Caractéristiques des bases et des solutions de base optimale

Algorithme de simplexe sous forme révisée

Tableau de simplexe

Exemples

2
Introduction

Introduction
On a vu précédemment que selon le théorème fondamental de la PL, la solution
optimale est une solution de base réalisable qui correspond à un point extrême du
polyèdre des solutions admissibles.

Une démarche intuitive consiste à calculer en chaque pour chaque base, la valeur de
la fonction objectif pour la solution de base associée. Malheureusement, cette
démarche est loin d’être réalisable en pratique pour plusieurs raisons.
- Il y a nombre énorme de solutions de base.
- Une large part de ces solutions sont non réalisables.
- Une solution de base réalisable n’est optimale que si le PL admet une solution
unique.

3
Caractéristiques des bases et des solutions de base optimal

max z = cT x,
{
Ax = b
s.c.q.
x ≥0
{
A matrice (m × n), b vecteur (m × 1)
avec
c vecteur (n × 1), x vecteur (n × 1).

Hypothèses

- Le nombre de variables n est au moins égal au nombre de contraintes m : n ≥ m.


- La matrice A st de plein rang : rang(A) = m.

4
Caractéristiques des bases et des solutions de base optimal

Théorème 3 : Condition suffisante d’optimalité


Une condition suffisante pour que la base B soit optimale est que :
c¯N = cN − cB B−1 N ≤ 0.

5
Caractéristiques des bases et des solutions de base optimal

Théorème 4 : Solution améliorante


Soient B une base réalisable quelconque, et x0 la solution de base correspondante.
On a c¯N = cN − cB B−1 N.
S’il existe une variable xNs hors base telle que c¯Ns > 0, alors :
- Ou bien on peut augmenter indéfiniment la valeur de xNs sans jamais sortir de la
région admissible, et dans ce cas, le problème admet un optimum infini (+∞).
- Ou bien, on met en évidence une autre solution de base réalisable x1 telle que
z(x1 ) ≥ z(x0 ).

6
Résumé
On a vu précédemment que :
- Théorème 1 : Un point extrême correspond à une solution de base.
- Théorème 2 (TFPL) : S’il existe une solution optimale, il existe une solution de base
optimale.
- Théorème 3 : Une condition suffisante d’optimalité est que les variables hors base
aient des coûts réduits négatifs ou nuls (pour un PL de maximisation).
- Théorème 4 : S’il existe une variable hors base de coût réduit positif (pour un PL
de maximisation), soit que la solution est non bornée, soit qu’on peut trouver un
solution améliorante en augmentant la variable hors bas associée.

7
Algorithme de simplexe

Historique
L’algorithme du simplexe est la méthode la plus utilisée de la recherche
opérationnelle. C’est G.B. Dantzig qui, dans un article paru en 1949, a décrit cet
algorithme, qui constitue l’épine dorsale de la recherche opérationnelle. Depuis, cet
algorithme a fait l’objet de centaines d’articles scientifiques et a servi à la résolution
de nombreux modèles linéaires relatifs à des problèmes de gestion, de diétique, de
transport, d’affectation...

8
Algorithme de simplexe

Intuition de l’algorithme de simplexe


Une démarche simple est de calculer la valeur de la fonction objectif en chaque point
extrême et prendre la solution associée au point extrême qui maximise la fonction
objectif. Pour accélérer cette procédure, on a intérêt à choisir parmi les points
extrême adjacents (voisins) au point extrême courant, celui qui permet d’obtenir la
plus grande augmentation de la fonction objectif.

9
Algorithme de simplexe

Intuition de l’algorithme de simplexe


Une démarche simple est de calculer la valeur de la fonction objectif en chaque point
extrême et prendre la solution associée au point extrême qui maximise la fonction
objectif. Pour accélérer cette procédure, on a intérêt à choisir parmi les points
extrême adjacents (voisins) au point extrême courant, celui qui permet d’obtenir la
plus grande augmentation de la fonction objectif.

Principe du méthode simplexe


Partant d’une solution de base réalisable connue, située en un point extrême de la
frontière de la région admissible, on cherche parmi les point extrêmes adjacents
(voisins) celui qui améliore le plus la fonction objectif à optimiser. On passe alors à ce
point extrême et on recommence jusqu’à ce qu’on retrouve un point extrême tel que
le passage à aucun des point extrêmes voisins n’améliore la fonction à optimiser. Ce
point extrême sera alors l’optimum cherché.

9
Algorithme de simplexe

Hypothèse
Dans ce chapitre, nous supposons que l’origine (xi = 0, pour tous i) est une solution
de base réalisable.

10
On suppose que l’on dispose d’une base réalisable B0 . Les différentes étapes de
l’algorithme sont les suivantes :

Algorithme de simplexe sous forme révisée

a)- Prendre B = B0 comme base courante.


b)- Calculer b̄ = B−1 b, π = cB B−1 et c¯N = cN − πN.
c)- Test d’optimalité sur c¯N :
- Si c¯N ≤ 0, arrêter les calculs ; l’optimum est atteint. La solution optimale est
xB = b̄, xN = 0.
- Sinon, il existe s tel que c¯Ns > 0. Alors aller à d)
d)- Calculer ā.Ns = B−1 a.Ns , avec a.Ns est la colonne de A correspondante à la va-
riable xNs .
e)- Test de solution finie sur ā.Ns .
- Si ā.Ns ≤ 0, arrêter les calculs ; l’optimum est non borné.
- Sinon, on peut augmenter xNs jusqu’à la borne θ̂. Alors aller à f)
f)- Calculer : θ̂ = min1≤i≤m { āb̄iNi /āiNs > 0} = b̄r
ārNs .
s

g)- Nouvelle solution de base trouvée : x̂N = θ̂es , x̂B = b̄ − θ̂ā.Ns . La base B̂ associée
est obtenue à partir de B en remplaçant a.Br par a.Ns .
h)- Prendre B = B̂ comme base courante et reprendre à partir de b).
11
Algorithme de simplexe

Remarque 1 : variable entrante

- La variable xNs associée à la colonne a.Ns est appelée variable entrante. Sa valeur
dans la nouvelle base est égale à x̂Ns = θ̂.
- Lorsqu’il y a plusieurs variables hors base xNs de coûts réduits c¯Ns > 0, le choix de
la variable entrante est indifférent. Un bon critère heuristique est de sélectionner
la variable xNs ayant le coût réduit le plus grand.

12
Algorithme de simplexe

Remarque 2 : variable sortante

- La variable xBr associée à la colonne a.Br est appelée variable sortante. Sa valeur
dans la nouvelle base est égale à x̂Br = 0.
- Lorsqu’il y a plusieurs variables de base xBr tel que : b̄r
ārNs = min1≤i≤m { āb̄iNi /āiNs > 0}.
s
Le choix de la variable sortante est indifférent.

13
Exemple d'application

Prenons l’exemple 1 suivant :

max z = 3x1 + 5x2



 x1
 ≤ 4


 2x2 ≤ 12
s.c. 3x1 + 2x2 ≤ 18

 x1

 ≥ 0

x2 ≥ 0

14
Exemple d'application

max z = 3x1 + 5x2


 max z = 3x1 + 5x2
 x ≤ 4 
 1
 ⇐⇒ 
 x1 +e1 = 4
 2x2 ≤ 12 
s.c. ≤ 2x2 +e2 = 12

3x1 + 2x2 18 s.c.q.

 x1 ≥ 
 3x1 +2x2 +e3 = 18
 0 
x2 ≥ 0 x1 , x2 , e1 , e2 , e3 ≥ 0

15
La résolution des modèles sous forme standard

Un résumé de l’algorithme du simplexe


L’algorithme du simplexe choisit d’abord un point extrême initial, puis effectue une
opération itérative, dite pivotage, qui habituellement correspond à passer d’un point
extrême à un autre point extrême adjacent plus ”rentable”.
Le tableau de simplexe est une représentation simplifiée des opérations de simplexe.
Nous illustrons cette représentation à l’aide d’un exemple.

16
Prenons l’exemple 1 suivant :

Max Z = 87x1 + 147x2 + 258x3 .

s.c x1 + 2x2 + 3x3 ≤ 90


15x1 + 21x2 + 30x3 ≤ 1260
x1 + x2 + x3 ≤ 84
x1 ≥ 0, x2 ≥ 0 et x3 ≥ 0

Hypothèse
Dans ce chapitre, nous supposons que l’origine est un point réalisable
(c’est à dire : xi = 0, pour tous i, est réalisable).

17
Forme Standard du PL

Max z = 87x1 + 147x2 + 258x3 .

s.c x1 + 2x2 + 3x3 + e1 = 90


15x1 + 21x2 + 30x3 + e2 = 1260
x1 + x2 + x3 + e3 = 84
x ≥ 0, x2 ≥ 0 et x3 ≥ 0 e1 ≥ 0, e2 ≥ 0 et e3 ≥ 0

18
Solution initiale

La mise en évidence d’une solution de base admissible initiale


Comme on l’a vu précédemment dans l’exemple 1, les points extrêmes
correspondent aux solutions de base admissibles (réalisables). Celles-ci sont
obtenues en annulant 3 des 6 variables x1 , x2 , x3 , e1 , e2 et e3 . Par exemple, poser
x1 = x2 = x3 = 0 conduit à un système d’équations trivial à résoudre, notamment :
e1 = 90
e2 = 1260
e3 = 84
Graphiquement, cette solution correspond au sommet O (l’origine). la fonction
objectif est égale à 0.

19
On sait, à partir de l’analyse géométrique, que le sommet O n’est pas une solution
optimale. Il faut donc modifier cette solution initiale de façon à augmenter la valeur
prise par la fonction objectif z.
L’algorithme du simplexe procède par itérations, chacune correspondant au
passage d’un sommet de la région admissible à un sommet adjacent de cette région.
Notre exemple exigera 2 itérations.

20
La construction du tableau initial
Les calculs nécessités par l’algorithme du simplexe s’effectuent plus facilement et
plus rapidement lorsque le modèle linéaire est disposé sous forme de tableau
simplexe.
Un tel tableau présente, de façon visuelle et structurée, les variables et les
coefficients du modèle. De plus, chaque tableau met en évidence une solution de
base particulière du modèle linéaire, dite solution de base associée, ou encore
solution canonique associée.

21
Tableau du simplexe

On présente notre solution avec le tableau suivant :


x1 x2 x3 e1 e2 e3 b
e1 1 2 3 1 0 0 90
e2 15 21 30 0 1 0 1260
e3 1 1 1 0 0 1 84
cj 87 147 258 0 0 0 -z

Chaque tableau du simplexe partitionne les variables en 2 groupes :


les variables de base : les variables de base sont les 3 variables apparaissant dans
la section gauche.
les variables hors base : les variables hors base sont les 3 autres.
Par exemple, les variables hors base du tableau précédent sont x1 , x2 et x3 . De façon
générale, la solution de base associée à un tableau s’obtient en posant égales à 0
les variables hors base et donnant à chacune des variables de base la valeur
apparaissant sur la même ligne.

22
la variable entrante

Le choix de la variable entrante


La solution de base initiale du modèle n’est pas optimale.
Comment s’en convaincre par des arguments strictement algébriques ? S’il n’est pas
optimale, il faut augmenter la valeur de l’une ou l’autre de ces variables x1 ; x2 ; x3 .
Laquelle, ou lesquelles choisir ?
Selon la remarque 1 : on augmentera la variable qui rapporte le plus x3 , la variable
ayant le coût réduit le plus élevé
Afin de simplifier l’analyse, supposons que x1 et x2 gardent pour le moment la valeur
0. On augmente x3 , le bénéfice va augmenter.

23
Variable Sortante

Que choisir pour la variable qui va sortir de la base ?

On a potentiellement trois choix : e1 , e2 , e3 .

0+0+3 x3 + e1 =90
0 + 0 + 30 x3 + e2 =1260
0+0+1 x3 + e3 =84

x3 ≥ 0 e1 ≥ 0, e2 ≥ 0 et e3 ≥ 0

24
Autrement

Quelle est la valeur maximale qu’on peut donner à x3 sans violer les contraintes du
modèle ?

la contrainte 3 (e3 = 0) : x3 = 84
la contrainte 2 (e2 = 0) : x3 = 1260
30
la contrainte 1 (e1 = 0) : x3 = 30

25
Autrement

Quelle est la valeur maximale qu’on peut donner à x3 sans violer les contraintes du
modèle ?

la contrainte 3 (e3 = 0) : x3 = 84
la contrainte 2 (e2 = 0) : x3 = 1260
30
la contrainte 1 (e1 = 0) : x3 = 30
Si x3 = 84, la contrainte 2 n’est plus satisfaite.
Si x3 = 1260
30 = 42, la contrainte 1 n’est plus verifiée.
Si x3 = 30, tous les contraintes sont verifiées.

25
le Pivot

x1 x2 x3 e1 e2 e3 b̄ b̄/ā.Ns
e1 1 2 3 1 0 0 90 30
e2 15 21 30 0 1 0 1260 42
e3 1 1 1 0 0 1 84 84
cj 87 147 258 0 0 0 0 0

choix de pivot
Pour chaque itération, nous suivons les règles suivantes :
- Variable entrante : plus fort coefficient strictement positif.
- Variable sortante : plus petite valeur strictement positive dans b̄/ā.Ns .
- Le pivot : intersection de la ligne et de la colonne sélectionnée.

x3 variable entrante remplace la variable e1 dans le nouveau tableau.


Le pivot est égal à 3.

26
Nouveau sommet

Transformation du tableau
Ligne x3 (ancienne ligne e1 ) −→ Ligne e1 /3 . (Division par le pivot).
Ligne e2 −→ Ligne e2 − 30 ligne x3
Ligne e3 −→ Ligne e3 − ligne x3
Ligne cj −→ Ligne cj −258 ligne x3

On obtient le tableau suivant :


x1 x2 x3 e1 e2 e3 b̄
x3 1
3
2
3 1 1
3 0 0 30
e2 5 1 0 −10 1 0 360
e3 2
3
1
3 0 − 13 0 1 54
cj 1 −25 0 −86 0 0 −7740

Remarque importante
On vérifie pour chaque tableau calculé que les valeurs des variables de base sont
positives ou nulles.

27
Règle de pivot
La règle d pivot consiste à
- Remplacer le pivot par la valeur 1 en divisant la ligne pivot par 1.
- Associer la valeur 0 aux autres composante de la colonne pivot.
- Associer la valeur 0 au coût réduit de la nouvelle variable entrante.

Remarques

- Le passage de l’ancien tableau au nouveau tableau traduit le passage du sommet


(0, 0, 0) ou le bénéfice est nul à un autre sommet ou le bénéfice est 7740 (le bénéfice
a été amélioré)
- La fonction bénéfice est z = 7740 + x1 − 25x2 − 86e1 , z peut augmenter si on aug-
mente x1 avec x2 = e1 = 0. Il faut passer à un autre sommet, l’algorithme n’est pas
encore terminé.

28
On effectue notre choix du pivot :
x1 x2 x3 e1 e2 e3 b̄ b̄/ā.Ns
x3 1
3
2
3 1 1
3 0 0 30 90
e2 5 1 0 −10 1 0 360 72
e3 2
3
1
3 0 − 13 0 1 54 81
cj 1 −25 0 −86 0 0 −7740

Transformation du tableau
- La variable entrante est celle de coût réduit cj le plus élevé, c’est la variable x1 .
- La variable sortante est celle qui minimuse b̄/ā.Ns , c’est la variable e2 .
- Le pivot = 5. La variable x1 remplace la variable e2 .
- Ligne x1 (ancienne ligne e2 ) −→ Ligne e2 /5 (Division par le pivot).
- Ligne x3 −→ Ligne x3 − 1
3 ligne x1
- Ligne e3 −→ Ligne e3 − ligne x1
2
3
- Ligne cj −→ Ligne cj − ligne x1

29
Effectuons les calculs sur les lignes x1 et cj . On obtient :
x1 x2 x3 e1 e2 e3 b̄
x3 6
x1 1 1
5 0 −2 1
5 0 72
e3 6
cj 0 −25, 2 0 −84 − 15 0 −7812

- La fonction bénéfice s’écrit : Z = 7812 − 25, 2x2 − 84e1 − 15 e2 .


- On remarque que si on augmente x2 , e1 ou e2 , le bénéfice ne pourra que diminuer,
on a atteint l’optimum.
- l’optimum est atteint lorsque les coefficients de la ligne cj sont tous négatifs ou
nuls (Pour un problème de maximisation).

30
- La solution est : x3 = 6, x1 = 72, x2 = 0, e1 = 6, e2 = e3 = 0
- le bénéfice est : 7812 ( On peut vérifier cette valeur : 72 ∗ 87 + 258 ∗ 6 = 7812 ).

Remarques importantes

S’il n’y a pas de candidat pour quitter la base, on peut faire croître la variable en-
trante et donc aussi la fonction objectif autant qu’on le veut. Dans ce cas, le pro-
blème est non borné.
S’il y a plusieurs candidats pour quitter la base, alors n’importe lequel de ces can-
didats peut servir. La présence de plusieurs candidats pour quitter la base a une
conséquence importante : la dégénérescence.

31
Problème d’agriculteur
Résoudre ce problème à l’aide de l’algorithme du simplexe :

Max z = 1000x1 + 2000x2

s.c x1 + x2 ≤ 150
4x1 + 2x2 ≤ 440
x1 + 4x2 ≤ 480
x1 ≤ 90
x1 ≥ 0 et x2 ≥ 0

32
Une société fabrique 3 sortes de produits X, Y et Z à partir de 3 sortes de composants
A, B, C. Pour la production du mois d’octobre 1999, elle dispose d’un stock de :
1070 composants A
880 composants B
350 composants C

Les quantités de composants intervenant dans les fabrications sont données par le
tableau suivant :
x y z
A 2 1 2
B 1 2 3
C 0 1 4
Les conditions d’exploitation sont les suivantes :
x y z
Prix de vente unitaire 10 8 14
Coût unitaire 3 4 7,5

33
Exercice 1
Une société fabrique trois produits A, B et C. La chaîne de montage comprend deux
ateliers I et II. Les capacités (en kWh/jour) des ateliers sont les suivantes :
Atelier I : 720
Atelier II : 480.
Les caractéristiques de la production sont résumées dans le tableau ci-dessous. Quel
est le programme de production journalier optimal ?

Produit A B C
Bénéfice 108 100 84
Consommation Atelier I 27 10 6
Consommation Atelier II 3 10 14

34
Exercice 2
L’entreprise Duralumin fabrique pour des entreprises de quincaillerie, des pièces en
inox. Ces pièces sont de trois types : A,B et C. Elles sont fabriquées par lots de 50
dans un grand atelier où sont rassemblées deux machines pour la découpe de l’inox,
une machine pour l’emboutissage, deux machines pour le polissage et la finition.
Chaque machine fonctionne 120 heures par mois. Les caractéristiques de fabrication
sont rassemblées dans le tableau suivant :

Coût de l’heure Lot A Lot B Lot C


Découpe 20 euros 1h 1,5 h 1,5h
Emboutissage 30 euros 0,5h 1h
Polissage et finition 40 euros 2h 1h 1h
Inox 50 euros 85 euros 68 euros
Prix de vente 200 euros 200 euros 210 euros

35

Vous aimerez peut-être aussi