文件名称:eightpuzzle:使用 A* 的八拼图解算器
文件大小:14KB
文件格式:ZIP
更新时间:2024-07-19 13:33:16
JavaScript
八拼图解算器 使用A*算法解决八拼图(滑动块拼图)。 A* 算法详情 该程序的工作原理是采用起始状态并评估下一个可能的移动,将成本值应用于每个下一个状态。 状态的成本 (h) 是通过将每个块与其目标状态的曼哈顿距离相加来计算的。 例如,如果一个特定的块从其目标状态向左移动 3 次,向下移动 2 次,那么这会增加 5 的成本。 您对其他块重复此操作。 成本 (g) 也适用于每个状态,它对应于到达路径这部分的深度。 这为重新访问已经访问过的状态提供了惩罚。 一个状态的最终 A* 成本为:f(n) = h(n) + g(n) A* 算法然后选择下一个成本最低的未访问状态。 所选状态甚至可能是路径中更高的父状态。 每个子状态都记录它的父状态,因此一旦找到解决方案,您就可以向后走父路径以返回解决方案。 将此程序的结果与在线版本进行比较,使用 A* 和曼哈顿距离: ://n-puzzle-
【文件预览】:
eightpuzzle-master
----depth()
--------steps-from-goal.txt(320B)
--------steps-from-goal.r(491B)
--------steps-from-goal.png(11KB)
----app.js(9KB)
----readme.md(2KB)