实验一产生式系统
更新时间:2024-06-27 09:12:01 阅读量: 综合文库 文档下载
- 产生式迁移理论代表实验推荐度:
- 相关推荐
实验一 产生式系统——动物识别系统
一、实习目的和意义
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. 算法 函数名 learn checkRule
函数说明
function learn(arr_category, arr_feature)主函数
function [arr_category,arr_feature,arr_rule,ifMore,mark]= checkRule(arr_category,arr_feature,arr_rule,ifMore,mark ) 规则符合检测
showCategory
function showCategory( ) 类别选项打印函数
showFeature
function showFeature() 特征选项打印函数
showResult
function showResult(mark) 结果显示
b. 测试 测试数据一 arr_category[5] arr_feature[20]
1 0 0 0 1
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0
测试数据二
arr_category[5] arr_feature[20]
0 0 0 0 0
1 0 0 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('输入信息:'); %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,mark]=
checkRule(arr_category,arr_feature,arr_rule,ifMore,mark); end
end
function [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(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(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 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
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 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(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(['根据规则',num2str(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 end end end end
function showCategory( ) %类别选项显示 %
disp('请选择分类(1:是,0:其他):'); disp('0.哺乳动物'); 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.擅飞'); end
function 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; end end
正在阅读:
实验一产生式系统06-27
外研社小学英语一起五年级上各个模块短语04-15
第二批高级专业技术职务任职资格06-03
2022全国2卷高考语文试题及答案解析04-20
2015年重点专科计划03-23
2016-2020年中国低温液体集装箱(罐式)行业市场需求与投资战略规划分析报告05-23
食堂防蚊、防蝇、防鼠制度05-08
第11章【差错控制编码】05-22
国际贸易总结性实验报告08-07
MDEA天然气脱硫工艺流程06-07
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 产生
- 实验
- 系统
- 电商员工绩效考核方案
- 水资源论证需要资料清单
- 《歌颂祖国 爱我中华》主题队会活动方案
- 地理七年级上册第四章第一节内容点析
- 动漫网站的设计与实现 - 图文
- 关于临沂市农村金融服务体系 建设情况的调研报告
- SS 8型电力机车控制电路原理分析及故障排除 - 图文
- 中国银监会关于印发银行业金融机构案件处置三项制度的通知
- 爱晶PIC视频教程介绍 - 图文
- 柳毛中心校体育工作三年规划2013
- 浅谈美术馆的展览策划
- 贷款卡办理流程
- 盆景学
- 市政工程外观评分表(道路、桥梁、排水、地道、绿化、亮化、交通
- 《战略管理教程》复习资料(自用印刷版)
- 影响茶叶加盟店生意的四个因素
- 2018年春八年级历史人教版下册教案:第15课 钢铁长城
- 某市城镇居民收入满意度调查报告
- 法律英语词汇必备
- 当你拼命的时候别人会有多少在拼命