79
3. Variantes de l’algorithme du simplexe

3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Embed Size (px)

Citation preview

Page 1: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

3. Variantes de l’algorithme

du

simplexe

Page 2: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Les deux phases du simplexe

• Pour initialiser l’algorithme du simplexe, il faut déterminer une solution de base initiale.

• Or une telle solution de base initiale n’est pas nécessairement disponible.

• De plus, en général, nous ne savons même pas si le domaine réalisable n’est pas vide.

• La phase I du simplexe:

→ indique si le problème est réalisable (i.e., son domaine réalisable

n’est pas vide)

→ si oui, fournit l’information pour générer une solution de base

initiale.

Page 3: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Cas simple

• Soit le problème de programmation linéaire suivant:

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

En utilisant les variables d’écart xn+1 xn+2

.

.

xn+m

Page 4: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Cas simple

• Le problème devient

mnnnjx

zxcxcxc

bxxaxaxa

bxxaxaxa

bxxaxaxa

àSujet

z

j

nn

mmnnmnmm

nnn

nnn

,,1,,...,2,10

0...

...

......

......

...

...

min

2211

2211

222222121

111212111

Les variables de base de la solutioninitiale sont xn+1, xn+2,…, xn+m

Page 5: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Cas plus compliqué

• Considérons plutôt le problème suivant:

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

En utilisant les variables d’écart xn+1 xn+2

.

.

xn+m

Page 6: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Cas plus compliqué

• Alors le problème devient

mnnnjx

zxcxcxc

bxxaxaxa

bxxaxaxa

bxxaxaxa

àSujet

z

j

nn

mmnnmnmm

nnn

nnn

,,1,,...,2,10

0...

...

......

......

...

...

min

2211

2211

222222121

111212111

La solution de base où xn+1, xn+2,…, xn+m sont les variables de base n’est pas réalisable car les valeurs des variables xn+i = –bi ≤ 0 i = 1,2,…,mlorsque les variables hors base sont égales à 0

Page 7: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Cas général

• Dans le cas général où le problème est de la forme

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

Nous utilisons une phasepréliminaire (Phase I)

Introduisons les variablesartificielles t1

t2

. . tm

Construisons un problème artificiel

Page 8: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution de base réalisable initiale

• Les contraintes deviennent donc

Les variables t1, t2,…, tm sont les variables de base d’une solution de base réalisable de ce système

mitnjx

btxaxaxa

btxaxaxa

btxaxaxa

ij

mmnmnmm

nn

nn

,...,2,10;,...,2,10

...

......

......

...

...

2211

222222121

111212111

Page 9: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Probème artificiel

• Dans le cas général où le problème est de la forme

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

Nous utilisons une phasepréliminaire (Phase I)

Introduisons les variablesartificielles t1

t2

. . tm

Construisons un problème artificiel

Remplaçons la fonction économique par une nouvelle: minimiser lasomme des variables artificielles

Page 10: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Problème artificiel

• Le problème artificielle de la phase I est donc de la forme

Résolvons ce problème avec l’algorithme du simplexe

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Page 11: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Problème artificiel

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Générons un problème équivalent en soustrayant chacune des m premières contraintes de celleassociée à la fonction économique

m

iijj ad

1

m

iibw

10

Définissons

Page 12: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Problème artificiel équivalent

• Le problème équivalent est donc de la forme

mitnjx

wwxdxdxd

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

mn

mmnmnmm

nn

nn

,...,2,10;,...,2,10

...

...

......

......

...

...

min

02211

2211

222222121

111212111

m

iijj ad

1

m

iibw

10

Page 13: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résolution du problème de la phase I

• Ce problème est résolu avec l’algorithme du simplexe.

• Les variables artificielles t1, t2 ,…, tm sont les variables de base de la solution initiale puisque leur valeur est non négative lorsque les variables xj du problème original sont fixées à 0.

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Page 14: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• Proposition À la fin de la phase I

(i) si la valeur optimale min w de la fonction économique est

positive (i.e., min w > 0), alors le domaine réalisable du

problème original est vide (i.e., le problème original n’est

pas réalisable)

(ii) si la valeur optimale min w de la fonction économique est

nulle (i.e., min w = 0), alors le domaine réalisable du

problème original n’est pas vide (i.e., le problème original

est réalisable).

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Page 15: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• Preuve

(i) (Preuve par contraposée)

Si le domaine réalisable du problème original n’est pas vide,

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

Page 16: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• Preuve

(i) (Preuve par contraposée)

Si le domaine réalisable du problème original n’est pas vide, substituons

ces valeurs des variables xj dans le

problème de la phase I

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

Page 17: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• Preuve

(i) (Preuve par contraposée)

Si le domaine réalisable du problème original n’est pas vide, substituons

ces valeurs des variables xj dans le

problème de la phase I

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Page 18: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• Preuve

(i) (Preuve par contraposée)

Si le domaine réalisable du problème original n’est pas vide, substituons

ces valeurs des variables xj dans le

problème de la phase I

pour obtenir une solution

réalisable où toutes les variables

ti sont égales à 0 et où la

valeur de la fonction

économique w = 0.

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Page 19: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• Preuve

(i) (Preuve par contraposée)

Si le domaine réalisable du problème original n’est pas vide, substituons

ces valeurs des variables xj dans le

problème de la phase I

pour obtenir une solution

réalisable où toutes les variables

ti sont égales à 0 et ainsi ayant

une valeur de la fonction

économique w = 0. Donc si

min w > 0, alors le problème

original n’a pas de solution.

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Page 20: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• (ii)

Si à la fin de la phase I, la valeur de min w = 0,

Page 21: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• (ii)

Si à la fin de la phase I, la valeur de min w = 0, alors il existe une solution

réalisable du problème de la phase I où toutes les variables artificielles ti

sont égales à 0.

Dans ce cas, les valeurs que

prennent les variables xj

constituent une solution pour

le problème original.

mitnjx

wttt

btxaxaxa

btxaxaxa

btxaxaxa

àSujet

w

ij

m

mmnmnmm

nn

nn

,...,2,10;,...,2,10

0...

...

......

......

...

...

min

21

2211

222222121

111212111

Page 22: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Résultat de la phase I

• (ii)

Si à la fin de la phase I, la valeur de min w = 0, alors il existe une solution

réalisable du problème de la phase I où toutes les variables artificielles ti

sont égales à 0.

Dans ce cas, les valeurs que

prennent les variables xj

constituent une solution pour

le problème original.

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

Page 23: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

• Dans le cas où min w est égale à 0, nous poursuivons la résolution du problème original avec l’algorithme du simplexe en utilisant l’information du tableau de la dernière itération de la phase I pour construire une solution de base initiale pour le problème original.

• Considérons le tableau du simplexe de la dernière itération de la phase I

Page 24: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Tableau phase I

mnjd j ,...2,10

Solution optimale de la phase I ↓

m des colonnes du tableau sont les mvecteurs unitaires où le 1 est la iième composante

mnjd j ,...2,10

0

.

1

.

0

ie

Page 25: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Tableau phase I

mnjd j ,...2,10

m des colonnes du tableau sont les mvecteurs unitaires où le 1 est la iième composante

0

.

1

.

0

ie

La variable sous laquelle nousretrouvons le iième vecteur unitaire est la variable de basedans la iième ligne du tableau

Page 26: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

• Deux cas différents doivent être considérés.

Cas 1: Aucune variable artificielle n’est variable de base. Donc toutes les variables de base sont des variables originales xj.

Considérons le tableau du simplexe de la dernière itération de la phase I

Page 27: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

Éliminons les colonnes des variables artificielles

Remplaçons la dernière ligne du tableau par la fonction économique du problème original

0...2211 zxcxcxc nn

Page 28: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

• Dénotant les variables de base par ,le tableau devientmjjj xxx ,...,,21

Pour retrouver le tableau du simplexe associé à cette base, il faut ramener

à 0 les coûts relatifs des variables de base ijc ijx

Page 29: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

Modifions la dernière ligne de ce tableau en soustrayant chacune des autres lignes i multipliée par

ijc De sorte que

m

i

ijjjj accci

1

ij bczi0

mic ij ,...,2,10

Page 30: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

• Le tableau devient donc

Nous avons donc un tableau du simplexe associé à une solution initiale de base pour le problème originale où les variables de base sont mi jjj xxx ,...,,

21

Page 31: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Cas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable artificielle tk est variable de base dans la ligne i

Page 32: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

• Cas 2: Certaines variables de base sont des variables artificielles. Supposons que la variable artificielle tk est variable de base dans la ligne i.

Cette ligne du tableau à la dernière itération de la phase I est de la forme

Mais min w = 0 => tk = 0 . Ainsi 0ib

Essayons de remplacer tk par une des variables originales xj à titre de variable de base dans la ligne i. Analysons les coefficients des variables xj dans cette ligne.

Page 33: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

i) Supposons qu’il existe un indice s, 1≤ s ≤ n, tel que . Transformons le dernier tableau de la phase I en exécutant un pivot sur l’élément pour que xs devienne la variable de base dans la ligne i. Ceci ne modifie en rien la valeur de l’objectif w puisque

0isa

0isa

0ib

Ainsi nous obtenons une nouvelle solution de base optimale pour la phase I où la variable xs remplace la variable tk comme variable de base dans le ligne i

Page 34: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Solution initiale pour poursuivre

ii) Supposons que . On peut alors démontrer que la contrainte i du problème est redondante car elle peut s’exprimer comme une combinaison linéaire des autres contraintes. Dans ce cas, la contrainte i peut être éliminée sans modifier le domaine réalisable. Nous éliminons donc la ligne i du tableau.

Après avoir traité chaque ligne où la variable de base est unevariable artificielle selon i) ou ii), alors nous obtenons une autresolution optimale de la phase I où aucune variable artificielle n’estde base. Nous retombons alors sur le Cas 1

nja ij ,...,2,10

Page 35: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Notion de multiplicateurs du simplexe

• Considérons la dernière ligne du tableau du simplexe associé à la base B qui correspond aux vecteurs des coûts relatifs des variables:

TBc

TRc

BBccccc TB

TB

TB

TB

TB

10

RBccc TB

TR

TR

1

ABccc TB

TT 1

Page 36: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Notion de multiplicateurs du simplexe

Dénotons le vecteur défini par

Alors

ou

où dénote la jième colonne de la matrice de contrainte A

mR1 BcT

BT

Acc TTT

jT

jj acc

ja

π est le vecteur des multiplicateursdu simplexe associé à la base B.

ABccc TB

TT 1

Page 37: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Notion de multiplicateurs du simplexe

• Le vecteur des multiplicateurs du simplexe π permet de calculer

les coûts relatifs directement à partir des données originales du problème.

• Les composantes πi (i=1,2,…,m) du vecteur des multiplicateurs peuvent être considérés comme des poids associés aux lignes i du tableau (ou aux contraintes i du problème) tel que la soustraction d’une combinaison linéaire des lignes avec ces poids de la dernière ligne du tableau permet d’annuler les coûts relatifs des variables de base.

jT

jj acc

jc

Page 38: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Sensitivité de la valeur optimale auxmodifications des termes de droite

• Les multiplicateurs du simplexe associés à une base optimale permettent de mesurer l’effet de modifier les termes de droite sur la valeur optimale d’un problème.

• Considérons le problème original et un autre où les termes de droite sont modifiés

0

0

min

x

zxc

bAxàSujet

z

T

0~0~~

~

~min

x

zxc

bbxAàSujet

z

T

Page 39: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Sensitivité de la valeur optimale auxmodifications des termes de droite

• Dénotons par B* une base optimale du problème original, et la solution de base optimale correspondante

dont la valeur (optimale pour le problème) est donnée par

0

0

min

x

zxc

bAxàSujet

z

T

0~0~~

~

~min

x

zxc

bbxAàSujet

z

T

0

01**

*

*

bbBx

x

B

R

bcbBcxcxcz TB

TBR

TRB

TB ****

1****

Page 40: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Sensitivité de la valeur optimale auxmodifications des termes de droite

• Choisissons la valeur de de telle sorte que

• Donc B* demeure une base réalisable pour le nouveau problème modifié puisque la solution de base associée est

0

0

min

x

zxc

bAxàSujet

z

T

0~0~~

~

~min

x

zxc

bbxAàSujet

z

T

b

0)( 1*1*1* bBbBbbB

0)(~0~

1**

*

*

bbBx

x

B

R

Page 41: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Sensitivité de la valeur optimale auxmodifications des termes de droite

• Donc B* demeure une base réalisable pour le nouveau problème modifié puisque la solution de base associée est

• De plus, puisque ni les coûts cj ni la matrice A n’ont pas été modifiés, alors le vecteur des multiplicateur π* reste inchangé. Par conséquent les coûts

relatifs demeurent inchangés et donc non négatifs pour le nouveau problème.

La solution précédente est donc optimale pour le nouveau problème.

0)(~0~

1**

*

*

bbBx

x

B

R

jc

Page 42: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Sensitivité de la valeur optimale auxmodifications des termes de droite

• Cette solution est optimale pour le nouveau problème.

• Évaluons la valeur optimale du nouveau problème:.

0)(~0~

1**

*

*

bbBx

x

B

R

jc jc

m

iii

T

TB

TB

TB

RTRB

TB

bz

bz

bBcbBc

bbBc

xcxcz

1

**

**

1*1*

1*

***

**

*

**

)(

~~~

Page 43: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Sensitivité de la valeur optimale auxmodifications des termes de droite

• Évaluons la valeur optimale du nouveau problème:.

Ainsi, indique la taux de variationunitaire de la fonction économique lorsque le terme de droite bi de lacontrainte i est modifié d’une quantité choisie de telle sorte que la basedemeure réalisable pour le nouveauproblème.

*i

ib

m

iii

T

TB

TB

TB

RTRB

TB

bz

bz

bBcbBc

bbBc

xcxcz

1

**

**

1*1*

1*

***

**

*

**

)(

~~~

Page 44: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Domaine réalisable

• L’ensemble des points réalisables pour le système

5x + 3y ≤ 30

2x + 3y ≤ 24

1x + 3y ≤ 18

x,y≥0

Page 45: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Domaine réalisable

• L’ensemble des points réalisables pour le système

5x + 3y ≤ 30

2x + 3y ≤ 24

1x + 3y ≤ 18

x,y≥0

Page 46: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Forme révisée du simplexe

• Dans cette variante de l’algorithme du simplexe, nous exploitons les multiplicateurs du simplexe pour permettre de faire le pivot sur un tableau de dimension réduite.

• Nous considérons le problème de programmation linéaire sous sa forme standard

0

0

min

x

zxc

bAxàSujet

z

T

Page 47: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Forme révisée du simplexe

• Les données du problème

peuvent être résumées dans le tableau suivant

0

0

min

x

zxc

bAxàSujet

z

T

Page 48: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Construisons un nouveau tableau à partir de ce dernier en ajoutant une matrice identité mxm à côté de la matrice A des contraintes

et en lui associant un vecteur de m composantes égales à 0 dans la dernière ligne du tableau

Page 49: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Supposons que nous résolvions le problème avec l’algorithme du simplexe et que nous fassions également les pivots sur la partie additionnelle du tableau à chaque itération.

• Considérons une solution de base réalisable dont la base B est constituée des m premières colonnes de A.

Pour faciliter la présentation représentons le tableau augmenté sous une forme matricielle équivalente:

Page 50: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base
Page 51: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Le tableau du simplexe associé à la base B peut être retrouvé

en multipliant les m premières lignes du tableau par B-1

et en ramenant les coûts relatifs des variables de base à 0

B-1

0

Page 52: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Considérant maintenant la représentation explicite du tableau augmenté à cette itération

La matrice B-1 se retrouve à l’endroit où était la matrice identité dans le tableau des données originales

Page 53: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Dénotons par π = [π1, π2,…, πm]T le vecteur des multiplicateurs associés à la base B. Alors

En particulier, pour i = 1,2,…,m, puisque cn+i = 0 et

mnjacc jT

jj ,...,2,1

iin ea

iiT

in ec 0

Page 54: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Ce tableau s’écrit donc sous la forme

B-1 inverse de la base

Multiplicateurschangés de signe

Page 55: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Comporte toute l’information nécessaire pour compléter une itération du simplexe.

La partie suivante de ce tableau

Page 56: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Critère d’entrée: Pour déterminer la variable d’entrée ou vérifier si la solution actuelle est optimale, il faut déterminer les coûts relatifs

njacc jT

jj ,...,2,1

Page 57: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Critère de sortie: Pour compléter cette étape, il faut connaître Or

sa

ss aBa

1

Page 58: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Pivot: Il suffit de compléter le pivot uniquement sur les colonnes dutableau précédent. En effet nous aurons alors toute l’informationnécessaire pour compléter la prochaine itération.En pivotant sur l’élément rsa

Page 59: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base
Page 60: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Variante du simplexe pour problème avec variables bornées

• Considérons le problème de programmation linéaire avec variables bornées suivant

• Ramenons à 0 les bornes inférieures en faisant le changement de variables suivant

xj = gj – lj (i.e., gj = xj + lj )

nmARhRcg

njqgl

hAg

gc

mn

jjj

T

matriceuneestet,,,où

,...,2,1

àSujet

min

Page 61: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Variante du simplexe pour problème avec variables bornées

le problème devient

et en remplaçant: uj = qj – lj et b = h – Al

nmARhRlxcg

njqlxl

hlxA

lxc

mn

jjjj

T

matriceuneestet,,,,,où

,...,2,1

)(àSujet

)(min

njux

bAx

lcxc

jj

TT

,...,2,10

àSujet

min

Page 62: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Dans ce problème

puisque cTl représente une constante, nous pouvons éliminer ce terme de la fonction économique sans changer la solution optimale

et dans la suite de la présentation considérer ce problème sans perte de généralité.

Variante du simplexe pour problème avec variables bornées

njux

bAx

lcxc

jj

TT

,...,2,10

àSujet

min

Page 63: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Variante du simplexe pour problème avec variables bornées

• Considérons la formulation explicite du problème

• Une façon de le résoudre est de le ramener sous une forme standard en introduisant des variables d’écart yj,

et d’ensuite utiliser l’algorithme du simplexe

njux

mibxa

xcz

jj

n

jijij

n

jjj

,...,2,10

,...,2,1àSujet

min

1

1

njyx

njuyx

mibxa

xcz

jj

jjj

n

jijij

n

jjj

,...,2,10,

,...,2,1

,...,2,1àSujet

min

1

1

Page 64: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Considérons une solution de base réalisable de ce problème.

• La présence des contraintes xj + yj = uj implique qu’au moins une des deux variables xj ou yj est variable de base, j = 1,2,…,n.

• Donc une des trois situations suivantes prévaut pour chaque j = 1,2,…,n:

a) xj = uj est variable de base et yj = 0 est variable hors base

b) xj = 0 est variable hors base et yj = uj est variable de base

c) 0 < xj < uj est variable de base et 0 < yj < uj est variable de base

njyx

njuyx

mibxa

xcz

jj

jjj

n

jijij

n

jjj

,...,2,10,

,...,2,1

,...,2,1àSujet

min

1

1

Non dégénérescence:toutes les variables de base sont positives à chaque itération

Page 65: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

njyx

njuyx

mibxa

xcz

jj

jjj

n

jijij

n

jjj

,...,2,10,

,...,2,1

,...,2,1àSujet

min

1

1

m + n variables de base requisesil y a n variables yj

Il y a au moins m variables xj dans la base

Exactement m variables xj satisfont 0 < xj < uj.En effet, si m0 m variables xj

satisfaisaient la relation, alors les m0 variables yj correspondantes seraientégalement dans la base. De plus, pour les n – m0 autres indices jxj = uj (cas a) ou bien yj = uj (cas b) seraitvérifié.Alors le nombre de variables de base serait égal à 2m0 + (n – m0) = n + m0 n + m

Page 66: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

La base a donc la forme suivante

m

n

0 < xj < uj 0 < yj < uj xj=uj yj=uj

Page 67: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

La base a donc la forme suivante

m

n

0 < xj < uj 0 < yj < uj xj=uj yj=uj

Base de A

Les colonnes de la base B de Acorrespondent aux variables 0<xj<uj

Page 68: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• Ainsi, nous pouvons développer une variante du simplexe pour résoudre directement le problème

en traitant implicitement les bornes supérieures uj. À chaque itération, nous allons considérer une solution (de base) associée à une base B de A ayant

m variables de base

n – m variables hors base

njux

mibxa

xcz

jj

n

jijij

n

jjj

,...,2,10

,...,2,1àSujet

min

1

1

IBjux jj 0

JBjuoux jj 0

Page 69: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

• À chaque itération, nous allons considérer une solution (de base) associée à une base B de A ayant

m variables de base

n – m variables hors base .

• Si on dénote les indices des variables de base IB = {j1, j2, …, jm} où ji est l’indice de la variable de base dans la iième ligne, alors

La valeur de la fonction économique est

IBjux jj 0JBjuoux jj 0

JBjuoux jj 0

Nous retrouvons lesmêmes expressions quepour les problèmes sansbornes sauf que les variables hors base

JBjuoux jj 0i

IBjjj

m

i

ijjJBj

j

m

ij

jij

IBj

m

ijji

m

ij

bczxaccx

xaccbcz

i

iii

ii

)(0

)(

11

11

mixabxJBj

jijiji,...,2,1

Page 70: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Il suffit d’ajuster les critères d’entrée et de

sortie en conséquence pour retrouver la

variante du simplexe.

Nous retrouvons lesmême expressions quepour les problèmes sansbornes sauf que les variables hors base

JBjuoux jj 0

Page 71: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 1: Choix de la variable d’entrée

Le critère pour choisir la variable d’entrée est modifié pour tenir compte des variables hors base xj à leur borne supérieure uj qui peuvent diminuer.

Ainsi, pour un indice

si , il est avantageux d’augmenter xj

si , il est avantageux de diminuer xj

JBj0et0 jj cx

0et jjj cux

Déterminons et

SoitSi , alors la solution est optimale et l’algorithme s’arrête.

Si , alors la variable xs augmente; aller à l’étape 2.1.

Si , alors la variable xs diminue; aller à l’étape 2.2

0:min1

jjJBj

s xcc

0sc

10 sss ccetc

10 sss ccetc

jjjJBj

s uxcc

:max2

21 ,min sss ccc

Page 72: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 2.1: Choix de la variable de sortie

• L’augmentation de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:

i) xs atteint sa borne sup. us

ii) une variable de base

décroît à 0 (dans ce cas )

iii) une variable de base

augmente pour atteindre sa

borne sup. (dans ce cas

)

Soit

rjx

0rsa

rjx

rju

0rsa

0:min,0:min,min11

isis

ij

miis

is

i

mis a

a

gua

a

gu i

JBj

jijii xabg

Si θ = ∞, alors le problème n’est pasborné inférieurement et l’algorithmes’arrête.

Page 73: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 2.1: Choix de la variable de sortie

• L’augmentation de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:

i) xs atteint sa borne sup. us

ii) une variable de base

décroît à 0 (dans ce cas )

iii) une variable de base

augmente pour atteindre sa

borne sup. (dans ce cas

)

Soit

rjx

0rsa

rjx

rju

0rsa

0:min,0:min,min11

isis

ij

miis

is

i

mis a

a

gua

a

gu i

JBj

jijii xabg

Si θ = us, alors l’ensemble des variables de base reste le même et la même base estutilisée à la prochaine itération. La variable xs demeure hors base hors et sa valeur passe de 0 à us. Retourner à l’étape 1.

Page 74: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 2.1: Choix de la variable de sortie

• L’augmentation de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:

i) xs atteint sa borne sup. us

ii) une variable de base

décroît à 0 (dans ce cas )

iii) une variable de base

augmente pour atteindre sa

borne sup. (dans ce cas

)

Soit

rjx

0rsa

rjx

rju

0rsa

0:min,0:min,min11

isis

ij

miis

is

i

mis a

a

gua

a

gu i

JBj

jijii xabg

Si

alors la valeur de la variable d’entrée xs

augmente à θ. La variable d’entrée xs devient variable debase à la place de la variable de sortie .Pivoter sur et retourner à l’étape 1

0:min1

isis

i

mirs

r aa

g

a

g

rsarj

x

Page 75: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 2.1: Choix de la variable de sortie

• L’augmentation de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:

i) xs atteint sa borne sup. us

ii) une variable de base

décroît à 0 (dans ce cas )

iii) une variable de base

augmente pour atteindre sa

borne sup. (dans ce cas

)

Soit

rjx

0rsa

rjx

rju

0rsa

0:min,0:min,min11

isis

ij

miis

is

i

mis a

a

gua

a

gu i

JBj

jijii xabg

Si

alors la valeur de la variable d’entrée xs

augmente à θ. La variable d’entrée xs devient variable debase à la place de la variable de sortie .Pivoter sur et retourner à l’étape 1rsa

0:min

1is

is

ij

mirs

rja

a

gu

a

guir

rjx

Page 76: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 2.2: Choix de la variable de sortie

• La réduction de la valeur de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:

i) xs atteint sa borne inf. 0

ii) une variable de base

décroît à 0 (dans ce cas )

iii) une variable de base

augmente pour atteindre sa

borne sup. (dans ce cas

)

Soit

rjx

0rsa

rjx

rju

0rsa

JBj

jijii xabg

0:min,0:min,min11

isis

ij

miis

is

i

mis a

a

gua

a

gu i

Si θ = us, alors l’ensemble des variables de base reste le même et la même base estutilisée à la prochaine itération. La variable xs demeure hors base hors et sa valeur passe de us à 0. Retourner à l’étape 1.

Page 77: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 2.2: Choix de la variable de sortie

• La réduction de la valeur de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:

i) xs atteint sa borne inf. 0

ii) une variable de base

décroît à 0 (dans ce cas )

iii) une variable de base

augmente pour atteindre sa

borne sup. (dans ce cas

)

Soit

rjx

0rsa

rjx

rju

0rsa

JBj

jijii xabg

0:min,0:min,min11

isis

ij

miis

is

i

mis a

a

gua

a

gu i

Si

alors la valeur de la variable d’entrée xs

est réduite de θ (i.e., xs← us– θ). La variable d’entrée xs devient variable debase à la place de la variable de sortie .Pivoter sur et retourner à l’étape 1

0:min1

isis

i

mirs

r aa

g

a

g

rsarj

x

Page 78: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Étape 2.2: Choix de la variable de sortie

• La réduction de la valeur de la variable d’entrée xs est limitée par la première des trois situations suivantes qui se produit:

i) xs atteint sa borne inf. 0

ii) une variable de base

décroît à 0 (dans ce cas )

iii) une variable de base

augmente pour atteindre sa

borne sup. (dans ce cas

)

Soit

rjx

0rsa

rjx

rju

0rsa

JBj

jijii xabg

0:min,0:min,min11

isis

ij

miis

is

i

mis a

a

gua

a

gu i

Si

alors la valeur de la variable d’entrée xs

et réduite de θ (i.e., xs← us– θ). La variable d’entrée xs devient variable debase à la place de la variable de sortie .Pivoter sur et retourner à l’étape 1

0:min1

isis

ij

mirs

rja

a

gu

a

guir

rsarj

x

Page 79: 3. Variantes de lalgorithme du simplexe. Les deux phases du simplexe Pour initialiser lalgorithme du simplexe, il faut déterminer une solution de base

Domaine réalisable

• L’ensemble des points réalisables pour le système

5x + 3y ≤ 30

2x + 3y ≤ 24

1x + 3y ≤ 18

x,y≥0

x ≤ 4