Algoritmo BFS (Breadth First Search) con ESEMPIO

Cosa cosè lalgoritmo BFS (Breadth-First Search)?

Breadth-first search (BFS) è un algoritmo utilizzato per rappresentare graficamente i dati o per cercare strutture ad albero o di attraversamento. La forma completa di BFS è la ricerca Breadth-first.

Lalgoritmo visita e contrassegna in modo efficiente tutti i nodi chiave in un grafico in modo accurato in larghezza. Questo algoritmo seleziona un singolo nodo (punto iniziale o sorgente) in un grafico e quindi visita tutti i nodi adiacenti al nodo selezionato. Ricorda, BFS accede a questi nodi uno per uno.

Una volta che lalgoritmo visita e contrassegna il nodo di partenza, si sposta verso i nodi non visitati più vicini e li analizza. Una volta visitati, tutti i nodi vengono contrassegnati. Queste iterazioni continuano finché tutti i nodi del grafico non sono stati visitati e contrassegnati con successo.

In questo tutorial sullalgoritmo imparerai:

  • Cosè lalgoritmo BFS (ricerca in ampiezza)?
  • Che cosa sono le traversate del grafico?
  • Larchitettura dellalgoritmo BFS
  • Perché abbiamo bisogno dellalgoritmo BFS?
  • Come funziona lalgoritmo BFS?
  • Algoritmo BFS di esempio
  • Regole dellalgoritmo BFS
  • Applicazioni dellalgoritmo BFS

Che cosa sono le traversate del grafico?

Lattraversamento del grafo è una metodologia comunemente usata per localizzare la posizione del vertice nel grafo. Si tratta di un algoritmo di ricerca avanzato in grado di analizzare il grafico con velocità e precisione oltre a segnare la sequenza dei vertici visitati. Questo processo ti consente di visitare rapidamente ogni nodo in un grafico senza essere bloccato in un ciclo infinito.

Larchitettura dellalgoritmo BFS

  1. Nei vari livelli di dati, puoi contrassegnare qualsiasi nodo come o nodo iniziale per iniziare lattraversamento. Il BFS visiterà il nodo e lo contrassegnerà come visitato e lo posizionerà nella coda.
  2. Ora il BFS visiterà i nodi più vicini e non visitati e li contrassegna. Questi valori vengono aggiunti anche alla coda. La coda funziona sul modello FIFO.
  3. In modo simile, i rimanenti nodi più vicini e non visitati sul grafico vengono analizzati contrassegnati e aggiunti alla coda. Questi elementi vengono eliminati dalla coda come ricevuti e stampati come risultato.

Perché abbiamo bisogno dellalgoritmo BFS?

Esistono numerosi motivi per utilizzare lalgoritmo BFS da utilizzare per la ricerca del set di dati. Alcuni degli aspetti più vitali che rendono questo algoritmo la tua prima scelta sono:

  • BFS è utile per analizzare i nodi in un grafo e costruire il percorso più breve per attraversarli.
  • BFS può attraversare un grafico nel minor numero di iterazioni.
  • Larchitettura dellalgoritmo BFS è semplice e robusta.
  • Il risultato dellalgoritmo BFS mantiene un alto livello di accuratezza rispetto ad altri algoritmi.
  • Le iterazioni BFS sono continue e non cè possibilità che questo algoritmo venga coinvolto in un problema di loop infinito.

Come funziona lalgoritmo BFS?

Lattraversamento del grafico richiede che lalgoritmo visiti, controlli e / o aggiorni ogni singolo nodo non visitato in una struttura ad albero. Gli attraversamenti del grafico sono classificati in base allordine in cui visitano i nodi sul grafico.

Lalgoritmo BFS avvia loperazione dal primo o nodo iniziale in un grafico e lo attraversa completamente. Una volta che ha attraversato con successo il nodo iniziale, viene visitato e contrassegnato il vertice successivo non attraversato nel grafico.

Quindi, puoi dire che tutti i nodi adiacenti al vertice corrente vengono visitati e attraversati nella prima iterazione. Viene utilizzata una semplice metodologia di coda per implementare il funzionamento di un algoritmo BFS e consiste dei seguenti passaggi:

Passaggio 1)

Ogni vertice o nodo nel grafico è noto. Ad esempio, puoi contrassegnare il nodo come V.

Passaggio 2)

Nel caso in cui non si acceda al vertice V, aggiungi il vertice V alla coda BFS

Passaggio 3)

Avvia la ricerca BFS e, al termine, contrassegna il vertice V come visitato.

Passaggio 4)

La coda BFS è ancora non vuoto, quindi rimuovere il vertice V del grafico dalla coda.

Passaggio 5)

Recupera tutti i vertici rimanenti sul grafico adiacente al vertice V

Passaggio 6)

Per ogni vertice adiacente diciamo V1, nel caso in cui non sia ancora stato visitato, aggiungi V1 alla coda BFS

Passaggio 7)

BFS visiterà V1, lo contrassegnerà come visitato e lo eliminerà dalla coda.

Algoritmo BFS di esempio

Passaggio 1)

Hai un grafico di sette numeri compresi tra 0 e 6.

Passaggio 2)

0 o zero è stato contrassegnato come nodo principale.

Passaggio 3)

0 viene visitato, contrassegnato e inserito nella struttura dei dati della coda.

Passaggio 4)

I restanti 0 nodi adiacenti e non visitati vengono visitati, contrassegnati e inseriti nella coda.

Passaggio 5)

Le iterazioni di attraversamento vengono ripetute finché non vengono visitati tutti i nodi.

Regole dellalgoritmo BFS

Qui ci sono regole importanti per lutilizzo dellalgoritmo BFS:

  • Una struttura dati della coda (FIFO-First in First Out) è utilizzato da BFS.
  • Contrassegni qualsiasi nodo nel grafico come root e inizi ad attraversare i dati da esso.
  • BFS attraversa tutti i nodi nel grafico e continua a rilasciarli come completati.
  • BFS visita un nodo adiacente non visitato, lo contrassegna come completato e lo inserisce in una coda.
  • Rimuove il vertice precedente dalla coda nel caso in cui non venga trovato alcun vertice adiacente.
  • Lalgoritmo BFS esegue literazione finché tutti i vertici nel grafo non vengono attraversati con successo e contrassegnati come completati.
  • Non ci sono loop causati da BFS durante lattraversamento dei dati da qualsiasi nodo.

Applicazioni dellalgoritmo BFS

Prendiamo un guarda alcune delle applicazioni della vita reale in cui limplementazione di un algoritmo BFS può essere molto efficace.

  • Grafici non pesati: lalgoritmo BFS può facilmente creare il percorso più breve e uno spanning tree minimo per visitare tutti i vertici del grafico nel più breve tempo possibile con elevata precisione.
  • Reti P2P: BFS può essere implementato per individuare tutti i nodi più vicini o vicini in una rete peer to peer. Questo troverà i dati richiesti più velocemente .
  • Web crawler: i motori di ricerca o i web crawler possono creare facilmente più livelli di indici utilizzando BFS. Limplementazione di BFS inizia dalla fonte, che è la pagina web, e quindi visita tutti i link da quella fonte .
  • Sistemi di navigazione: BFS può aiutare a trovare tutte le posizioni vicine dalla posizione principale o di origine.
  • Trasmissione di rete ing: Un pacchetto trasmesso è guidato dallalgoritmo BFS per trovare e raggiungere tutti i nodi per i quali ha lindirizzo.

Riepilogo

  • Un attraversamento del grafico è un processo unico che richiede allalgoritmo di visitare, controllare e / o aggiornare ogni singolo nodo non visitato in un struttura ad albero. Lalgoritmo BFS funziona su un principio simile.
  • Lalgoritmo è utile per analizzare i nodi in un grafo e costruire il percorso più breve per attraversarli.
  • Lalgoritmo attraversa il grafico nel minor numero di iterazioni e nel minor tempo possibile.
  • BFS seleziona un singolo nodo (punto iniziale o sorgente) in un grafico e quindi visita tutti i nodi adiacenti al nodo selezionato. BFS accede a questi nodi uno per uno.
  • I dati visitati e contrassegnati vengono inseriti in una coda da BFS. Una coda funziona su una base first in first out. Quindi, lelemento posizionato per primo nel grafico viene eliminato per primo e stampato di conseguenza.
  • Lalgoritmo BFS non può mai rimanere intrappolato in un ciclo infinito.
  • Grazie allalta precisione e allimplementazione robusta, BFS viene utilizzato in più soluzioni reali come reti P2P, web crawler, e trasmissione in rete.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *