寻路算法实验室

在网格地图上绘制障碍与高代价地形,比较 BFS、Dijkstra 与 A* 的搜索行为。所有结果由实际搜索计算得出。

按住 Shift 拖动 = 矩形填充
6

当前速度:每格约 190 毫秒。

空闲状态
0路径步数
0路径总代价
0已访问节点
0当前前沿
0 ms搜索耗时
—路径代价构成
—搜索覆盖率
—单帧渲染耗时
起点 终点 已访问 搜索前沿 最终路径 障碍 高代价(5)

算法说明

BFS 按步数搜索,忽略地形代价,保证步数最少。

Dijkstra 按进入格子的累计代价扩展,保证最小总代价。

A* 使用曼哈顿距离作为启发函数,在加权地图上通常更快,结果代价与 Dijkstra 相同。

起点自身不计入代价;普通格进入代价 1,高代价格进入代价 5;移动为四方向。

操作说明

鼠标或手指在地图上按住拖动即可连续绘制;触摸模式同样可用。

选择“起点 / 终点”后点击格子可移动它们,起点终点不会被障碍覆盖。

搜索进行中编辑地图会自动停止并清除当前搜索结果,避免状态混用。

空格 运行,. 单步,Esc 清除搜索,C 三算法对比,Del 清空地图,R 重置。

键盘编辑:方向键移动光标,Shift+→ 右移,Enter 应用当前工具,S/E 切换起点 / 终点工具。

快捷对照

应用“加权走廊”预设后,分别运行 BFS 与 Dijkstra,可直观看到 BFS 可能绕远但步数少、Dijkstra 走代价更低的路线。

应用“封闭终点”预设后,终点被完全包围,搜索结束会明确提示不可达。

窄屏或站内嵌入时会隐藏次要说明,核心控件与统计保持可见;把鼠标移到地图上可查看格子详情。