逐步演示

任选算法,播放、单步、调速。

用途:观察任一算法每一步扩展了哪些格子。

进度
0 / 616
已扩展节点
0
距离
…
步数
…
  • 边界(待扩展)
  • 已扩展
  • 找到的路径

实现:逐格队列 BFS(基线)。在网格上拖动可改题,改动后从头开始。

可选算法

算法规则对应实现
广度优先搜索(BFS)4 邻域逐格队列 BFS
双向 BFS4 邻域src/matlab/bidir_plan.m
单调扫描4 邻域src/matlab/monotone_plan.m,只在存在曼哈顿长度路径时作答
课程原版 A*4 邻域src/matlab/astar_starter.m,原样保留其错误
修正后的课程 A*4 邻域src/matlab/astar_course.m
Dijkstra(8 邻域)8 邻域src/matlab/plan8_ref.m
A*(8 邻域)8 邻域zig/src/conn8_astar.zig 的思路,八方向距离启发式

「已扩展节点」统计从边界取出并展开的格子,包括最后取出的终点。双向 BFS 的两个方向用不同颜色;单调扫描每一步是一整行。

数据来源

每个算法都是对仓库实现(提交 fa87b65)的 TypeScript 移植,在浏览器里现算。站点测试在全部 29,746 道验证题上核对:BFS、双向 BFS、修正 A*、Dijkstra-8、A*-8 的距离与参考答案全部一致;单调扫描作答的 10,775 题全部正确;原版 A* 在 10,371 题上给出非最优路径,逐题路径与 GNU Octave 9.4 运行原版 astar_starter.m 的结果完全相同。

本页目录