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

下载本文档

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

文档简介

一.标题:动物认识专家系统二.实验目的1.理解基于规则的表示和推理2.建立小型生产式系统,学习理解正向推理和逆向推理的过程及其差异学习设计简单的人机交互界面。三.实验内容动物识别专家系统是使用生成规则来表达知识的一般专家系统实验模型。可以识别15个规则,7个动物,这个规则很小,很简单,可以改造,也可以添加新规则,可以被用来识别其他东西的新规则取代。四。实验要求1、确定推理方法(正向或反向),并根据问题设计实现简单的非平凡推理引擎(匹配、冲突解决)2、规则库至少需要15个规则3、初始事实可以任意指定,输入初始事实后可以得到推断结果4、设计说明模块提供查询规则的功能的人机界面5、知识库管理模块可以不考虑6、提交实验报告,报告中要有推理树V.实验原理动物识别专家系统是一种流行的专家系统实验模型,使用生成规则来表达知识。可以识别15条规则,7种动物。此规则可以小、简单、变形、添加新规则,也可以替换为可用于标识其他内容的新规则。动物识别15规则:规则1:如果:动物有头发这是哺乳动物规则2:如果:如果动物能产奶这个单位是哺乳动物规则3:如果:这种动物有羽毛这种动物是鸟规则4:如果:动物飞去产卵这种动物是鸟规则5:如果:如果动物吃肉这种动物是食肉动物规则6:如果:动物有尖牙和利爪,眼睛向前看这是食肉动物规则7:如果:动物是哺乳动物,有蹄这是有蹄动物规则8:如果:动物是哺乳动物,反刍动物这是有蹄动物规则9:如果:动物是哺乳动物,食肉动物,黄褐色,有深色斑点这种动物是豹规则10:如果动物是黄褐色、哺乳动物、肉食性、黑色条纹这种动物是老虎规则11:如果:动物有黑斑,长腿,长脖子,有蹄这是长颈鹿规则12:如果:动物有黑色条纹,有蹄的动物这种动物是斑马规则13:如果:动物有长腿和长脖子,黑色,是鸟,不会飞现在,这个动物是鸵鸟规则14:如果:动物是鸟,不会飞,会游泳,是黑色的这是企鹅规则15:如果:动物是鸟,飞行好的话这种动物是信天翁六。推理树规则1有毛老虎哺乳动物黑色条纹黄褐色食肉动物能生产牛奶吃肉有爪有尖牙在眼前规则2规则5规则6规则107.代码#include#include#include#include#define True 1#define False 0#define DontKnow -1Char *str=chew_cud反刍动物, hooves蹄动物, mammal哺乳动物, forward_eyes注视眼前,“Claws有爪”,“pointed_teeth有尖牙”,“eat_meat吃肉”,“lay_eggs下蛋”,“fly会飞”, feathers有羽毛.,“ungulate有蹄。”,“carnivore食肉动物”,“bird bird,give_milk可以生产牛奶。”,Has_hair有毛,fly_well线飞,blackwhite_color black white,can_swim会游,Long_legs长腿、long_neck长脖子、black_stripes黑条纹、dark_spots黑点、Tawny_color黄褐色、albatross albatross、penguin企鹅、ostrich骆驼、zebra斑马、Giraffe长颈鹿,tiger老虎,cheetah猎豹,0 ;Intrulep 6=22,23,12,3,0,0,21,23,12,3,0,0,2221,11,0,0,0,17,19,20,13,-9,0,17,18,13,-9,0,15,0,0,0,0、14,0,0,0、10,0,0,0、8,7,0,0,07,0,0,0,0、4,5,6,0,0,0、2,3,0,0,0、1,3,0Int rulec =30,29,28,27,26,25,24,3,13,13,12,12,11,11,0 ;Class factprivate:Int Numberchar Name21;Int ActiveInt SuccPublic:Fact * NextFact(int Num,char *L)Strcpy(Name,L);Number=NumActive=FalseSucc=DontKnowNext=NULLChar *GetName()char * L;l=new char21;Strcpy(L,Name);return L;Int GetNumber()Return NumberInt GetAct()Return ActiveInt GetSucc()Return SuccVoid putact (const int act 0,int suc0)Active=Act0Succ=Suc0Fact * FactClass listprivate:Int NumberPublic:List * NextList(int Num)Number=NumNext=NULLInt GetNumber()Return NumberClass ruleChar * NameList * PreInt ConcPublic:Rule * NextRule(char *N,int P,int C); rule();int Query();Void GetName()CoutNextDelete Prepre=L;Delete Namerule 3363603360 rule(char * n,int p ,int c)int I;list * L;Pre=NULLNext=NULLname=new charstr len(N)1;Strcpy(Name,N);I=0;While(Pi)!=0)l=new list(PI);l-Next=Pre;pre=L;conc=C;Intrule 3336363603360 query()char c;int Tag=0;list * L;fact * F;F=FactL=PreIf(L=NULL)cout“ nError”;While(L!=NULL)F=Factfor(;)if(ABS(l-get number()=f-get number()BreakF=F-Next;If(L-GetNumber()0)if(f-get succ()=true) l=l-next;Continueif(f-get succ()=false)return false;ElseIf(F-GetSucc()=True)Return Falseif(F-get succ()=False)L=L-Next;Continuecout get name()(y/n) get number()0)F-PutAct(1,True);If(L-GetNumber()0)F-PutAct(1,True);tag=-1;Return FalseElseIf(L-GetNumber()0)F-PutAct(-1,False);ElseF-PutAct(-1,False);tag=-1;Return FalseL=L-Next;F=Factfor(;)If(Conc=F-GetNumber()BreakF=F-Next;If(Conc24)F-PutAct(1,True);Return FalseIf(Tag!=-1)F=Factfor(;)If(Conc=F-GetNumber()BreakF=F-Next;If(Conc24)F-PutAct(1,True);Return Falsecout n this ania mal is get name()next=fact;fact=F;I;F=FactFact=NULLWhile(F)t=F;F=F-Next;t-Next=Fact;fact=T;I=0;ch0=R;ch1=U;ch2=L;ch3=E;ch4=_

温馨提示

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

评论

0/150

提交评论