




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一 题目:动物识别专家系统二 实验目的1. 理解并掌握基于规则系统的表示与推理2. 学会编写小型的生产式系统,理解正向推理和反向推理的过程以及两者的区别3. 学会设计简单的人机交互界面三 实验内容动物识别专家系统是流行的专家系统实验模型,它用产生式规则来表示知识,共15条规则、可以识别七种动物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。四 实验要求1、确定推理方法(正向还是反向),并根据问题设计实现一个简单的不通用推理机(匹配、冲突消解)2、规则库要求至少包含15条规则3、初始事实可以任意给定,输入初始事实后能够得到推理结果4、设计人机
2、界面,解释模块提供查询规则的功能5、可以不考虑知识库管理模块6、提交实验报告,7、报告中要有推理树五 实验原理动物识别专家系统是流行的专家系统实验模型,它用产生式规则来表示知识,共15条规则、可以识别七种动物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。动物识别15条规则:规则1:如果:动物有毛发则 :该动物是哺乳动物规则2: 如果:动物能产奶 则 :该单位是哺乳动物规则3: 如果:该动物有羽毛 则 :该动物是鸟规则4: 如果:动物会飞,且会下蛋 则 :该动物是鸟规则5: 如果:动物吃肉 则 :该动物是肉食动物规则6: 如果:动物有犬齿,
3、且有爪,且眼盯前方则 :该动物是食肉动物规则7: 如果:动物是哺乳动物,且有蹄 则 :该动物是有蹄动物规则8: 如果:动物是哺乳动物,且是反刍动物 则 :该动物是有蹄动物规则9: 如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点 则 :该动物是豹规则10: 如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹 则 :该动物是虎规则11: 如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类 则 :该动物是长颈鹿规则12: 如果:动物有黑条纹,且是有蹄类动物 则 :该动物是斑马规则13: 如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞 则 :该动物是鸵鸟规则14
4、: 如果:动物是鸟,且不会飞,且会游泳,且是黑色的 则 :该动物是企鹅规则15: 如果:动物是鸟,且善飞 则 :该动物是信天翁六 推理树规则1 有毛发老虎哺乳动物黑条纹黄褐色肉食动物能产奶吃肉有爪有犬齿眼顶前方规则2 规则5 规则6规则10七 代码#include <string.h>#include <math.h>#include <stdio.h>#include <iostream.h>#define True 1#define False 0#define DontKnow -1char *str="chew_cud反刍动物&
5、quot;,"hooves蹄类动物","mammal哺乳动物","forward_eyes眼盯前方","claws有爪","pointed_teeth有犬齿","eat_meat吃肉","lay_eggs会下蛋","fly会飞","feathers有羽毛","ungulate有蹄","carnivore食肉动物","bird鸟","give_mil
6、k能产奶","has_hair有毛发","fly_well善飞","black&white_color黑白色","can_swim会游泳","long_legs长腿","long_neck长脖子","black_stripes黑条纹","dark_spots黑斑点","tawny_color黄褐色","albatross信天翁","penguin企鹅",&qu
7、ot;ostrich驼鸟","zebra斑马","giraffe长颈鹿","tiger老虎","cheetah猎豹",0;int rulep6=22,23,12,3,0,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
8、,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;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
9、L;int GetNumber()return Number;int GetAct()return Active;int GetSucc()return Succ;void PutAct(const int Act0,int Suc0)Active=Act0;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
10、;public:rule *Next;rule(char *N,int P,int C);rule();int Query();void GetName()cout<<Name;rule:rule()list *L;while(Pre)L=Pre->Next;delete Pre;Pre=L;delete Name;rule:rule(char *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
11、+);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)cout<<"nError"while(L!=NULL)F=Fact;for(;)if(abs(L->GetNumber()=F->GetNumber()break;F=F->Next;if(L->GetNumber()>0)if(F->GetSucc()=true) L=L->Next;continue;if(F-&
12、gt;GetSucc()=false) return false;elseif(F->GetSucc()=True)return False;if(F->GetSucc()=False)L=L->Next;continue;cout<<F->GetName()<<"(Y/N)"<<endl;c=getchar();flushall();if(c='Y')|(c='y')if(L->GetNumber()>0)F->PutAct(1,True);if(L->Ge
13、tNumber()<0)F->PutAct(1,True);Tag=-1;return False;elseif(L->GetNumber()<0)F->PutAct(-1,False);elseF->PutAct(-1,False);Tag=-1; return False;L=L->Next;F=Fact;for(;)if(Conc=F->GetNumber()break;F=F->Next;if(Conc<24)F->PutAct(1,True);return False;if(Tag!=-1)F=Fact;for(;)i
14、f(Conc=F->GetNumber()break;F=F->Next;if(Conc<24)F->PutAct(1,True);return False;cout<<"nThis aniamal is "<<F->GetName()<<endl;return True;return False;int main()fact *F,*T;rule *Rule,*R;char ch8;int i=1;Fact=NULL;while(stri-1)F=new fact(i,stri-1);F->Next=
15、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;i<15;i+)R=new rule(ch,rulepi,ruleci);R->Next=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;cout<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年航空供应链销售合作框架合同样本
- 2025年度装配式建筑构件生产与安装服务框架协议范本
- 2025版劳务公司劳务输出合同范本
- 2025年郑州市事业单位教师招聘生物学科专业知识试题汇编
- 二零二五年度绿色建筑工地施工环境保护责任合同
- 2025年高压电工证考试:高压操作安全规范与高压绝缘子泄漏电流控制方法试题
- 2025年装饰装修工(高级)考试试卷备考攻略与模拟试题
- 2025版旅游集团母子公司间旅游借款合同范本
- 2025年黑龙江省事业单位招聘考试教师招聘考试学科专业知识试题库(政治)
- 2025年重庆市化工类事业单位招聘考试综合类专业能力测试试卷
- 市政道路、桥梁、排水工程监理实施细则(下册)
- 许昌市政协委员管理办法
- 社区居委会安全生产管理制度
- 连申线兴东线至海安界段航道整治工程环评资料环境影响
- 客户信息传递管理办法
- 2025至2030中国热成型钢(PHS)市场销售模式及未来投资风险评估报告
- GB/T 30099-2025实验室离心机
- 实验室留样管理制度
- 2025-2030中国阻焊油墨行业运行现状与场竞争格局分析报告
- 建筑桩基技术规范 JGJ 94-2008知识培训
- 公司电商财务管理制度
评论
0/150
提交评论