Optimisation A

Download Report

Transcript Optimisation A

Optimisation dans les
réseaux
Recherche Opérationnelle
GC-SIE
Le problème de
transbordement
Énoncé
sous contraintes
Transbordement
Michel Bierlaire
3
Dualité

Lagrangien

Fonction duale
Transbordement
Michel Bierlaire
4
Dualité

Comme L(x,p) est séparable en x,
avec
Transbordement
Michel Bierlaire
5
(aij-)xij
(aij-)xij
Dualité
aij-0
bij
Transbordement
aij-<0
cij
xij
Michel Bierlaire
bij
cij
xij
6
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
Transbordement
Michel Bierlaire
7
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.
Transbordement
Michel Bierlaire
8
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
Transbordement
Michel Bierlaire
9
Transformations
Mettre les capacités inférieures à 0
bij  xij  cij
 Posons zij = xij – bij ou xij = zij + bij
 Fonction objectif
Transbordement
Michel Bierlaire
10
Transformations

Contraintes d’offre-demande
Transbordement
Michel Bierlaire
11
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é.
Transbordement
Michel Bierlaire
12
Transformations
Supprimer les contraintes supérieures de
capacité
 Idée : ajouter des variables d’écart
xij + zij = cij avec zij  0
 Fonction objectif : inchangée
 Contraintes de capacité :
0  xij  cij
xij  cij  zij  0
xij  0 et zij  0
Transbordement
Michel Bierlaire
13
Transformations

Contraintes d’offre-demande
Transbordement
Michel Bierlaire
14
Transformations

Interprétation :
sj
si
i
Flot xij
Coût aij
si-kcik
j
i
Capacité [0,cij]
Transbordement
sj-kcjk
cij
Flot zij
Flot xij
Coût 0
Coût aij
j
Capacité [0,[
Michel Bierlaire
15
Transformations

Interprétation :
-50
50
i
Flot 50
Coût aij
-950
j
i
Capacité [0,1000]
Transbordement
-50
1000
Flot 950
Flot 50
Coût 0
Coût aij
j
Capacité [0,[
Michel Bierlaire
16
Transformations

Interprétation :
-50
50
i
Flot 50
Coût aij
0
j
i
Capacité [0,50]
Transbordement
-50
50
Flot 0
Flot 50
Coût 0
Coût aij
j
Capacité [0,[
Michel Bierlaire
17
Problème transformé
sous contraintes
Transbordement
Michel Bierlaire
18
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.
Transbordement
Michel Bierlaire
19
Méthode du simplexe
Idée : exploiter explicitement la structure de
réseau.
Élément principal : arbre maximal
Dé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.
Transbordement
Michel Bierlaire
20
Méthode du simplexe

Graphe :
2
1
4
5
3
Transbordement
Michel Bierlaire
21
Méthode du simplexe

Arbre maximal :
2
1
4
5
3
i
Transbordement
= feuilles
Michel Bierlaire
22
Méthode du simplexe

Arbre maximal :
2
1
4
5
3
i
= feuilles
Transbordement
Michel Bierlaire
23
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.
Transbordement
Michel Bierlaire
24
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
Transbordement
Michel Bierlaire
25
Méthode du simplexe
Procé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 à i
xij=-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.
Transbordement
Michel Bierlaire
26
Méthode du simplexe

Problème :
2
2
1
2
5
6
1
3
2
-2
4
2
3
0
3
0
5
-1
-2


Sur chaque arc : coût
Sur chaque nœud : offre
Transbordement
Michel Bierlaire
27
Méthode du simplexe

Problème :
1 (1)
2 (2)
2
1
4
0 (0)
3
5
-1 (-1)
-2 (-2)


Sur chaque arc : Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
28
Méthode du simplexe

Problème :
1 (1)
2 (3)
2
1
1
4
0 (0)
3
5
-1 (-1)
-2 (-2)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
29
Méthode du simplexe

Problème :
1 (1)
1
2 (1)
2
1
2
4
0 (0)
3
5
-1 (-1)
-2 (-2)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
30
Méthode du simplexe

Problème :
1 (1)
1
2 (1)
2
1
2
4
0 (0)
3
0
5
-1 (-1)
-2 (-2)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
31
Méthode du simplexe

Problème :
1 (1)
1
2 (1)
2
1
1
2
4
0 (0)
3
0
5
-1 (0)
-2 (-2)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
32
Méthode du simplexe

Problème :
1 (1)
2 (2)
2
1
4
0 (0)
3
5
-1 (-1)
-2 (-2)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
33
Méthode du simplexe

Problème :
2 (2)
2
1 (1)
1
4
1
0 (0)
3
5
-1 (-1)
-2 (-1)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
34
Méthode du simplexe

Problème :
2 (2)
2
1 (1)
1
-2
1
4
0 (0)
3
5
-1 (-1)
-2 (1)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
35
Méthode du simplexe

Problème :
2 (2)
2
1 (1)
1
-2
1
4
0 (-1)
3
-1
5
-1 (-1)
-2 (1)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
36
Méthode du simplexe

Problème :
2 (2)
2
1 (1)
1
4
-2
1
-1
3
0 (-1)
-1
5
-1 (-1)
-2 (0)


Sur chaque arc : flot
Sur chaque nœud : offre (wi)
Transbordement
Michel Bierlaire
37
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.
Transbordement
Michel Bierlaire
38
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.
2.
3.
Transbordement
Ajout d’un arc à l’arbre afin de former un cycle à coût
négatif
Envoyer le plus de flot possible le long de ce cycle,
sans violer les contraintes
Supprimer un arc du cycle pour obtenir à nouveau un
arbre.
Michel Bierlaire
39
Méthode du simplexe

Arbre maximal initial :
2 (1)
1
2
2 (1)
5 (1)
6 (2)
1
3
2
-2
4
2
3
0
3 (0)
0
5
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : offre
Transbordement
Michel Bierlaire
40
Méthode du simplexe

Formation d’un cycle. Coût = -9
2 (1)
1
2
2 (1)
5 (1)
6 (2)
1
3
2
-2
4
2
3
0
3(0)
0
5
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : offre
Transbordement
Michel Bierlaire
41
Méthode du simplexe

Envoi d’une unité de flot
2 (1)
1
2
2 (1)
5 (0)
6 (1)
1
3
2(1)
-2
4
2
3
0
3 (0)
0
5
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : offre
Transbordement
Michel Bierlaire
42
Méthode du simplexe

Suppression d’un arc du cycle
2 (1)
1
2
2 (1)
5
6 (1)
1
3
2(1)
-2
4
2
3
0
3 (0)
0
5
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : offre
Transbordement
Michel Bierlaire
43
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 ?
Transbordement
Michel Bierlaire
44
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
Transbordement
Michel Bierlaire
45
Choix de l’arc entrant
Procédure récursive :
 Soit un nœud r arbitraire (racine).
 pr est initialisé à une valeur
quelconque.
 pi = +, ir
 CalculeVoisins(r) ;
Transbordement
Michel Bierlaire
46
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)
Transbordement
Michel Bierlaire
47
Choix de l’arc entrant

Arbre maximal :
2
1
2
2 (1)
5 (1)
6 (2)
1
3
-2
2
4
2
3
0
3 (0)
0
5
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : offre [pi]
Transbordement
Michel Bierlaire
48
Choix de l’arc entrant

Calcul des prix :
2
1
2 (1)
5 (1)
6 (2)
0
3
-2
3 (0)
0
2
2
0
-1
racine
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
49
Choix de l’arc entrant

Arbre maximal :
2
1
-5
2 (1)
5 (1)
6 (2)
0
3
-2
3 (0)
0
2
2
0
-1
racine
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
50
Choix de l’arc entrant

Arbre maximal :
2
1
-5
2 (1)
5 (1)
6 (2)
0
3
3 (0)
0
2
racine
-2
2
-11
0
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
51
Choix de l’arc entrant

Arbre maximal :
2
1
-5
2 (1)
5 (1)
6 (2)
0
3
3 (0)
0
2
racine
-2
2
-11
0
-7
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
52
Choix de l’arc entrant

Arbre maximal :
2
1
-5
2 (1)
5 (1)
6 (2)
0
3
2
racine
-2
-4
2
-11
0
3 (0)
0
-7
-1
-2


Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
53
Choix de l’arc entrant

Calcul des prix (autre racine) :
2
1
2 (1)
5 (1)
6 (2)
3
-2
3 (0)
0
2
2
-2


0
23
-1
racine
Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
54
Choix de l’arc entrant

Calcul des prix (autre racine) :
2
1
2 (1)
5 (1)
6 (2)
3
2
-2
26
2
-2


3 (0)
0
0
23
-1
racine
Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
55
Choix de l’arc entrant

Calcul des prix (autre racine) :
2
1
25
2 (1)
5 (1)
6 (2)
3
2
-2
26
2
-2


3 (0)
0
0
23
-1
racine
Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
56
Choix de l’arc entrant

Calcul des prix (autre racine) :
2
1
25
2 (1)
5 (1)
6 (2)
30
3
2
-2
26
2
-2


3 (0)
0
0
23
-1
racine
Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
57
Choix de l’arc entrant

Calcul des prix (autre racine) :
2
1
25
2 (1)
5 (1)
6 (2)
30
3
2
-2
26
2
19
-2


3 (0)
0
0
23
-1
racine
Sur chaque arc : coût (flot)
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
58
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
Transbordement
Michel Bierlaire
59
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)
Transbordement
Michel Bierlaire
60
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.
Transbordement
Michel Bierlaire
61
Choix de l’arc entrant

Coût du cycle formé :
Cycle à coût négatif
Transbordement
Michel Bierlaire
62
Choix de l’arc entrant

Solution de base admissible :
2
1
-5
2 (1)
5 (1)
6 (2)
0
-2 [-1]
3 [9]
2 [-9]
racine
2 [-5]
-11
-4
0
3(0)
0 [3]
-7
-1
-2


Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
63
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é.
Transbordement
Michel Bierlaire
64
Cycle


Si C- n’est pas vide, notons
d = min(i,j) C- xij
le plus petit flot sur les arcs
reculant.
Il n’est pas possible d’envoyer plus
que d unités de flots sans violer les
contraintes de non négativité.
Transbordement
Michel Bierlaire
65
Cycle

Flot maximum le long du cycle :
2
1
d=1
-5
2 (1)
5 (1)
6 (2)
0
-2 [-1]
3 [9]
2 [-9]
racine
2 [-5]
-11
-4
0
3(0)
0 [3]
-7
-1
-2


Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
66
Cycle

Flot maximum le long du cycle :
2
1
-5
5 (1)
6 (2)
0
-2 [-1]
3 [9]
2 [-9]
racine
d=0
2 (1)
2 [-5]
-11
-4
0
3(0)
0 [3]
-7
-1
-2


Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
67
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.
Transbordement
Michel Bierlaire
68
Choix de l’arc sortant

Avant d’envoyer le flot :
2
1
d=1
-5
2 (1)
5 (1)
6 (2)
0
-2 [-1]
3 [9]
2 [-9]
racine
2 [-5]
-11
-4
0
3(0)
0 [3]
-7
-1
-2


Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
69
Choix de l’arc sortant

Après avoir envoyé le flot :
2
1
d=1
-5
2 (1)
5 (0)
6 (1)
0
2 (1) [-9]
racine
-2 [-1]
3 [9]
2 [-5]
-11
-4
0
3(0)
0 [3]
-7
-1
-2


Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
70
Choix de l’arc sortant

Nouvelle solution de base admissible :
2
1
d=1
-5
2 (1)
5
-2
6 (1)
0
2 (1)
racine
-4
3
2
-11
0
3(0)
0
-7
-1
-2

Sur chaque arc : coût (flot)
Transbordement
Michel Bierlaire
71
Mise à jour des prix





Soit (k,l) l’arc entrant
Soit e l’arc sortant
Soit
T+=T+(k,l)-e
l’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
Transbordement
Michel Bierlaire
72
Mise à jour des prix
2
arc sortant
1
-5
-2
6 (1)
2 (1)
arc entrant
(k,l)

2 (1)
5
0
Tk
Tl
-4
3
2
-11
0
3(0)
0
-7
-1
-2
Sur chaque arc : coût (flot)
Transbordement
Michel Bierlaire
73
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
Transbordement
Michel Bierlaire
74
Dégénérescence

Impossible d’envoyer du flot
2
1
-5
5 (1)
6 (2)
0
-2 [-1]
3 [9]
2 [-9]
racine
d=0
2 (1)
2 [-5]
-11
-4
0
3(0)
0 [3]
-7
-1
-2


Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
75
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.
Transbordement
Michel Bierlaire
76
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.
Transbordement
Michel Bierlaire
77
Dégénérescence

Arbre admissible, mais pas fortement
2
1
-5
2 (1)
5 (1)
6 (2)
0
-2 [-1]
3 [9]
2 [-9]
racine
2 [-5]
-11
-4
0
3(0)
0 [3]
-7
-1
-2


Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
78
Dégénérescence

Arbre fortement admissible
2
1
-5
2 (1)
5 (1)
6 (2)
0
-2 [-1]
3 [9]
2 [-9]
2 [-5]
-11
-2


-4
0
3(0)
0 [3]
-7
-1
racine
Sur chaque arc : coût (flot) [rij]
Sur chaque nœud : prix
Transbordement
Michel Bierlaire
79
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.
Transbordement
Michel Bierlaire
80
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.
Transbordement
Michel Bierlaire
81
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 d = min(i,j) C- xij
 Soit C*={(i,j)C-¦xij = d} l’ensemble
des candidats à sortir.
Transbordement
Michel Bierlaire
82
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.
Transbordement
Michel Bierlaire
83
Dégénérescence
r
Flot = 1 joint
Flot = 0
Flot = 3
Flot = 2
Flot = 1
Transbordement
Flot = 0
k
l
Michel Bierlaire
arc sortant
84
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
Transbordement
Michel Bierlaire
85
Initialisation
2
2
1
2
5
1
6
3
2
-2
4
2
M
3
-2 M
3
0
5
-1
0
M
M
M
0
Transbordement
Michel Bierlaire
86
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
Transbordement
Michel Bierlaire
87
Initialisation
2
2
1
2
5
1
6
3
2
M(1)
-2
4
2
3
M(2) M(2)
-2
Coûts
(Flots)
Transbordement
3
0
5
-1
0
M(0)
M (1)
0
Michel Bierlaire
88
Calcul des prix
M
2
5
M
6
3
2
M(1)
-2
-M
2
-M
M(2) M(2)
Coûts
(Flots)
Transbordement
3
0
-M
M(0)
M (1)
0
Michel Bierlaire
89
Coûts réduits
M
2
5
M
2[-2M+2]
6
3
-2
-M
2
-M
M(1)
Coûts
(Flots)
[coûts réduits]
Transbordement
M(2) M(2)
d=1
3
0
-M
M(0)
M (1)
0
Michel Bierlaire
90
Mise à jour des flots
M
2
5
M
2(1)
6
3
-2
-M
2
-M
M(0)
Coûts
(Flots)
[coûts réduits]
Transbordement
M(1) M(2)
d=1
3
0
-M
M(0)
M (1)
0
Michel Bierlaire
91
Mise à jour des prix
rkl = - 2M+2
Tl
M
Tk
2
5
M
2(1)
6
3
-2
-M
2
M(0)
-M
M(1) M(2)
Coûts
(Flots)
[coûts réduits]
Transbordement
3
0
-M
M(0)
M (1)
0
Michel Bierlaire
92
Nouvel arbre
M
2
5
-M+2
2(1)
6
3
-2
-M
2
M
-M
M(1) M(2)
Coûts
(Flots)
[coûts réduits]
Transbordement
3
0
-M
M(0)
M (1)
0
Michel Bierlaire
93
Coûts réduits
M
2 [-2M+2]
5
-M+2
2(1)
6
3
-2
-M
2
M
-M
M(1) M(2)
Coûts
(Flots)
[coûts réduits]
Transbordement
3
0
-M
M(0)
M (1)
d=1
0
Michel Bierlaire
94
Mise à jour des flots
M
2 (1)
5
-M+2
2(1)
6
3
-2
-M
2
M
-M
M(1) M(1)
Coûts
(Flots)
[coûts réduits]
Transbordement
3
0
-M
M(0)
M (0)
d=1
0
Michel Bierlaire
95
Mise à jour des prix
rkl = - 2M+2
Tk
-M+2
M
2(1)
6
3
-2
-M
2
M
-M
M(1) M(1)
Coûts
(Flots)
[coûts réduits]
Transbordement
Tl
2 (1)
5
3
0
-M
M(0)
M (0)
0
Michel Bierlaire
96
Nouvel arbre
-M+2
2 (1)
5
-3M+4
2(1)
6
3
-2
-3M+2
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-3M+2
M(1) M(1)
3
0
-M
M(0)
M
d=1
-2M+2
Michel Bierlaire
97
Coûts réduits
-M+2
2 (1)
5
-3M+4
2(1)
6
3
-2
-3M+2
3
0[-2M+2]
-M
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-3M+2
M(1) M(1)
M(0)
M
d=0
-2M+2
Michel Bierlaire
98
Mise à jour des prix
rkl = - 2M+2
Tk
-5M+6
-3M+4
2 (1)
5
2(1)
6
3
-2
-3M+2
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M+4
M(1) M(1)
3
0(0)
-3M+2
Tl
M(0)
M
-4M+4
Michel Bierlaire
99
Nouvel arbre
-3M+4
2 (1)
5
-5M+6
2(1)
6
3
-2
-3M+2
3
0(0)
-3M+2
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M+4
M(1) M(1)
M
M
-4M+4
Michel Bierlaire
100
Coûts réduits
-3M+4
2 (1)
5
-5M+6
6[-2M+6]
2(1)
3
-2
-3M+2
3
0(0)
-3M+2
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M+4
M(1) M(1)
M
M
d=1
-4M+4
Michel Bierlaire
101
Mise à jour des flots
-3M+4
2 (1)
5
-5M+6
6(1)
2(1)
3
-2
-3M+2
3
0(0)
-3M+2
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M+4
M(0) M(0)
M
M
d=1
-4M+4
Michel Bierlaire
102
Choix de l’arc sortant
-3M+4
2 (1)
5
-5M+6
6(1)
2(1)
3
-2
-3M+2
3
0(0)
-3M+2
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M+4
M(0) M(0)
M
M
arc sortant
-4M+4
Michel Bierlaire
racine=joint
103
Mise à jour des prix
rkl = - 2M+6
Tk
-5M+10
2 (1)
5
-5M+6
6(1)
2(1)
M
Transbordement
-5M+8
3
0(0)
-5M+8
2
Tl
Coûts
(Flots)
[coûts réduits]
3
-2
-5M+4
M(0) M(0)
M
M
arc sortant
-4M+4
Michel Bierlaire
racine=joint
104
Nouvel arbre
-5M+10
2 (1)
5
-5M+6
6(1)
2(1)
3
-2
-5M+8
3
0(0)
-5M+8
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M+4
M(0) M
M
M
-4M+4
Michel Bierlaire
105
Coûts réduits
-5M+10
2 (1)
5
-5M+6
6(1)
2(1)
3
-2[-4]
-5M+8
3
0(0)
-5M+8
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M+4
M(0) M
M
M
d=0
-4M+4
Michel Bierlaire
106
Mise à jour des prix
rkl = - 4
Tk
-5M+10
2 (1)
5
-5M+6
6(1)
2(1)
3
-2(0)
-5M+8
M
Coûts
(Flots)
[coûts réduits]
Transbordement
M(0) M
0(0)
Tl
2
-5M+4
3
-5M+8
M
M
-4M+4
Michel Bierlaire
107
Nouvel arbre
-5M+6
2 (1)
5
-5M+2
6(1)
3
2(1)
-2(0)
-5M+8
3
0
-5M+4
2
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M
M(0) M
M
M
-4M
Michel Bierlaire
108
Coûts réduits
-5M+6
2 (1)
5
-5M+2
6(1)
3
2(1)
-2(0)
-5M+8
3
0
-5M+4
2[-6]
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M
M
M(0) M
M
d=1
-4M
Michel Bierlaire
109
Mise à jour des flots
-5M+6
2 (1)
5
-5M+2
6(0)
3
2(1)
-2(1)
-5M+8
3
0
-5M+4
2(1)
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M
M
M(0) M
M
d=1
-4M
Michel Bierlaire
110
Mise à jour des prix
rkl = - 6
Tk
-5M+6
2 (1)
5
-5M+2
6(0)
2(1)
M
Coûts
(Flots)
[coûts réduits]
-2(1)
-5M+8
3
0
-5M+4
2(1)
Tl
Transbordement
3
-5M
M
M(0) M
M
-4M
Michel Bierlaire
111
Nouvel arbre
-5M
2 (1)
5
-5M+2
6
3
2(1)
-2(1)
-5M+2
3
0
-5M-2
2(1)
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M
M(0) M
M
M
-4M
Michel Bierlaire
112
Coûts réduits
-5M
2 (1)
5
-5M+2
6
3
2(1)
-2(1)
-5M+2
3[-1]
0
-5M-2
2(1)
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M
M(0) M
-4M
Michel Bierlaire
M
M
d=1
113
Mise à jour des flots
-5M
2 (0)
5
-5M+2
6
3
2(1)
-2(2)
-5M+2
3(1)
0
-5M-2
2(1)
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M
M(0) M
-4M
Michel Bierlaire
M
M
d=1
114
Mise à jour des prix
rkl = - 1
Tk
-5M
2 (0)
5
-5M+2
6
3
2(1)
-2(2)
-5M+2
3(1)
0
2(1)
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M
M(0) M
-5M-2
Tl
M
M
-4M
Michel Bierlaire
115
Nouvel arbre
-5M-1
2
5
-5M+1
6
2(1)
3
-2(2)
-5M+1
3(1)
0
-5M-2
2(1)
M
Coûts
(Flots)
[coûts réduits]
Transbordement
-5M-1
M(0) M
M
M
-4M-1
Michel Bierlaire
116
Coûts réduits
-5M-1
2
5
-5M+1
-2(2)
6
2(1)
-5M+1
3
3(1)
0
-5M-2
2(1)
-5M-1
M
Coûts
(Flots)
[coûts réduits]
Transbordement
M(0) M
-4M-1
Michel Bierlaire
M
M[-1]
d=0
117
Mise à jour des prix
rkl = - 1
Tl
-5M-1
2
5
-5M+1
-2(2)
6
2(1)
-5M+1
3(1)
0
3
-5M-2
2(1)
-5M-1
M
Coûts
(Flots)
[coûts réduits]
Transbordement
M
M
-4M-1
Michel Bierlaire
M
M(0)
Tk
d=0
118
Nouvel arbre
-5M-1
2
5
-5M+1
-2(2)
6
2(1)
-5M+1
3(1)
0
3
-5M-2
2(1)
-5M-1
M
Coûts
(Flots)
[coûts réduits]
Transbordement
M
M
M
M(0)
-4M-2
Michel Bierlaire
119
Coûts réduits : optimum
-5M-1
2[1]
5[3]
-5M+1
-2(2)
6[6]
2(1)
-5M+1
3[6]
3(1)
0[3]
-5M-2
2(1)
-5M-1
M[2M-3]
Coûts
(Flots)
[coûts réduits]
Transbordement
M[2M-1] M[3]
M[1]
M(0)
-4M-2
Michel Bierlaire
120
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.
Transbordement
Michel Bierlaire
121