Julgue o item seguinte, a respeito de estruturas em programa...
Julgue o item seguinte, a respeito de estruturas em programação e de arquiteturas de bancos de dados.
No algoritmo denominado busca em amplitude, a árvore
é percorrida visitando-se todos os nós de um ramo até se
atingir os nós terminais, repetindo-se o processo em cada um
dos ramos.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é Errado (E).
Vamos entender o porquê:
O enunciado da questão descreve uma técnica de busca em árvores, especificamente mencionando a busca em amplitude (também conhecida como Breadth-First Search – BFS). No entanto, a descrição fornecida no enunciado não corresponde ao funcionamento dessa técnica. Vamos abordar os conceitos-chave para esclarecer isso.
Busca em amplitude (BFS):
Na BFS, a árvore é percorrida em níveis, ou seja, a busca começa no nó raiz e explora todos os seus nós filhos antes de ir para o próximo nível de nós. Isso é geralmente implementado utilizando uma fila (queue).
Exemplo de funcionamento da BFS:
- Primeiro, visita o nó raiz.
- Depois, visita todos os filhos do nó raiz.
- Em seguida, visita todos os filhos dos nós filhos, e assim por diante.
Já a descrição dada no enunciado se parece mais com a característica da busca em profundidade (DFS - Depth-First Search).
Busca em profundidade (DFS):
Na DFS, a árvore é percorrida seguindo cada ramo até atingir um nó terminal antes de voltar e explorar novos ramos. Isso é geralmente implementado utilizando uma pilha (stack), que pode ser uma pilha de chamadas recursivas (na implementação recursiva).
Exemplo de funcionamento da DFS:
- Primeiro, visita o nó raiz.
- Depois, segue para um dos filhos e continua a seguir até o nó terminal.
- Ao alcançar um nó terminal, retorna e explora outros ramos.
Portanto, a descrição fornecida no enunciado ("a árvore é percorrida visitando-se todos os nós de um ramo até se atingir os nós terminais, repetindo-se o processo em cada um dos ramos") caracteriza a busca em profundidade, e não a busca em amplitude.
Assim, a alternativa correta é Errado (E), pois a descrição no enunciado não corresponde ao algoritmo de busca em amplitude (BFS), mas sim ao de busca em profundidade (DFS).
Espero que esta explicação tenha esclarecido o tema. Se precisar de mais alguma coisa, estou à disposição para ajudar!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Gab: E.
Busca em largura (BFS):
Um algoritmo de busca é um algoritmo que percorre um digrafo andando pelos arcos de um vértice a outro. Um algoritmo de busca examina sistematicamente os vértices e os arcos do digrafo; depois de examinar a ponta inicial de um arco, o algoritmo percorre o arco e examina sua ponta final. Cada arco é examinado no máximo uma vez.
Há muitas maneiras de organizar uma busca. Cada estratégia de busca é caracterizada pela ordem em que os vértices são examinados. Esta página introduz abusca em largura (= breadth-first search = BFS), ou busca BFS. Essa estratégia está intimamente relacionada com os conceitos de distância e caminho mínimo.
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/bfs.html
A busca em largura começa por um vértice, digamos s, especificado pelo usuário. O algoritmo visita s, depois visita todos os vizinhos de s, depois todos os vértices que estão à distância 2 de s, e assim por diante. (O conceito de distância será definido precisamente na próxima página.) O algoritmo numera os vértices, em sequência, na ordem em que eles são descobertos.
Fonte:
https://www.ime.usp.br/~pf/algoritmos_para_grafos/aulas/bfs.html
Na teoria dos grafos, busca em largura (ou busca em amplitude, também conhecido em inglês por Breadth-First Search - BFS) é um algoritmo de busca em grafos utilizado para realizar uma busca ou travessia num grafo e estrutura de dados do tipo árvore. Intuitivamente, você começa pelo vértice raiz e explora todos os vértices vizinhos. Então, para cada um desses vértices mais próximos, exploramos os seus vértices vizinhos inexplorados e assim por diante, até que ele encontre o alvo da busca.
O erro da questão está em afirmar que repete o processo em cada um dos ramos, quando na verdade o algoritmo examina, no máximo, uma vez cada um.
Descreveram uma busca em proundidade.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo