Uma equipe de mobilidade urbana modelou um conjunto de cidades como um grafo. Cada vértice representa uma…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Criar soluções de problemas para os quais seja adequado o uso de árvores e grafos para descrever suas informações e automatizá-las usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Uma equipe de mobilidade urbana modelou um conjunto de cidades como um grafo. Cada vértice representa uma cidade, cada aresta representa uma estrada direta e o número associado a cada aresta indica o tempo estimado de viagem, em minutos. Todos os tempos são positivos. Para orientar ambulâncias, o sistema precisa encontrar, entre uma cidade de origem e uma cidade de destino, o percurso cujo tempo total de viagem seja o menor possível. Com base nessa representação e nas características dos dados, qual abordagem permite determinar corretamente o percurso de menor tempo entre duas cidades?
- A) Aplicar busca em profundidade, seguindo o primeiro percurso encontrado.
- B) Aplicar busca em largura, considerando iguais os custos de todas as estradas.
- C) Aplicar o algoritmo de Dijkstra, considerando os tempos positivos das estradas.
- D) Usar uma matriz de adjacência, armazenando os tempos das estradas.
- E) Escolher sempre a estrada com menor tempo no ponto atual.
✅ Resposta correta: alternativa C
Resolução passo a passo
- O problema pede o caminho de menor soma de pesos (tempos) entre uma origem e um destino em um grafo com pesos positivos nas arestas.
- Busca em profundidade percorre o grafo seguindo um caminho até o fim antes de voltar, sem considerar pesos; o primeiro caminho encontrado não é necessariamente o de menor tempo, então a alternativa A está errada.
- Busca em largura encontra o caminho com menor número de arestas, o que só coincide com o menor tempo se todas as estradas tiverem o mesmo tempo; como os tempos variam, a alternativa B está errada.
- O algoritmo de Dijkstra é feito para caminhos mínimos em grafos com pesos não negativos; como todos os tempos são positivos, ele garante o resultado correto, sendo a alternativa C a correta.
- Uma matriz de adjacência é apenas uma forma de representar o grafo; ela não determina por si só o percurso mínimo, então a alternativa D está errada.
- Escolher sempre a estrada mais rápida a partir do ponto atual é a heurística gulosa, que pode levar a um caminho total maior ao evitar uma estrada inicial lenta que leva a um trajeto final muito mais rápido; por isso a alternativa E está errada.
- Conclusão: a alternativa C está correta e coincide com o gabarito oficial.
💡 Dica: Considere algoritmos de busca de caminho mais curto.
Alternativa por alternativa
Acredita que o primeiro caminho encontrado na busca em profundidade já é o de menor tempo, ignorando que a busca não compara pesos.
Por que engana: Confundir algoritmos de busca simples com algoritmos específicos para encontrar caminhos mínimos, como Dijkstra.
Confunde menor número de estradas com menor tempo de viagem, assumindo que todas as arestas têm o mesmo custo.
Como as estradas possuem pesos que representam tempos de viagem e todos esses pesos são positivos, é necessário utilizar um algoritmo que compare os custos acumulados dos percursos. O algoritmo de Dijkstra determina os menores caminhos a partir de uma origem em grafos com pesos não negativos, portanto é adequado ao problema apresentado.
Imagina que armazenar os tempos em uma matriz já resolve o problema, confundindo a estrutura de dados com o algoritmo de busca do caminho.
Supõe que a escolha local da estrada mais rápida em cada cruzamento sempre gera o percurso global mais rápido, desconsiderando trajetos iniciais mais lentos que compensam depois.
Raio-X da questão
roteamento em grafos
avaliacao
algoritmos de grafos · busca em largura e profundidade
Revisar algoritmos de busca de caminho mais curto, como Dijkstra.
Confundir algoritmos de busca simples com algoritmos específicos para encontrar caminhos mínimos, como Dijkstra.
pensamento_critico
cientifico
Questões parecidas com resolução
- Em um mapa de transporte, cada ligação entre dois locais tem um custo positivo, como tempo ou preço da viagem. Um…
- Dado um grafo ponderado não dirigido onde vértices são cidades e cada aresta armazena distância (km) e limite de…
- Qual é a técnica ideal para resolver um problema de roteamento entre cidades usando dados de tráfego?
- Uma prefeitura quer modelar ruas e rotas de ônibus de um bairro como um grafo direcionado com pesos (tempo de viagem)…
- Projete um algoritmo em linguagem descritiva que, dado um grafo ponderado dirigido cujas arestas representam tempos de…
- Considere um problema que envolve a otimização de rotas entre várias cidades. Qual estrutura é mais eficiente para…
Todas as questões de Programação - Programação usando grafos e árvores
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
