e algoritmo dos sucessivos caminhos mais curtos de Jewel

Propaganda
Problema do Fluxo de Custo Mínimo
Algoritmos
Algoritmo do ciclo negativo
Algoritmo CICLO NEGATIVO;
begin
Estabelecer um fluxo admissível x na rede;
while G(x) possuir um ciclo de custo negativo do
begin
usar um algoritmo para identificar um ciclo de
custo negativo C;
seja d : = min { rij : (i, j)  C };
aumentar d unidades de fluxo no ciclo C e
actualizar G(x);
end;
end;
Algoritmo de Klein
2
Exemplo
0
2
10, $4
0
4
30, $7
25 1
25, $5
20, $2
20, $6
3
0
25, $2
20, $1
5
-25
3
Fluxo admissível
Podemos
considerar
o seguinte
30,25
fluxo
admissível. 25 1
0
2
0
10,10
4
25,15
20,10
20,20
20,0
3
0
25,5
5
-25
O fluxo admissível pode ser determinado através da
resolução de um problema de fluxo máximo.
4
Continuando ...
5
Obtemos a seguinte rede residual
5, $4
25, $7
1
2
4
5, $-4
5, $-7
20, $2
25, $5
15, $1
5, $-1
20, $-6
3
5, $2
5
20, $-2
Na qual já não existe nenhum ciclo de custo negativo.
6
Algoritmo dos sucessivos CMC
begin
encontrar um pseudo-fluxo dual admissível (x, p) inicial
while existir um nodo com excesso positivo do
begin
S = {i : e(i) > 0}; T = {j : e(j) < 0};
seleccionar um nodo s S e um nodo t  T tais que exista
um caminho de s para t;
determinar as distâncias d(j) do CMC do nodo s para todos
os outros nodos em G(x) relativamente a cp;
actualizar pj = pj –d(j) ;
enviar fluxo através de um caminho mais curto de s para t
com custos reduzidos nulos;
actualizar a rede residual e os conjuntos S e T;
end
Algoritmo de Jewel,
end
Iri, Busaker & Gowen
7
Exemplo
5,0
10,$4
2
-2,0
Rede com
4
ofertas/procuras
30,$7
capacidades e
20,$2
23,0
1
20,$1
25,$5
20,$6
25,$2
3
-7,0
5
-19,0
custos
Potenciais de
nodos a
vermelho
8
Download