实验一产生式系统

上传人:lis****210 文档编号:172699966 上传时间:2022-12-06 格式:DOCX 页数:9 大小:37.88KB
返回 下载 相关 举报
实验一产生式系统_第1页
第1页 / 共9页
实验一产生式系统_第2页
第2页 / 共9页
实验一产生式系统_第3页
第3页 / 共9页
点击查看更多>>
资源描述
实验一 产生式系统动物识别系统一、实习目的和意义1、掌握人工智能的知识表示技术,能用产生式表示法表示知识;2、掌握基于规则推理的基本方法;3、掌握产生式系统的运行机制。二、实习内容参考教材规则库包含15 条规则,开发一个专家系统可以识别老虎,金钱豹, 斑马,长颈鹿,企鹅,鸵鸟等 6 种动物。三、实习要求1、本次实验语言 MATLAB; 2、系统能通过正向推理得到正确的动物识别结果。四、实习过程1. 实验原理正向推理(事实驱动推理)1)从初始已知事实出发,在知识库 KB 中找出当前可适用的知识,构成可适 用知识集 KS;2)按某种冲突消解策略,从 KS 中选出一条知识进行推理,并将推出的新事 实加入到数据库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_category,arr_feature,arr_rule,ifMore,mark ) 规则符合检测showCategoryfunction showCategory( )类别选项打印函数showFeaturefunction showFeature()特征选项打印函数showResultfunction showResult(mark)结果显示b. 测试 测试数据arr_category5 1 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 0 arr_feature20 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 arr_ategory=(J 0 0 0 0arr_at-*Bary 二0 0 0 0 0 m-r_fature=l OOOOOOOOOOOOOOOOOOO=10000000000000000000 learn(0rr_categoryP arrf?ature)0 0 0 0010 0 00 000000000000000覘据规则新该动物是哺乳动物 无法判断具I*是拜种动物:五、实习总结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(输入信息:);%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,arr_feature,arr_rule,ifMore,mark= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark); end endfunction 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_feature(1)0arr_category(1)=1; arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i); d 新增信息:该动物是哺乳动物);end%break;case 2if arr_feature(2)0arr_category(1)=1;arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i);d 新增信息:该动物是哺乳动物 ) ;end %break;case 3if arr_feature(3)0arr_category(2)=1;arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i);d 新增信息:该动物是鸟);end%br case 4eak;ifarr_feature(4)*arr_feature(5)0arr_category(2)=1;arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i);d 新增信息:该动物是鸟);end%br case 5eak;ifarr_feature(6)0arr_category(3)=1;arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i);d 新增信息:该动物是食肉动物);end%br case 6eak;ifarr_feature(7)*arr_feature(8)*arr_feature(9)0arr_category(3)=1;arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i);d 新增信息:该动物是食肉动物);end%br case 7eak;ifarr_category(1)*arr_feature(10)0arr_category(4)=1;arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i);d 新增信息:该动物是有蹄类动物);end%break;case 8if arr_category(1)*arr_category(5)0arr_category(4)=1;arr_rule(i)=1;ifMore=1;dis根据规则,num2str(i);d 新增信息:该动物是有蹄类动物 );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;dis根据规则,num2str(i); end%break;case 10ifarr_category(1)*arr_category(3)*arr_feature(11)*arr_feature(13)0arr_animal(1)=1;arr_rule(i)=1;ifMore=1;mark=1;dis根据规则,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;dis根据规贝9 ,num2str(i);end%break;case 12if arr_category(4)*arr_feature(13)0arr_animal(3)=1;arr_rule(i)=1;ifMore=1;mark=3;dis根据规则,num2str(i);end%break;case 13ifarr_category(2)*arr_feature(14)*arr_feature(15)*arr_feature(17)*a rr_feature(18)0arr_animal(6)=1;arr_rule(i)=1;ifMore=1;mark=6;dis根据规则,num2str(i);end%break;case 14ifarr_category(2)*arr_feature(19)*arr_feature(17)*arr_feature(18)0arr_animal(5)=1;arr_rule(i)=1;ifMore=1;mark=5;dis根据规则,num2str(i);end%break;case 15if arr_category(2)*arr_feature(20)0arr_animal(7)=1;arr_rule(i)=1;ifMore=1;mark=7;dis根据规贝y ,num2str(i); endendendendendfunction showCategory( ) %类别选项显示%disp( 请选择分类(1:是,0:其他):);disp(O.哺乳动物);disp(1. 鸟);disp(2. 食肉动物);disp(3. 蹄类动物);disp(4. 反刍动物);end function 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. 擅飞);endfunction showResult(mark)%结果显示% 此处显示详细说明disp( *识别结果*); disp( 该动物是:);switch markcase 1 disp 虎);%break;case 2disp 金钱豹);%break;case 3disp 斑马);%break;case 4disp 长颈鹿);%break;case 5disp 企鹅);%break;case 6disp 鸵鸟);%break;case 7disp 信天翁);%break;end end
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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