Considere um algoritmo que encontra rotas em uma rede (grafo). Para generalizá-lo a diferentes métricas de…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Comparar diferentes casos particulares (instâncias) de um mesmo problema, identificando as semelhanças e diferenças entre eles, e criar um algoritmo para resolver todos, fazendo uso de variáveis (parâmetros) para permitir o tratamento de todos os casos de forma genérica.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Considere um algoritmo que encontra rotas em uma rede (grafo). Para generalizá-lo a diferentes métricas de custo (tempo, distância, risco), que tipo de parâmetro deve ser adicionado à assinatura e por que isso melhora o reúso do algoritmo?
- A) Adicionar um parâmetro que define o tamanho do grafo.
- B) Adicionar um parâmetro de lista de arestas.
- C) Adiciona um parâmetro de custo fixo para o algoritmo.
- D) Adicionar um parâmetro que representa apenas o tempo de cada aresta.
- E) Adicionar um parâmetro função custo(u,v) (função/closure) que retorna o peso da aresta; isto torna a métrica plugável e desacopla a lógica de busca do cálculo do custo.
✅ Resposta correta: alternativa E
Resolução passo a passo
- Identifique o problema. O algoritmo de busca de rotas (como Dijkstra ou A*) precisa comparar caminhos pelo custo total, mas o que significa 'custo' muda conforme o caso: tempo, distância ou risco. Se a fórmula de custo estiver fixa dentro do código, cada nova métrica exige uma cópia adaptada do algoritmo.
- Pense na solução. Para generalizar, o custo deve ser tratado como dado de entrada. A forma mais flexível é receber uma função custo(u,v) que, dados dois vértices conectados, devolve o peso daquela aresta segundo a métrica escolhida. Assim, a assinatura passa a ser algo como rota(grafo, origem, destino, custo).
- Verifique a alternativa E. Ela propõe exatamente isso: um parâmetro função custo(u,v) que retorna o peso da aresta. Isso torna a métrica plugável, pois basta passar outra função para mudar o critério, e desacopla a lógica de busca (quais vértices visitar, em que ordem, como atualizar as distâncias) do cálculo do custo. Por isso o reúso melhora: o mesmo código serve para tempo, distância, risco ou qualquer outra métrica futura, sem alteração.
- Analise as demais. A: o tamanho do grafo não define como o custo de cada caminho é calculado, então não generaliza a métrica. B: uma lista de arestas é dado estrutural da rede, não critério de custo. C: um custo fixo elimina justamente a variação que se quer tornar configurável. D: fixar apenas o tempo continua limitando o algoritmo a uma única métrica, apenas renomeada.
- Conclusão: a alternativa correta é a E, coincidindo com o gabarito oficial.
💡 Dica: Pense sobre como parâmetros podem afetar a flexibilidade do algoritmo.
Alternativa por alternativa
O aluno acha que generalizar exige adaptar o algoritmo ao tamanho da rede, confundindo escala do grafo com critério de medida do caminho.
O aluno confunde a estrutura de dados que representa a rede (lista de arestas) com o parâmetro que define como o custo é calculado.
O aluno entende que um custo fixo torna o algoritmo mais geral, quando na verdade ele trava uma única métrica; o termo 'parâmetro' foi lido como sinônimo de constante.
O aluno acredita que basta trocar a métrica fixa de distância por uma métrica fixa de tempo para generalizar, sem perceber que a solução ainda não é plugável para risco ou outras métricas.
Por que engana: Confundir a necessidade de um parâmetro fixo com a flexibilidade que uma função de custo pode oferecer ao algoritmo.
Uma função parâmetro permite selecionar métricas diferentes sem alterar o corpo do algoritmo, favorecendo reúso, testabilidade e composição de heurísticas.
Raio-X da questão
algoritmos de grafos
avaliacao
funções e parâmetros em programação · estruturas de dados (grafos)
Revisar como parâmetros podem ser utilizados em funções para aumentar a versatilidade.
Confundir a necessidade de um parâmetro fixo com a flexibilidade que uma função de custo pode oferecer ao algoritmo.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Ao generalizar um algoritmo recursivo que calcula custo mínimo em uma rede (grafo) para múltiplas instâncias, qual…
- Projete a assinatura de um algoritmo que resolve várias instâncias de caminho mínimo: recebe um grafo e uma lista de…
- Explique como um algoritmo pode ser utilizado para decidir a melhor forma de transporte em uma viagem, considerando…
- Em um grafo ponderado que modela ruas de uma cidade, como representar na aresta tanto a distância quanto o tempo de…
- Você recebeu um algoritmo que calcula trajetórias de entrega e hoje usa a variável fixa 'vel_max' e indicadores de…
- Uma equipe de mobilidade urbana modelou um conjunto de cidades como um grafo. Cada vértice representa uma cidade, cada…
Todas as questões de Estratégias de solução de problemas - Generalização
🔎 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
