optimisation dans les réseaux

121
Optimisation dans les réseaux Recherche Opérationnelle GC-SIE

Upload: fynn

Post on 07-Jan-2016

59 views

Category:

Documents


2 download

DESCRIPTION

Optimisation dans les réseaux. Recherche Opérationnelle GC-SIE. Le problème de transbordement. Énoncé. sous contraintes. Dualité. Lagrangien. Fonction duale. Dualité. Comme L(x,p) est séparable en x,. avec. (a ij - a )x ij. x ij. b ij. c ij. Dualité. (a ij - a )x ij. a ij - a³ 0. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Optimisation dans les réseaux

Optimisation dans les réseaux

Recherche OpérationnelleGC-SIE

Page 2: Optimisation dans les réseaux

Le problème de transbordement

Page 3: Optimisation dans les réseaux

Transbordement Michel Bierlaire 3

Énoncé

sous contraintes

Page 4: Optimisation dans les réseaux

Transbordement Michel Bierlaire 4

Dualité

Lagrangien

Fonction duale

Page 5: Optimisation dans les réseaux

Transbordement Michel Bierlaire 5

Dualité

Comme L(x,p) est séparable en x,

avec

Page 6: Optimisation dans les réseaux

Transbordement Michel Bierlaire 6

Dualité

cijbij

xij

aij-0 aij-0

(aij-

)xij

cijbij

xij

(aij-

)xij

Page 7: Optimisation dans les réseaux

Transbordement Michel Bierlaire 7

Dualité

Condition des écarts complémentaires (CEC)

La paire (x,p) vérifie la condition des écarts complémentaires si x vérifie les contraintes de capacité et

pi-pj aij (i,j)A tel que xij < cij

pi-pj aij (i,j)A tel que bij < xij

Note pi-pj aij (i,j)A tel que bij < xij < cij

Page 8: Optimisation dans les réseaux

Transbordement Michel Bierlaire 8

Dualité

Théorème : Un vecteur de flot admissible x* et

un vecteur p* satisfont la CEC ssi x* et p* sont solutions primales et duales (resp.) et les coûts optimaux sont égaux.

Page 9: Optimisation dans les réseaux

Transbordement Michel Bierlaire 9

Dualité

Note : Si bij = 0 et cij = +

La CEC pi-pj aij (i,j)A tel que xij < cij

pi-pj aij (i,j)A tel que bij < xij

s’écrit pi-pj aij (i,j)A

pi-pj aij (i,j)A tel que xij > 0

Page 10: Optimisation dans les réseaux

Transbordement Michel Bierlaire 10

Transformations

Mettre les capacités inférieures à 0bij xij cij

Posons zij = xij – bij ou xij = zij + bij

Fonction objectif

Page 11: Optimisation dans les réseaux

Transbordement Michel Bierlaire 11

Transformations

Contraintes d’offre-demande

Page 12: Optimisation dans les réseaux

Transbordement Michel Bierlaire 12

Transformations

Contraintes de capacitébij xij cij

bij zij+bij cij

0 zij cij-bij

On peut donc supposer bij = 0 (i,j)A sans perte de généralité.

Page 13: Optimisation dans les réseaux

Transbordement Michel Bierlaire 13

Transformations

Supprimer les contraintes supérieures de capacité

Idée : ajouter des variables d’écartxij + zij = cij avec zij 0

Fonction objectif : inchangée Contraintes de capacité :

0 xij cij

xij cij zij 0

xij 0 et zij 0

Page 14: Optimisation dans les réseaux

Transbordement Michel Bierlaire 14

Transformations

Contraintes d’offre-demande

Page 15: Optimisation dans les réseaux

Transbordement Michel Bierlaire 15

Transformations

Interprétation :

jiFlot xij

Coût aij

si sj

jFlot xij

Coût aij

cij sj-kcjk

iFlot zij

si-kcik

Coût 0

Capacité [0,cij] Capacité [0,[

Page 16: Optimisation dans les réseaux

Transbordement Michel Bierlaire 16

Transformations

Interprétation :

jiFlot 50

Coût aij

50 -50

jFlot 50

Coût aij

1000 -50

iFlot 950

-950

Coût 0

Capacité [0,1000] Capacité [0,[

Page 17: Optimisation dans les réseaux

Transbordement Michel Bierlaire 17

Transformations

Interprétation :

jiFlot 50

Coût aij

50 -50

jFlot 50

Coût aij

50 -50

iFlot 0

0

Coût 0

Capacité [0,50] Capacité [0,[

Page 18: Optimisation dans les réseaux

Transbordement Michel Bierlaire 18

Problème transformé

sous contraintes

Page 19: Optimisation dans les réseaux

Transbordement Michel Bierlaire 19

Problème transformé

Attention : En l’absence de capacités supérieures,

le problème peut être non borné. Cela n’arrive cependant pas s’il s’agit

d’un problème transformé. Le problème est non borné ssi il

possède au moins un solution admissible, et s’il existe un cycle avançant de coût négatif.

Page 20: Optimisation dans les réseaux

Transbordement Michel Bierlaire 20

Méthode du simplexe

Idée : exploiter explicitement la structure de réseau.

Élément principal : arbre maximalDéfinitions : Un arbre est un graphe connexe sans

cycle Un arbre maximal d’un graphe G est un

sous-graphe qui soit un arbre et qui inclue tous les nœuds du graphe

Une feuille est un nœud de degré 1 dans un arbre.

Page 21: Optimisation dans les réseaux

Transbordement Michel Bierlaire 21

Méthode du simplexe

Graphe :

3

2

1 4 5

Page 22: Optimisation dans les réseaux

Transbordement Michel Bierlaire 22

Méthode du simplexe

3

2

1 4 5

Arbre maximal :

i = feuilles

Page 23: Optimisation dans les réseaux

Transbordement Michel Bierlaire 23

Méthode du simplexe

3

2

1 4 5

Arbre maximal :

i = feuilles

Page 24: Optimisation dans les réseaux

Transbordement Michel Bierlaire 24

Méthode du simplexe

Propriétés : Soit T le sous-graphe d’un graphe à N nœuds.1. Si T est sans cycle et possède au moins un arc, alors il

a au moins une feuille.2. T est un arbre maximal ssi T est connexe et contient N

nœuds et N-1 arcs.3. Si T est un arbre, il y a un chemin unique reliant deux

nœuds i et j de cet arbre. 4. Soit e T un arc dont les extrémités sont dans T. Le

graphe T{e} contient un cycle simple unique, dont e est un arc avançant.

5. Si T est un arbre contenant (i,j), et si (i,j) est supprimé, les arcs restant forment deux arbres disjoints, l’un contenant i l’autre j.

Page 25: Optimisation dans les réseaux

Transbordement Michel Bierlaire 25

Méthode du simplexe

La base en programmation linéaire « générale » peut être représentée ici grâce aux arbres maximaux.

Pour chaque arbre maximal T, il existe un vecteur de flots unique x tel que– x vérifie les contraintes de conservation des

flots– xi = 0 si i T

Page 26: Optimisation dans les réseaux

Transbordement Michel Bierlaire 26

Méthode du simplexeProcédure : Soit R=T, x=0, wi=si i. Pas 1 :

– choisir une feuille i de R.– si (i,j) est l’unique arc incident à i

xij=wi et wj=wj+wi

– si (j,i) est l’unique arc incident à ixij=-wi et wj=wj+wi

Pas 2 : supprimer i et son arc incident de R. Si R n’a plus que 1 nœud, STOP. Sinon retour au pas 1.

Page 27: Optimisation dans les réseaux

Transbordement Michel Bierlaire 27

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : coût Sur chaque nœud : offre

2

3

0

-236

2

2

51

2

-2

0 -1

Page 28: Optimisation dans les réseaux

Transbordement Michel Bierlaire 28

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : - Sur chaque nœud : offre (wi)

1 (1)

2 (2)

-2 (-2)

0 (0) -1 (-1)

Page 29: Optimisation dans les réseaux

Transbordement Michel Bierlaire 29

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

11 (1)

2 (3)

-2 (-2)

0 (0) -1 (-1)

Page 30: Optimisation dans les réseaux

Transbordement Michel Bierlaire 30

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

2

11 (1)

2 (1)

-2 (-2)

0 (0) -1 (-1)

Page 31: Optimisation dans les réseaux

Transbordement Michel Bierlaire 31

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

02

11 (1)

2 (1)

-2 (-2)

0 (0) -1 (-1)

Page 32: Optimisation dans les réseaux

Transbordement Michel Bierlaire 32

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

02

11

1 (1)

2 (1)

-2 (-2)

0 (0) -1 (0)

Page 33: Optimisation dans les réseaux

Transbordement Michel Bierlaire 33

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

1 (1)

2 (2)

-2 (-2)

0 (0) -1 (-1)

Page 34: Optimisation dans les réseaux

Transbordement Michel Bierlaire 34

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

1

1 (1)

2 (2)

-2 (-1)

0 (0) -1 (-1)

Page 35: Optimisation dans les réseaux

Transbordement Michel Bierlaire 35

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

-2

1

1 (1)

2 (2)

-2 (1)

0 (0) -1 (-1)

Page 36: Optimisation dans les réseaux

Transbordement Michel Bierlaire 36

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

-1-2

1

1 (1)

2 (2)

-2 (1)

0 (-1) -1 (-1)

Page 37: Optimisation dans les réseaux

Transbordement Michel Bierlaire 37

Méthode du simplexe

Problème :

3

2

1 4 5

Sur chaque arc : flot Sur chaque nœud : offre (wi)

-1-1

-2

1

1 (1)

2 (2)

-2 (0)

0 (-1) -1 (-1)

Page 38: Optimisation dans les réseaux

Transbordement Michel Bierlaire 38

Méthode du simplexe

Ce vecteur de flots est appelé une solution de base

Si, de plus, le vecteur de flots vérifie les contraintes de capacité xij 0, il est appelé une solution de base admissible.

Un arbre maximal sera dit admissible si le vecteur de flots correspondant est une solution de base admissible.

Page 39: Optimisation dans les réseaux

Transbordement Michel Bierlaire 39

Méthode du simplexe

Aperçu de la méthode Soit un arbre maximal admissible initial. Chaque itération (pivotage) génère un autre

arbre admissible dont le coût n’est pas plus élevé que le précédent.

Chaque itération est composée de trois opérations principales

1. Ajout d’un arc à l’arbre afin de former un cycle à coût négatif

2. Envoyer le plus de flot possible le long de ce cycle, sans violer les contraintes

3. Supprimer un arc du cycle pour obtenir à nouveau un arbre.

Page 40: Optimisation dans les réseaux

Transbordement Michel Bierlaire 40

Méthode du simplexe

Arbre maximal initial :

3

2

1 4 5

Sur chaque arc : coût (flot) Sur chaque nœud : offre

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2 (1)

-2

0 -1

Page 41: Optimisation dans les réseaux

Transbordement Michel Bierlaire 41

Méthode du simplexe

Formation d’un cycle. Coût = -9

3

2

1 4 5

Sur chaque arc : coût (flot) Sur chaque nœud : offre

2

3(0)

0

-236 (2)

2 (1)

2

5 (1)1

2 (1)

-2

0 -1

Page 42: Optimisation dans les réseaux

Transbordement Michel Bierlaire 42

Méthode du simplexe

Envoi d’une unité de flot

3

2

1 4 5

Sur chaque arc : coût (flot) Sur chaque nœud : offre

2

3 (0)

0

-236 (1)

2 (1)

2(1)

5 (0)1

2 (1)

-2

0 -1

Page 43: Optimisation dans les réseaux

Transbordement Michel Bierlaire 43

Méthode du simplexe

Suppression d’un arc du cycle

3

2

1 4 5

Sur chaque arc : coût (flot) Sur chaque nœud : offre

2

3 (0)

0

-236 (1)

2 (1)

2(1)

51

2 (1)

-2

0 -1

Page 44: Optimisation dans les réseaux

Transbordement Michel Bierlaire 44

Méthode du simplexe

Questions : Comment choisir l’arc entrant ? Comment choisir l’arc sortant ? Comment gérer les cas de

dégénérescence ?

Page 45: Optimisation dans les réseaux

Transbordement Michel Bierlaire 45

Choix de l’arc entrant

Idée : utiliser la condition des écarts complémentaires

pi-pj aij (i,j)A

pi-pj aij (i,j)A tel que xij > 0

Nous allons affecter des prix pi aux nœuds tels que

pi-pj aij (i,j)T

Page 46: Optimisation dans les réseaux

Transbordement Michel Bierlaire 46

Choix de l’arc entrant

Procédure récursive : Soit un nœud r arbitraire (racine). pr est initialisé à une valeur

quelconque. pi = +, ir CalculeVoisins(r) ;

Page 47: Optimisation dans les réseaux

Transbordement Michel Bierlaire 47

Choix de l’arc entrant

CalculVoisins(i) Pour tout j adjacent à i t.q. pj = + Si (i,j) T, alors pj = pi-aij

Si (j,i) T, alors pj = pi+aij

CalculVoisins(j)

Page 48: Optimisation dans les réseaux

Transbordement Michel Bierlaire 48

Choix de l’arc entrant

Arbre maximal :

3

2

1 4 5

Sur chaque arc : coût (flot) Sur chaque nœud : offre [pi]

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1

Page 49: Optimisation dans les réseaux

Transbordement Michel Bierlaire 49

Choix de l’arc entrant

Calcul des prix :

0

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1racine

Page 50: Optimisation dans les réseaux

Transbordement Michel Bierlaire 50

Choix de l’arc entrant

Arbre maximal :

-5

0

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1racine

Page 51: Optimisation dans les réseaux

Transbordement Michel Bierlaire 51

Choix de l’arc entrant

Arbre maximal :

-11

-5

0

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1racine

Page 52: Optimisation dans les réseaux

Transbordement Michel Bierlaire 52

Choix de l’arc entrant

Arbre maximal :

-11

-5

0 -7

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1racine

Page 53: Optimisation dans les réseaux

Transbordement Michel Bierlaire 53

Choix de l’arc entrant

Arbre maximal :

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1racine

Page 54: Optimisation dans les réseaux

Transbordement Michel Bierlaire 54

Choix de l’arc entrant

Calcul des prix (autre racine) :

23

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1

racine

Page 55: Optimisation dans les réseaux

Transbordement Michel Bierlaire 55

Choix de l’arc entrant

Calcul des prix (autre racine) :

26 23

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1

racine

Page 56: Optimisation dans les réseaux

Transbordement Michel Bierlaire 56

Choix de l’arc entrant

Calcul des prix (autre racine) :

25

26 23

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1

racine

Page 57: Optimisation dans les réseaux

Transbordement Michel Bierlaire 57

Choix de l’arc entrant

Calcul des prix (autre racine) :

25

30 26 23

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1

racine

Page 58: Optimisation dans les réseaux

Transbordement Michel Bierlaire 58

Choix de l’arc entrant

Calcul des prix (autre racine) :

19

25

30 26 23

Sur chaque arc : coût (flot) Sur chaque nœud : prix

2

3 (0)

0

-236 (2)

2 (1)

2

5 (1)1

2

-2

0 -1

racine

Page 59: Optimisation dans les réseaux

Transbordement Michel Bierlaire 59

Choix de l’arc entrant

Notes : Les prix dépendent

– du choix de la racine– du prix de la racine

La différence de prix entre deux nœuds quelconques est indépendantes des décisions liées à la racine.

Notamment, la quantitérij = aij + pj – pi

dépend uniquement de l’arbre maximal T

Page 60: Optimisation dans les réseaux

Transbordement Michel Bierlaire 60

Choix de l’arc entrant

Par définition des prix,rij = aij + pj – pi = 0 si (i,j) T

Si, de plus, rij 0 (i,j) A, la CEC est vérifiée– pi-pj aij (i,j)A – pi-pj aij (i,j)A tel que xij > 0

Dans ce cas, x est une solution optimale du primal, et p du dual.

rij est appelé le coût réduit de (i,j)

Page 61: Optimisation dans les réseaux

Transbordement Michel Bierlaire 61

Choix de l’arc entrant

Dans le cas contraire, il existe (k,l) tel que – (k,l) A, – (k,l) T– rkl = akl + pl - pk < 0

Si l’on rajoute (k,l) à l’arbre, on crée un cycle. Par convention, (k,l) doit être avançant dans le cycle.

Page 62: Optimisation dans les réseaux

Transbordement Michel Bierlaire 62

Choix de l’arc entrant

Coût du cycle formé :

Cycle à coût négatif

Page 63: Optimisation dans les réseaux

Transbordement Michel Bierlaire 63

Choix de l’arc entrant

Solution de base admissible :

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (2)

2 (1)

2 [-9]

5 (1)1

2

-2

0 -1racine

Page 64: Optimisation dans les réseaux

Transbordement Michel Bierlaire 64

Cycle

Soit C le cycle formé par T et (k,l) Si C est vide, tous les arcs sont

orientés comme (k,l) C est donc un cycle à coût négatif,

le long duquel le flot peut être augmenté arbitrairement.

Le problème est donc non-borné.

Page 65: Optimisation dans les réseaux

Transbordement Michel Bierlaire 65

Cycle

Si C n’est pas vide, notons = min(i,j)C xij

le plus petit flot sur les arcs reculant.

Il n’est pas possible d’envoyer plus que unités de flots sans violer les contraintes de non négativité.

Page 66: Optimisation dans les réseaux

Transbordement Michel Bierlaire 66

Cycle

Flot maximum le long du cycle :

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (2)

2 (1)

2 [-9]

5 (1)1

2

-2

0 -1racine

=1

Page 67: Optimisation dans les réseaux

Transbordement Michel Bierlaire 67

Cycle

Flot maximum le long du cycle :

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (2)

2 (1)

2 [-9]

5 (1)1

2

-2

0 -1racine

=0

Page 68: Optimisation dans les réseaux

Transbordement Michel Bierlaire 68

Choix de l’arc sortant

Le nouveau vecteur de flot sera

Tout arc (i,j) du cycle tel que xij+ =

0 est candidat pour sortir.

Page 69: Optimisation dans les réseaux

Transbordement Michel Bierlaire 69

Choix de l’arc sortant

Avant d’envoyer le flot :

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (2)

2 (1)

2 [-9]

5 (1)1

2

-2

0 -1racine

=1

Page 70: Optimisation dans les réseaux

Transbordement Michel Bierlaire 70

Choix de l’arc sortant

Après avoir envoyé le flot :

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (1)

2 (1)

2 (1) [-9]

5 (0)1

2

-2

0 -1racine

=1

Page 71: Optimisation dans les réseaux

Transbordement Michel Bierlaire 71

Choix de l’arc sortant

Nouvelle solution de base admissible :

-11

-5

0 -4 -7

Sur chaque arc : coût (flot)

2

3(0)

0

-23

6 (1)

2 (1)

2 (1)

51

2

-2

0 -1racine

=1

Page 72: Optimisation dans les réseaux

Transbordement Michel Bierlaire 72

Mise à jour des prix

Soit (k,l) l’arc entrant Soit e l’arc sortant Soit

T+=T+(k,l)-el’arbre correspondant à la nouvelle base.

Considérons le sous-graphe T-e. Il est composé de deux arbres :

– Tk contient le nœud k– Tl contient le nœud l

Page 73: Optimisation dans les réseaux

Transbordement Michel Bierlaire 73

Mise à jour des prix

-11

-5

0 -4 -7

Sur chaque arc : coût (flot)

2

3(0)

0

-23

6 (1)

2 (1)

2 (1)

51

2

-2

0 -1

arc entrant (k,l)

arc sortant

Tk

Tl

Page 74: Optimisation dans les réseaux

Transbordement Michel Bierlaire 74

Mise à jour des prix

Méthode 1 pi

+ = pi si i Tk

pi+ = pi-rkl si i Tl

Méthode K pi

+ = pi + K si i Tk

pi+ = pi-rkl + K si i Tl

Méthode 2 [K=rkl] pi

+ = pi+rkl si i Tk

pi+ = pi si i Tl

Page 75: Optimisation dans les réseaux

Transbordement Michel Bierlaire 75

Dégénérescence

Impossible d’envoyer du flot

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (2)

2 (1)

2 [-9]

5 (1)1

2

-2

0 -1racine

=0

Page 76: Optimisation dans les réseaux

Transbordement Michel Bierlaire 76

Dégénérescence

On change de base mais la fonction objectif ne change pas.

Risque que l’algorithme cycle. Pour garantir l’absence de cyclage,

on introduit la notion de base fortement admissible.

Page 77: Optimisation dans les réseaux

Transbordement Michel Bierlaire 77

Dégénérescence

Définition Soit T un arbre admissible. Soit r la racine de l’arbre. On dit que (i,j) T s’écarte de la racine

si le seul chemin entre r et j passe par i. Un arbre admissible T est fortement

admissible si tous les arcs (i,j) tels que xij = 0 s’écartent de la racine.

Page 78: Optimisation dans les réseaux

Transbordement Michel Bierlaire 78

Dégénérescence

Arbre admissible, mais pas fortement

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (2)

2 (1)

2 [-9]

5 (1)1

2

-2

0 -1racine

Page 79: Optimisation dans les réseaux

Transbordement Michel Bierlaire 79

Dégénérescence

Arbre fortement admissible

-11

-5

0 -4 -7

Sur chaque arc : coût (flot) [rij] Sur chaque nœud : prix

2 [-5]

3(0)

0 [3]

-2 [-1]3 [9]

6 (2)

2 (1)

2 [-9]

5 (1)1

2

-2

0 -1

racine

Page 80: Optimisation dans les réseaux

Transbordement Michel Bierlaire 80

Dégénérescence

Théorème Si les arbres admissibles générés

par la méthode du simplexe sont tous fortement admissibles, alors tous ces arbres sont distincts.

Dans ce cas, l’algorithme effectuera un nombre fini d’itérations.

Page 81: Optimisation dans les réseaux

Transbordement Michel Bierlaire 81

Dégénérescence

Supposons que l’on dispose au début d’un arbre fortement admissible.

Il faut s’arranger pour que le nouvel arbre produit soit aussi fortement admissible.

Il faut choisir l’arc sortant de manière appropriée.

Page 82: Optimisation dans les réseaux

Transbordement Michel Bierlaire 82

Dégénérescence

Procédure de choix de l’arc sortant Soit T un arbre fortement admissible Soit (k,l) l’arc entrant Soit C le cycle formé par T et (k,l) Supposons que C est non vide. Soit = min(i,j)C xij

Soit C*={(i,j)C¦xij = } l’ensemble des candidats à sortir.

Page 83: Optimisation dans les réseaux

Transbordement Michel Bierlaire 83

Dégénérescence

Procédure de choix de l’arc sortant (suite) Le joint de C est le premier nœud du

cycle sur le chemin entre r et k. Choisir comme arc sortant le premier

arc de C* rencontré lorsque l’on parcourt le cycle en partant du joint.

Dans ce cas, le nouvel arbre sera également fortement admissible.

Page 84: Optimisation dans les réseaux

Transbordement Michel Bierlaire 84

Dégénérescence

joint

k l

r

Flot = 1

Flot = 0

Flot = 3

Flot = 1

Flot = 2

Flot = 0

arc sortant

Page 85: Optimisation dans les réseaux

Transbordement Michel Bierlaire 85

Initialisation

Comment trouver un premier arbre fortement admissible ?

Idée : – ajouter un nœud artificiel 0 avec s0=0– ajouter un arc entre 0 et chaque nœud i

Arc (i,0) si si > 0 Arc (0,i) si si 0

– coût des arcs artificiels : M > 0, très grand

Page 86: Optimisation dans les réseaux

Transbordement Michel Bierlaire 86

Initialisation

3

2

1 4 5

2

3

0

-236

2

2

51

2

-2

0 -1

0

MMM

MM

Page 87: Optimisation dans les réseaux

Transbordement Michel Bierlaire 87

Initialisation

Arbre initial : Uniquement les arcs artificiels. Racine : nœud 0 Par construction, les arcs

transportant un flot nul s’éloignent de la racine

Il s’agit donc bien d’un arbre fortement admissible

Page 88: Optimisation dans les réseaux

Transbordement Michel Bierlaire 88

Initialisation

3

2

1 4 5

2

3

0

-236

2

2

51

2

-2

0 -1

0

M(1) M(2)M(2) M(0)M (1)

Coûts(Flots)

Page 89: Optimisation dans les réseaux

Transbordement Michel Bierlaire 89

Calcul des prix

-M

M

M -M -M

2

3

0

-236

2

2

5

0

M(1) M(2)M(2) M(0)M (1)

Coûts(Flots)

Page 90: Optimisation dans les réseaux

Transbordement Michel Bierlaire 90

Coûts réduits

-M

M

M -M -M

2

3

0

-236

2

2[-2M+2]

5

0

M(1) M(2)M(2) M(0)M (1)

Coûts(Flots)[coûts réduits]

=1

Page 91: Optimisation dans les réseaux

Transbordement Michel Bierlaire 91

Mise à jour des flots

-M

M

M -M -M

2

3

0

-236

2

2(1)

5

0

M(0) M(2)M(1) M(0)M (1)

Coûts(Flots)[coûts réduits]

=1

Page 92: Optimisation dans les réseaux

Transbordement Michel Bierlaire 92

Mise à jour des prix

-M

M

M -M -M

2

3

0

-236

2

2(1)

5

0

M(0) M(2)M(1) M(0)M (1)

Coûts(Flots)[coûts réduits]

Tk

Tl

rkl = - 2M+2

Page 93: Optimisation dans les réseaux

Transbordement Michel Bierlaire 93

Nouvel arbre

-M

M

-M+2 -M -M

2

3

0

-236

2

2(1)

5

0

M M(2)M(1) M(0)M (1)

Coûts(Flots)[coûts réduits]

Page 94: Optimisation dans les réseaux

Transbordement Michel Bierlaire 94

Coûts réduits

-M

M

-M+2 -M -M

2

3

0

-236

2 [-2M+2]

2(1)

5

0

M M(2)M(1) M(0)M (1)

Coûts(Flots)[coûts réduits]

=1

Page 95: Optimisation dans les réseaux

Transbordement Michel Bierlaire 95

Mise à jour des flots

-M

M

-M+2 -M -M

2

3

0

-236

2 (1)

2(1)

5

0

M M(1)M(1) M(0)M (0)

Coûts(Flots)[coûts réduits]

=1

Page 96: Optimisation dans les réseaux

Transbordement Michel Bierlaire 96

Mise à jour des prix

-M

M

-M+2 -M -M

2

3

0

-236

2 (1)

2(1)

5

0

M M(1)M(1) M(0)M (0)

Coûts(Flots)[coûts réduits]

TkTl

rkl = - 2M+2

Page 97: Optimisation dans les réseaux

Transbordement Michel Bierlaire 97

Nouvel arbre

-3M+2

-M+2

-3M+4 -3M+2 -M

2

3

0

-236

2 (1)

2(1)

5

-2M+2

M M(1)M(1) M(0)M

Coûts(Flots)[coûts réduits]

=1

Page 98: Optimisation dans les réseaux

Transbordement Michel Bierlaire 98

Coûts réduits

-3M+2

-M+2

-3M+4 -3M+2 -M

2

3

0[-2M+2]

-236

2 (1)

2(1)

5

-2M+2

M M(1)M(1) M(0)M

Coûts(Flots)[coûts réduits]

=0

Page 99: Optimisation dans les réseaux

Transbordement Michel Bierlaire 99

Mise à jour des prix

-5M+4

-3M+4

-5M+6 -3M+2 -3M+2

2

3

0(0)

-236

2 (1)

2(1)

5

-4M+4

M M(1)M(1) M(0)M

Coûts(Flots)[coûts réduits]

Tk

Tl

rkl = - 2M+2

Page 100: Optimisation dans les réseaux

Transbordement Michel Bierlaire 100

Nouvel arbre

-5M+4

-3M+4

-5M+6 -3M+2 -3M+2

2

3

0(0)

-236

2 (1)

2(1)

5

-4M+4

M M(1)M(1) MM

Coûts(Flots)[coûts réduits]

Page 101: Optimisation dans les réseaux

Transbordement Michel Bierlaire 101

Coûts réduits

-5M+4

-3M+4

-5M+6 -3M+2 -3M+2

2

3

0(0)

-23

6[-2M+6]

2 (1)

2(1)

5

-4M+4

M M(1)M(1) MM

Coûts(Flots)[coûts réduits]

=1

Page 102: Optimisation dans les réseaux

Transbordement Michel Bierlaire 102

Mise à jour des flots

-5M+4

-3M+4

-5M+6 -3M+2 -3M+2

2

3

0(0)

-23

6(1)

2 (1)

2(1)

5

-4M+4

M M(0)M(0) MM

Coûts(Flots)[coûts réduits]

=1

Page 103: Optimisation dans les réseaux

Transbordement Michel Bierlaire 103

Choix de l’arc sortant

-5M+4

-3M+4

-5M+6 -3M+2 -3M+2

2

3

0(0)

-23

6(1)

2 (1)

2(1)

5

-4M+4

M M(0)M(0) MM

Coûts(Flots)[coûts réduits]

racine=jointarc sortant

Page 104: Optimisation dans les réseaux

Transbordement Michel Bierlaire 104

Mise à jour des prix

-5M+4

-5M+10

-5M+6 -5M+8 -5M+8

2

3

0(0)

-23

6(1)

2 (1)

2(1)

5

-4M+4

M M(0)M(0) MM

Coûts(Flots)[coûts réduits]

racine=jointarc sortant

Tk

Tl

rkl = - 2M+6

Page 105: Optimisation dans les réseaux

Transbordement Michel Bierlaire 105

Nouvel arbre

-5M+4

-5M+10

-5M+6 -5M+8 -5M+8

2

3

0(0)

-23

6(1)

2 (1)

2(1)

5

-4M+4

M MM(0) MM

Coûts(Flots)[coûts réduits]

Page 106: Optimisation dans les réseaux

Transbordement Michel Bierlaire 106

Coûts réduits

-5M+4

-5M+10

-5M+6 -5M+8 -5M+8

2

3

0(0)

-2[-4]3

6(1)

2 (1)

2(1)

5

-4M+4

M MM(0) MM

Coûts(Flots)[coûts réduits]

=0

Page 107: Optimisation dans les réseaux

Transbordement Michel Bierlaire 107

Mise à jour des prix

-5M+4

-5M+10

-5M+6 -5M+8 -5M+8

2

3

0(0)

-2(0)3

6(1)

2 (1)

2(1)

5

-4M+4

M MM(0) MM

Coûts(Flots)[coûts réduits]

Tk

Tl

rkl = - 4

Page 108: Optimisation dans les réseaux

Transbordement Michel Bierlaire 108

Nouvel arbre

-5M

-5M+6

-5M+2 -5M+8 -5M+4

2

3

0

-2(0)3

6(1)

2 (1)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

Page 109: Optimisation dans les réseaux

Transbordement Michel Bierlaire 109

Coûts réduits

-5M

-5M+6

-5M+2 -5M+8 -5M+4

2[-6]

3

0

-2(0)3

6(1)

2 (1)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

=1

Page 110: Optimisation dans les réseaux

Transbordement Michel Bierlaire 110

Mise à jour des flots

-5M

-5M+6

-5M+2 -5M+8 -5M+4

2(1)

3

0

-2(1)3

6(0)

2 (1)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

=1

Page 111: Optimisation dans les réseaux

Transbordement Michel Bierlaire 111

Mise à jour des prix

-5M

-5M+6

-5M+2 -5M+8 -5M+4

2(1)

3

0

-2(1)3

6(0)

2 (1)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

Tk

Tl

rkl = - 6

Page 112: Optimisation dans les réseaux

Transbordement Michel Bierlaire 112

Nouvel arbre

-5M

-5M

-5M+2 -5M+2 -5M-2

2(1)

3

0

-2(1)3

6

2 (1)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

Page 113: Optimisation dans les réseaux

Transbordement Michel Bierlaire 113

Coûts réduits

-5M

-5M

-5M+2 -5M+2 -5M-2

2(1)

3[-1]

0

-2(1)3

6

2 (1)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

=1

Page 114: Optimisation dans les réseaux

Transbordement Michel Bierlaire 114

Mise à jour des flots

-5M

-5M

-5M+2 -5M+2 -5M-2

2(1)

3(1)

0

-2(2)3

6

2 (0)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

=1

Page 115: Optimisation dans les réseaux

Transbordement Michel Bierlaire 115

Mise à jour des prix

-5M

-5M

-5M+2 -5M+2 -5M-2

2(1)

3(1)

0

-2(2)3

6

2 (0)

2(1)

5

-4M

M MM(0) MM

Coûts(Flots)[coûts réduits]

Tk

Tl

rkl = - 1

Page 116: Optimisation dans les réseaux

Transbordement Michel Bierlaire 116

Nouvel arbre

-5M-1

-5M-1

-5M+1 -5M+1 -5M-2

2(1)

3(1)

0

-2(2)3

6

2

2(1)

5

-4M-1

M MM(0) MM

Coûts(Flots)[coûts réduits]

Page 117: Optimisation dans les réseaux

Transbordement Michel Bierlaire 117

Coûts réduits

-5M-1

-5M-1

-5M+1 -5M+1 -5M-2

2(1)

3(1)

0

-2(2)

3

6

2

2(1)

5

-4M-1

M MM(0) MM[-1]

Coûts(Flots)[coûts réduits]

=0

Page 118: Optimisation dans les réseaux

Transbordement Michel Bierlaire 118

Mise à jour des prix

-5M-1

-5M-1

-5M+1 -5M+1 -5M-2

2(1)

3(1)

0

-2(2)

3

6

2

2(1)

5

-4M-1

M MM MM(0)

Coûts(Flots)[coûts réduits]

=0Tk

Tl

rkl = - 1

Page 119: Optimisation dans les réseaux

Transbordement Michel Bierlaire 119

Nouvel arbre

-5M-1

-5M-1

-5M+1 -5M+1 -5M-2

2(1)

3(1)

0

-2(2)

3

6

2

2(1)

5

-4M-2

M MM MM(0)

Coûts(Flots)[coûts réduits]

Page 120: Optimisation dans les réseaux

Transbordement Michel Bierlaire 120

Coûts réduits : optimum

-5M-1

-5M-1

-5M+1 -5M+1 -5M-2

2(1)

3(1)

0[3]

-2(2)

3[6]

6[6]

2[1]

2(1)

5[3]

-4M-2

M[2M-3]M[2M-1]

M[1]M[3]

M(0)Coûts(Flots)[coûts réduits]

Page 121: Optimisation dans les réseaux

Transbordement Michel Bierlaire 121

Propriété d’intégralité

Si les si sont tous entiers, alors la solution optimale primale sera aussi entière.

De plus, si le prix arbitraire initial de la racine est entier, et que tous les coefficients de coût sont entiers, alors la solution optimale duale sera aussi entière.