Come si usa BFS per trovare il percorso più breve?
Come si usa BFS per trovare il percorso più breve?

Video: Come si usa BFS per trovare il percorso più breve?

Video: Come si usa BFS per trovare il percorso più breve?
Video: i grafi il percorso minimo e ottimo 2024, Novembre
Anonim

Per trova il percorso più breve , tutto quello che devi fare è partire dalla sorgente ed eseguire un prima la larghezza cerca e fermati quando tu trova il tuo nodo di destinazione. L'unica cosa aggiuntiva che devi fare è avere un array precedente[n] che memorizzerà il nodo precedente per ogni nodo visitato. Il precedente di source può essere null.

Inoltre è stato chiesto, perché BFS trova il percorso più breve?

Diciamo che BFS è il algoritmo da usare se vogliamo trova il percorso più breve in un grafo non orientato e non ponderato. La richiesta di BFS è che la prima volta che viene scoperto un nodo durante l'attraversamento, quella distanza dalla sorgente voluto dacci il percorso più breve . Lo stesso non si può dire per un grafico ponderato.

Sapete anche, dov'è il percorso più breve nel labirinto? Trova il percorso più breve in un labirinto

  1. Vai su: (x, y) –> (x – 1, y)
  2. Vai a sinistra: (x, y) –> (x, y – 1)
  3. Scendi: (x, y) –> (x + 1, y)
  4. Vai a destra: (x, y) –> (x, y + 1)

Inoltre, per sapere, possiamo usare DFS per trovare il percorso più breve?

No, tu non può usa DFS per trovare il percorso più breve in un grafico non pesato. Non è il caso che, trovare il percorso più breve tra due nodi è risolto esclusivamente da BFS. In un grafico non pesato il percorso più breve sono il numero minimo di archi che devono essere attraversati dai nodi di origine a quelli di destinazione.

Qual è il tempo di esecuzione di BFS?

Complessità di Ricerca in ampiezza Ricerca in ampiezza ha un tempo di esecuzione di O (V + E) O(V + E) O(V+E) poiché ogni vertice e ogni arco verranno controllati una volta. A seconda dell'input al grafico, O (E) O(E) O(E) potrebbe essere compreso tra O (1) O (1) O (1) e O (V 2) O (V ^ 2) O (V2).

Consigliato: