实验一产生式系统_第1页
实验一产生式系统_第2页
实验一产生式系统_第3页
实验一产生式系统_第4页
实验一产生式系统_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、实验一产生式系统动物识别系统一、实习目的和意义1、掌握人工智能的知识表示技术,能用产生式表示法表示知识;2、掌握基于规则推理的基本方法;3、掌握产生式系统的运行机制。二、实习内容参考教材规则库包含15条规则,开发一个专家系统可以识别老虎,金钱豹, 斑马,长颈鹿,企鹅,鸵鸟等6种动物。三、实习要求1、本次实验语言MATLAB;2、系统能通过正向推理得到正确的动物识别结果。四、实习过程实验原理正向推理(事实驱动推理)1)从初始已知事实出发,在知识库KB中找出当前可适用的知识,构成可适 用知识集KS;2)按某种冲突消解策略,从KS中选出一条知识进行推理,并将推出的新事 实加入到数据库DB中,作为下一

2、步推理的已知事实,再在KB中选取可 适用知识构成KS;3)重复步骤二,直到求得问题的解,或KB中再无可适用的知识。问题背景根据课本P33的15调动物识别的专家知识,建立规则库。算法设计主要利用数组下标和元素的0,1值表示知识,规则,及相关标记。Mat lab 实现a.算法函数名函数说明learnfunction learn(arr_category, arr_feature )主函数checkRulefunctionarr_category,arr_feature,arr_rule,ifMore,mark=checkRule(arr_category,arr_feature,arr_rule,

3、ifMore,mark )规则符合检测showCategoryfunction showCategory( ) 类别选项打印函数showFeaturefunction showFeature()特征选项打印函数showResultfunction showResult(mark) 仑吉果显示b.测试测试数据一arr_category51 0 0 0 1arr_feature200 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 函骸ry=l 0 0 0 110001 皿_f 心心=。0000000000001 1 1OOO0arr_f 饱 ture =0000000

4、0000001110000(arr_cat-e-g6ry, arr_feature)1000100000000000001110000相据观则8新增信息:尊勃协是有畔夷动物柩据块帅.二*诅别堵果*E该动物呆:测试数据二arr_category 0 0 0 0 05arr_feature2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 aiT_iategory=(J 0 0 0 0arr_-eat*BarT 二00000 皿*ture=【l 000000000000000000 0白琏=10000000000000000000l?arn-(arr_c0tea

5、ory: arr_f?Bture)0000010000000000000000000根据规则:新增旧息:该动物是喃丈动物,无法判断且体是哪种动物:五、实习总结实习总结本次实验主要复习了产生式规则,利用正向推理和15条规则,建立简单的 动物识别专家系统,并具有一定的容错性。附录:代码MATLAB 代码:function learn(arr_category, arr_feature)%产生式规则-正向推理-主函数% 标记函数初始化,规则函数调用arr_rule=zeros(1,15);mark=-1;ifMore=0;disp(arr_category);disp(arr_feature);%s

6、howCategory();%arr_category=input(输入信息:);%showFeature();%arr_feature=input(输入信息);arr_category,arr_feature,arr_rule,ifMore,mark= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark);busy=1;while busy=1if mark-1showResult(mark);break;endif ifMore=0disp(无法判断具体是哪种动物!);breakendifMore=0;arr_category,a

7、rr_feature,arr_rule,ifMore,mark= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark); endendfunction arr_category,arr_feature,arr_rule,ifMore,mark= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark ) %正向推理函数%逐条检查规则是否满足,若满足,则增加新信息ifMore=0;for i = 1:1:15if arr_rule(i)=0switch icase 1if arr_

8、feature(1)0arr_category(1)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2str(i);disp(新增信息:该动物是哺乳动物);end%break;case 2if arr_feature(2)0arr_category(1)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2str(i);disp(新增信息:该动物是哺乳动物);end%break;case 3if arr_feature(3)0arr_category(2)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2st

9、r(i);disp(新增信息:该动物是鸟);end%break;case 4if arr_feature(4)*arr_feature(5)0arr_category(2)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2str(i);disp(新增信息:该动物是鸟);end%break;case 5if arr_feature(6)0arr_category(3)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2str(i);disp(新增信息:该动物是食肉动物);end%break;case 6if arr_feature(7)*

10、arr_feature(8)*arr_feature(9)0 arr_category(3)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2str(i);disp(新增信息:该动物是食肉动物);end%break;case 7if arr_category(1)*arr_feature(10)0 arr_category(4)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2str(i);disp(新增信息:该动物是有蹄类动物);end%break;case 8if arr_category(1)*arr_category(5)0a

11、rr_category(4)=1;arr_rule(i)=1;ifMore=1;disp(根据规则,num2str(i);disp(新增信息:该动物是有蹄类动物);end%break;case 9ifarr_category(1)*arr_category(3)*arr_feature(11)*arr_feature(12)0arr_animal(2)=1;arr_rule(i)=1;ifMore=1;mark=2;disp(根据规则,num2str(i);end%break;case 10ifarr_category(1)*arr_category(3)*arr_feature(11)*ar

12、r_feature(13)0arr_animal(1)=1;arr_rule(i)=1;ifMore=1;mark=1;disp(根据规则,num2str(i);end%break;case 11ifarr_category(4)*arr_feature(14)*arr_feature(15)*arr_feature(16)0arr_animal(4)=1;arr_rule(i)=1;ifMore=1;mark=4;disp(根据规则,num2str(i);end%break;case 12if arr_category(4)*arr_feature(13)0arr_animal(3)=1;a

13、rr_rule(i)=1;ifMore=1;mark=3;disp(根据规则,num2str(i);end%break;case 13ifarr_category(2)*arr_feature(14)*arr_feature(15)*arr_feature(17)*arr_feature(18)0arr_animal(6)=1;arr_rule(i)=1;ifMore=1;mark=6;disp(根据规则,num2str(i);end%break;case 14ifarr_category(2)*arr_feature(19)*arr_feature(17)*arr_feature(18)0

14、arr_animal(5)=1;arr_rule(i)=1;ifMore=1;mark=5;disp(根据规则,num2str(i);end%break;case 15if arr_category(2)*arr_feature(20)0arr_animal(7)=1;arr_rule(i)=1;ifMore=1;mark=7;disp(根据规则,num2str(i);endendendendendfunction showCategory( )%类别选项显示%disp(请选择分类(1:是,0:其他):);disp(0.哺乳动物);disp(1.鸟);disp(2 .食肉动物);disp(3

15、.蹄类动物);disp(4.反刍动物);endfunction showFeature()%具体特征列表% 此处显示详细说明disp(请选择具体特征(1:是,0:其他):);disp(0.有毛发);disp(1.有奶);disp(2.有羽毛);disp(3.会飞);disp(4,会下蛋);disp(5.吃肉);disp(6.有犬齿);disp(7.有爪);disp(8.眼盯前方);disp(9 .有蹄);disp(10.黄褐色);disp(11.身上有斑点);disp(12 .身上有黑色条纹);disp(13.有长脖子);disp(14.有长腿);disp(15 .身上有暗斑点);disp(16.不会飞);disp(17.有黑白两色);disp(18.会游泳);disp(19.擅飞);end fun

温馨提示

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

评论

0/150

提交评论