5.dualité en programmation linéaireferland/ift2505/contenu_cours/5... · problème de...

59
5.Dualité en programmation linéaire

Upload: doquynh

Post on 15-Sep-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

5.Dualité

en

programmation linéaire

Page 2: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Illustration de la notion

• Considérons une entreprise

produisant r produits finis: fk = demande du produit k =1, 2, …, r

utilisant s matières premières: hl = disponibilité de la matière première

l = 1, 2, …, s

• L’entreprise dispose de n procédés de production (activités):

xj = niveau d’utilisation du procédé j = 1, 2, …, n

cj = coût unitaire d’utilisation du procécédé j = 1, 2, …, n

Le procédé j

produit ekj unités de produit k =1, 2, …, r

utilise glj unités de matière l = 1, 2, …, s

pour chaque unité de son utilisation.

Page 3: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Illustration de la notion

• Considérons une entreprise produisant r produits finis:

fk = demande du produit k =1, 2, …, rutilisant s matières premières:

hl = disponibilité de la matière l = 1, 2, …, s

• L’entreprise dispose de n procédés de production (activités):

xj = niveau d’utilisation du procédéj = 1, 2, …, n

cj = coût unitaire d’utilisation du procédéj = 1, 2, …, n

Le procédé jproduit ekj unités de produit k =1, 2, …, rutilise glj unités de matière l = 1, 2, …, s

pour chaque unité de son utilisation.

• Problème de l’entreprise: déterminer le niveau d’utilisation de chaque procédé de production pour satisfaire les demandes en produits sans excéder les disponibilités des matières premières tout en minimisant le coût total de production.

• Modèle

njx

slhxg

rkfxe

xcz

j

n

j

ljlj

k

n

j

jkj

n

j

jj

,...,2,10

)itésdisponibil(,...,2,1

)demandes(,...,2,1àSujet

min

1

1

1

=≥

=≤

=≥

=

=

=

=

Page 4: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Illustration de la notion

• Un entrepreneur propose à l’entreprise d’acheter les quantités de ses matières premières et de lui vendre les quantités de produits pour satisfaire les demandes.

• Il doit énoncer (déterminer) des prix unitaires

vk pour les produits k = 1, 2, … , r

wl pour les matières l = 1, 2, …, s.

vk

wl

njx

slhxg

rkfxe

xcz

j

n

j

ljlj

k

n

j

jkj

n

j

jj

,...,2,10

)itésdisponibil(,...,2,1

)demandes(,...,2,1àSujet

min

1

1

1

=≥

=≤

=≥

=

=

=

=

Page 5: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Illustration de la notion

• L’entrepreneur doit déterminer des prix qui soient intéressants pour l’entreprise.

• Pour vérifier l’intérêt de faire affaire avec l’entrepreneur, l’entreprise doit vérifier que pour chacun de ses procédés de production j, le coût d’acheter les unités de produits fabriquées par une unité d’utilisation du procédé j en tenant compte de ce qu’elle reçoit de l’entrepreneur pour les unités de matières qu’elle évite alors d’utiliser, que ce coût n’excède pas le coût unitaire d’utilisation cj du procédé j

j

s

lllj

r

kkkj

cwgve������

premièresmatièresdesventeladerevenu

1

produitsdesachatd'coût

1∑∑==

−≤

njx

slhxg

rkfxe

xcz

j

n

j

ljlj

k

n

j

jkj

n

j

jj

,...,2,10

)itésdisponibil(,...,2,1

)demandes(,...,2,1àSujet

min

1

1

1

=≥

=≤

=≥

=

=

=

=

vk

wl

Page 6: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Illustration de la notion

• Le problème de l’entrepreneur est de maximiser son profit en s’assurant que ses prix restent intéressants pour l’entreprise

�1 1

coût d'achat des revenu de la vente desproduits matières premières

r s

kj k lj l j

k l

e v g w c

= =

−∑ ∑���

slw

rkv

njcwgve

whvfp

l

k

j

s

l

llj

r

k

kkj

r

k

s

l

llkk

,...,2,10

,...,2,10

,...,2,1àSujet

max

11

1 1

=≥

=≥

=≤−

−=

∑∑

∑ ∑

==

= =

Page 7: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Illustration de la notion

• Problème de l’entreprise: multiplions les contraintes de disponibilités par -1

njx

slhxg

rkfxe

xcz

j

n

j

ljlj

k

n

j

jkj

n

j

jj

,...,2,10

)itésdisponibil(,...,2,1

)demandes(,...,2,1àSujet

min

1

1

1

=≥

=≤

=≥

=

=

=

=

njx

slhxg

rkfxe

xcz

j

n

j

ljlj

k

n

j

jkj

n

j

jj

,...,2,10

)itésdisponibil(,...,2,1

)demandes(,...,2,1àSujet

min

1

1

1

=≥

=−≥−

=≥

=

=

=

=

1− ×

Page 8: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

1 1

1 1

max

S. t. 1,2,...,

0 1,2,...,

0 1,2,...,

r s

k k l l

k l

r s

kj k lj l j

k l

k

l

p f v h w

e v g w c j n

v k r

w l s

= =

= =

= −

− ≤ =

≥ =

≥ =

∑ ∑

∑ ∑

Problème de l’entreprise

Problème de l’entrepreneur

11 12 1 1

21 22 2 2

1 2

j n

j n

s s sj sn

g g g g

g g g g

g g g g

− − • − • −

− − • − • −

− − • − • −

1

1

1

min

S.t. 1,2,..., (demandes)

1,2,..., (disponibilités)

0 1,2,...,

n

j j

j

n

kj j k

j

n

lj j l

j

j

z c x

e x f k r

g x h l s

x j n

=

=

=

=

≥ =

− ≥ − =

≥ =

11 1 11 1

12 2 12 2

1 1

1 1

2 2

ln

r s

r s

n rn n sn

k l

k l

kn

e e e g g g

e e e g g g

e e e g g g

• • − • − •−

• • − • − •−

• • − • − •−

11 12 1 1

21 22 2 2

1 2

j n

j n

r r rj rn

e e e e

e e e e

e e e e

• •

• •

• •

− G

E

T TE G−

Page 9: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

njx

slhxg

rkfxe

xcz

j

n

j

ljlj

k

n

j

jkj

n

j

jj

,...,2,10

)itésdisponibil(,...,2,1

)demandes(,...,2,1àSujet

min

1

1

1

=≥

=−≥−

=≥

=

=

=

=

slw

rkv

njcwgve

whvfp

l

k

j

s

l

llj

r

k

kkj

r

k

s

l

llkk

,...,2,10

,...,2,10

,...,2,1àSujet

max

11

1 1

=≥

=≥

=≤−

−=

∑∑

∑ ∑

==

= =

Primal

Dual

T T

T T

max

Sujet à

, 0

vp f h

w

vE G

w

v w

xc

= −

− ≤ ≥

TminSujet à

0

z c x

Ex

G h

x

w

f ν

=

− −

TminSujet à

0

c x

Ax b

x

T

T

maxSujet à

0

b y

A y c

y

Page 10: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Problème primal et problème dual

Problème de programmation linéaire avec inégalités

Problème de programmation linéaire sous forme standard

TminSujet à

0

c x

Ax b

x

TminSujet à

0

c x

Ax b

x

=

Problème primal Problème dual

Problème primal Problème dual

y x

y x

T

Tmax

Sujet àb y

A y c≤

T

T

maxSujet à

0

b y

A y c

y

Page 11: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Dual du problème du restaurateur

Page 12: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

min 8 6

Sujet à 5 3 30

2 3 24

3 18

, 0

z x y

x y

x y

x y

x y

= − −

+ ≤

+ ≤

+ ≤

1

2

3

v

v

v

x

y

5 3 30

2 3 24

1 3 18

x

y

− − −

− − ≥ − − − −

1

2

3

5 2 1 8

3 3 3 6

v

v

v

− − − −

≤ − − − −

TminSujet à

0

c x

Ax b

x

T

T

maxSujet à

0

b y

A y c

y

min 8 6

Sujet à 5 3 30

2 3 24

3 18

, 0

z x y

x y

x y

x y

x y

= − −

− − ≥ −

− − ≥ −

− − ≥ −

1 2 3

1 2 3

1 2 3

1 2 3

max 30 24 18

Sujet à 5 2 8

3 3 3 6

, , 0

v v v

v v v

v v v

v v v

− − −

− − − ≤ −

− − − ≤ −

Page 13: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Problème primal et problème dual

Problème de programmation linéaire avec inégalités

Problème de programmation linéaire sous forme standard

TminSujet à

0

c x

Ax b

x

TminSujet à

0

c x

Ax b

x

=

Problème primal Problème dual

Problème primal Problème dual

y x

y x

T

Tmax

Sujet àb y

A y c≤

T

T

maxSujet à

0

b y

A y c

y

Page 14: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Dual du problème du restaurateur

Page 15: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

min 8 6

Sujet à 5 3 30

2 3 24

3 18

, 0

z x y

x y

x y

x y

x y

= − −

+ ≤

+ ≤

+ ≤

1 2 3

1 2 3

1 2 3

1

2

3

max 30 24 18

Sujet à 5 + 2 + 8

3 3 3 6

0

0

0

w w w

w w w

w w w

w

w

w

+ +

≤ −

+ + ≤ −

min 8 6

Sujet à 5 3 30

2 3 24

3 18

, , , , 0

z x y

x y u

x y p

x y h

x y u p h

= − −

+ + =

+ + =

+ + =

1

2

3

w

w

w

x

y

u

p

h

1

2

3

5 2 1 8

5 3 1 0 0 30 3 3 3 6

2 3 0 1 0 24 1 0 0 0

1 3 0 0 1 18 0 1 0 0

0 0 1 0

x

wy

u w

p w

h

− = ≤

TminSujet à

0

c x

Ax b

x

=

T

Tmax

Sujet àb y

A y c≤

Page 16: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Exemple d’un problème avec diverses contraintes

Page 17: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

min 4 6

Sujet à 6 3 10

2 2 20

6

, 0

z x y

x y

x y

x y

x y

= − −

+ ≥

+ =

+ ≤

1

2

3

u

u

u

x

y

6 3 10

2 2 20

1 1 6

x

y

≥ − − −

1

2

3

6 2 1 4

3 2 1 6

u

u

u

− −

≤ − −

1 2 3

1 2 3

1 2 3

1 3

max 10 20 6

Sujet à 6 2 4

3 2 6

0, 0

u u u

u u u

u u u

u u

+ −

+ − ≤ −

+ − ≤ −

≥ ≥

min 4 6

Sujet à 6 3 10

2 2 20

6

, 0

z x y

x y

x y

x y

x y

= − −

+ ≥

+ =

− − ≥ −

Page 18: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Problème primal et problème dual

Problème de programmation linéaire avec inégalités

Problème de programmation linéaire sous forme standard

TminSujet à

0

c x

Ax b

x

TminSujet à

0

c x

Ax b

x

=

Problème primal Problème dual

Problème primal Problème dual

y x

y x

T

Tmax

Sujet àb y

A y c≤

T

T

maxSujet à

0

b y

A y c

y

Page 19: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Dérivation d’une paire de problèmes primal-dual

à partir

de l’autre paire de problèmes primal-dual

Page 20: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Tmin

Sujet à

0

c x

Ax b

x

T Tmin 0

Sujet à

0, 0

c x s

Ax Is b

x s

− =

≥ ≥

T

T

T

max

Sujet à 0

b y

cAy

I

T

Tmax

Sujet à0

b y

A y cIy

− ≤

T

Tmax

Sujet à0

b y

A y cy

Page 21: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

• Il est facile de démontrer que nous pouvons passer d’une paire de problèmes primal-dual à l’autre.

• Il est également facile de démontrer que le problème dual du problème dual est le problème primal.

• Nous allons donc démontrer les théorèmes de dualité en se référant à la paire où le problème primal est sous forme standard:

TminSujet à

0

c x

Ax b

x

=

primal Dual

T

Tmax

Sujet àb y

A y c≤

Page 22: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

• Théorème de dualité faible

Si (i.e., x est réalisable pour le problème primal) et si (i.e., y est réalisable pour le problème dual),

Preuve En effet, .

{ }0,: ≥=∈ xbAxxx

{ }T:y y A y c∈ ≤

T Talors b y c x≤

T T T T Tpuisque et que 0b y x A y x c A y c x= ≤ ≤ ≥

*

T T *

T

Si est une solution réalisable du dual et est une solution optimale du primal

alors

valeur optimale du primal

et ainsi,

est une borne inférieure sur

NOTE:

la

y x

b y c x

b y

≤ =

valeur optimale du primal

Page 23: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

*

T T *

T

Si est une solution réalisable du dual et est une solution optimale du primal

alors

valeur optimale du primal

et ainsi,

est une borne inférieure sur

NOTE:

la

y x

b y c x

b y

≤ =

valeur optimale du primal

T

T

En résolvant le problème dual

nous déterminons la meilleure borne inférieur

Conséquence:

e.

max

Sujet à

b y

A y c≤

Page 24: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

• Corollaire Si et , et si

, alors x* et y* sont des solutions optimales respectivement pour le problème primal et pour le problème dual.

Preuve Du théorème de dualité faible, il découle que pour toute solution réalisable x du problème primal

Par conséquent x* est solution optimale du problème primal.

Une preuve similaire est utilisée pour démontrer que y* est solution optimale du problème dual.

{ }0,:*≥=∈ xbAxxx { }* T:y y A y c∈ ≤

T * T *b y c x=

T T * T * T * T T * T *et par hypothèse . Donc .c x b y b y c x c x b y c x≥ = ≥ =

Page 25: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

• Théorème de dualité forte Si un des deux problèmes primal ou dual possède une solution optimale avec valeur finie, alors la même chose est vraie pour l’autre problème, et les valeurs optimales des deux problèmes sont égales. Si un des deux problèmes n’est pas borné, alors le domaine réalisable de l’autre problème est vide.

Preuve La seconde partie de l’énoncé découle directement du théorème de dualité faible. En effet, supposons que le problème primal n’est pas bornée inférieurement; ainsi cTx→ – ∞. Or si le problème dual était réalisable, alors il existerait un et par le théorème de dualité faible, nous aurions que ; i.e., bTy serait une borne inférieure sur la valeur de la fonction économique du primal cTx, une contradiction.

{ }T:y y A y c∈ ≤T T

b y c x≤

Page 26: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

Pour démontrer la première partie, supposons que le problème primal possède une solution de base optimale x* pour laquelle la valeur de la fonction économique est égale à z*.

Soit les variables de base correspondantes.

Dénotons , et π le vecteur des multiplicateurs associés à la base optimale. Rappelons que les coûts relatifs des variables sont définis comme suit

où dénote la je colonne de la matrice A.

Supposons que cette solution de base optimale est telle que

Par conséquent

mjjj xxx ,...,,21

T 1, 2,...,j j jc c a j nπ •= − ∀ =

ja•

T 0 1,2,...,j j jc c a j nπ•

= − ≥ ∀ =

T 1,2,...,j ja c j nπ • ≤ ∀ =

T

1 2[ , ,..., ]B j j jm

c c c c=

Page 27: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

Supposons que cette solution de base optimale est telle que

Par conséquent

ce qui s’écrit sous la forme matricielle.

c’est-à-dire que π est une solution réalisable pour le problème dual.

T 0 1,2,...,j j jc c a j nπ •= − ≥ ∀ =

T 1,2,...,j ja c j nπ • ≤ ∀ =

T

1 1T

T22

T

nn

a c

a cA c

ca

π π

≤ ≡ ≤

��{ }T:y A y cπ⇒ ∈ ≤

Tou 1, 2,...,j ja c j nπ•

≤ ∀ =

Page 28: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorèmes de dualité

Évaluons maintenant la valeur de la solution réalisable π pour le problème dual. Rappelons d’abord la définition de π

.

Il s’ensuit que

.

Par conséquent, il découle du Corollaire du théorème de dualité faible que π est une solution optimale du problème dual, et que

.

T1BB cπ

−=

T *b zπ =

T TT T 1 1 T * *( )B B B Bb b B c B b c x c zπ − −= = = =

Page 29: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

• Les prochains résultats introduisent de nouvelles conditions nécessaires et suffisantes pour que des solutions réalisables respectivement pour les problèmes primal et dual soient optimales pour ceux-ci.

• Considérons d’abord la paire suivante de problèmes primal-dual

TminSujet à

0

c x

Ax b

x

=

primal Dual

T

T

maxSujet à

b y

A y c≤ xy

Page 30: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

• Théorème des écarts complémentaires 1

Soit x et y des solutions réalisables respectivement pour les problèmes primal et dual précédents. Alors x et y sont des solutions optimales pour ces problèmes si et seulement si pour tout j = 1,2,…,n

Preuve Démontrons d’abord que les conditions sont suffisantes. Supposons que les conditions (i) et (ii) sont satisfaites pour tout j=1,2,…,n. Alors

( )

( )

T

T

0

0j j j

j j j

i x a y c

ii a y c x

> ⇒ =

< ⇒ =

T[ ] 0 1, 2 , . . . ,j j jx a y c j n•

− = ∀ =

T

1

Donc 0n

j j j

j

x a y c•

=

− = ∑

TminSujet à

0

c x

Ax b

x

=

T

T

maxSujet à

b y

A y c≤ x

( )⇐

Page 31: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

Par conséquent

et le corollaire du théorème de dualité faible implique que x et y sont des solutions optimales respectivement pour les problèmes primal et dual.

T T T T T T T

1 1 1

Orn n n

j j j j j j j

j j j

x a y c x a y x c x A y c x b y c x• •

= = =

− = − = − = − ∑ ∑ ∑

T[ ] 0 1, 2 , . . . ,j j jx a y c j n•

− = ∀ =

T

1

Donc 0n

j j j

j

x a y c•

=

− = ∑

T Tb y c x=

[ ]

T T T T1 1 2 2

1

T1

T2

1 2

T

T

, , ,

n

j j n n

j

n

n

T

x a y x a x a x a y

a

ax x x y

a

x A y

• • • •

=

= + + +

=

=

∑ …

…�

Page 32: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

Inversement, démontrons que les conditions sont nécessaires. Supposons que les solutions x et y sont optimales respectivement pour le primal et le dual:

Par conséquent, se référant à la première partie de la preuve

et la preuve est complétée.

T

T

Puisque 0 et 1,2,..., ,

il sensuit que 0 1,2,...,j j j

j j j

x a y c j n

x a y c j n

≥ ≤ ∀ =

− = ∀ =

( )⇒

T T T T T T T

1 1 1

0n n n

j j j j j j j

j j j

x a y c x a y x c x A y c x b y c x• •

= = =

− = − = − = − = ∑ ∑ ∑

T T .b y c x=

Page 33: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

• Considérons maintenant l’autre paire de problèmes primal-dual

• Théorème des écarts complémentaires 2

Soit x et y des solutions réalisables respectivement pour les problèmes primal et dual précédents. Alors x et y sont des solutions optimales pour ces problèmes si et seulement si

pour tout j = 1,2,…,n pour tout i=1,2,…,m

TminSujet à

0

c x

Ax b

x

( )( )

T

T

0

0j j j

j j j

i x a y c

ii a y c x

> ⇒ =

< ⇒ =

( )

( ) iii

iii

bxayiv

ybxaiii

=⇒>

=⇒>

0

0

TmaxSujet à

0

T

b y

A y c

y

y x

Page 34: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

Preuve Ce théorème peut être démontré comme un corollaire du théorème des écarts complémentaires 1. Transformons le problème primal sous une forme standard en introduisant des variables d’écarts si ,

i=1,2,…,m. Le problème devient alors

Le dual de ce problème s’écrit

TminSujet à

, 0

c x

Ax Is b

x s

− =

T T

T T

max maxSujet à Sujet à

0 0

b y b y

A y c A y c

I y I y

≤ ≡ ≤

− ≤ ≥

TminSujet à

0

c x

Ax b

x

Page 35: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

Appliquons le théorème précédent pour la paire de problèmes suivants

Pour j=1,2,…,n

et pour i=1,2,…,m

TminSujet à

, 0

c x

Ax Is b

x s

− =

( )

( )

T

T

0

0j j j

j j j

i x a y c

ii a y c x

> ⇒ =

< ⇒ =

( )

( ) 00

00

=⇒<−

=−⇒>

ii

ii

syiv

ysiii

T

T

maxSujet à

0

b y

A y c

I y

− ≤

x

s

y

Page 36: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Théorie des écarts complémentaires

Pour j=1,2,…,n

et pour i=1,2,…,m

et alors les conditions deviennent

( )

( )

T

T

0

0j j j

j j j

i x a y c

ii a y c x

> ⇒ =

< ⇒ =

( )

( ) 00

00

=⇒<−

=−⇒>

ii

ii

syiv

ysiii

iii bxas −=•

Or

( )

( ) iii

iii

bxayiv

ybxaiii

=⇒>

=⇒>

0

0

TminSujet à

, 0

c x

Ax Is b

x s

− =

Page 37: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Algorithme dual du simplexe

• L’algorithme dual du simplexe est une méthode itérative pour résoudre un problème de programmation linéaire sous sa forme standard

njx

bxaxaxa

bxaxaxa

bxaxaxa

àSujet

xcxcxcz

j

mnmnmm

nn

nn

nn

,...,2,10

...

....

....

...

...

min

2211

22222121

11212111

2211

=≥

=+++

=+++

=+++

++=

Page 38: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Lien avec la résolution graphique

Quand on résout le problème du restaurateur avec la méthode du simplexe:

La solution initiale est donnée par:x = y = 0 ( u = 30, p = 24, h = 18 ) et la valeur de z = 0

Quand on augmente la valeur de x,la solution devient

x = 6, y = 0 (u = 0, p = 12, h = 12) et la valeur de z = – 48

Quand on augmente la valeur de y,la solution devient

x = 3, y = 5(u = 0, p = 3, h = 0) et la valeur de z = – 54

5x + 3y ≤ 30

5x + 3y + u =30

2x + 3y ≤ 242x + 3y + p =24

1x + 3y ≤ 18

1x + 3y + h = 18

• •

On peut démontrer que la méthode du simplexe circule autour du

domaine réalisable pour identifier une solution optimale sans jamais

pénétrer à l'intérieur du domaine réalisable.

Page 39: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

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 40: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Algorithme dual du simplexe

• À chaque itération nous avons une solution de base du problème qui n’est pas réalisable, sauf à la dernière itération de l’algorithme, et pour laquelle les coûts relatifs de toutes les variables sont non négatifs.

• Par exemple, considérons le problèmemin 3/ 2 1/ 2 27

Sujet à 1/ 4 1/ 4 6 / 4

1/ 4 3/ 4 15 / 2

1/12 5 /12 13/ 2

, , , , 0

z u h

x u h

u p h

y u h

x y u p h

= + −

+ − = −

− + − =

− + =

Page 41: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Algorithme dual du simplexe

Analysons une itération typique de l’algorithme où le tableau du simplexe associé à la solution de base actuelle est le suivant:

mic

njc

ij

j

,...,2,10

,...,2,10

=∀=

=∀≥

Page 42: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Critère de sortie

mic

njc

ij

j

,...,2,10

,...,2,10

=∀=

=∀≥

termine.se algorithmeL'optimale.et

réalisableestsolutionlaalors,,...,2,10S mibi i =∀≥

Page 43: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Critère de sortie

mic

njc

ij

j

,...,2,10

,...,2,10

=∀=

=∀≥ { }1

1

1

Sinon soit min 0 . S 0 1, 2,..., , alors

le problème n'est pas réalisable. En effet puisque

0 et 0

il est impossible que .

r rjii m

n

rj rjj

n

rj rjj

b b i a j n

a x b

a x b

≤ ≤

=

=

= < ≥ ∀ =

≥ <∑

=∑

Page 44: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Critère de sortie

mic

njc

ij

j

,...,2,10

,...,2,10

=∀=

=∀≥

{ }

.tableauduligneladansferasepivotLe

sortie.devariablelaest.0minsoitSinon1

r

xbbrj

imi

r <=≤≤

Page 45: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Critère d’entrée

mic

njc

ij

j

,...,2,10

,...,2,10

=∀=

=∀≥

Nous allons choisir la variable d’entrée xs de telle sorte quei) la valeur de la variable de sortie xr augmente lorsque

la valeur de xs augmenteii) les coûts relatifs des variables demeurent non

négatifs lorsque le pivot sur est complété pour effectuer le changement de base

rsa

⇐< 0rsa1 1s s

r rs s

m ms s

b a x

b a x

b a x

Page 46: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Critère d’entrée

mic

njc

ij

j

,...,2,10

,...,2,10

=∀=

=∀≥

0rsa <

En complétant le pivot sur le coût relatif de la variable xj devient

s

rs

rjj c

a

ac −

rsa

augmenter.qu'peutnedevaleurla

,0et0puisquealors,0Si

j

rssrj

c

aca <≥≥

1 2 10 1 0 0rnr r r

rs rs rs rs rs

aa a b

a a a a a� � � � �

Page 47: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Critère d’entrée

mic

njc

ij

j

,...,2,10

,...,2,10

=∀=

=∀≥

0rsa <

En complétant le pivot sur le coût relatif de la variable xj devient

s

rs

rjj c

a

ac −

rsa

0

i.e.,négatif;nondemeurevariablelade

relatifcoutnouveaulequeassurers'fautil,0queteltoutPour

≥−

<

s

rs

rjj

j

rj

ca

ac

x

aj

1 2 10 1 0 0rnr r r

rs rs rs rs rs

aa a b

a a a a a� � � � �

Page 48: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Critère d’entrée

<−

=−

<=

<∀≤

<∀≤−

<∀≥−

<

≤≤≤≤0:minou0:max

quetelestentréed'variableladeindicel'Donc

.0quetel

0quetel0

0quetel0

i.e.,négatif;nondemeurevariablelade

relatifcoutnouveaulequeassurers'fautil,0queteltoutPour

11rj

rj

j

njrs

srj

rj

j

njrs

s

rj

rs

s

rj

j

rj

rs

s

rj

j

rjs

rs

rjj

j

rj

aa

c

a

ca

a

c

a

c

s

aja

c

a

c

aja

c

a

c

ajca

ac

x

aj

Page 49: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Pivot

• Pour retrouver le tableau du simplexe associé à la nouvelle base où la variable d’entrée xs remplace la variable de sortie il suffit de faire un

pivot sur l’élément . 0<rsarj

x

Page 50: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard
Page 51: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

1 3 0 0 1 0 18

0 3 0 1 2 0 12

0 12 1 0 5 0 60

0 18 0 0 8 1 114

x y u p h z

x

p

u

z

− − −

− − −

Autre exemple avec le problème du restaurateur

Solution de base non réalisable

Page 52: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

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 53: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

1 3 0 0 1 0 18

0 3 0 1 2 0 12

0 12 1 0 5 0 60

0 18 0 0 8 1 114

x y u p h z

x

p

u

z

− − −

− − −

1 11 0 0 0 3

4 41 3

0 0 1 0 34 41 5

0 1 0 0 312 123 1

0 0 0 1 542 2

x y u p h z

x

p

y

z

− −

Solution de base non réalisable

est la variable de sortieu

{ } { }

critère de sélection de la variable d'entrée

18 8 max , max -1.5,-1.612 5et est la variable d'entréey

=− −

Solution de base optimale

Page 54: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

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 55: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Parallèle entre

algo. du simplexe et algo. dual du simplexe

Algo. du simplexe

Recherche dans le domaine réalisable

Choisit la variable d’entrée pour réduire

la valeur de la fonction économique

Choisit la variable de sortie pour

préserver la réalisabilité

Stop quand une solution optimale est

trouvée ou que le problème n’est pas

borné inférieurement

Algo. dual du simplexe

Recherche à l’extérieur du domaine

réalisable

Choisit le variable de sortie pour éliminer

une variable de base négative

Choisit la variable d’entrée pour

préserver la condition d’optimalité

Stop quand la solution est réalisable ou

quand le problème n’est pas réalisable

jc j ∀≥ 0

Page 56: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Convergence

• Hypothèse de non dégénérescence:les coûts relatifs de toutes les variables hors base sont positifs à chaque itération

• Théorème Considérons le problème de programmation linéaire sous forme standard

Sous l’hypothèse de non dégénérescence, l’algorithme dual du simplexe setermine en un nombre fini d’itérations.

Tmin

Sujet à

0

, ,

matrice

n m

z c x

Ax b

x

c x R b R

A m n

=

=

∈ ∈

×

Page 57: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Convergence

• Preuve:

En supposant que la matrice A est de plein rang m, chaque solution de base doit comporter m variables de base.

Il y a un nombre fini de façons de choisir colonnes de parmi les pour former des sous matrices :

!

! ( )!

m A n

m m

nn

m m n m

×

=

Or les bases non réalisables constituent un sous ensemble de ces-dernières. !

Donc est une borne supérieure sur le nombre de ! ( )!

solutions de base non réalisables.

nn

m m n m

=

Page 58: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Convergence

• Considérons l’effet de compléter un pivot sur la valeur de la fonction économique lors d’une itération de l’alg. dual du simplexe

Division de ligne r

par rsa

→ sc×rs

r

a

b

Soustraire de

encedéégénéresnondehyp.paretpuisque 0,0,0

~0000

><<

−<−−=−→−

srsr

rs

r

s

cab

za

bczzz

dégénérescence

Page 59: 5.Dualité en programmation linéaireferland/ift2505/contenu_cours/5... · Problème de programmation linéaire avec inégalités Problème de programmation linéaire sous forme standard

Convergence

Donc et ainsi la valeur de l’objectif augmente strictement d’une itération à l’autre. Par conséquent une même solution de base non réalisable où les coûts relatifs de toutes les variables hors base sont positifs, ne peut se répéter au cours de l’application de l’algorithme dual du simplexe.Puisque le nombre de ces dernières est borné (fini), il s’ensuit que l’algorithme dual du simplexe doit être complété en un nombre fini d’itérations.

00~ zz >

encedéégénéresnondehyp.paretpuisque 0,0,0

~0000

><<

−<−−=−→−

srsr

rs

r

s

cab

za

bczzz

dégénérescence