Académique Documents
Professionnel Documents
Culture Documents
S (i ) (i )
min
k S,k ( k )
{
( k )+c
ki
}
d o valor do caminho mais curto de 1 a i sob a
restrio de que todos os ns utilizados (exceto o prprio i )
pertenam a S.
(i ), i
S ,
a
1 b
c
i
( a)
( b)
(c)
(i )
c
ai
c
bi
c
ci
S
S
Caminhos mais Curtos
Teorema: Seja o n tal que .
Ento , isto , o comprimento do caminho
mais curto do n 1 ao n j igual a .
j
S
( j )=min
i S
(i )
( j )=( j )
( j )
S
Demonstrao:
Por construo, certamente existe um caminho de 1 at j com
comprimento (j).
Suponhamos que exista outro caminho de 1 a j de comprimento
menor do que (j).
Dividamos este caminho em duas partes:
- P
1
a parte inicial, do n 1 ao n L, onde L o primeiro n de
encontrado
- P
2
a parte final, do n L ao n j
Caminhos mais Curtos
comprimento de P
1
(L) (j)
comprimento de P
2
0
Logo, o comprimento de P
1
+ P
2
(j).
CC/EC/Mestrado
Teoria dos Grafos
Algoritmo de Dijkstra
Resolve o problema com um vrtice-fonte
em grafos cujas arestas tenham peso
maior ou igual a zero. Este algoritmo
capaz de determinar o caminho mnimo, a
partir de um vrtice inicial v, para todos os
outros vrtices do grafo.
CC/EC/Mestrado
Teoria dos Grafos
Algoritmo de Dijkstra
v
INI
= vrtice inicial
d(v
INI
, v
INI
) = 0
d(v
INI
, i) = INFINITO, i, i V {v
INI
}
fechado =
aberto = V
anterior(i) = 0, i, i V
enquanto(aberto ) {
k = vrtice pertencente a aberto, mais prximo do vrtice inicial
fechado = fechado k; aberto = aberto k;
para cada vizinho i de k que est em aberto faa{
custo = min{d(v
INI
, i), d(v
INI
,k) + c(k,i)}
se (custo < d(v
INI
, i)) ento
d(v
INI
, i) = custo; anterior(i) = k
}
}
CC/EC/Mestrado
Teoria dos Grafos
Execuo
1. o grafo inicial
2. inicializando os custos
3. atualizando o conjunto fechado
4. examinando os vrtices vizinhos ao
1 que esto em aberto
5. 3 o vrtice de menor custo;
fechado = fechado+{3}
6. examinando os vrtices vizinhos ao
3
7. 2 o vrtice de menor custo;
fechado = fechado+{2}
8. examinando os vrtices vizinhos ao
2
9. 4 o vrtice de menor custo;
fechado = fechado+{4}
10. examinando os vrtices vizinhos
ao 4
11. 5 o vrtice de menor custo;
fechado = fechado+{5}
12. examinando os vrtices vizinhos
ao 5
13. 6 o vrtice de menor custo;
fechado = fechado+{6}
14. fim alcanado
fim do algoritmo
Caminhos mais Curtos
Nmero de operaes (tempo): ~ n
2
n-1 iteraes, cada iterao busca o mnimo em uma lista com
at n-1 elementos
Caminho mais curto do n 1:
ao n j
a todos os ns
Mesma complexidade, mas critrios de parada diferentes.
Distncias negativas:
1
3
2
10
- 8
3
Caminho mais curto de 1 a 3?
Resultado do algoritmo?
2
3
Porque?