1. Cos'è la Visita in Ampiezza (Breadth-First Search)?
La BFS (Breadth-First Search) è un algoritmo di attraversamento e ricerca in un grafo che esplora i nodi procedendo per strati concentrici (o livelli). Partendo da un vertice sorgente $s$, l'algoritmo visita prima tutti i vicini diretti (distanza 1), poi i vicini dei vicini (distanza 2) e così via, prima di approfondire ulteriormente la ricerca.
A differenza della DFS che utilizza una pila (o la ricorsione), la BFS richiede tassativamente una struttura dati di tipo Coda (Queue) che opera secondo la politica FIFO (First In, First Out), garantendo l'ordine corretto di visita per livelli.
2. Proprietà e Complessità
- Cammino Minimo: Nei grafi non pesati, la BFS garantisce sempre il ritrovamento del cammino minimo (in termini di numero di archi) tra la sorgente e qualsiasi altro nodo raggiungibile.
- Complessità Temporale $\mathcal{O}(V + E)$: Utilizzando una lista di adiacenza, ciascun vertice ($V$) viene inserito/estratto dalla coda una volta e ciascun arco ($E$) viene esaminato.
- Complessità Spaziale $\mathcal{O}(V)$: Lo spazio è dominato dalla coda e dal vettore booleano di marcatura dei nodi visitati, che nel caso peggiore (grafo con un unico grande livello) possono contenere tutti i vertici.
3. Simulatore Interattivo: Configurazione Esplorazione BFS
Simula i parametri operativi dell'attraversamento BFS inserendo il numero di vertici del grafo e il nodo di partenza.