图搜索算法之 A* 算法详解
1. A* 算法概述
A* 算法是一种重要的图搜索算法,它在路径规划等领域有着广泛的应用。该算法的核心在于通过不断地寻找和扩展节点,尝试找到从起始节点 (N_s) 到目标节点 (N_g) 的最短路径。
2. A* 算法代码实现
以下是 A* 算法的具体代码实现:
1 repeat
2 find and extract Nbest from OPEN
3 if Nbest = Ng then exit
4 for each node Ni in ADJ(Nbest) do
5 if Ni is unvisited then
6 add Ni to T with a pointer toward Nbest
7 insert Ni in OPEN; mark Ni visited
8 else if g(Nbest) + c(Nbest, Ni) < g(Ni) then
9 redirect the pointer of Ni in T toward Nbest
10 if Ni is not in OPEN then
10 insert Ni in OPEN
10 else update f(Ni)
10 end if
11 end if
12 until OPEN is empty