-九宫重排.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
-九宫重排

实验二:九宫重排 一、实验目的 A*算法是人工智能领域最重要的启发式搜索算法之一,本实验通过九宫重排问题,强化学生对A*算法的理解与应用,为人工智能后续环节的课程奠定基础。 二、问题描述 给定九宫格的初始状态,要求在有限步的操作内,使其转化为目标状态,且所得到的解是代价最小解(即移动的步数最少)。如: 三、基本要求 输入:九宫格的初始状态和目标状态 输出:重排的过程,即途径的状态 实验结果 #include iostream.h #include time.h #include stdio.h #include dos.h #include conio.h static int target[9]={1,2,3,8,0,4,7,6,5}; //class definition class eight_num { private: int num[9]; int not_in_position_num; int deapth; int eva_function; public: eight_num* parent; eight_num* leaf_next; eight_num* leaf_pre; eight_num(int init_num[9]); eight_num(int num1,int num2,int num3,int num4,int num5,int num6,int num7,int num8,int num9) { num[0]=num1; num[1]=num2; num[2]=num3; num[3]=num4; num[4]=num5; num[5]=num6; num[6]=num7; num[7]=num8; num[8]=num9; } eight_num(void) { for (int i=0;i9;i++) num[i]=i; } void cul_para(void); void get_numbers_to(int other_num[9]); int get_nipn(void) {return not_in_position_num;} int get_deapth(void) {return deapth;} int get_evafun(void) {return eva_function;} void set_num(int other_num[9]); void show(void); eight_num operator=(eight_num); eight_num operator=(int other_num[9]); int operator==(eight_num); int operator==(int other_num[9]); }; //计算启发函数g(n)的值 void eight_num::cul_para(void) { int i; int temp_nipn=0; for (i=0;i9;i++) if (num[i]!=target[i]) temp_nipn++; not_in_position_num=temp_nipn; if (this-parent==NULL) deapth=0; else deapth=this-parent-deapth+1; eva_function=not_in_position_num+deapth; } //构造函数1 eight_num::eight_num(int init_num[9]) { for (int i=0;i9;i++) num[i]=init_num[i]; } //显示当前节点的状态 void eight_num::show() { coutnum[0]; cout ; coutnum[1]; cout ; coutnum[2]; cout\n; coutnum[3]; cout ; coutnum[4]; cout ; coutnum[5]; cout\n; coutnum[6]; cout ; coutnum[7]; cout ; coutnum[8]; cout\n; } //复制当前节点状态到一个另数组中 void eight_num::get_numbers_to(int other_num[9]) { for (int i=0;i9;i++) other_num[i]=num[i]; } //设置当前节点状态(欲设置的状态记录的other数组中) vo

文档评论(0)

panguoxiang + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档