人工智能大作业动物识别专家系统研究_第1页
人工智能大作业动物识别专家系统研究_第2页
人工智能大作业动物识别专家系统研究_第3页
人工智能大作业动物识别专家系统研究_第4页
人工智能大作业动物识别专家系统研究_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

动物识别专家系统研究摘要:动物识别专家系统是将人的思维过程转化为计算机语言的逻辑过程,其关键在于知识和信息的表示,智能推理或求解的基础——知识库的创建和管理,以及基于某种知识和信息表示的智能推理或求解过程。使动物识别具有一定的智能性、良好的交互性和可视化效果。本论文也主要以识别七种动物的设计思路和程序为例所写的。关键词:人工智能;专家系统;动物识别一、专家系统基本知识1.1动物识别专家系统介绍动物识别专家系统是人工智能中一个比较基础的规则演绎系统,是人工智能领域里的一个大模块的专家系统的一个特定例子。是集知识表与推理为一体的,以规则为基础对用户提供的事实进行向前、逆向或双向的推理得出结论的一种产生式系统。如果通过良好的分析、精确地设计和细致的规划会创设出高度灵活和快速有效的识别系统,再加上良好的界面供用户添加新的事实和规则,反馈详细的错误或信息的话,那就是一个相当完整的识别系统了。1.2专家系统实际应用目前专家系统已经成功地渗透到生活的各个领域,并且还产生了巨大的社会效益和经济效益。例如,像车辆传感、药物、纺织服装等重工业和轻工业领域中都会应用到,特别是在计算机领域里,现在已经是一门非常重要的学科类了。1.3专家系统的开发专家系统设计与实现的一般过程选题与明确任务下选题与明确任务下图1【3】设计基本思路2.1知识库知识库作用用产生式系统监别动物,需要一种演绎机制,利用己知事实的集合做出新的结论,一种方法是替动物园中的每个动物作一个产生式,使用者首先收集所有可利用的事实,然后在产生式的表中进行扫描,寻找一个状态部分能与之匹配的产生式。一般要经过多少步并生成和利用一些中间事实才能从基本事实推出结论,这样做所包含的产生式可以比较小容易理解,容易使用和容易产生。动物识别专家系统中的知识库中的知识通常是用规则表示的。知识库建立知识库所要遵循的规则【1】规则1:如果:动物有毛发则:该动物是哺乳动物规则2:如果:动物能产奶则:该单位是哺乳动物规则3:如果:该动物有羽毛则:该动物是鸟规则4:如果:动物会飞,且会下蛋则:该动物是鸟规则5:如果:动物吃肉则:该动物是肉食动物规则6:如果:动物有犬齿,且有爪,且眼盯前方则:该动物是食肉动物规则7:如果:动物是哺乳动物,且有蹄则:该动物是有蹄动物规则8:如果:动物是哺乳动物,且是反刍动物则:该动物是有蹄动物规则9:如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点则:该动物是豹规则10:如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹则:该动物是虎规则11:如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类则:该动物是长颈鹿规则12:如果:动物有黑条纹,且是有蹄类动物则:该动物是斑马规则13:如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞则:该动物是鸵鸟规则14:如果:动物是鸟,且不会飞,且会游泳,且是黑色的则:该动物是企鹅规则15:如果:动物是鸟,且善飞则:该动物是信天翁动物分类专家系统由15条规则组成可以识别七种动物.知识库获取知识获取一般是指从某个活某些致使原中获取专家系统问题求解所需要的专门知识,并以某种形式在计算机中存储、传输与转移。专家系统的知识获取一般是由知识工程师与专家系统知识的获取机构共同完成的。知识获取的常用方法有以下几种【3】:手工知识获取;半自动获取;自动知识获取;人工神经网络知识获取;选用哪种知识获取方法需要根据当前的系统,以及用户的需求来决定。但在有些大型系统上还可能会用到不是仅仅一种方法的。2.2数据库2.2.1数据库作用数据库即为事实库【2】,在计算机中流出一些存储区间,以存放反应系统当前状态的事实,存放用户回答的事实、已知的事实和由推理而得的事实,即由已知事实推导出的假设成立时,也作为事实。其综合数据库的内容是不断变化的。

2.2.2数据库建立char*str[]={"","反刍动物"/*1*/,"蹄类动物"/*2*/,"哺乳动物"/*3*/,"目视前方"/*4*/,"有爪子"/*5*/,"有犬齿"/*6*/,"吃肉"/*7*/,"下蛋"/*8*/,"会飞"/*9*/,"有羽毛"/*10*/,"有蹄"/*11*/,"肉食动物"/*12*/,"鸟类"/*13*/,"产奶"/*14*/,"有毛发"/*15*/,"善飞"/*16*/,"黑白色"/*17*/,"会游泳"/*18*/,"长腿"/*19*/,"长脖子"/*20*/,"有黑色条纹"/*21*/,"有暗斑点"/*22*/,"黄褐色"/*23*/,"信天翁"/*24*/,"企鹅"/*25*/,"鸵鸟"/*26*/,"斑马"/*27*/,"长颈鹿"/*28*/,"老虎"/*29*/,"猎豹"/*30*/,"\0"};intrulep[][6]={{22,23,12,3,0,0},{21,23,12,3,0,0},{22,19,20,11,0,0},intrulec[]={{16,13,0,0,0,0},{15,0,0,0,0,0},{14,0,0,0,0,0},intrulec[]={{16,13,0,0,0,0},{15,0,0,0,0,0},{14,0,0,0,0,0},{10,0,0,0,0,0},{8,7,0,0,0,0},{7,0,0,0,0,0},{4,5,6,0,0,0},{2,3,0,0,0,0},{1,3,0,0,0,0}};30,29,28,27,26,25,24,3,3,13,13,12,12,11,11};{21,11,0,0,0,0},{17,19,20,13,-9,0},{17,18,13,-9,0,0},三、推理机构3.1推理机介绍3.1.1推理机作用原理推理机是一组函数【4】,本例既有正向推理机又有反向推理机,都是用精确推理。推理机是实施问题求解的核心执行机构,它是对知识进行解释的程序,根据知识的语义,对按

一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。3.1.2推理网络下图为识别本文中所举的识别七种动物时所规则形成的推理网络:哺乳动物哺乳动物图23.2正向推理3.2.1正向推理基本思想用户首先提供一批事实,存放到数据库中,然后推理机进行工作。方法是:推理机用这批事实与知识库中规则的前提进行匹配。把匹配成功的规则的结论部分作为新的事实加到数据库中去(这时,数据库中的事实增加了)。再用更新后的数据库中的所有事实,重复上述①②二步,如此反复进行,直到得以结论(答案)或不再有新的事实加到数据库为止。例如,用户输入一批事实:动物有暗斑点、长脖子、长腿、产奶、有蹄子(这批事实存放在数据库中),要求系统判断这是一个什么动物?推理机利用这批事实来匹配规则。3.2.2正向推理示意图图33.2.3正向推理机所要具有功能要设计一个正向推理机,就是设计一组程序,使其至少具有以下的功能【3】能用数据库中的事实去匹配规则的前提,若匹配不成功,能自动地进行吓一跳规则的匹配。这里如何匹配最为合适,是设计专家系统者根据专业特点和知识表示等情况,需要很好考虑的问题,也就是在匹配时到底用什么策略等问题都需要考虑周全;若某条规则匹配成功,系统能将此规则的结论部分自动加入数据库;能判断何时应结束推理;能将匹配成功的规则记录下来;3.3反向推理3.3.1反向推理基本思想由用户或系统首先提出一批假设,然后系统逐一验证这些假设的真假性,方法:看假设是含在数据库中,若在,则假设成立,推理结束或进行下一个假设的验证否则进行下一步。判断这些假设是否是证据节点,若是,系统提问用户,否则进行下一步。找出结论部分包含此假设的那些规则,把这些规则的所有前提作为新的假设。4.重复①、②、③步。3.3.2反向推理示意图图43.3.3反向推理机所要具有功能能根据用户要求或情况提出假设;能验证此假设是否是在数据库中;能把知识库中将结论部分包含此假设的规则都找出来;能将找出来地规则的前提部分取出,并作为新的假设逐条验证;能判断假设是否是证据接点,若是,能向用户提出相应的问题,并记录结果;能将匹配成功的规则记录下来;能判断何时应结束推理;四、实例系统实现4.1系统介绍此系统是实现了《人工智能教程(的二版)》专家系统实例里的动物识别系统。此系统是识别——老虎、猎豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁等七种动物。是严格遵循了知识库中的规则,并运用C语言在VisualC++6.0环境下实验编译同过的。因为各种原因没能设计实现出比较精美的界面,但还是体现出了很多专家系统所该具备的东西和功能。4.2基本思路该系统的知识表示采用产生式表示法。产生式系统由规则库、综合数据库、控制系统三个部分构成。其中规则库、综合数据库分别对应本系统中的rule类,str指针链表。Rule链表存放用户输入的事实。用到一个fact事实类和Fact事实链表,并用GetName(),GetNumber(),GetAct(),GetSucc()等函数来获取事实信息。推理控制策略采用精确匹配算法的正向推理。4.3程序主要代码/*<Function释放规则链表节点之前提链空间/><Note规则链本身空间为释放/>*/rule::~rule(){list*L;while(Pre){L=Pre->Next;deletePre;Pre=L;}deleteName;}/*<Function主要实现推理机/><Return规则使用成功与否/>*/intrule::Query(){charc;//保存用户输入按键符号list*L;//临时前提链fact*F;//临时事实链L=Pre;//L指向前提链F=Fact;if(L==NULL)printf("\nError!");//如果推理时,本规则前提链为空,出错,后面while循环也退出!while(L!=NULL)//前提链未处理完{F=Fact;//F指向事实链表for(;;)〃以当前前提,在事实链表中查询(根据ID){〃因为前提为“-事实ID”,表示该事实不成立,所以取绝对值if(abs(L->GetNumber())==F->GetNumber())break;

F=F->Next;//查询下一事实〃退出循环时,F=F->Next;//查询下一事实〃退出循环时,F指向查询到的事实节点//如果前提为真}if(L->GetNumber()>0){if((F->GetSucc())==True){L=L->Next;continue;}if((F->GetSucc())==False)returnFalse;}else{if((F->GetSucc())==True)returnFalse;if((F->GetSucc())==False){L=L->Next;continue;//而且事实链表中的这个事实断言也为真//则本规则的当前前提在推理中满足//继续下一前提的判断//该前提在事实链表中断言不成立//该规则推理使用结束,直接返回//Sorry,该前提在事实链表中断言却为真//该规则推理使用结束,直接返回}}//endif-elseprintf("%s(Y/N)",F->GetName());//向用户提问c=getchar();//接受用户输入flushall();if((c=='Y')||(c=='y'))//{if(L->GetNumber()>0)F->PutAct(1,True);if(L->GetNumber()<0){//且若当前规则中的当前前提要求为“假”F->PutAct(1,True);//置激活和用户的断言returnFalse;//本规则推理结束,不成功;后面的前提不判断了!}}else{if(L->GetNumber()<0)F->PutAct(-1,False);if(L->GetNumber()>0){F->PutAct(-1,False);returnFalse;}}L=L->Next;//用户断言和当前规则的当前前提符合,则取当前规则的下一前提进行判断!}//endwhile得出推理结论F=Fact;for(;;){if(Conc==F->GetNumber())break;//在事实表中查找与当前规则得后件相同得事实F=F->Next;}if(Conc<24)//如果规则后件(结论)不是最终最终性得(即不是7种要识别得动物){F->PutAct(1,True);//那就是中间事实性结论,设置其激活和中间推理确证了的断言returnFalse;//然后返回,本规则并不能结束整个推理}printf("\n该动物是:%s\n",F->GetName());returnTrue;}4.4系统执行结果五、结论动物识别专家系统实现起来也许相对简单一些,但基本上也包括了专家系统的各个组成部分。动物识别具有一定的智能性,但是根据所采用的匹配方法的不同其智能性也有不小的差距。而知识库的管理和数据库的设计是否完善对于动物识别专家系统是极为关键的,这也是很多此类专家系统的通病。参考文献:【1】王士同,陈慧萍,赵跃华,钱旭.人工智能教程[M](第二版)北京:电子工业出版社,2006:188-206

温馨提示

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

评论

0/150

提交评论