采用不在位棋子数作为启发函数时,深度超过 20 时,算法求解速度缓慢;3.2 数据结构 static int target9123804765 全局静态变量,表示目标状态class eight_numprivate: int num9 定义八数码的初始状态 int not_in_position_num 定义不在正确位置八数码的个数 int deapth 定义了搜索的深度 int eva_function 评价函数的值,每次选取最小的进行扩展public: eight_num parent 指向节点的父节点 eight_num leaf_next 指向 open 表的下一个节点 eight_num leaf_pre 指向 open 表的前一个节点 初始状态的构造函数 eight_numint init_num9 eight_numint num1int num2int num3int num4int num5int num6intnum7int num8int num9eight_numvoid 计算启发函数 gn的值void eight_num::cul_paravoid显示当前节点的状态void eight_num::show复制当前节点状态到一个另数组中void eight_num::get_numbers_toint other_num9设置当前节点状态欲设置的状态记录的 other 数组中void eight_num::set_numint other_num9eight_num eight_num::operatoreight_num another_8numeight_num eight_num::operatorint other_num9int eight_num::operatoreight_num another_8numint eight_num::operatorint other_num9空格向上移int move_upint num9空格向下移int move_downint num9空格向左移int move_leftint num9空格向右移int move_rightint num9判断可否解出int icansolveint num9int target9判断有无重复int existedint num9eight_num where寻找估价函数最小的叶子节点eight_num find_OK_leafeight_num start3.3 实验结果h: 启发函数(不在位将牌数) 初 始 状 目 标 状 是 否 有 启发函数 用时 步数 态 态 解 3 2 1 1 2 3 否 h -- 8 0 4 8 0 4 7 6 5 7 6 5 1 0 4 1 2 3 是 h 2875ms 21 2 7 3 8 0 4 8 5 6 7 6 5 1 0 3 1 2 3 是 h 0ms 1 8 2 4 8 0 4 7 6 5 7 6 53.4 系统中间及最终输出结果(要求有屏幕显示)目标状态默认为 1 2 3 8 0 4 7 6 5 .a 初始状态是 3 2 1 8 0 4 7 6 5,用 h 作为启发函数结果都如下:b初始状态是 1 04 2 7 3 8 5 6,用 h 作为启发函数结果都如下:中间略b初始状态是 1 0 3 8 2 4 7 6 5,用 h 作为启发函数结果都如下:四、参考文献1 Artificial Intelligence——A Modern Approach. Stuart Russell PeterNorvig. 人民邮电出版社20042 Artificial Intelligence Rob Callan. 电子工业出版社2004 附录—源代码及其注释include stdafx.hinclude iostream.hincludeincludeincludeincludestatic int target9123804765//class definitionclass eight_numprivate: int num9 int not_in_position_num int deapth int eva_functionpublic: eight_num parent eight_num leaf_next eight_num leaf_pre eight_numint init_num9 eight_numint num1int num2int num3int num4int num5int num6int num7intnum8int num9 num0num1 num1num2 num2num3 num3num4 num4num5 num5num6 num6num7 num7num8 num8num9 eight_numvoid for int i0iparent-deapth1 eva_functionnot_in_position_numdeapth//构造函数 1eight_num::eight_numint init_num9 for int i0i
上一篇:
【精品文档】均匀量化与非均匀量化的比较(附有详细参数)
下一篇:
工程硕士毕业论文写作内容有什么要求