Guida passo per eseguire un* Ricerca Algoritmo con Calcolazioni Esempi
L'algoritmo di ricerca A* è una tecnica di ricerca traversale e di rilevamento dei grafici molto popolare utilizzata in varie applicazioni come robotica, sviluppo di giochi e routing di rete. Combina le caratteristiche di ricerca uniforme e ricerca avida al meglio per trovare in modo efficiente il percorso più breve da un nodo di partenza a un nodo di obiettivo.
Comprendere l'Algoritmo A*
L'algoritmo A* utilizza una funzione di costo, f(n) = g(n) + h(n), dove:
- g(n):] Il costo effettivo dal nodo di inizio al nodo n.
- h(n):[] La stima euristica del costo dal nodo n all'obiettivo.
L'algoritmo esplora nodi con il valore f(n) più basso, bilanciando i costi effettivi e stimati per trovare il percorso ottimale in modo efficiente.
Attuazione passo-passo
Seguire questi passaggi per implementare l'algoritmo A*:
1. Inizializzare le liste aperte e chiuse
L'elenco aperto contiene nodi da valutare, a partire dal nodo iniziale. L'elenco chiuso contiene nodi già valutati.
2. Selezionare il nodo con il più basso f(n)
Rimuovere questo nodo dalla lista aperta e aggiungerlo alla lista chiusa.
3. Generare nodi vicini
Calcola g(n) e h(n) per ogni vicino. Se un vicino non è nell'elenco aperto o ha un g(n inferiore), aggiorna i suoi valori e imposta il suo genitore al nodo corrente.
4. Ripetere fino a raggiungere l'obiettivo
Continuare il processo fino a quando il nodo dell'obiettivo viene aggiunto alla lista chiusa, indicando il percorso più breve è stato trovato.
Calcoli di esempio
Considerare una griglia semplice con nodo di partenza A e nodo di obiettivo G. L'h(n) euristico è la distanza di linea retta.
A partire dal nodo A, g(A) = 0, h(A) = 4. Il f(A) = 4. I nodi vicini B e C sono valutati:
Per nodo B: g(B) = g(A) + costo(A, B) = 0 + 1 = 1, h(B) = 3, f(B) = 4.
Per nodo C: g(C) = 1, h(C) = 2, f(C) = 3. Nodo C ha il più basso f(n), quindi è selezionato il prossimo.
Questo processo continua, aggiornando i valori g, h e f, fino a quando il nodo obiettivo G viene raggiunto con il percorso più breve identificato.