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

Descreva um algoritmo, indicando as variáveis-chave e os passos, para identificar todos os vértices de…

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

Descreva um algoritmo, indicando as variáveis-chave e os passos, para identificar todos os vértices de articulação (cut vertices) em um grafo não dirigido usando busca em profundidade (DFS). Explique como são atualizados 'disc' e 'low' e qual a complexidade do algoritmo.

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

Resposta esperada

Use DFS global com tempo crescente (tempo++). Variáveis-chave: disc[v] (tempo de descoberta), low[v] (menor disc alcançável via v ou seus descendentes), parent[v], visited[v]. Para cada vértice u não visitado: DFS(u): visited[u]=true; disc[u]=low[u]=tempo++; filhos=0; para cada v vizinho de u: se !visited[v]: parent[v]=u; filhos++; DFS(v); low[u]=min(low[u], low[v]); se parent[u]==NULL e filhos>1 então u é articulação; se parent[u]!=NULL e low[v]>=disc[u] então u é articulação; senão se v != parent[u] então low[u]=min(low[u], disc[v]). Raciocínio: low[v] propaga a capacidade de conexão de subárvores a ancestrais; condição low[v]>=disc[u] indica que não existe retorno da subárvore de v a um ancestral de u, logo u separa componentes. Complexidade: cada aresta e vértice é processado uma vez, portanto O(V+E). Opcional: apresentar pseudocódigo compacto e estruturas de armazenamento (listas de adjacência, arrays para disc/low/parent).

Explicação

O algoritmo descrito utiliza a busca em profundidade para explorar o grafo e identificar vértices de articulação, atualizando as variáveis 'disc' e 'low' para rastrear o tempo de descoberta e a menor descoberta acessível a partir de cada vértice. As condições para identificar um vértice de articulação garantem que, se um vértice não puder ser alcançado por nenhum de seus descendentes, ele é crítico para a conectividade do grafo. A complexidade O(V+E) reflete que cada vértice e aresta é visitado uma única vez, assegurando eficiência na execução do algoritmo.

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

vértices de articulação

📌 Objetivo

avaliacao

🧱 Pré-requisitos

busca em profundidade (DFS) · teoria de grafos

📚 Reveja

Revisar os conceitos de busca em profundidade e grafos.

⚠️ Erro mais comum

O aluno pode confundir os conceitos de 'disc' e 'low', não atualizando corretamente os valores durante a execução do algoritmo.

🌎 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.