版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、人工智能及其应用作业 姓名: 学号:一、作业题目:设计一个动物识别系统,运用产生式系统的思想,设在综合数据库中存放下列已知事实:该动物身上有暗斑点,长脖子,长腿,奶,蹄,这些事实与规则库中的知识从第一条开始匹配,最终得出该动物是长颈鹿。二、程序设计分析:根据产生式系统的原理,该系统一般由规则库、综合数据库、控制系统三部分构成。先定义规则库结构体,里面包括Condition620,result20和规则数Cnum,再定义综合数据库即事实库,里面包括item2020,和事实数Fnum,主要用到的参数就是这些。然后初始化规则库和综合数据库,编辑规则库。之后就是主程序,也就是推理机的作用:先让用户输入
2、事实,然后与规则库中的知识从第一条开始逐条匹配,当匹配成功时,将结论插入事实库并更新事实库,再逐条匹配,依次循环.最终如果能匹配成功就显示该动物是.,否则显示无法识别该动物,程序结束。三、程序流程图如下图:图一、系统程序流程图四、我的源程序如下:#include iostream.h#include stdio.h#include conio.h#include string.htypedef struct Rule/定义规则库 char Condition620; char Result20; int Cnum; bool used;rule;typedef struct Fact/定义综合
3、数据库 char item2020; int Fnum;fact;rule r100;fact f;void Create_Rules();/初始化规则库void Create_Facts();/初始化综合数据库int Get_RulesNum();void Ratiocinate(int n);void main() int Rnum=0; Create_Rules(); Create_Facts(); Rnum=Get_RulesNum(); /coutRnumendl; Ratiocinate(Rnum);void Create_Rules() strcpy(r0.Condition0,
4、有毛发); strcpy(r0.Result,哺乳动物); r0.Cnum=1; r0.used=false; strcpy(r1.Condition0,奶); strcpy(r1.Result,哺乳动物); r1.Cnum=1; r1.used=false; strcpy(r2.Condition0,有羽毛); strcpy(r2.Result,鸟); r2.Cnum=1; r2.used=false; strcpy(r3.Condition0,会飞); strcpy(r3.Condition1,会下蛋); strcpy(r3.Result,鸟); r3.Cnum=2; r3.used=fa
5、lse; strcpy(r4.Condition0,吃肉); strcpy(r4.Result,食肉动物); r4.Cnum=1; r4.used=false; strcpy(r5.Condition0,有犬齿); strcpy(r5.Condition1,有爪); strcpy(r5.Condition2,眼盯前方); strcpy(r5.Result,食肉动物); r5.Cnum=3; r5.used=false; strcpy(r6.Condition0,哺乳动物); strcpy(r6.Condition1,蹄); strcpy(r6.Result,有蹄动物); r6.Cnum=2;
6、r6.used=false; strcpy(r7.Condition0,有蹄动物); strcpy(r7.Condition1,嚼反刍动物); strcpy(r7.Result,有蹄动物); r7.Cnum=2; r7.used=false; strcpy(r8.Condition0,哺乳动物); strcpy(r8.Condition1,食肉动物); strcpy(r8.Condition2,黄褐色); strcpy(r8.Condition3,身上有暗斑点); strcpy(r8.Result,金钱豹); r8.Cnum=4; r8.used=false; strcpy(r9.Condit
7、ion0,哺乳动物); strcpy(r9.Condition1,食肉动物); strcpy(r9.Condition2,黄褐色); strcpy(r9.Condition3,有黑色条纹); strcpy(r9.Result,虎); r9.Cnum=4; r9.used=false; strcpy(r10.Condition0,有蹄动物); strcpy(r10.Condition1,长腿); strcpy(r10.Condition2,长脖子); strcpy(r10.Condition3,身上有暗斑点); strcpy(r10.Result,长颈鹿); r10.Cnum=4; r10.us
8、ed=false; strcpy(r11.Condition0,有蹄类动物); strcpy(r11.Condition1,身上有黑色条纹); strcpy(r11.Result,斑马); r11.Cnum=2; r11.used=false; strcpy(r12.Condition0,鸟); strcpy(r12.Condition1,有长脖子); strcpy(r12.Condition2,长腿); strcpy(r12.Condition3,不会飞); strcpy(r12.Condition4,有黑白两色); strcpy(r12.Result,鸵鸟); r12.Cnum=5; r1
9、2.used=false; strcpy(r13.Condition0,鸟); strcpy(r13.Condition1,会游泳); strcpy(r13.Condition2,不会飞); strcpy(r13.Condition3,有黑白两色); strcpy(r13.Result,企鹅); r13.Cnum=4; r13.used=false; strcpy(r14.Condition0,鸟); strcpy(r14.Condition1,善飞); strcpy(r14.Result,海燕); r14.Cnum=2; r14.used=false;void Create_Facts()
10、printf(请输入该动物特性(中间加空格,Enter键结束)n); scanf(%s%s%s%s%s,&f.item0,&f.item1,&f.item2,&f.item3,&f.item4); f.Fnum=5;int Get_RulesNum() int num=0; int i=0; while(1) if(ri.Condition00=0) break; i+; num+; return num;void Ratiocinate(int n) bool FindFact(char * str); void InsertIntoFact(char * str); int i=0,j;/
11、 i用来控制查找的是第几条规则,j用来控制查找的规则中的第几条 while(1) if(ri.used=false) for(j=0;jri.Cnum;j+) if(FindFact(ri.Conditionj) continue; else cout规则i+1匹配失败endl; break; if(j=ri.Cnum) /如果所有的前件都满足 ri.used=true; cout规则i+1匹配成功,结论插入到综合数据库endl; if(!FindFact(ri.Result) InsertIntoFact(ri.Result);/插入事实 cout新增加的事实为:f.itemf.Fnum-1
12、endl; i=0; /continue; else i+;/查看下条规则 if(i=n) cout没有你要找符合要求的动物,请增加新的规则endl; break; else if(strcmp(f.itemf.Fnum-1,老虎)=0|strcmp(f.itemf.Fnum-1,金钱豹)=0|strcmp(f.itemf.Fnum-1,长颈鹿)=0|strcmp(f.itemf.Fnum-1,斑马)=0|strcmp(f.itemf.Fnum-1,鸵鸟)=0|strcmp(f.itemf.Fnum-1,企鹅)=0|strcmp(f.itemf.Fnum-1,海燕)=0) cout与你给的事实匹配的动物:f.itemf.Fnum-1endl; break; /查看综合数据库中的事实否否等于前件,或者是存在这条事实,那么新的结论就不用加到综合数据库中bool F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年青岛水务集团有限公司校园招聘考试备考题库及答案解析
- 2026年合肥燃气集团有限公司校园招聘考试备考题库及答案解析
- 2026宁夏北方乳业有限责任公司招聘10人考试参考试题及答案解析
- 2024-2025学年度贵阳职业技术学院妇产护理期末考试彩蛋押题【综合题】附答案详解
- 2024-2025学年度医学检验(士)试卷(模拟题)附答案详解
- 2026年河北电信校园招聘考试备考题库及答案解析
- 2026年厦门海翼集团有限公司校园招聘考试备考题库及答案解析
- 2026年新疆产权交易所校园招聘考试备考题库及答案解析
- 2026广西柳州市中医医院感染性疾病科医师招聘1人考试参考题库及答案解析
- 2026年广州石油培训中心校园招聘笔试备考题库及答案解析
- 宁波华翔首次覆盖报告:全面拥抱人形机器人产业全球PEEK龙头潜力初显
- 2026山东出版集团有限公司山东出版传媒股份有限公司招聘193人备考题库及答案详解(基础+提升)
- 职业危害事故处置及报告全流程培训
- 中小医院医用布草洗涤服务方案投标文件(技术方案)
- 10 石蜂 课件 2026统编版三年级语文下册
- 《铁路货运技术》课件-项目04 任务三 常见典型货物装载加固
- 躁狂症的课件
- 发票赔偿协议书
- 蜂王浆课件教学课件
- 水源热泵施工方案
- Ansys2025全球仿真大会:Ansys CFD 2025新功能介绍
评论
0/150
提交评论