Maurício Vieira
Pedro Pio
Leonardo Almeida
Motivação
• Dado um mapa de cidades, contendo as distâncias entre cidades, qual o menor
caminho entre quaisquer cidades A e B?
O(V+E)
O(V)
O(1)
Tempo total de execução é O(V+E), que é linear em relação ao tamanho de uma representação de lista de
adjacências do grafo.
Relaxamento
Relaxamento
Caminhos mínimos de fonte única em grafos
acíclicos dirigidos (gad)
fonte
Caminhos mínimos de fonte única em grafos
acíclicos dirigidos (gad)
Algoritmo de Dijkstra
O(n)
O(m)
O(1)
Podemos concluir que o algoritmo leva tempo O(n²+m) = O(n²) usando um vetor
como fila de prioridade.
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Aresta com peso negativo
Variantes
● Problema de caminhos mínimos com um só destino: Encontrar um caminho
mínimo até um determinado vértice de destino t a partir de cada vértice v.
● Problema do caminho mínimo para um par: Encontrar um caminho mínimo de u
a v para vértices u e v dados.
● Problema de caminhos mínimos para todos os pares: Encontrar um caminho
mínimo de u a v para todo par de vértices u e v.
Casos de Uso
● Redes de Computadores
● Tráfego Urbano
● Sistema Rodoviário e Ferroviário
● Google Maps
Considerações Finais
Se o grafo é suficientemente esparso (em particular E = o(V 2 /log V)), podemos melhorar o algoritmo
implementando a fila de prioridades mínimas com um heap de mínimo binário. Portanto, o tempo de execução
total é O((V + E) log V), que é O(E log V) se todos os vértices podem ser alcançados da fonte.
Na verdade, podemos conseguir um tempo de execução O(V log V + E) implementando a fila de prioridades
mínimas com um heap de Fibonacci. O custo amortizado de cada uma das |V| operações EXTRACT-KEY é
O(log V), e cada chamada DECREASE-KEY, cujo número máximo é |E|, demora apenas o tempo
amortizado O(1).
Referência Bibliográfica
● Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C. (2012). Algoritmos: teoria e prática. 3a ed.,
Elsevier: Rio de Janeiro, 944 p., ISBN 9788535236996.
● https://motherboard.vice.com/pt_br/article/z4zaj9/o-simples-e-elegante-algoritmo-que-torna-o-google
-maps-possivel
● http://www.dcc.fc.up.pt/~pribeiro/aulas/daa1415/slides/8_distancias_06122014.pdf