实验一产生式系统(14页).doc

上传人:1595****071 文档编号:39584307 上传时间:2022-09-07 格式:DOC 页数:14 大小:152.50KB
返回 下载 相关 举报
实验一产生式系统(14页).doc_第1页
第1页 / 共14页
实验一产生式系统(14页).doc_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《实验一产生式系统(14页).doc》由会员分享,可在线阅读,更多相关《实验一产生式系统(14页).doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

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

3、tegory,arr_feature,arr_rule,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测试数据二arr_category50 0 0 0 0arr_feature201 0 0

4、 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0五、实习总结1.实习总结本次实验主要复习了产生式规则,利用正向推理和15条规则,建立简单的动物识别专家系统,并具有一定的容错性。2.附录:代码MATLAB代码:function learn(arr_category, arr_feature)%产生式规则-正向推理-主函数% 标记函数初始化,规则函数调用arr_rule=zeros(1,15);mark=-1;ifMore=0;disp(arr_category);disp(arr_feature);%showCategory();%arr_category=input(输入信

5、息:);%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=1 if mark-1 showResult(mark); break; end if ifMore=0 disp(无法判断具体是哪种动物!); break end ifMore=0; arr_category,arr_feature,arr_rule,ifMore,

6、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:15 if arr_rule(i)=0 switch i case 1 if arr_feature(1)0 arr_category

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

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

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

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

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

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

13、str(i); end %break; case 14 if arr_category(2)*arr_feature(19)*arr_feature(17)*arr_feature(18)0 arr_animal(5)=1; arr_rule(i)=1; ifMore=1; mark=5; disp(根据规则,num2str(i); end %break; case 15 if arr_category(2)*arr_feature(20)0 arr_animal(7)=1; arr_rule(i)=1; ifMore=1; mark=7; disp(根据规则,num2str(i); end

14、end endendendfunction showCategory( )%类别选项显示disp(请选择分类(1:是,0:其他):);disp(0.哺乳动物);disp(1.鸟);disp(2.食肉动物);disp(3.蹄类动物);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.眼盯前方)

15、;disp(9.有蹄);disp(10.黄褐色);disp(11.身上有斑点);disp(12.身上有黑色条纹);disp(13.有长脖子);disp(14.有长腿);disp(15.身上有暗斑点);disp(16.不会飞);disp(17.有黑白两色);disp(18.会游泳);disp(19.擅飞);endfunction showResult(mark)%结果显示% 此处显示详细说明disp(*识别结果*);disp(该动物是:);switch mark case 1 disp(虎); %break; case 2 disp(金钱豹); %break; case 3 disp(斑马); %break; case 4 disp(长颈鹿); %break; case 5 disp(企鹅); %break; case 6 disp(鸵鸟); %break; case 7 disp(信天翁); %break;endend

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁