Descreva um algoritmo em alto nível que, dado um grafo não direcionado representado por lista de adjacência…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva um algoritmo em alto nível que, dado um grafo não direcionado representado por lista de adjacência, identifique todos os vértices de articulação (cut vertices). Indique as variáveis principais (por exemplo: tempo de descoberta, low, visitado) e explique a ideia-chave da correção.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Resposta modelo (esboço): - Variáveis principais: visitado[v] (bool), disc[v] (tempo de descoberta), low[v] (menor tempo alcançável), parent[v]. - Ideia: executar DFS atribuindo disc[v]=tempo++ ao visitar v; inicializar low[v]=disc[v]. Para cada aresta v?w: • se w não visitado: parent[w]=v; recursivamente DFS(w); atualizar low[v]=min(low[v], low[w]); se parent[v]==NULL e número de filhos>1 então v é articulação; se parent[v]!=NULL e low[w]>=disc[v] então v é articulação. • se w visitado e w?parent[v]: atualizar low[v]=min(low[v], disc[w]). - Correção: low[w] representa o menor tempo de descoberta alcançável por w ou seus descendentes sem usar a aresta para parent; se low[w]>=disc[v] não há retorno ao ancestral de v através do subárvore de w, então v separa componentes ao ser removido. - Complexidade: O(V+E) em tempo e O(V) em espaço para vetores auxiliares.
Explicação
O algoritmo utiliza uma abordagem de busca em profundidade (DFS) para explorar o grafo e identificar vértices de articulação com base nos tempos de descoberta e nos valores de low. A atualização das variáveis low e disc permite determinar se um vértice é crítico para a conectividade do grafo, pois a condição low[w] >= disc[v] indica que não há caminhos alternativos que conectem os vértices de w a v sem passar por v. A complexidade O(V+E) assegura eficiência na execução, considerando todos os vértices e arestas do grafo.
Raio-X da questão
vértices de articulação
avaliacao
estruturas de dados · algoritmos de busca
Revisar algoritmos de busca em grafos e suas propriedades.
O aluno pode confundir vértices de articulação com outros conceitos de grafos, como componentes conexos, levando a uma descrição incorreta do algoritmo.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Descreva um algoritmo em alto nível que, dado um grafo não direcionado representado por lista de adjacência, identifique…
- Projete um algoritmo (pseudocódigo) que, dado um grafo não direcionado representado por lista de adjacência, determine…
- Descreva um algoritmo baseado em DFS para identificar vértices de articulação (cut vertices) em um grafo não direcionado…
- Descreva um algoritmo, indicando as variáveis-chave e os passos, para identificar todos os vértices de articulação (cut…
- Escreva em linguagem descritiva um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado, retorne…
- Projete um algoritmo (explique a ideia e apresente pseudocódigo) que, dado um grafo não direcionado em lista de…
🔎 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
