八数码A算法附报告
以A*算法作为本程序的算法,利用f=g+h;其中g代表每个结点的深度,h代表该结点与目标结点相差的位置。利用open,close表作为辅助。把每个同一层次的结点放进open表中,再选取最小代价放入close表中。close表中的结点即为最优路径中的一个结点。直到找出目标的结点,然后打印。 ① 判断OPEN表是否为空的函数 ② 求OPEN表中估价函数值最小的结点的函数 ③ 判断初始状态是否可到达目标状态的函数 ④ 求估价函数值p(n)-曼哈顿距离 ⑤ 产生新状态的函数,共四个,空格上/下/左/右移动 ⑥ 判重函数,判断新节点在OPEN,CLOSE表中是否已经有了 ⑦
用户评论
感谢分享, 修改下就能自己用了. 省了很多事, 逻辑没问题
还不错,虽然有点小问题,但是改改就能运行
用了C++编写的,不过程序可能有点缺陷运行不了,思路也有点小问题
代码质量不错,思路清晰,只是报告不全,缺少1,2部分。
使用VS需要做点小修改,但是还是能运行,多谢分享。
真的有点缺陷,需要再修改一下小错误才能运行
没有问题 啊 VC6.0正常运行
用了C++编写的,不过程序可能有点缺陷运行不了,思路倒是没问题
或许是我的问题,为什么觉得不全呢??