




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一:产生式系统实验一、实验目的:熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法。二、实验原理产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。产生式系统是由一组规则组成的、能够协同作用的推理系统。其模型是设计各种智能专家系统的基础 .产生式系统主要由规则库、综合数据库和推理机三大部分组成。本实验环境主要提供一个能够实现模拟产生式专家系统的验证、设计和开发的可视化操作平台。学生既能用本系统提供的范例进行演示或验证性实验,也能够用它来设计
2、并调试自己的实验模型 。 三、 实验条件:1、产生式系统实验程序。2、IE6.0以上,可以上Internet四、实验内容:1. 对已有的产生式系统(默认的例子)进行演示,同时可以更改其规则库或(和)事实库,进行正反向推理,了解其推理过程和机制。2. 自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的规则和事实,并基于这种规则和事实进行推理。这为学生亲手建造产生式系统并进行推理提供了一种有效的实验环境。五、实验步骤:1. 定义变量,包括变量名和变量的值。2. 建立规则库,其方法是,(a) 输入规则的条件:每条规则至少有一个条件和一个结论,选择变量名,输入条件(符号);选
3、择变量值,按确定按钮就完成了一条条件的输入。重复操作,可输入多条条件;(b) 输入规则的结论:输入完规则的条件后,就可以输入规则的结论了,每条规则必须也只能有一个结论。选择变量名,输入条件(符号),选择变量值,按确定按钮就完成了一个结论的输入。重复以上两步,完成整个规则库的建立。3. 建立事实库(总数据库):建立过程同步骤2。重复操作,可输入多条事实。4. 然后按“开始”或“单步”按钮即可。此外,利用实例演示,可以运行系统默认的产生式系统,并且可以进行正反向推理。其他的可参见其帮助文件。六、实验流程图和结果:七、程序清单:#include<iostream>#include<
4、iomanip>using namespace std;char *animal="企鹅","海燕","鸵鸟","斑马","长颈鹿","虎","金钱豹"char *feature="有毛","产奶","有羽毛","会飞","会下蛋","吃肉","有犬齿","有爪","眼睛盯前方&qu
5、ot;,"有蹄","反刍","黄褐色","有斑点", / 0 1 2 3 4 5 6 7 8 9 10 11 12"有黑色条纹","长脖","长腿","不会飞","会游泳","黑白两色","善飞","哺乳类","鸟类","肉食类","蹄类", / 13 14 15 16 17 18 19 20 21
6、 22 23 "企鹅","海燕","鸵鸟","斑马","长颈鹿","虎","金钱豹" / 24 25 26 27 28 29 30typedef struct /存放规则的结构体 int relation5; int name;Rule;Rule rule15= 0,-1,20,/规则0 1,-1,20,/规则1 2,-1,21,/规则2 3,4,-1,21,/规则3 20,5,-1,22,/规则4 6,7,8,-1,22,/规则5 20,8,-1,23,
7、/规则6 20,9,-1,23,/规则7 22,11,12,-1,30,/规则8 22,11,13,-1,29,/规则9 23,14,15,12,-1,28,/规则10 23,13,-1,27,/规则11 21,14,15,16,-1,26,/规则12 21,19,-1,25,/规则13 21,17,18,16,-1,24;/规则14int flag23=0;/标记各个特征是否选择int IsAnimal(int a);int inference();void input();void menu();void menu() int i=0; for(i=0;i<24;i+) if(i%4
8、=0&&i!=0) cout<<endl; printf("%-3d.%-15s",i,featurei); void input() int ti=0; for(int i=0;i<24;i+) flagi=0; while(ti!=-1) cout<<"n输入选择(-1结束):" cin>> ti; if(ti>=0&&ti<=23) flagti=1; else if(ti!=-1) cout<<"输入错误!请输入023之间的数字!"
9、;<< endl; / tanimal=25 cin.clear();/清除流错误错误标记 cin.sync(); /清空输入缓冲区 int IsAnimal(int a) if(a>=24&&a<=30) return 1; return 0;int inference()/正向推理 int ti; int i,j; int tres; cout<<endl; for(i=0;i<15;i+) j=0; ti=rulei.relationj; while(ti!=-1) /-1作为结束 if(flagti=0) break; j+;
10、ti=rulei.relationj; if(ti=-1)/ti=-1代表规则满足 tres=; flagtres=1; printf("运用了规则%d : ",i); j=0; while(rulei.relationj!=-1) cout<<featurerulei.relationj<<" " j+; cout<<"=> "<<featuretres<<endl; if(IsAnimal(tres) return 1; if(i=15) cout<<"没有这种动物" return -1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 顺丰快递用工合同协议
- 防水轻工劳务合同协议
- 露营选址租赁合同协议
- 食堂做事免责协议书范本
- 食品原料购买合同协议
- 门卫合同协议书范文模板
- 项目进度付款合同协议
- 除雪铲采购合同协议
- 顾问招聘合同协议
- 门窗供货保障协议书范本
- 2025-2030中国水镁石行业供需形势与营销策略分析研究报告
- 辽宁省部分高中2023-2024学年高二下学期期中考试数学试题(解析版)
- 四川省南充市阆中中学校2024-2025学年高二下学期4月期中 化学试题(含答案)
- 购买机票合同协议
- 蓄水池水池清洗方案
- 2024年陪诊师考试教材相关试题及答案
- 2025年港口国企笔试题库及答案
- 儿童发展问题的咨询与辅导-案例1-5-国开-参考资料
- 热塑性聚酯弹性体(TPEE)
- 毕业论文机电一体化发展历程及其面临的形势和任务
- 《中小学综合实践活动课程指导纲要》教育部2022版
评论
0/150
提交评论