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

Projete um algoritmo em linguagem descritiva que, dada a lista de adjacência de um grafo dirigido acíclico…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO04

Aplicar a estratégia de decomposição para resolver problemas complexos, dividindo esse problema em partes menores, resolvendo-as e combinando suas soluções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete um algoritmo em linguagem descritiva que, dada a lista de adjacência de um grafo dirigido acíclico (DAG) onde cada vértice v tem atributo duracao[v], calcule para cada vértice o menor tempo de término possível assumindo execução paralela ilimitada (ou seja, respeitar dependências).

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

Resposta esperada

Entrada: lista de adjacência adj[], vetor duracao[v] para cada vértice. 1. Calcular indegree[v] para todos os vértices. 2. Inicializar fila Q vazia e vetor inicio[v] = 0. 3. Enfileirar todos os vértices com indegree 0 em Q. 4. Enquanto Q não estiver vazia: a. u = desenfileirar(Q). b. tempo_termino[u] = inicio[u] + duracao[u]. c. Para cada v em adj[u]: i. Atualizar inicio[v] = max(inicio[v], tempo_termino[u]). ii. Decrementar indegree[v]. iii. Se indegree[v] == 0 então enfileirar v em Q. 5. Ao final, tempo_termino[v] contém o menor tempo de término para cada vértice; o tempo total mínimo é max_v tempo_termino[v]. Complexidade: O(V + E) usando lista de adjacência. Observação: algoritmo corresponde a ordenação topológica (Kahn) propagando tempos de início mais cedo.

Explicação

O algoritmo utiliza a técnica de ordenação topológica para processar os vértices de um grafo dirigido acíclico, garantindo que as dependências entre as tarefas sejam respeitadas. Ao calcular o tempo de término de cada vértice com base nos tempos de término dos predecessores, ele assegura que o tempo total mínimo seja obtido de forma eficiente. A complexidade O(V + E) indica que o algoritmo é escalável e adequado para grafos grandes, mantendo a eficiência na propagação dos tempos.

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

algoritmo de grafos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

algoritmo de grafos · listas de adjacência

📚 Reveja

Revisar conceitos de grafos dirigidos e execução paralela.

⚠️ Erro mais comum

O aluno pode confundir a execução sequencial com a execução paralela, não respeitando as dependências entre os vértices.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Decomposiçã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

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.