0% acharam este documento útil (0 voto)
14 visualizações15 páginas

Algoritmo de Dijkstra em Grafos

O documento descreve a teoria dos grafos e o algoritmo de Dijkstra para encontrar o caminho mais curto em grafos com pesos nas arestas. O algoritmo de Dijkstra mantém conjuntos de vértices e distâncias mínimas conhecidas, seleciona o vértice de menor distância a cada passo, e atualiza as distâncias dos vizinhos. O algoritmo tem aplicações como redes elétricas, programação de rotas e tráfego urbano.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
14 visualizações15 páginas

Algoritmo de Dijkstra em Grafos

O documento descreve a teoria dos grafos e o algoritmo de Dijkstra para encontrar o caminho mais curto em grafos com pesos nas arestas. O algoritmo de Dijkstra mantém conjuntos de vértices e distâncias mínimas conhecidas, seleciona o vértice de menor distância a cada passo, e atualiza as distâncias dos vizinhos. O algoritmo tem aplicações como redes elétricas, programação de rotas e tráfego urbano.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

TEORIA DOS GRAFOS

Márcio Antônio Duarte

UFG – Ciência da Computação

email: marcioaduarte@[Link]
Algoritmo de Dijkstra

Edsger Wybe Dijkstra

Professor e pesquisador na
área de Ciência da
Computação

Recebeu Turing Award 1972
– mais renomado prêmio da
Computação

Contribuições fundamentais em
ling. de programação e
verificação formal

Algoritmo de Dijkstra utilizado
em vários sistemas (redes,
GPS, etc)
Grafos com Pesos

Anotar arestas do grafo com “intensidade” do
relacionamento
– peso da aresta (weight)
– função w(e) retorna peso da aresta e
– w: E ℜ
Distância em Grafos com Peso

Calcular o caminho mais curto entre dois pontos
é calcular a distância em grafos com peso!
– pesos sempre maior que zero;

Dado G, com pesos

Qual é a distância do vértice s ao d?

Como resolver este problema?

Como resolvemos o problema sem pesos?

Podemos adaptar algumas ideias?
Distância em Grafos com Peso

Ideia!

Partindo de s, expandir os caminhos, incluindo
vértices
– Mas em que ordem?
Na ordem em que caminhos mínimos

sejam garantidos!

Expandir caminhos mínimos até chegar em d de
maneira gulosa!
Algoritmo de Dijkstra

Como tornar a idéia em algoritmo?
– adicionar o vértice para o qual temos o
menor caminho

Idéias:
– Manter dois conjuntos de vértices;
– Manter comprimento do menor caminho
conhecido até o momento para cada
vértice;
– Adicionar o vértice de menor caminho;
– Atualizar distâncias.
Algoritmo de Dijkstra
1. Dijkstra(G, s)
2. Para cada vértice v
3. dist[v] = infinito
4. Define conjunto S = 0 // vazio
5. dist[s] = 0
6. Enquanto S != V
7. Selecione u em V-S, tal que dist[u] é mínima
8. Adicione u em S
9. Para cada vizinho v de u faça
10. Se dist[v] > dist[u] + w((u,v)) então
11. dist[v] = dist[u] + w((u,v))
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Algoritmo de Dijkstra
Algoritmo de Dijkstra - Aplicações
● Linhas de transmissão elétrica,
● Conexão de redes
● Problemas de programação de rota crítica PERT
● Planejamento de movimentos de um robô
● Tráfego de estradas
● Campo de biologia molecular
● Fluxo de tráfego em cidades com muita congestão
● Redes neurais
● Elaboração de projetos

Você também pode gostar