Algoritmo de pesquisa em amplitude (BFS) com EXEMPLO
O que รฉ o algoritmo BFS (pesquisa em amplitude)?
A pesquisa em largura (BFS) รฉ um algoritmo usado para representar graficamente dados ou pesquisar รกrvores ou atravessar estruturas. A forma completa do BFS รฉ a pesquisa em amplitude.
O algoritmo visita e marca com eficiรชncia todos os nรณs principais em um grรกfico de maneira ampla e precisa. Este algoritmo seleciona um รบnico nรณ (ponto inicial ou de origem) em um grafo e entรฃo visita todos os nรณs adjacentes ao nรณ selecionado. Lembre-se de que o BFS acessa esses nรณs um por um.
Depois que o algoritmo visita e marca o nรณ inicial, ele se move em direรงรฃo aos nรณs nรฃo visitados mais prรณximos e os analisa. Uma vez visitados, todos os nรณs sรฃo marcados. Essas iteraรงรตes continuam atรฉ que todos os nรณs do grรกfico tenham sido visitados e marcados com sucesso.
O que sรฃo travessias de grรกfico?
Uma travessia de grรกfico รฉ uma metodologia comumente usada para localizar a posiรงรฃo do vรฉrtice no grรกfico. ร um algoritmo de busca avanรงado que pode analisar o grรกfico com rapidez e precisรฃo alรฉm de marcar a sequรชncia dos vรฉrtices visitados. Esse processo permite visitar rapidamente cada nรณ em um grรกfico sem ficar preso em um loop infinito.
A arquitetura do algoritmo BFS
- Nos vรกrios nรญveis dos dados, vocรช pode marcar qualquer nรณ como o nรณ inicial ou inicial para comeรงar a percorrer. O BFS irรก visitar o nรณ e marcรก-lo como visitado e colocรก-lo na fila.
- Agora o BFS visitarรก os nรณs mais prรณximos e nรฃo visitados e os marcarรก. Esses valores tambรฉm sรฃo adicionados ร fila. A fila funciona no Modelo FIFO.
- De maneira semelhante, os nรณs restantes mais prรณximos e nรฃo visitados no grรกfico sรฃo analisados, marcados e adicionados ร fila. Esses itens sรฃo excluรญdos da fila como recebimento e impressos como resultado.
Por que precisamos do algoritmo BFS?
Existem vรกrios motivos para utilizar o algoritmo BFS para pesquisar seu conjunto de dados. Alguns dos aspectos mais vitais que tornam este algoritmo sua primeira escolha sรฃo:
- O BFS รฉ รบtil para analisar os nรณs em um grรกfico e construir o caminho mais curto para percorrรช-los.
- O BFS pode percorrer um grรกfico no menor nรบmero de iteraรงรตes.
- A arquitetura do algoritmo BFS รฉ simples e robusta.
- O resultado do algoritmo BFS mantรฉm um alto nรญvel de precisรฃo em comparaรงรฃo com outros algoritmos.
- As iteraรงรตes do BFS sรฃo perfeitas e nรฃo hรก possibilidade de esse algoritmo ser pego em um problema de loop infinito.
Como funciona o algoritmo BFS?
A travessia do grรกfico requer que o algoritmo visite, verifique e/ou atualize cada nรณ nรฃo visitado em uma estrutura semelhante a uma รกrvore. As travessias do grรกfico sรฃo categorizadas pela ordem em que visitam os nรณs do grรกfico.
O algoritmo BFS inicia a operaรงรฃo a partir do primeiro nรณ ou nรณ inicial em um grรกfico e o percorre completamente. Depois de atravessar com sucesso o nรณ inicial, o prรณximo vรฉrtice nรฃo percorrido no grรกfico รฉ visitado e marcado.
Portanto, podemos dizer que todos os nรณs adjacentes ao vรฉrtice atual sรฃo visitados e percorridos na primeira iteraรงรฃo. Uma metodologia de fila simples รฉ utilizada para implementar o funcionamento de um algoritmo BFS e consiste nas seguintes etapas:
Passo 1)
Cada vรฉrtice ou nรณ do grรกfico รฉ conhecido. Por exemplo, vocรช pode marcar o nรณ como V.
Passo 2)
Caso o vรฉrtice V nรฃo seja acessado, adicione o vรฉrtice V ร fila BFS
Passo 3)
Inicie a pesquisa BFS e, apรณs a conclusรฃo, marque o vรฉrtice V como visitado.
Passo 4)
A fila BFS ainda nรฃo estรก vazia, portanto, remova o vรฉrtice V do grรกfico da fila.
Passo 5)
Recupere todos os vรฉrtices restantes no grรกfico que sรฃo adjacentes ao vรฉrtice V
Passo 6)
Para cada vรฉrtice adjacente digamos V1, caso ainda nรฃo tenha sido visitado adicione V1 ร fila BFS
Passo 7)
O BFS irรก visitar V1 e marcรก-lo como visitado e excluรญ-lo da fila.
Exemplo de algoritmo BFS
Passo 1)
Vocรช tem um grรกfico de sete nรบmeros variando de 0 a 6.
Passo 2)
0 ou zero foi marcado como um nรณ raiz.
Passo 3)
0 รฉ visitado, marcado e inserido na estrutura de dados da fila.
Passo 4)
Os 0 nรณs adjacentes e nรฃo visitados restantes sรฃo visitados, marcados e inseridos na fila.
Passo 5)
As iteraรงรตes de passagem sรฃo repetidas atรฉ que todos os nรณs sejam visitados.
Regras do Algoritmo BFS
Aqui estรฃo regras importantes para usar o algoritmo BFS:
- Uma fila (FIFO-First in First Out) estrutura de dados รฉ usado pelo BFS.
- Vocรช marca qualquer nรณ no grรกfico como raiz e comeรงa a percorrer os dados dele.
- O BFS percorre todos os nรณs do grรกfico e continua descartando-os quando concluรญdos.
- O BFS visita um nรณ adjacente nรฃo visitado, marca-o como concluรญdo e insere-o em uma fila.
- Remove o vรฉrtice anterior da fila caso nenhum vรฉrtice adjacente seja encontrado.
- O algoritmo BFS itera atรฉ que todos os vรฉrtices do grรกfico sejam percorridos com sucesso e marcados como concluรญdos.
- Nรฃo hรก loops causados โโpelo BFS durante a passagem de dados de qualquer nรณ.
Aplicaรงรตes do Algoritmo BFS
Vamos dar uma olhada em algumas das aplicaรงรตes da vida real onde a implementaรงรฃo de um algoritmo BFS pode ser altamente eficaz.
- Grรกficos nรฃo ponderados: O algoritmo BFS pode facilmente criar o caminho mais curto e uma รกrvore geradora mรญnima para visitar todos os vรฉrtices do grรกfico no menor tempo possรญvel com alta precisรฃo.
- Redes P2P: O BFS pode ser implementado para localizar todos os nรณs mais prรณximos ou vizinhos em uma rede ponto a ponto. Isso encontrarรก os dados necessรกrios mais rapidamente.
- Rastreadores da Web: Mecanismos de pesquisa ou rastreadores da web podem criar facilmente vรกrios nรญveis de รญndices empregando BFS. A implementaรงรฃo do BFS comeรงa na fonte, que รฉ a pรกgina da web, e entรฃo visita todos os links dessa fonte.
- Sistemas de navegaรงรฃo: O BFS pode ajudar a encontrar todos os locais vizinhos do local principal ou de origem.
- Transmissรฃo em rede: Um pacote transmitido รฉ guiado pelo algoritmo BFS para encontrar e alcanรงar todos os nรณs para os quais possui o endereรงo.
Resumo
- Uma travessia de grรกfico รฉ um processo รบnico que requer que o algoritmo visite, verifique e/ou atualize cada nรณ nรฃo visitado em uma estrutura semelhante a uma รกrvore. O algoritmo BFS funciona com um princรญpio semelhante.
- O algoritmo รฉ รบtil para analisar os nรณs em um grรกfico e construir o caminho mais curto para percorrรช-los.
- O algoritmo percorre o grรกfico no menor nรบmero de iteraรงรตes e no menor tempo possรญvel.
- O BFS seleciona um รบnico nรณ (ponto inicial ou de origem) em um grรกfico e entรฃo visita todos os nรณs adjacentes ao nรณ selecionado. O BFS acessa esses nรณs um por um.
- Os dados visitados e marcados sรฃo colocados em fila pelo BFS. Uma fila funciona primeiro a entrar, primeiro a sair. Conseqรผentemente, o elemento colocado primeiro no grรกfico รฉ excluรญdo primeiro e impresso como resultado.
- O algoritmo BFS nunca pode ficar preso em um loop infinito.
- Devido ร alta precisรฃo e implementaรงรฃo robusta, o BFS รฉ usado em mรบltiplas soluรงรตes da vida real, como redes P2P, Web Crawlers e Network Broadcasting.













