理論分析再詳細,不如一張動圖直觀。本文採用同一張網格地圖,對比五種算法的搜索覆蓋範圍、路徑長度、展開節點數,讓優劣一目了然。
h=|dx|+|dy|,四方向移動最優。h=√(dx²+dy²),任意角度移動可採納。h=max(|dx|,|dy|),八方向移動最優。h=0,等價均勻擴展。
觀察:三種A*直奔目標,覆蓋極窄;Dijkstra呈圓形擴展,覆蓋面積大;雙向BFS兩側擴展,中間相遇,覆蓋介於兩者間。

觀察:切比雪夫A*完美貼合斜向,展開最少;曼哈頓A*呈鋸齒狀但仍遠優於Dijkstra;歐氏A*介於兩者間。

觀察:障礙物迫使所有算法擴展更多節點,但A*系列仍明顯聚焦於通道方向;Dijkstra與雙向BFS幾乎淹沒整張圖。
| 指標 | A* (最優h) | Dijkstra | 雙向BFS |
|---|---|---|---|
| 展開節點數 | 最少 | 最多 | 中等 |
| 記憶體佔用 | 最少 | 最多 | 中等 |
| 最優性保證 | 是 (h可採納) | 是 | 是 (無權圖) |
| 適用場景 | 單對最短路徑、大地圖 | 單源最短路徑、無啟發信息 | 無權圖、雙向可行 |

可視化代碼已開源於GitHub,歡迎自行修改地圖、啟發函數、移動規則,親自驗證結論。