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

Archiarquitetura do algoritmo BFS

  1. 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.
  2. 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.
  3. 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)

Funcionamento do Algoritmo BFS

Cada vรฉrtice ou nรณ do grรกfico รฉ conhecido. Por exemplo, vocรช pode marcar o nรณ como V.

Passo 2)

Funcionamento do Algoritmo BFS

Caso o vรฉrtice V nรฃo seja acessado, adicione o vรฉrtice V ร  fila BFS

Passo 3)

Funcionamento do Algoritmo BFS

Inicie a pesquisa BFS e, apรณs a conclusรฃo, marque o vรฉrtice V como visitado.

Passo 4)

Funcionamento do Algoritmo BFS

A fila BFS ainda nรฃo estรก vazia, portanto, remova o vรฉrtice V do grรกfico da fila.

Passo 5)

Funcionamento do Algoritmo BFS

Recupere todos os vรฉrtices restantes no grรกfico que sรฃo adjacentes ao vรฉrtice V

Passo 6)

Funcionamento do Algoritmo BFS

Para cada vรฉrtice adjacente digamos V1, caso ainda nรฃo tenha sido visitado adicione V1 ร  fila BFS

Passo 7)

Funcionamento do Algoritmo BFS

O BFS irรก visitar V1 e marcรก-lo como visitado e excluรญ-lo da fila.

Exemplo de algoritmo BFS

Passo 1)

Exemplo de algoritmo BFS

Vocรช tem um grรกfico de sete nรบmeros variando de 0 a 6.

Passo 2)

Exemplo de algoritmo BFS

0 ou zero foi marcado como um nรณ raiz.

Passo 3)

Exemplo de algoritmo BFS

0 รฉ visitado, marcado e inserido na estrutura de dados da fila.

Passo 4)

Exemplo de algoritmo BFS

Os 0 nรณs adjacentes e nรฃo visitados restantes sรฃo visitados, marcados e inseridos na fila.

Passo 5)

Exemplo de algoritmo BFS

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.

Resuma esta postagem com: