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
- “Quando dois barcos chegam juntos, preciso consultar os horários previstos, a quantidade de pescado e o espaço livre em…
- Pesquisadores acompanham a catalogação digital de objetos de um centro cultural. Para reduzir registros duplicados, o…
- Durante uma feira de produtos da agricultura familiar, uma estudante utiliza uma planilha digital para registrar os…
- Considere três instâncias de um mesmo problema de cálculo de imposto municipal sobre venda: instância A (região urbana…
- Projete a assinatura de um algoritmo que calcula o desvio padrão de uma coleção de dados numéricos e aceite uma variável…
- Dadas três instâncias do problema de distribuição de kits de informática a escolas (A:10 kits, rede lenta, técnico…
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
