la phase i de l’algorithme du simplexe

18
La phase I de l’algorithme du simplexe Phase I duale : fonction objectif artificielle Phase I primale : second membre artificiel Phase I primale : probl` eme auxiliaire Les algorithmes ` a deux phases J.-F. Hˆ eche, ROSO-EPFL Recherche op´ erationnelle SC & PH 134

Upload: joss87

Post on 15-Jun-2015

1.457 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: La Phase I de l’algorithme Du Simplexe

La phase I de l’algorithme du simplexe

• Phase I duale : fonction objectif artificielle

• Phase I primale : second membre artificiel

• Phase I primale : probleme auxiliaire

• Les algorithmes a deux phases

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 134

Page 2: La Phase I de l’algorithme Du Simplexe

La phase I de l’algorithme du simplexe

Partant d’un PL standard, si la base initiale (formee des variables d’ecart)est primal/dual admissible, ou si une base primal/dual admissible estfournie par une methode had hoc, la phase II de l’algorithme primal/dualdu simplexe permet de determiner une solution optimale, si elle existe, oude prouver que le probleme est non borne ou sans solution admissible.

Que faire lorsqu’un tableau primal ou dual admissible n’est pas connu ?

Deux approches principales sont possibles.

1. Modifier temporairement les donnees du probleme afin que la baseinitiale soit admissible.

2. Definir un probleme auxiliaire pour lequel une base admissible est facilea trouver et dont la solution optimale fournit un tableau admissible duprobleme de depart ou prouve qu’il n’en existe pas.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 135

Page 3: La Phase I de l’algorithme Du Simplexe

La phase I duale : utiliser un objectif artificiel

Soit le programme lineaire

Maximiser z = 2x1 ! x2

s.c. x1 + x2 " 3x2 # 2

x1 ! x2 # 1x1 , x2 " 0

dont le tableau initial n’est ni primal-admissible ni dual-admissible

T 0 =

x1 x2 x3 x4 x5 z!1 !1 1 0 0 0 !30 1 0 1 0 0 21 !1 0 0 1 0 1!2 1 0 0 0 1 0

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 136

Page 4: La Phase I de l’algorithme Du Simplexe

Supposons un instant que la fonction objectif soit nulle (c = 0). Le tableauinitial serait alors

T 0 =

x1 x2 x3 x4 x5 z!1!1 !1 1 0 0 0 !30 1 0 1 0 0 21 !1 0 0 1 0 1!2 1 0 0 0 1 0 p.m.0 0 0 0 0 1 0

Ce tableau est dual-admissible et on peut appliquer la phase II del’algorithme dual du simplexe (avec la regle de Bland car la solution basiqueduale est degeneree).

Le premier pivot est !11 = !1 (les candidats pour entrer dans la base sontx1 et x2, Bland $ x1 est retenu).

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 137

Page 5: La Phase I de l’algorithme Du Simplexe

T 1 =

x1 x2 x3 x4 x5 z1 1 !1 0 0 0 30 1 0 1 0 0 20 !2!2 1 0 1 0 !20 3 !2 0 0 1 6 p.m.0 0 0 0 0 1 0

T 2 =

x1 x2 x3 x4 x5 z1 0 !1/2 0 1/2 0 20 0 1/2 1 1/2 0 10 1 !1/2 0 !1/2 0 10 0 !1/2 0 3/2 1 3 p.m.0 0 0 0 0 1 0

Le tableau T 2 est primal-admissible, on peut donc supprimer la fonctionobjectif auxiliaire . . .

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 138

Page 6: La Phase I de l’algorithme Du Simplexe

. . . et terminer l’optimisation a l’aide de la phase II de l’algorithme primaldu simplexe.

T 2 =

x1 x2 x3 x4 x5 z1 0 !1/2 0 1/2 0 20 0 1/2 1 1/2 0 10 1 !1/2 0 !1/2 0 10 0 !1/2 0 3/2 1 3

T 3 =

x1 x2 x3 x4 x5 z1 0 0 1 1 0 30 0 1 2 1 0 20 1 0 1 0 0 20 0 0 1 2 1 4

Le tableau est optimal, la solution optimale est x!1 = 3, x!

2 = 2 et z! = 4.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 139

Page 7: La Phase I de l’algorithme Du Simplexe

La phase I primale : utiliser un second membre artificiel

Soit le programme lineaire

Maximiser z = 2x1 ! x2

s.c. x1 + x2 " 3x2 # 2

x1 ! x2 # 1x1 , x2 " 0

dont le tableau initial n’est ni primal-admissible ni dual-admissible

T 0 =

x1 x2 x3 x4 x5 z!1 !1 1 0 0 0 !30 1 0 1 0 0 21 !1 0 0 1 0 1!2 1 0 0 0 1 0

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 140

Page 8: La Phase I de l’algorithme Du Simplexe

Supposons un instant que le second membre soit nul (b = 0). Le tableauinitial serait alors

T 0 =

x1 x2 x3 x4 x5 z p.m.!1 !1 1 0 0 0 !3 00 1 0 1 0 0 2 011 !1 0 0 1 0 1 0!2 1 0 0 0 1 0 0

Ce tableau est primal-admissible et on peut appliquer la phase II del’algorithme primal du simplexe (avec la regle de Bland car la solutionbasique primale est degeneree).

Le premier pivot est !31 = 1.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 141

Page 9: La Phase I de l’algorithme Du Simplexe

T 1 =

x1 x2 x3 x4 x5 z p.m.0 !2 1 0 1 0 !2 00 11 0 1 0 0 2 01 !1 0 0 1 0 1 00 !1 0 0 2 1 2 0

T 2 =

x1 x2 x3 x4 x5 z p.m.0 0 1 2 1 0 2 00 1 0 1 0 0 2 01 0 0 1 1 0 3 00 0 0 1 2 1 4 0

Le tableau T 2 est dual-admissible, on peut donc supprimer le secondmembre auxiliaire . . . et arreter la resolution car le tableau obtenu estegalement primal-admissible (pour le b d’origine) ; il est donc optimal.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 142

Page 10: La Phase I de l’algorithme Du Simplexe

La phase I primale : utiliser un probleme auxiliaire

On va construire un probleme auxiliaire verifiant les conditions suivantes :• Il admet toujours des solutions admissibles.

• Il est facile de trouver une solution basique admissible du problemeauxiliaire.

• Il admet toujours une solution optimale.

• Le PL de depart admet des solutions admissibles si et seulement si lavaleur optimale du probleme auxiliaire est nulle.

• Si la valeur optimale du probleme auxiliaire est nulle, il est faciled’obtenir un tableau admissible pour le PL de depart a partir du tableauoptimal du probleme auxiliaire.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 143

Page 11: La Phase I de l’algorithme Du Simplexe

Construction du probleme auxiliaire

Si le tableau initial associe a un PL standard n’est pas admissible, lesysteme de contraintes a la forme

A1xD + Ix1E = b1 (b1 " 0)

A2xD + Ix2E = b2 (b2 < 0)

En ajoutant x0 au membre de droite des contraintes pour lesquelles bi < 0,on obtient

A1xD + Ix1E = b1

A2xD + Ix2E = b2 + 1x0

et si x0 prend une valeur " su!samment grande (" max{|bi| | bi < 0}), lasolution xD = 0, x1

E = b1, x2E = b2 + 1" et x0 = " est admissible.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 144

Page 12: La Phase I de l’algorithme Du Simplexe

D’autre part, le PL de depart admet des solutions admissibles si etseulement si le systeme precedent admet des solutions non negativesverifiant x0 = 0.On associe donc au PL standard (P ) le probleme auxiliaire (P aux)

Max (z, s.c. xD,xE " 0) (P )

avec A1xD + Ix1E = b1 (b1 " 0)

A2xD + Ix2E = b2 (b2 < 0)

!cDxD ! 0x1E ! 0x2

E + z = 0

Max (z", s.c. xD,xE " 0, x0 " 0) (P aux)

avec A1xD + Ix1E = b1

!1x0 + A2xD + Ix2E = b2

! cDxD ! 0x1E ! 0x2

E + z = 0x0 + z" = 0

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 145

Page 13: La Phase I de l’algorithme Du Simplexe

Exemple

Soit le PL standard Max z = 2x1 ! x2

s.c. !x1 ! x2 + x3 = !3! x2 + x4 = !2

x1 ! x2 + x5 = 1xi " 0 i = 1, . . . , 5

On lui associe le probleme auxiliaireMax z" = !x0

s.c. !x0 ! x1 ! x2 + x3 = !3!x0 ! x2 + x4 = !2

x1 ! x2 + x5 = 1! 2x1 + x2 + z = 0 (pro memoria)xi " 0 i = 0, . . . , 5

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 146

Page 14: La Phase I de l’algorithme Du Simplexe

Le tableau initial du probleme est non admissible. On ajoute donc lavariable auxiliaire x0 dans les contraintes i verifiant bi < 0 et on definit unefonction objectif auxiliaire z" = !x0 (a maximiser).

x0 x1 x2 x3 x4 x5 z z"

!1 !1 !1 1 0 0 0 0 !3!1 0 !1 0 1 0 0 0 !20 1 !1 0 0 1 0 0 10 !2 1 0 0 0 1 0 01 0 0 0 0 0 0 1 0

Ce tableau n’est toujours pas admissible (pour le probleme auxiliaire) maisen introduisant x0 dans la base en lieu et place de la variable d’ecartassociee au bi le plus petit (ici x3), on obtient un tableau admissible.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 147

Page 15: La Phase I de l’algorithme Du Simplexe

Algorithme primal du simplexe (phase I)

Donnees : Un tableau non admissible.

Resultat : Un tableau admissible ou un certificat d’absence de solutions admissibles.

(1) Construire le PL auxiliaire et un tableau initial admissible :

! Introduire la variable auxiliaire x0 dans toutes les contraintes verifiant bi < 0.! Ajouter la fonction objectif auxiliaire (a maximiser) z! = !x0.

! Faire entrer x0 dans la base en pivotant sur !j0 ou

j = min {i | bi = min {bk | bk < 0}} .

(2) Resoudre le PL auxiliaire a l’aide de la phase II de l’algorithme du simplexe et enutilisant la regle de Bland.

! Si z! = 0 a l’optimum, supprimer les colonnes de x0 et de z! et la ligne de z!. Letableau restant est admissible pour le probleme de depart.

! Si z! < 0 a l’optimum, le probleme de depart n’admet pas de solutions admissibles.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 148

Page 16: La Phase I de l’algorithme Du Simplexe

Les algorithmes du simplexe a deux phases

En combinant les algorithmes presentes jusqu’ici, il est possible de resoudren’importe quel programme lineaire. Ces algorithmes du simplexe sont dits adeux phases, chacune d’elles etant soit

• primale : la solution basique primale est et reste admissible,

• duale : la solution basique duale est et reste admissible.

En modifiant temporairement la fonction objectif, afin d’obtenir un tableauinitial dual-admissible, on obtient un algorithme « dual-primal » composed’une phase duale suivie d’une phase primale.

En modifiant temporairement le second membre, afin d’obtenir un tableauinitial primal-admissible, on definit un algorithme « primal-dual » composed’une phase primale suivie d’une phase duale.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 149

Page 17: La Phase I de l’algorithme Du Simplexe

Classiquement, l’algorithme du simplexe a deux phases designe unalgorithme « primal-primal » utilisant, si besoin est, un probleme auxiliairedans une premiere phase.

Finalement, definissant correctement un probleme auxiliaire dual, on peutconstruire un algorithme « dual-dual » a deux phases.

Il existe egalement des algorithmes de pivotages a une phase. Ce typed’algorithmes ne sera pas etudie ici mais nous pouvons citer, parmi les plusconnus, l’algorithme primal-dual du simplexe ou la methode criss-cross.

Notons finalement que les algorithmes de points interieurs, dont nousparlerons brievement, sont egalement des algorithmes a une phase (mais ilsn’utilisent pas de pivotages et ne visitent pas une suite de solutionsbasiques).

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 150

Page 18: La Phase I de l’algorithme Du Simplexe

Objectifs

• Savoir decrire les di"erents algorithmes du simplexe a deux phases. Enparticulier, connaıtre les donnees initiales requises par chaque algorithmeet ses issues possibles.

• Pouvoir resoudre un programme lineaire a l’aide des algorithmes a deuxphases « dual-primal » et « primal-dual ». En particulier, connaıtre pourchaque variante les regles de selection du pivot et les conditions d’arret.

J.-F. Heche, ROSO-EPFL Recherche operationnelle SC & PH 151