Algoritmo de Dijkstra

512 palavras 3 páginas
O algoritmo de Dijkstra, concebido pelo cientista da computação holandês Edsger Dijkstra em 1956 e publicado em 19591 2 , soluciona o problema do caminho mais curto num grafo dirigido ou não dirigido com arestas de peso não negativo, em tempo computacional O([m+n]log n) onde m é o número de arestas e n é o número de vértices. O algoritmo que serve para resolver o mesmo problema em um grafo com pesos negativos é o algoritmo de Bellman-Ford, que possui maior tempo de execução que o Dijkstra.

O algoritmo de Dijkstra assemelha-se ao BFS, mas é um algoritmo guloso, ou seja, toma a decisão que parece ótima no momento. Para a teoria dos grafos uma "estratégia gulosa" é conveniente já que sendo P um menor caminho entre 2 vértices U e V, todo sub-caminho de P é um menor caminho entre 2 vértices pertencentes ao caminho P, desta forma construímos os melhores caminhos dos vértices alcançáveis pelo vértice inicial determinando todos os melhores caminhos intermediários. Nota: diz-se 'um menor caminho' pois caso existam 2 'menores caminhos' apenas um será descoberto.

O algoritmo considera um conjunto S de menores caminhos, iniciado com um vértice inicial I. A cada passo do algoritmo busca-se nas adjacências dos vértices pertencentes a S aquele vértice com menor distância relativa a I e adiciona-o a S e, então, repetindo os passos até que todos os vértices alcançáveis por I estejam em S. Arestas que ligam vértices já pertencentes a S são desconsideradas.

1º passo: iniciam-se os valores:

para todo v ∈ V[G] d[v]← ∞ π[v] ← -1 d[s] ← 0

V[G] é o conjunto de vértices(v) que formam o Grafo G. d[v] é o vetor de distâncias de s até cada v. Admitindo-se a pior estimativa possível, o caminho infinito. π[v] identifica o vértice de onde se origina uma conexão até v de maneira a formar um caminho mínimo.

2º passo: temos que usar o conjunto Q, cujos vértices ainda não contém o custo do menor caminho d[v] determinado.

Q ← V[G]

3º passo: realizamos uma

Relacionados

  • Algoritmo de Dijkstra
    661 palavras | 3 páginas
  • Algoritmo de Dijkstra
    1256 palavras | 6 páginas
  • Algoritmo de Dijkstra
    803 palavras | 4 páginas
  • Algoritmo de dijkstra
    2145 palavras | 9 páginas
  • Algoritmo de dijkstra
    269 palavras | 2 páginas
  • Algoritmo de Dijkstra e Algoritmo de Kruskal
    1795 palavras | 8 páginas
  • Implementação do algoritmo de dijkstra
    388 palavras | 2 páginas
  • Algoritmo de dijkstra para empresa de delivery
    1254 palavras | 6 páginas
  • ESTUDO DO DESEMPENHO DO ALGORITMO DE DIJKSTRA NOS ROTEADORES
    7573 palavras | 31 páginas
  • Análise de Complexidade e Empírica do algoritmo de Dijkstra
    381 palavras | 2 páginas