1、人工智能动物识别专家系统一题目:动物识别专家系统二实验目的1.理解并掌握基于规如此系统的表示与推理2.学会编写小型的生产式系统,理解正向推理和反向推理的过程以与两者的区别3.学会设计简单的人机交互界面三实验内容动物识别专家系统是流行的专家系统实验模型,它用产生式规如此来表示知识,共15条规如此、可以识别七种动物,这些规如此既少又简单,可以改造他们,也可以加进新的规如此,还可以用来识别其他东西的新规如此来取代这些规如此。四实验要求1、确定推理方法正向还是反向,并根据问题设计实现一个简单的不通用推理机匹配、冲突消解2、规如此库要求至少包含15条规如此3、初始事实可以任意给定,输入初始事实后能够得到
2、推理结果4、设计人机界面,解释模块提供查询规如此的功能5、可以不考虑知识库管理模块6、提交实验报告,7、报告中要有推理树五实验原理动物识别专家系统是流行的专家系统实验模型,它用产生式规如此来表示知识,共15条规如此、可以识别七种动物,这些规如此既少又简单,可以改造他们,也可以加进新的规如此,还可以用来识别其他东西的新规如此来取代这些规如此。动物识别15条规如此:规如此1:如果:动物有毛发如此 :该动物是哺乳动物规如此2: 如果:动物能产奶 如此 :该单位是哺乳动物规如此3: 如果:该动物有羽毛 如此 :该动物是鸟规如此4: 如果:动物会飞,且会下蛋 如此 :该动物是鸟规如此5: 如果:动物吃肉
3、 如此 :该动物是肉食动物规如此6: 如果:动物有犬齿,且有爪,且眼盯前方如此 :该动物是食肉动物规如此7: 如果:动物是哺乳动物,且有蹄 如此 :该动物是有蹄动物规如此8: 如果:动物是哺乳动物,且是反刍动物 如此 :该动物是有蹄动物规如此9: 如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点 如此 :该动物是豹规如此10: 如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹 如此 :该动物是虎规如此11: 如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类 如此 :该动物是长颈鹿规如此12: 如果:动物有黑条纹,且是有蹄类动物 如此 :该动物是斑马规如此13: 如
4、果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞 如此 :该动物是鸵鸟规如此14: 如果:动物是鸟,且不会飞,且会游泳,且是黑色的 如此 :该动物是企鹅规如此15: 如果:动物是鸟,且善飞 如此 :该动物是信天翁六推理树规如此1 七代码#include #include #include #include #define True 1#define False 0#define DontKnow -1char *str=chew_cud反刍动物,hooves蹄类动物,mammal哺乳动物,forward_eyes眼盯前方,claws有爪,pointed_teeth有犬齿,eat_mea
5、t吃肉,lay_eggs会下蛋,fly会飞,feathers有羽毛,ungulate有蹄,carnivore食肉动物,bird鸟,give_milk能产奶,has_hair有毛发,fly_well善飞,black&white_color黑白色,can_swim会游泳,long_legs长腿,long_neck长脖子,black_stripes黑条纹,dark_spots黑斑点,tawny_color黄褐色,albatross信天翁,penguin企鹅,ostrich驼鸟,zebra斑马,giraffe长颈鹿,tiger老虎,cheetah猎豹,0;int rulep6=22,23,12,3,0
6、,0,21,23,12,3,0,0,22,19,20,11,0,0,21,11,0,0,0,0,17,19,20,13,-9,0,17,18,13,-9,0,0,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;int rulec=30,29,28,27,26,25,24,3,3,13,13,12,12,11,11,0;class factprivate:int Number;char Name21;int Active
7、;int Succ;public:fact *Next;fact(int Num,char *L)strcpy(Name,L);Number=Num;Active=False;Succ=DontKnow; Next=NULL;char *GetName()char *L;L=new char21;strcpy(L,Name);return L;int GetNumber()return Number;int GetAct()return Active;int GetSucc()return Succ;void PutAct(const int Act0,int Suc0)Active=Act0
8、;Succ=Suc0;fact *Fact;class listprivate:int Number;public:list *Next;list(int Num)Number=Num;Next=NULL;int GetNumber()return Number;class rulechar *Name;list *Pre;int Conc;public:rule *Next;rule(char *N,int P,int C);rule();int Query();void GetName()coutNext;delete Pre;Pre=L;delete Name;rule:rule(cha
9、r *N,int P,int C)int i;list *L;Pre=NULL;Next=NULL;Name=new charstrlen(N)+1;strcpy(Name,N);i=0;while(Pi!=0)L=new list(Pi+);L-Next=Pre;Pre=L;Conc=C;int rule:Query()char c;int Tag=0;list *L;fact *F;F=Fact;L=Pre;if(L=NULL)coutGetNumber()=F-GetNumber()break;F=F-Next;if(L-GetNumber()0)if(F-GetSucc()=true)
10、 L=L-Next;continue;if(F-GetSucc()=false) return false;elseif(F-GetSucc()=True)return False;if(F-GetSucc()=False)L=L-Next;continue;coutGetName()(Y/N)GetNumber()0)F-PutAct(1,True);if(L-GetNumber()PutAct(1,True);Tag=-1;return False;elseif(L-GetNumber()PutAct(-1,False);elseF-PutAct(-1,False);Tag=-1; ret
11、urn False;L=L-Next;F=Fact;for(;)if(Conc=F-GetNumber()break;F=F-Next;if(ConcPutAct(1,True);return False;if(Tag!=-1)F=Fact;for(;)if(Conc=F-GetNumber()break;F=F-Next;if(ConcPutAct(1,True);return False;coutnThis aniamal is GetName()Next=Fact;Fact=F;i+;F=Fact;Fact=NULL;while(F) T=F;F=F-Next;T-Next=Fact;Fact=T;i=0;ch0=R;ch1=U;ch2=L;ch3=E;ch4=_;ch5=a;ch6=0;Rule=NULL;for(i=0;iNext=Rule;Rule=R;ch5+;R=Rule;for(;)i=R-Query();if(i=1)|(i=-1)break;R=R-Next;if(!R)break;if(!R)cout没有这种动物.endl;coutpress any key to exit.endl;getchar();return True;八截图九感想通过这次课程设计我对专业课的学习有了更加深刻的认识,让我知道了学无止境的道理。我们每一个人永远不能满足于现有
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1