《2023年人工智能与专家系统课程设计解读.docx》由会员分享,可在线阅读,更多相关《2023年人工智能与专家系统课程设计解读.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年人工智能与专家系统课程设计解读 目录 1.设计任务 1.1 设计题目 1.2设计要求 1.3设计任务 2方案设计 2.1原理 2.2 具体设计方法 3系统实施 3.1 系统开发环境 3.2系统主要功能介绍 3.3处理流程图 3.4 核心源程序 3.5系统运行结果 4开发心得 4.1设计存在的问题 4.2进一步改进提高的设想 4.3经验和体会 5参考文献 1.设计任务 1.1 设计题目 在一个3*3的方棋盘上放置着1,2,3,4,5,6,7,8八个数码,每个数码占一格,且有一个空格。这些数码可以在棋盘上移动,该问题称八数码难题或者重排九宫问题。 1.2 设计要求 其移动规则是:与空格相
2、邻的数码方格可以移入空格。现在的问题是:对于指定的初始棋局和目标棋局,给出数码的移动序列。 1.3 设计任务 利用人工智能的图搜索技术进行搜索,解决八数码问题来提高在推理中的水平,同时进行新方法的探讨。 2.方案设计 2.1 原理 八数码问题是个典型的状态图搜索问题。搜索方式有两种基本的方式,即树式搜索和线式搜索。搜索策略大体有盲目搜索和启发式搜索两大类。盲目搜索就是无“向导”的搜索,启发式搜索就是有“向导”的搜索。 2.2 具体设计方法 启发式搜索 由于时间和空间资源的限制,穷举法只能解决一些状态空间很小的简单问题,而对于那些大状态空间的问题,穷举法就不能胜任,往往会导致“组合爆炸”。所以引
3、入启发式搜索策略。启发式搜索就是利用启发性信息进行制导的搜索。它有利于快速找到问题的解。 由八数码问题的部分状态图可以看出,从初始节点开始,在通向目标节点的路径上,各节点的数码格局同目标节点相比较,其数码不同的位置个数在逐渐减少,最后为零。所以,这个数码不同的位置个数便是标志一个节点到目标节点距离远近的一个启发性信息,利用这个信息就可以指导搜索。即可以利用启发信息来扩展节点的选择,减少搜索范围,提高搜索速度。 启发函数设定。对于八数码问题,可以利用棋局差距作为一个度量。搜索过程中,差距会逐渐减少,最终为零,为零即搜索完成,得到目标棋局。 3.系统实施 3.1 系统开发环境 Windows操作系
4、统、SQL Server 200X 3.2 系统主要功能介绍 该搜索为一个搜索树。为了简化问题,搜索树节点设计如下: struct Che/棋盘 - 2 3.4 核心源程序 #include stdio.h #include stdlib.h #include time.h #include string.h #include #include using namespace std; const int N=3;/3*3棋盘 const int Max_Step=30;/最大搜索深度 enum DirectionNone,Up,Down,Left,Right;/方向 struct Che/棋
5、盘 int cellNN;/数码数组 int Value;/评估值 Direction BelockDirec;/所屏蔽方向 struct Che * Parent;/父节点 ; /打印棋盘 void PrintChe(struct Che *TheChe) printf(-n); for(int i=0;i printf(t); for(int j=0;j printf(%dt,TheChe-cellij); printf(n); printf(tttt差距:%dn,TheChe-Value); - 4 break; case Left: t_j+; if(t_j=N) AbleMove=f
6、alse; break; case Right: t_j-; if(t_j AbleMove=false; break; ; if(!AbleMove)/不可以移动则返回原节点 return TheChe; if(CreateNewChe) NewChe=new Che(); for(int x=0;x for(int y=0;y NewChe-cellxy=TheChe-cellxy; else NewChe=TheChe; NewChe-cellij=NewChe-cellt_it_j; NewChe-cellt_it_j=0; return NewChe; /初始化一个初始棋盘 stru
7、ct Che * RandomChe(const struct Che * TheChe) - 6 p=NULL; queue Queue1; Queue1.push(Begin); /搜索 do p1=(struct Che *)Queue1.front(); Queue1.pop(); for(int i=1;i Direction Direct=(Direction)i; if(Direct=p1-BelockDirec)/跳过屏蔽方向 continue; p2=MoveChe(p1,Direct,true);/移动数码 if(p2!=p1)/数码是否可以移动 Appraisal(p2,
8、Target);/对新节点估价 if(p2-ValueValue)/是否为优越节点 p2-Parent=p1; switch(Direct)/设置屏蔽方向,防止往回推 case Up:p2-BelockDirec=Down;break; case Down:p2-BelockDirec=Up;break; case Left:p2-BelockDirec=Right;break; case Right:p2-BelockDirec=Left;break; Queue1.push(p2);/存储节点到待处理队列 if(p2-Value=0)/为0则,搜索完成 p=p2; i=5; else -
9、8 /打印 if(T) /*把路径倒序*/ Che *p=T; stackStack1; while(p-Parent!=NULL) Stack1.push(p); p=p-Parent; printf(搜索结果:n); while(!Stack1.empty() PrintChe(Stack1.top(); Stack1.pop(); printf(n完成!); else printf(搜索不到结果.深度为%dn,Max_Step); scanf(%d,T); 3.5 系统运行结果 4.开发心得 4.1 设计存在的问题 完全能解决简单的八数码问题,但对于复杂的八数码问题还是无能为力。 4.2
10、 进一步改进提高的设想 可以改变数码规模(N),来扩展成N*N的棋盘,即扩展为N数码问题的求解过程。 2、 内存泄漏。由于采用倒链表的搜索树结 - 105.参考文献 1王汝传.计算机图形学M.北京:人民邮电出版社,1999:123130.2刘榴娣,刘明奇,党长民.实用数字图像处理M.北京:北京理工大学出版,2000:1225.3丁兆海.Delphi基础教程M.北京:电子工业出版社,1999.4王小华.Delphi 5程序设计与控件参考M.北京:电子工业出版社,1999:70120.5赵子江.多媒体技术基础M.北京:机械工业出版社,2023:118130.6段来盛,郑城荣,曹恒.Delphi实战
11、演练M.北京:人民邮政出版社,2023:8095. 读书的好处 1、行万里路,读万卷书。 2、书山有路勤为径,学海无涯苦作舟。 3、读书破万卷,下笔如有神。 4、我所学到的任何有价值的知识都是由自学中得来的。达尔文 5、少壮不努力,老大徒悲伤。 6、黑发不知勤学早,白首方悔读书迟。颜真卿 7、宝剑锋从磨砺出,梅花香自苦寒来。 8、读书要三到:心到、眼到、口到 9、玉不琢、不成器,人不学、不知义。 10、一日无书,百事荒废。陈寿 11、书是人类进步的阶梯。 12、一日不读口生,一日不写手生。 13、我扑在书上,就像饥饿的人扑在面包上。高尔基 14、书到用时方恨少、事非经过不知难。陆游 15、读一本好书,就如同和一个高尚的人在交谈歌德 16、读一切好书,就是和许多高尚的人谈话。笛卡儿 17、学习永远不晚。高尔基 18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。刘向 19、学而不思则惘,思而不学则殆。孔子 20、读书给人以快乐、给人以光彩、给人以才干。培根 人工智能与专家系统课程设计解读 人工智能与专家系统感想 人工智能专家系统实验 智能化农业专家系统应用与推广 专家系统读后感 人工智能与电子商务解读 人工智能课程论文解读 人工智能课程设计报告n皇后问题解读 人工智能课程设计(五子棋)解读 人工智能与生活