人工智能实验一.doc_第1页
人工智能实验一.doc_第2页
人工智能实验一.doc_第3页
人工智能实验一.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工智能实验一 实验一: 盲目搜索(2学时)实验内容:分别用深优先、宽度优先的搜索方式解决8数码问题。初始状态和目标状态分别为:34761258 14725368实验要求:1. 各人独立完成实验;2. 实现程序的编程语言不限3. 认真完成实验报告实验提示:附件一给出了用C+语言实现的部分代码,要求实现其中的深度优先、广度优先。也可以自己重新写代码,不限制实现的开发语言。class EightNumberprivate:int A33;public : EightNumber * parent; /static int Goal33; int i;/空牌所在的行号; int j;/空牌所在列号; int op;/操作 int depth; /从根节点到当前的深度 int score; /启发式函数值 EightNumber() parent=NULL; this-depth=0; score=0; op=0; EightNumber(int B33) parent=NULL; this-depth=0; score=0; op=0; for(int m=0;m3;m+) for(int n=0;nAmn=Bmn; if(this-Amn=0) this-i=m;this-j=n; /end of function EightNumber * Left()/空格左移 if(this-j0 & this-op!=1 ) EightNumber * obj=new EightNumber(); for(int m=0;m3;m+) for(int n=0;nAmn=this-Amn; obj-Athis-ithis-j=obj-Athis-ithis-j-1; obj-Athis-ithis-j-1=0; obj-parent=this; obj-op=-1; obj-i=this-i; obj-j=this-j-1; obj-depth=this-depth+1; for(int m=0;m3;m+) for(int n=0;nAmn!=Goalmn) obj-score+; return obj; else / cout空牌不能左移i0 & this-op!=-2) EightNumber * obj=new EightNumber(); for(int m=0;m3;m+) for(int n=0;nAmn=this-Amn; obj-Athis-ithis-j=obj-Athis-i-1this-j; obj-Athis-i-1this-j=0; obj-parent=this; obj-op=2; obj-i=this-i-1; obj-j=this-j; obj-depth=this-depth+1; for(int m=0;m3;m+) for(int n=0;nAmn!=Goalmn) obj-score+; return obj; else /cout空牌不能Top移jop!=-1 ) EightNumber * obj=new EightNumber(); for(int m=0;m3;m+) for(int n=0;nAmn=this-Amn; obj-Athis-ithis-j=obj-Athis-ithis-j+1; obj-Athis-ithis-j+1=0; obj-parent=this; obj-op=1; obj-i=this-i; obj-j=this-j+1; obj-depth=this-depth+1; for(int m=0;m3;m+) for(int n=0;nAmn!=Goalmn) obj-score+; return obj; else /cout空牌不能右移iop!=2) EightNumber * obj=new EightNumber(); for(int m=0;m3;m+) for(int n=0;nAmn=this-Amn; obj-Athis-ithis-j=obj-Athis-i+1this-j; obj-Athis-i+1this-j=0; obj-parent=this; obj-op=-2; obj-i=this-i+1; obj-j=this-j; obj-depth=this-depth+1; for(int m=0;m3;m+) for(int n=0;nAmn!=Goalmn) obj-score+; return obj; else /cout空牌不能下移endl; return NULL; /end of Down/辅助栈类MyStack,用于深度优先搜索class MyStackprivate: EightNumber * *S;public: int rear; int size; MyStack() rear=1; size=50; S=(EightNumber * *)malloc(size+1)*sizeof(void *); for(int i=0;i=size;i+) Si=NULL; /* 取头*/ EightNumber * GetBest() EightNumber * p=S1; int k=1; for(int i=1;iscore+Si-depthscore+p-depth) k=i; p=Si; for(int i=k;isize) size+=50; S=(EightNumber

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论