人工智能概论-搜索算法编程及实验报告

人工智能概论-搜索算法编程及实验报告

ID:5184537

大小:287.64 KB

页数:46页

时间:2017-12-05

人工智能概论-搜索算法编程及实验报告_第1页
人工智能概论-搜索算法编程及实验报告_第2页
人工智能概论-搜索算法编程及实验报告_第3页
人工智能概论-搜索算法编程及实验报告_第4页
人工智能概论-搜索算法编程及实验报告_第5页
资源描述:

《人工智能概论-搜索算法编程及实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、人工智能概论大作业学院:电子工程学院专业:智能科学与技术题目一:搜索算法编程及实验报告一.算法题目八数码难题的求解。二.实验目的从盲目搜索和启发式搜索方法中分别选择一种解决八数码难题,给出搜索树和从起始节点到目标节点的路径。三.实验设备及软件环境Win7的笔记本电脑,VS2013(使用c语言编程)。四.实验方法1.盲目搜索——宽度优先搜索。(1).算法描述如果搜索是以接近其实节点的程度来依次扩展节点,那么这中搜索就叫宽度优先搜索。这种搜索是逐层进行的,在对下一层的任一节点进行搜索之前,必须搜索完本层的所有节点。(1)把起始

2、节点放到OPEN表中(如果该起始节点为一目标节点,则求得一个解答)。(2)如果OPEN是个空表,则没有解,失败退出;否则继续。(3)把第一个节点(节点n)从OPEN表移出,并把它放入CLOSED扩展节点表中。(4)扩展节点n。如果没有后继节点,则转向上述第(2)步。(5)把n的所有后继节点放到OPEN表的末端,并提供从这些后继节点回到n的指针。(6)如果n的任一个后继节点是个目标节点,则找到一个解答,成功退出;否则转向第(2)步。(2).算法流程图45(3).程序代码#include"stdio.h"#include"co

3、nio.h"#include"string.h"structpic{chardata[10];charimoperate;intfather;charextend;};45charend[10]="12384765";intresult[100];intn;intm;picbase[100];char*w;intfind(intx){for(inti=0;i<10;i++)if(base[x].data[i]!=end[i])return0;return1;}voidshowline(intx){inti=0;while(

4、base[x].father!=-1){result[i]=x;x=base[x].father;i++;}result[i]=0;45result[i+1]='';m=i;printf("搜索路径");for(i=m;i>=0;i--){printf("");printf("%ct%ct%c",base[result[i]].data[0],base[result[i]].data[1],base[result[i]].data[2]);printf("%ct%ct%c",base[r

5、esult[i]].data[3],base[result[i]].data[4],base[result[i]].data[5]);printf("%ct%ct%c",base[result[i]].data[6],base[result[i]].data[7],base[result[i]].data[8]);}}intleft(intx){inti;for(i=0;i<10;i++)if(base[x].data[i]=='')break;if(i==0

6、

7、i==3

8、

9、i==6)return0;for(intj=

10、0;j<10;j++)base[n].data[j]=base[x].data[j];45base[n].data[i-1]=base[x].data[i];base[n].data[i]=base[x].data[i-1];base[n].father=x;base[n].imoperate='R';base[n].extend='Y';base[x].extend='N';w=base[n].data;n++;if(find(n-1)==1)return1;}intright(intx){inti;for(i=0;i<

11、10;i++)if(base[x].data[i]=='')break;if(i==2

12、

13、i==5

14、

15、i==8)return0;for(intj=0;j<10;j++)base[n].data[j]=base[x].data[j];base[n].data[i+1]=base[x].data[i];45base[n].data[i]=base[x].data[i+1];base[n].father=x;base[n].imoperate='L';base[n].extend='Y';base[x].extend='N';w

16、=base[n].data;n++;if(find(n-1)==1)return1;}intup(intx){inti;for(i=0;i<10;i++)if(base[x].data[i]=='')break;if(i==0

17、

18、i==1

19、

20、i==2)return0;for(intj=0;j<10;j+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。