GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF09CO01Difícil⏱ longo

Dado um grafo ponderado não dirigido onde vértices são cidades e cada aresta armazena distância (km) e limite…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF09CO01

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

Dado um grafo ponderado não dirigido onde vértices são cidades e cada aresta armazena distância (km) e limite de velocidade (km/h), descreva em pseudocódigo um algoritmo que, usando listas de adjacência, encontre o caminho que minimiza o tempo total de viagem. Explique as estruturas usadas e a complexidade.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Modelo de resposta (pseudocódigo e justificativa): Dados: G(V,E) com para cada aresta e: distância d(e) e limite s_lim(e). Representação: listaAdj[v] = lista de pares (u, d, s_lim). Peso temporal de e: t(e) = d(e) / s_lim(e) (assume-se viajar à velocidade máxima permitida). Pseudocódigo (Dijkstra sobre tempo): inicializar dist[v]=8 para todo v; dist[orig]=0 fila = prioridade com (orig,0) while fila não vazia: (v, tv) = extrair mínima if tv>dist[v] continue for cada (u,d,s_lim) in listaAdj[v]: alt = dist[v] + d / s_lim if alt < dist[u]: dist[u] = alt prev[u] = v atualizar fila com (u,alt) Ao final, reconstruir caminho via prev até destino. Complexidade: O((V+E) log V) com heap binário; armazena apenas listas de adjacência e vetores dist/prev. Observações: se o veículo não puder atingir s_lim, ajustar t(e)=d/velocidade_real; para velocidades variáveis ou tráfego, usar funções de custo por aresta e manter propriedade nonnegativa para Dijkstra.

Explicação

O algoritmo proposto utiliza a abordagem de Dijkstra, que é adequada para encontrar o caminho mais curto em grafos ponderados, adaptando o peso das arestas para representar o tempo de viagem. A estrutura de lista de adjacência permite uma representação eficiente do grafo, facilitando a exploração dos vizinhos de cada vértice. A complexidade do algoritmo, O((V+E) log V), garante eficiência mesmo em grafos grandes, tornando-o prático para resolver o problema proposto.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

caminho mínimo em grafos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmos de grafos · listas de adjacência

📚 Reveja

Revisar algoritmos de busca em grafos e suas complexidades.

⚠️ Erro mais comum

O aluno pode confundir a minimização do tempo total com a minimização da distância, focando apenas nas distâncias entre as cidades.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.