Logo Passei Direto
Buscar

Algoritmo de Dijkstra

Ferramentas de estudo

Questões resolvidas

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

Prévia do material em texto

Algoritmo de Dijkstra 
Qual e o objetivo principal do algoritmo de Dijkstra?
a) Encontrar o caminho mais longo entre dois nos em um grafo
b) Encontrar o caminho de menor custo entre um no origem e todos os demais nos do grafo
c) Ordenar os vertices de um grafo
d) Detectar ciclos em grafos direcionados
Resposta: b) Encontrar o caminho de menor custo entre um no origem e todos os demais nos do
grafo
Explicacao: O algoritmo de Dijkstra e usado para calcular o caminho de menor distancia ou custo
de um vertice inicial para todos os outros vertices em um grafo com pesos nao negativos.
Qual e a condicao fundamental para que o algoritmo de Dijkstra funcione corretamente?
a) O grafo deve ser direcionado
b) Os pesos das arestas devem ser numeros inteiros
c) Os pesos das arestas devem ser nao negativos
d) O grafo deve ser conexo
Resposta: c) Os pesos das arestas devem ser nao negativos
Explicacao: Dijkstra nao funciona corretamente com arestas de peso negativo, pois pode
subestimar distancias em certos caminhos.
No algoritmo de Dijkstra, como e escolhido o proximo vertice a ser processado?
a) O vertice com o maior peso acumulado
b) O vertice com a menor distancia temporaria ainda nao processada
c) O vertice com maior numero de conexoes
d) O vertice que aparece primeiro na lista de adjacencia
Resposta: b) O vertice com a menor distancia temporaria ainda nao processada
Explicacao: O algoritmo sempre seleciona o vertice com a menor distancia estimada para garantir
que os caminhos mais curtos sejam descobertos primeiro.
O que ocorre com a distancia de um vertice quando o algoritmo de Dijkstra o processa?
a) Ela e aumentada para refletir o caminho mais longo
b) Ela e marcada como definitiva, representando a menor distancia conhecida ate entao
c) Ela e reiniciada para infinito
d) Ela e ignorada para agilizar o algoritmo
Resposta: b) Ela e marcada como definitiva, representando a menor distancia conhecida ate entao
Explicacao: Quando um vertice e processado, sua distancia minima ate o vertice origem e
finalizada, pois nao havera caminho mais curto a partir daquele ponto.
Quais estruturas de dados sao geralmente utilizadas para implementar o algoritmo de Dijkstra de
forma eficiente?
a) Listas encadeadas simples
b) Pilhas
c) Filas de prioridade (heaps)
d) Arrays estaticos
Resposta: c) Filas de prioridade (heaps)
Explicacao: O uso de uma fila de prioridade, como um heap binario, permite a selecao eficiente do
vertice com a menor distancia durante a execucao do algoritmo.
Como o algoritmo de Dijkstra inicializa as distancias dos vertices?
a) Com zero para todos os vertices
b) Com infinito para todos os vertices, exceto o vertice origem que e zero
c) Com a soma dos pesos de todas as arestas do grafo
d) Com valores aleatorios para agilizar a execucao
Resposta: b) Com infinito para todos os vertices, exceto o vertice origem que e zero
Explicacao: Isso indica que a distancia para todos os nos e desconhecida inicialmente, exceto para
o no de origem, cujo custo e zero.
Quando o algoritmo de Dijkstra termina?
a) Quando todos os vertices foram processados e suas distancias finais definidas
b) Quando encontra o menor caminho para o vertice destino especifico
c) Quando a soma dos pesos for maior que um limite pre-definido
d) Quando o grafo estiver vazio
Resposta: a) Quando todos os vertices foram processados e suas distancias finais definidas
Explicacao: O algoritmo percorre todos os nos alcancaveis para garantir o menor caminho ate cada
um deles.
O que acontece se o algoritmo de Dijkstra for aplicado em um grafo que contem arestas com peso
negativo?
a) Ele funcionara normalmente
b) Ele podera retornar caminhos incorretos ou infinitos
c) Ele ira ignorar as arestas de peso negativo
d) Ele detectara automaticamente e corrigira o peso
Resposta: b) Ele podera retornar caminhos incorretos ou infinitos
Explicacao: A presenca de pesos negativos pode causar loops de atualizacao infinitos, fazendo
com que o algoritmo nao produza resultados validos.
Qual e a complexidade de tempo tipica do algoritmo de Dijkstra implementado com uma fila de
prioridade usando um heap binario?
a)
O(V
2
)
b)
O(E+VlogV)
c)
O(V+E
2
)
d)
O(logV)
Resposta: b)
O(E+VlogV)
Explicacao: O tempo depende do numero de vertices
V e arestas
E, e a implementacao com heap otimiza as operacoes de extracao do menor elemento.
Qual e a funcao do vetor (ou lista) de predecessores durante a execucao do algoritmo de Dijkstra?
a) Contar quantas vezes um vertice foi visitado
b) Armazenar o caminho minimo encontrado ate cada vertice
c) Guardar as distancias temporarias para cada vertice
d) Identificar ciclos no grafo
Resposta: b) Armazenar o caminho minimo encontrado ate cada vertice
Explicacao: O vetor de predecessores registra o no anterior no caminho de menor custo para
reconstruir a rota ao final.
Em um grafo com 5 vertices, o algoritmo de Dijkstra encontra as distancias minimas a partir do
vertice 1. Se um vertice nao e alcancavel a partir do vertice 1, qual sera seu valor final de distancia?
a) 0
b) 1
c) Infinito (ou um valor muito grande)
d) -1
Resposta: c) Infinito (ou um valor muito grande)
Explicacao: Como nao ha caminho para esse vertice, a distancia permanece infinita, indicando
inacessibilidade.
Por que o algoritmo de Dijkstra e considerado um algoritmo guloso?
a) Porque tenta resolver subproblemas maiores primeiro
b) Porque escolhe localmente o proximo vertice com a menor distancia, esperando uma solucao
global otima
c) Porque visita todos os vertices sem criterio
d) Porque usa uma abordagem recursiva para encontrar a solucao
Resposta: b) Porque escolhe localmente o proximo vertice com a menor distancia, esperando uma
solucao global otima
Explicacao: O algoritmo toma decisoes locais otimas em cada passo, garantindo a solucao otima
final.
Suponha que voce queira encontrar o menor caminho entre dois vertices especificos em um grafo
usando o algoritmo de Dijkstra. Como pode otimizar o processo?
a) Executar o algoritmo completo para todos os vertices e depois selecionar o caminho desejado
b) Interromper a execucao do algoritmo assim que o vertice destino for processado
c) Ignorar as arestas com peso maior que um valor definido
d) Utilizar busca em largura no lugar do Dijkstra
Resposta: b) Interromper a execucao do algoritmo assim que o vertice destino for processado
Explicacao: Apos determinar o menor caminho para o destino, nao ha necessidade de continuar
processando outros vertices.
O que significa a expressao relaxar uma aresta no contexto do algoritmo de Dijkstra?
a) Atualizar o peso da aresta para um valor menor
b) Ajustar a distancia estimada de um vertice vizinho, se um caminho mais curto for encontrado
c) Remover a aresta do grafo para simplificacao
d) Marcar a aresta como percorrida
Resposta: b) Ajustar a distancia estimada de um vertice vizinho, se um caminho mais curto for
encontrado
Explicacao: Relaxar uma aresta significa verificar se passar por um vertice pode diminuir a distancia
para um vertice adjacente e atualizar a distancia se for o caso.
E possivel utilizar o algoritmo de Dijkstra para encontrar caminhos minimos em grafos nao
conexos?
a) Sim, para os vertices acessiveis a partir do vertice origem
b) Nao, pois exige que o grafo seja totalmente conexo
c) Sim, mas apenas se o grafo for dirigido
d) Nao, a nao ser que o grafo nao tenha pesos
Resposta: a) Sim, para os vertices acessiveis a partir do vertice origem
Explicacao: O algoritmo computa caminhos minimos para os nos que podem ser alcancados; os
demais terao distancia infinita.
Qual e o impacto de um grafo ser dirigido para a execucao do algoritmo de Dijkstra?
a) O algoritmo nao funciona em grafos dirigidos
b) O algoritmo considera a direcao das arestas para calcular os caminhos minimos
c) O algoritmo ignora a direcao das arestas
d) O algoritmo sempre retorna a distancia maxima possivel
Resposta: b) O algoritmo considera a direcao das arestas paracalcular os caminhos minimos
Explicacao: Em grafos dirigidos, so se pode seguir o sentido das arestas para alcancar outros
vertices.
Como o algoritmo de Dijkstra trata os nos que ja foram processados?
a) Eles sao revisitados a cada relaxamento
b) Sao marcados como fechados e nao sao processados novamente
c) Sao ignorados desde o inicio
d) Sao usados para calcular ciclos
Resposta: b) Sao marcados como fechados e nao sao processados novamente
Explicacao: Uma vez que o menor caminho para um vertice e conhecido, ele nao e mais alterado
nem reprocessado.
Qual e a diferenca principal entre o algoritmo de Dijkstra e o algoritmo de Bellman-Ford?
a) Dijkstra funciona apenas com pesos negativos
b) Bellman-Ford pode lidar com pesos negativos, enquanto Dijkstra nao
c) Bellman-Ford e mais rapido que Dijkstra em todos os casos
d) Dijkstra encontra ciclos negativos, Bellman-Ford nao
Resposta: b) Bellman-Ford pode lidar com pesos negativos, enquanto Dijkstra nao
Explicacao: Bellman-Ford e mais geral, podendo lidar com arestas negativas, mas e mais lento que
Dijkstra.
Qual dessas alternativas representa uma aplicacao pratica do algoritmo de Dijkstra?
a) Compressao de arquivos
b) Roteamento de pacotes em redes de computadores
c) Calculo de areas em geometria
d) Criptografia
Resposta: b) Roteamento de pacotes em redes de computadores
Explicacao: O algoritmo e usado para determinar o caminho mais curto para enviar dados de um
ponto a outro em redes.
Durante a execucao do algoritmo, se a distancia atual para um vertice
v e 7 e encontramos um caminho alternativo com custo 5, o que acontece?
a) A distancia para
v permanece 7
b) A distancia para
v e atualizada para 5
c) O algoritmo termina imediatamente
d) O vertice
v e removido do grafo
Resposta: b) A distancia para
v e atualizada para 5
Explicacao: Sempre que um caminho mais curto e encontrado, a distancia para o vertice e
atualizada.
Se um grafo possui
V vertices e
E arestas, qual e a principal limitacao pratica do algoritmo de Dijkstra para grafos muito grandes?
a) O algoritmo nao suporta mais de 100 vertices
b) A complexidade computacional pode se tornar alta, especialmente se nao usar estruturas
eficientes
c) O algoritmo retorna sempre caminhos incorretos para grafos grandes
d) Ele nao funciona com grafos completos
Resposta: b) A complexidade computacional pode se tornar alta, especialmente se nao usar
estruturas eficientes
Explicacao: Para grafos grandes, otimizacoes como uso de heaps sao importantes para manter o
algoritmo eficiente.
Quando se usa uma matriz de adjacencia para representar o grafo no algoritmo de Dijkstra, qual e a
complexidade tipica?
a)
O(V
2
)
b)
O(ElogV)
c)
O(VlogV+E)
d)
O(E
2
)
Resposta: a)
O(V
2
)
Explicacao: A matriz de adjacencia exige verificar todas as possiveis conexoes, resultando em
complexidade quadratica para o numero de vertices.
Como o algoritmo de Dijkstra trata a distancia inicial do vertice origem para ele mesmo?
a) Inicializa com infinito
b) Inicializa com zero
c) Inicializa com o peso da primeira aresta
d) Inicializa com um valor aleatorio
Resposta: b) Inicializa com zero
Explicacao: A distancia do vertice origem para ele mesmo e zero, pois nao ha custo para chegar
nele mesmo.
E possivel aplicar o algoritmo de Dijkstra em grafos ciclicos?
a) Nao, pois ciclos invalidam o algoritmo
b) Sim, desde que nao haja arestas de peso negativo
c) Apenas em grafos aciclicos direcionados
d) Apenas se o ciclo for simples
Resposta: b) Sim, desde que nao haja arestas de peso negativo
Explicacao: Ciclos nao impedem a execucao do algoritmo, contanto que nao causem somas
negativas.
Qual das opcoes abaixo descreve melhor o funcionamento do algoritmo de Dijkstra em relacao ao
caminho mais curto?
a) Ele calcula o caminho mais curto somente para um destino especifico
b) Ele calcula o caminho mais curto da origem para todos os outros vertices do grafo
c) Ele calcula o caminho mais longo para cada vertice
d) Ele calcula somente se o grafo for aciclico
Resposta: b) Ele calcula o caminho mais curto da origem para todos os outros vertices do grafo
Explicacao: A saida do algoritmo inclui as menores distancias para todos os vertices acessiveis a
partir da origem.
O que deve ser armazenado para reconstruir o caminho mais curto apos o termino do algoritmo?
a) As distancias finais para cada vertice
b) Os predecessores de cada vertice no caminho mais curto
c) Os pesos de todas as arestas do grafo
d) A lista de todos os vertices processados
Resposta: b) Os predecessores de cada vertice no caminho mais curto
Explicacao: Com os predecessores, pode-se remontar o caminho de origem ate o destino desejado.
O algoritmo de Dijkstra pode ser modificado para trabalhar em grafos onde as arestas representam
custos variaveis ao longo do tempo?
a) Sim, mas ele precisa ser adaptado para reprocessar os caminhos conforme os custos mudam
b) Nao, ele so funciona com custos fixos
c) Sim, sem nenhuma modificacao
d) Nao, porque o algoritmo nao considera pesos nas arestas
Resposta: a) Sim, mas ele precisa ser adaptado para reprocessar os caminhos conforme

Mais conteúdos dessa disciplina