• Aucun résultat trouvé

1 Méthode du simplexe: préliminaires Solution de base 2. Programmation linéaire Méthode du simplexe: préliminaires

N/A
N/A
Protected

Academic year: 2022

Partager "1 Méthode du simplexe: préliminaires Solution de base 2. Programmation linéaire Méthode du simplexe: préliminaires"

Copied!
8
0
0

Texte intégral

(1)

IFT1575 Modèles de recherche opérationnelle (RO)

2. Programmation linéaire

b. Méthode du simplexe

Programmation linéaire – Méthode du Simplexe 2

IFT1575 Professeur B. Jaumard

Méthode du simplexe: préliminaires

Méthode algébrique basée sur la résolution de systèmes d’équations linéaires

Revoir la méthode d’élimination de Gauss-Jordan

On s’intéresse uniquement aux systèmes d’équations linéaires avec un nombre de variables supérieur au nombre d’équations

Dans ce cas, il y a deux possibilités :

il n’y a pas de solution

il y a une infinité de solutions

On suppose que toutes les variables sont ≥ 0

Programmation linéaire – Méthode du Simplexe 3

IFT1575 Professeur B. Jaumard

Méthode du simplexe: préliminaires

Dans le cas où il y a une infinité de solutions, la méthode d’élimination de Gauss-Jordan permet d’identifier trois types de variables :

variables fixées

variables dépendantes

variables indépendantes

Exemple :

x1+ x2 + x3 + x4= 4 x1 + 2 x4= 1 x1 + x3 + x4= 3 ⇔ x2 = 1 x1+ x2 + 2x4= 2 x3 - x4 = 2

x2 : fixée; x4 : indépendante; x1 , x3: dépendantes

Programmation linéaire – Méthode du Simplexe 4

IFT1575 Professeur B. Jaumard

Solution de base

Solution obtenue en fixant toutes les variables indépendantes à 0

Variables hors-base: variables indépendantes fixées à 0

Variables de base: les autres variables

Solution de base réalisable: lorsque toutes les variables de base ont une valeur ≥ 0

Solution de base réalisable dégénérée: lorsqu’au moins une variable de base a la valeur 0

Dans l’exemple, la solution de base est : x1= 1, x2= 1, x3= 2

Elle est réalisable et non dégénérée

(2)

Programmation linéaire – Méthode du Simplexe 5 IFT1575

Professeur B. Jaumard

Pivot

Il est facile de changer le statut des variables par des opérations élémentaires :

Dans cette nouvelle solution de base, on a :

Variable hors-base : x3

Variables de base : x1, x2, x4

Solution de base non réalisable: x1= 5, x2= 1, x4= -2

Pivot: opération consistant à remplacer une variable de base par une variable hors base pour obtenir une nouvelle solution de base, dite adjacente

= +

=

= +

=

=

= +

2 1 5 2

2 1 1 2

4 3 2

3 1

4 3 2

4 1

x x x

x x

x x x

x x

Programmation linéaire – Méthode du Simplexe 6

IFT1575 Professeur B. Jaumard

Retour à l’exemple Wyndor Glass

Les contraintes fonctionnelles sont :

On ajoute des variables d’écart≥ 0 pour transformer ces inégalités en système d’équations :

Variables hors-base :

18 2

3

12 2

4

5 2

1

4 2

3 1

= + +

= +

= +

x x

x

x x

x x

18 2

3

12 2

4

2 1

2 1

≤ +

≤ x x

x x

2 1

, x x

Programmation linéaire – Méthode du Simplexe 7

IFT1575 Professeur B. Jaumard

Exemple Wyndor Glass (suite)

Solution de base : (x1, x2, x3, x4, x5) = (0, 0, 4, 12, 18)

On veut effectuer un pivot : remplacer la variable hors-basex2 par une des variables de base actuelles

Laquelle?...

On veut que la nouvelle solution de base soit réalisable

Dans cette solution de base, on aura toujours x1= 0et une des variables d’écart deviendra une variable hors-base, donc prendra la valeur 0

0 2 18

0 2 12

0 4

0 2 3 18

0 2 12

0 4

2 2 2

1 5

2 4

1 3

− ≥

=

=

=

x x x

x x

x x

x x

Programmation linéaire – Méthode du Simplexe 8

IFT1575 Professeur B. Jaumard

Exemple Wyndor Glass (suite)

En exploitant les inégalités

x4= 12 – 2 x2 ≥ 0 x5= 18 – 2 x2 ≥ 0

on obtient : x2 ≤ 12/2 = 6 x2 ≤ 18/2 = 9

Donc, en posant x

2

= 6 , on obtient x

4

= 0 , alors que si on augmente davantage x

2

, la solution devient non réalisable

On effectue un pivot: remplacer la variable de

base x

4

(qui deviendra hors-base) par x

2

(3)

Programmation linéaire – Méthode du Simplexe 9 IFT1575

Professeur B. Jaumard

Exemple Wyndor Glass (suite)

On obtient alors le système suivant :

Solution de base :

On effectue un pivot pour que la variable x1entre dans la base (devienne variable de base)

Puisque :

) 6 , 0 , 4 , 6 , 0 ( ) , , , ,

( x

1

x

2

x

3

x

4

x

5

= 6 3

6 5

. 0

4

5 4 1

4 2

3 1

= +

= +

= +

x x x

x x

x x

0

4

=

x

2 4 0

3 6

0 4

1 1 1

5

1 3

⇔ ≤

= − ≥

=

x x x

x

x x

Programmation linéaire – Méthode du Simplexe 10

IFT1575 Professeur B. Jaumard

Exemple Wyndor Glass (suite)

En posant , on obtient

Pivot : remplacer la variable de base par

Le système obtenu est alors :

Solution de base :

0

5

= x 2

1

= x

x

5

x

1

3 2 1 3 1 2 6 1

3 2 1 3 1

5 4 1

4 2

5 4 3

= +

= +

=

− +

x x x

x x

x x x

) 0 , 0 , 2 , 6 , 2 ( ) , , , ,

( x

1

x

2

x

3

x

4

x

5

=

Programmation linéaire – Méthode du Simplexe 11

IFT1575 Professeur B. Jaumard

Interprétation géométrique

Programmation linéaire – Méthode du Simplexe 12

IFT1575 Professeur B. Jaumard

Interprétation géométrique

Une solution de base réalisable correspond à un point extrême du domaine réalisable

Un pivot correspond à un déplacement d’un point extrême à un autre qui lui est adjacent

La méthode du simplexe :

Démarre avec une solution de base réalisable initiale (un point extrême)

Effectue à chaque itération un pivot, passant ainsi à une solution de base réalisable adjacente (un point extrême adjacent)

S’arrête lorsqu’elle identifie une solution de base réalisable optimale (un point extrême correspondant à une solution optimale)

(4)

Programmation linéaire – Méthode du Simplexe 13 IFT1575

Professeur B. Jaumard

Interprétation des variables d’écart

Dans la solution optimale du problème Wyndor Glass, on a x3= 2, x4= x5 = 0

Cela indique que les deux dernières ressources (temps aux usines 2 et 3) sont pleinement utilisées

Une partie de la première ressource (temps à l’usine 1) n’est pas utilisée: 2 heures

Voir l’exemple dans le OR Tutor

Programmation linéaire – Méthode du Simplexe 14

IFT1575 Professeur B. Jaumard

Critère d’optimalité

Exprimons l’objectif en fonction des variables hors- base dans la solution optimale

Rappelons que dans cette solution, on a :

3 2 1 3

1 2 6 1

5 4

1

4 2

= +

= +

x x

x

x x

Programmation linéaire – Méthode du Simplexe 15

IFT1575 Professeur B. Jaumard

Critère d’optimalité (suite)

Après substitution dans l’objectif, on obtient : z = 3 x1+ 5 x2= 3 (2 + (1/3) x4– (1/3) x5)+ 5 (6 – (1/2)x4)

= 36 - (3/2) x4– x5

Toute solution réalisable (x1, x2, x3, x4, x5) satisfait z = 36 + 0 x1+ 0 x2+ 0 x3 - (3/2) x4 - x5≤ 36

La valeur optimale est donc 36

Programmation linéaire – Méthode du Simplexe 16

IFT1575 Professeur B. Jaumard

Critère d’optimalité (suite)

Le critère d’optimalité s’énonce ainsi comme suit :

Étant donné que l’objectif s’exprime uniquement en fonction des variables hors-base de la solution de base réalisable courante

Si les coefficients de ces variables dans l’objectif sont tous négatifs ou nuls, alors la solution de base réalisable courante est optimale

Les coefficients des variables hors-base dans l’objectif sont appelés coûts réduits(ou coûts relatifs)

(5)

Programmation linéaire – Méthode du Simplexe 17 IFT1575

Professeur B. Jaumard

Variable d’entrée

Si au moins un coût réduit est positif pour la solution de base réalisable courante :

On n’a pas encore atteint une solution optimale

Il faut donc effectuer au moins un pivot

Quelle variable doit-on faire entrer dans la base?

On propose de choisir celle dont le coût réduit est le plus grand parmi toutes les variables hors-base

Cette variable fournit la plus grande augmentation marginale (par unité) de la valeur de l’objectif

Attention : ce n’est peut-être pas la plus grande augmentation globale

Programmation linéaire – Méthode du Simplexe 18

IFT1575 Professeur B. Jaumard

Variable de sortie

Lorsqu’on effectue un pivot, il faut choisir la variable qui va sortir de la base en tentant de garder toutes les variables non négatives

Supposons que xj est la variable d’entrée

Alors, chaque variable de base xis’exprime ainsi en fonction de la variable d’entrée (puisque les autres variables hors-base sont nulles) :

Dans cette expression, les coefficients sont obtenus suite à plusieurs pivots

On a nécessairement (pourquoi?)

j ij i

i

b a x

x = −

ij

i

a

b

,

≥ 0 b

i

Programmation linéaire – Méthode du Simplexe 19

IFT1575 Professeur B. Jaumard

Variable de sortie (suite)

Pour que toutes les variables demeurent non négatives suite au pivot, on doit avoir :

Si , l’inégalité ne limite pas l’augmentation de

Si cette condition est satisfaite pour tousles i, on peut donc augmenter indéfiniment : l’objectif est non borné

Si , l’inégalité limite l’augmentation de

Variable de sortie : celle qui atteint

i j ij j

ij i

i

b a x a x b

x = − ≥ 0 ⇔ ≤

≤ 0 a

ij

x

j

x

j

> 0

a

ij

x

j

 

 

 | > 0 min

ij

ij

i

a

a b

Programmation linéaire – Méthode du Simplexe 20

IFT1575 Professeur B. Jaumard

Méthode du simplexe: résumé

1. Obtenir une solution de base réalisable initiale 2. Vérifier le critère d’optimalité: si les coûts réduits de

toutes les variables hors-base sont négatifs ou nuls, arrêter

3. Choisir la variable d’entrée xj, celle qui a le coût réduit le plus élevé

4. Déterminer la variable de sortie:

5. Effectuer un pivot et déterminer une nouvelle solution de base réalisable; retourner à l’étape 2 Voir l’exemple dans le OR Tutor





 | >0 min ij

ij

i a

a b

(6)

Programmation linéaire – Méthode du Simplexe 21 IFT1575

Professeur B. Jaumard

Forme augmentée

Tout modèle de PL peut se ramener à la forme suivante :

Hypothèse: bi ≥ 0, i=1,2,…,m

But: obtenir une solution de base initiale m i x

n j x

m i b x x a

x c

i n j

i i n j ij

j j

n

j

n

j

,..., 2 , 1 0

,..., 2 , 1

0

,..., 2 , 1 max

1

1

=

=

=

= +

+

+

=

=

Programmation linéaire – Méthode du Simplexe 22

IFT1575 Professeur B. Jaumard

Transformation du min au max

Supposons qu’on doit minimiser l’objectif au lieu de le maximiser

On utilise alors la propriété suivante:

On résout le problème de maximisation en changeant les signes des coefficients dans l’objectif

La valeur optimale du problème de minimisation est l’opposé de celle du problème de maximisation

=

=

=

n

j n

j

j j j

jx cx

c

1 1

max min

Programmation linéaire – Méthode du Simplexe 23

IFT1575 Professeur B. Jaumard

Transformation du ≤ en =

(égalité) )

(inégalité ation transform la de celui dire - à - est c'

suivant, cas au ramène se on et 1 - par inégalité l' multiplie on , 0

obtient on et 0 écart d' variable une ajoute on , 0

: cas deux a y il , Si

1 1

=

<

= +

= +

+

=

i n

j

i n

i n i

n

j

b

b x x a

x b

b x a

i j ij i j ij

Programmation linéaire – Méthode du Simplexe 24

IFT1575 Professeur B. Jaumard

Transformation du ≥ en =

les artificiel variables de on introducti l' de celui dire - à - est c'

suivant, cas au ramène se on

obtient on et 0 surplus de variable une soustrait on , 0

(égalité) )

(inégalité ation transform la de celui dire - à - est c'

précédent cas au ramener se pour 1 - par inégalité l' multiplie on , 0

: cas deux a y il , Si

1 1

= +

+

=

=

>

=

n

j i n

i n i

i n

j

i j ij i j ij

b x x a

x b

b b x a

(7)

Programmation linéaire – Méthode du Simplexe 25 IFT1575

Professeur B. Jaumard

Ajout de variables artificielles

Si ∑j=1,..,naijxj= biet qu’aucune variable n’est isolée (une variable est isolée si elle est à coefficient 1 dans cette équation et à coefficient 0 dans les autres):

On ajoute une variable artificielle xn+i0

On lui associe un profit très négatif: -M

max j=1,..,ncjxj- M xn+i sous les contraintes:

j=1,..,naijxj= bi

Si le problème est réalisable, on doit avoir xn+i= 0

Programmation linéaire – Méthode du Simplexe 26

IFT1575 Professeur B. Jaumard

Que faire si vous avez de la difficulté pour trouver une solution réalisable ?

Méthode à deux phases

Phase 1: trouver une solution réalisable en minimisant la somme des variables artificielles

Phase 2: optimiser en revenant à la fonction de coût initial à partir de la solution intiale trouvée dans la phase 1

Méthode du grand M

Optimiser en utilisant une fonction objective formée de la fonction de coût initiale et de la somme, très fortement pénalisée, des variables artificielles

Programmation linéaire – Méthode du Simplexe 27

IFT1575 Professeur B. Jaumard

Illustration: comment trouver une solution réalisable ?

min z = 0.4 x

1

+ 0.5 x

2

sous les contraintes:

0.3 x1+ 0.1 x2≤2.7 0.5 x1+ 0.5 x2 = 6 0.6 x1+ 0.4 x2≥ 6 x1 ≥ 0, x2≥ 0

Programmation linéaire – Méthode du Simplexe 28

IFT1575 Professeur B. Jaumard

Transformations

Système initial

0.3 x1+ 0.1 x2≤2.7 0.5 x1+ 0.5 x2 = 6 0.6 x1+ 0.4 x2≥ 6

Système d’égalités

0.3 x1+ 0.1 x2+ xs1 = 2.7 0.5 x1+ 0.5 x2 = 6 0.6 x1+ 0.4 x2 - xs2 = 6 xs1≥ 0, xs2≥ 0

(8)

Programmation linéaire – Méthode du Simplexe 29 IFT1575

Professeur B. Jaumard

Introduction de variables artificielles

Système d’égalités

0.3 x1+ 0.1 x2+ xs1 = 2.7 0.5 x1+ 0.5 x2 = 6 0.6 x1+ 0.4 x2 - xs2 = 6 xs1≥ 0, xs2≥ 0

Ajout de variables artificielles

0.3 x1+ 0.1 x2+ xs1 = 2.7 0.5 x1+ 0.5 x2 + xa2 = 6 0.6 x1+ 0.4 x2 - xs2 + xa3 = 6 xs1≥ 0, xs2≥ 0, xa2 ≥ 0, xa3≥ 0

Programmation linéaire – Méthode du Simplexe 30

IFT1575 Professeur B. Jaumard

Démarrer l’algorithme du simplex

Ajout de variables artificielles 0.3 x1+ 0.1 x2+ xs1 = 2.7 0.5 x1+ 0.5 x2 + xa2 = 6 0.6 x1+ 0.4 x2 - xs2 + xa3 = 6 xs1≥ 0, xs2≥ 0, xa2 ≥ 0, xa3≥ 0

Algorithme à deux phases

Phase 1: min xa2 + xa3 jusqu’à obtenir une valeur optimale nulle (si le PL a une solution réalisable)

Phase 2: min 0.4 x1+ 0.5 x2

Méthode du grand M

min0.4 x1+ 0.5 x2 + M xa2+ M xa3

Programmation linéaire – Méthode du Simplexe 31

IFT1575 Professeur B. Jaumard

Variables à valeurs quelconques

Si une variable x

jpeut prendre des valeurs négatives, on introduit deux variables

x

j+

≥ 0 et x

j-

≥ 0

On pose alors x

j

= x

j+

- x

j-

Autre possibilité : si x

j

≥ L

j

( L

j

est une constante négative) On pose alors x

j+

= x

j

- L

j

≥ 0

Programmation linéaire – Méthode du Simplexe 32

IFT1575 Professeur B. Jaumard

Pour expérimenter

Pour des petits modèles (moins de 6 variables et 6 contraintes fonctionnelles) : essayer le IOR Tutorial

Pour des modèles plus gros, modéliser et résoudre avec Excel Solver

Revoir le cas Wyndor Glass

Pour des modèles encore plus gros, essayer Lindo/Lingo et CPLEX/MPL (CD)

Références

Documents relatifs

sexe et poste : deux variables de type caractère ('f' pour féminin, 'm' pour masculin; 'a' pour analyste, 'p' pour programmeur, 'o' pour opérateur).. numero : numéro de l'employé

a) Poursuivre la résolution de ce problème après avoir identifié le tableau du simplexe associé à cette base. La solution de base optimale obtenue en a) demeure-t-elle

objrs.Find 0, adSearchForward objrs.Find 0, adSearchForward objrs.Find 0, adSearchBackward objrs.Find 0, adSearchBackward objrs.Find &#34;[Nom] LIKE 'A*'&#34;. objrs.Find

Question 1 : Appliquer la phase 1 de la m´ ethode du simplexe pour trouver une solution de base r´ ealisable.. Question 2 : Poursuivre le d´ eroulement de la m´ ethode du simplexe

En effet, il est clair que l’identit´ e d’´ energie locale du lemme 3.1 a un ´ equivalent pour l’´ equation lin´ eaire.. Henri Poincar´

Revue Française d'Automatique, Informatique et Recherche Opérationnelle.. oblige cependant à traiter chaque coût marginal et chaque second membre comme une forme linéaire du

Supposons de plus que chaque variable Xi soit moyenne arithmétique de wi variables indépendantes, dites composantes élémentaires de Xi, chacune avec espérance

Depuis sa formulation de 1930 ` a 1940, et le d´ eveloppement de la m´ ethode de simplexe par Danzig en 1940, des chercheurs dans diff´ erents do- maines : ´ economie, finance,