Algoritmo de pesquisa em amplitude (BFS) com EXEMPLO
โก Resumo Inteligente
A Busca em Largura (BFS, do inglรชs Breadth First Search) รฉ um algoritmo que percorre um grafo nรญvel por nรญvel, visitando todos os vizinhos de um nรณ antes de prosseguir para nรญveis mais profundos. Ela utiliza uma fila FIFO e encontra o caminho mais curto em grafos nรฃo ponderados, evitando loops infinitos.
O que รฉ o algoritmo BFS (pesquisa em amplitude)?
A busca em largura (BFS, do inglรชs Breadth-first search) รฉ um algoritmo usado para mapear dados em grรกficos, pesquisar em รกrvores ou percorrer estruturas. A sigla BFS significa "busca em largura".
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 para comeรงar a busca. A busca em largura (BFS) visitarรก o nรณ, o marcarรก como visitado e o colocarรก na fila.
- Agora, a BFS visitarรก os nรณs mais prรณximos e os nรณs nรฃo visitados, marcando-os. Esses valores tambรฉm sรฃo adicionados ร fila. A fila opera na Modelo FIFO.
- De maneira semelhante, os nรณs mais prรณximos e nรฃo visitados restantes no grafo sรฃo analisados, marcados e adicionados ร fila. Esses itens sรฃo removidos da fila ร medida que sรฃo recebidos e impressos como resultado.
Por que precisamos do algoritmo BFS?
Existem inรบmeras razรตes para utilizar o algoritmo BFS (Busca em Largura) para pesquisar em seu conjunto de dados. Alguns dos aspectos mais importantes que fazem deste algoritmo a 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, pode-se 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 de Busca em Largura (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 ร fila BFS.
Passo 3)
Inicie a busca em largura (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 grafo que sรฃo adjacentes ao vรฉrtice V.
Passo 6)
Para cada vรฉrtice adjacente, digamos V1, caso ele ainda nรฃo tenha sido visitado, adicione V1 ร fila BFS.
Passo 7)
O BFS visitarรก V1, marcarรก-lo-รก como visitado e o excluirรก da fila.
Exemplo de algoritmo BFS
Passo 1)
Vocรช tem um grรกfico com sete nรบmeros que variam 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 nรณs adjacentes a 0 restantes e os nรณs nรฃo visitados 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 algumas regras importantes para usar o algoritmo BFS:
- Uma fila (FIFO โ Primeiro a entrar, primeiro a sair) estrutura de dados รฉ usado pelo BFS.
- Vocรช marca qualquer nรณ no grรกfico como raiz e comeรงa a percorrer os dados a partir dele.
- A busca em largura (BFS) percorre todos os nรณs do grafo e continua removendo elementos.ping eles como 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 grafo 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 (Busca em Largura de Banda) pode facilmente criar o caminho mais curto e uma รกrvore geradora mรญnima para visitar todos os vรฉrtices do grafo no menor tempo possรญvel e com alta precisรฃo.
- Redes P2P: A busca em largura (BFS) pode ser implementada para localizar todos os nรณs mais prรณximos ou vizinhos em uma rede ponto a ponto. Isso permite 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.














