




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
动物识别专家系统研究与设计摘要:动物识别专家系统是将人的思维过程转化为计算机语言的逻辑过程,其关键在于知识和信息的表示,智能推理或求解的基础知识库的创建和管理,以及基于某种知识和信息表示的智能推理或求解过程。专家系统已有很广泛而又重要的应用,它对人类所作出的贡献,使它越来越为更多人所接受,专家系统有着广泛的应用,遍及化学、医学、地质学、气象学、教育乃至军事等方面。本论文所做的研究与设计是以识别七种动物为设计思路所写的。通过输入一些已知事实,然后运用规则进行推理,最终判断出动物。关键字:动物识别,人工智能,产生式系统一、 专家系统基本知识1.1动物识别专家系统介绍动物识别专家系统是人工智能中一个比较基础的规则演绎系统,是人工智能领域里的一个大模块的专家系统的一个特定例子。是集知识表与推理为一体的,以规则为基础对用户提供的事实进行向前、逆向或双向的推理得出结论的一种产生式系统。如果通过良好的分析、精确地设计和细致的规划会创设出高度灵活和快速有效的识别系统,再加上良好的界面供用户添加新的事实和规则,反馈详细的错误或信息的话,那就是一个相当完整的识别系统了。1.2专家系统实际应用目前专家系统已经成功地渗透到生活的各个领域,并且还产生了巨大的社会效益和经济效益。例如,像车辆传感、药物、纺织服装等重工业和轻工业领域中都会应用到,特别是在计算机领域里,现在已经是一门非常重要的学科类了。1.3专家系统的开发 专家系统设计与实现的一般过程选题与明确任务系统需求分析知识获取与概念化系统设计编程与调试系统维护与完善知识的形式化表示测试与评价 图 1 专家系统开发流程二、 设计基本思路2.1知识库2.2.1知识库作用用产生式系统鉴别动物,需要一种演绎机制,利用己知事实的集合做出新的结论,一种方法是替动物园中的每个动物作一个产生式,使用者首先收集所有可利用的事实,然后在产生式的表中进行扫描,寻找一个状态部分能与之匹配的产生式。一般要经过多少步并生成和利用一些中间事实才能从基本事实推出结论,这样做所包含的产生式可以比较小,容易理解,容易使用和容易产生。动物识别专家系统中的知识库中的知识通常是用规则表示的。2.1.2 知识库建立在本文中我们多建立的知识库所要遵循的规则如下:规则1:如果:动物有毛发则 :该动物是哺乳动物规则2:如果:动物能产奶则 :该单位是哺乳动物规则3:如果:该动物有羽毛则 :该动物是鸟规则4:如果:动物会飞,且会下蛋则 :该动物是鸟规则5:如果:动物吃肉则 :该动物是肉食动物规则6:如果:动物有犬齿,且有爪,且眼盯前方则 :该动物是食肉动物规则7:如果:动物是哺乳动物,且有蹄则 :该动物是有蹄动物规则8:如果:动物是哺乳动物,且是反刍动物则 :该动物是有蹄动物规则9:如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点则 :该动物是豹规则10:如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹则 :该动物是虎规则11: 如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类则 :该动物是长颈鹿规则12:如果:动物有黑条纹,且是有蹄类动物则 :该动物是斑马规则13:如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞则 :该动物是鸵鸟规则14:如果:动物是鸟,且不会飞,且会游泳,且是黑色的则 :该动物是企鹅规则15:如果:动物是鸟,且善飞则 :该动物是信天翁在本系统中一共有15条规则,可以识别七种动物。这些规则既少又简单,在今后我们完善系统时可以以此为蓝本来改造这些规则,也可以加进新的规则,同时,也可以替换这些规则来识别其他的事物,如花、草、鸟等。我们把规则定义为对象,把规则的结构以及关于规则的推理使用定义成规则类,由规则类生成的所有规则对象组成知识库,对知识库的操作方法由规则类的操作方法提供。Rule规则名前提链结论规则名前提链结论前提1前提2前提n。 图2 规则的结构规则类定义:class rulechar *Name;list *Pre;int Conc;public:rule *Next;rule(char *N,int P,int C);rule();int Query();void GetName()coutName;规则由规则类的构造函数建立,规则动态节点的存储单元由析构函数释放。一条规则是一个知识实体,它本身具有咨询推理功能,这由规则类的函数Query实现。在本系统中,除了知识库外,还有一个事实库,记录用户与系统对话的结果及推理的中间结果。事实库的结构下:Fact断言事实链事实号事实名激活标志 图3 事实的结构事实的定义如下:class factprivate:int Number;char Name21;int Active;int Succ;public:fact *Next;fact(int Num,char *L)strcpy(Name,L);Number=Num;Active=False;/-1 是已经推理,不符合。1 是已经推理,符合。Succ=DontKnow; /0 是无,-1 是不知道,1 是有。Next=NULL;char *GetName()char *L;L=new char21;strcpy(L,Name);return L;int GetNumber()return Number;int GetAct()return Active;int GetSucc()return Succ;void PutAct(const int Act0,int Suc0)Active=Act0;Succ=Suc0;在建立知识库的同时,也建立了事实库,事实库也是一个动态链表,一个事实是链表中的一个节点,确切的说事实库与知识库是一个统一体,事实号事实库的唯一关键字,知识库中的规则通过事实号与事实库发生联系。 规则名前提链结论事实Kn+1前提1前提2前提n事实K1事实K2事实Kn图4 规则及前提链前提链由链对象实现,链的结点只有两个数据域,一个事实号,另一个是指向下一个节点的指针,链类说明如下:class listprivate:int Number;public:list *Next;list(int Num)Number=Num;Next=NULL;int GetNumber()return Number;2.1.3 知识库获取知识获取一般是指从某些知识源中获取专家系统问题求解所需要的专门知识,并以某种形式在计算机中存储、传输与转移。专家系统的知识获取一般是由知识工程师与专家系统知识的获取机构共同完成的。知识获取的常用方法有以下几种:1. 手工知识获取;2. 半自动获取;3. 自动知识获取;4. 人工神经网络知识获取;选用哪种知识获取方法需要根据当前的系统,以及用户的需求来决定。但在有些大型系统上还可能会用到不是仅仅一种方法的。2.2 数据库2.2.1数据库作用数据库即为事实库,在计算机中流出一些存储区间,以存放反应系统当前状态的事实,存放用户回答的事实、已知的事实和由推理而得的事实,即由已知事实推导出的假设成立时,也作为事实。其综合数据库的内容是不断变化的。本系统中有30个事实,给每个事实一个编号,在规则对象中,我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示。2.2.2数据库建立char *str=, 反刍动物 /* 1 */, 蹄类动物 /* 2 */, 哺乳动物 /* 3 */, 目视前方 /* 4 */, 有爪子 /* 5 */, 有犬齿 /* 6 */, 吃肉 /* 7 */, 下蛋 /* 8 */, 会飞 /* 9 */,有羽毛 /* 10 */, 有蹄 /* 11 */, 肉食动物 /* 12 */,鸟类 /* 13 */, 产奶 /* 14 */, 有毛发 /* 15 */,善飞 /* 16 */, 黑白色 /* 17 */, 会游泳 /* 18 */,长腿 /* 19 */, 长脖子 /* 20 */, 有黑色条纹 /* 21 */,有暗斑点 /* 22 */, 黄褐色 /* 23 */, 信天翁 /* 24 */,企鹅 /* 25 */, 鸵鸟 /* 26 */, 斑马 /* 27 */,长颈鹿 /* 28 */, 老虎 /* 29 */, 猎豹 /* 30 */,0;int rulep6=22,23,12,3,0,0, 21,23,12,3,0,0, 22,19,20,11,0,0, 21,11,0,0,0,0, 17,19,20,13,-9,0,17,18,13,-9,0,0, 16,13,0,0,0,0, 15,0,0,0,0,0, 14,0,0,0,0,0, 10,0,0,0,0,0, 8,7,0,0,0,0, 7,0,0,0,0,0, 4,5,6,0,0,0, 2,3,0,0,0,0, 1,3,0,0,0,0;int rulec= 30, 29, 28, 27, 26, 25, 24, 3, 3, 13, 13, 12, 12, 11, 11;三、 推理机构3.1推理机介绍3.1.1 推理机作用原理推理机是一组函数,本例既有正向推理机又有反向推理机,都是用精确推理。推理机是实施问题求解的核心执行机构,它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。事实对象集规则对象集用户 图5 规则对象的接口3.1.2推理网络下图为识别本文中所举的识别七种动物时所规则形成的推理网络:老虎有犬齿有爪子目视前方有毛发吃肉长腿有奶长脖子有暗斑点有羽毛有蹄下蛋会飞善飞黑白色会游泳有黑条纹黄褐色猎豹长颈鹿信天翁斑马企鹅鸵鸟肉食动物蹄类动物反刍动物哺乳动物鸟类 图 6 推理网络3.2 正向推理3.2.1 正向推理基本思想用户首先提供一批事实,存放到数据库中,然后推理机进行工作。方法是:1.推理机用这批事实与知识库中规则的前提进行匹配。2.把匹配成功的规则的结论部分作为新的事实加到数据库中去(这时,数据库中的事实增加了)。再用更新后的数据库中的所有事实,重复上述 二步,如此反复进行,直到得以结论(答案)或不再有新的事实加到数据库为止。例如,用户输入一批事实:动物有暗斑点、长脖子、长腿、产奶、有蹄子(这批事实存放在数据库中),要求系统判断这是一个什么动物?推理机利用这批事实来匹配规则。3.2.2 正向推理示意图 图 7 正向推理示意图3.2.3 正向推理机所要具有功能要设计一个正向推理机,就是设计一组程序,使其至少具有以下的功能:1. 能用数据库中的事实去匹配规则的前提,若匹配不成功,能自动地进行吓一跳规则的匹配。这里如何匹配最为合适,是设计专家系统者根据专业特点和 知识表示等情况,需要很好考虑的问题,也就是在匹配时到底用什么策略等问题都需要考虑周全; 2. 若某条规则匹配成功,系统能将此规则的结论部分自动加入数据库;3. 能判断何时应结束推理;4. 能将匹配成功的规则记录下来;3.3反向推理3.3.1反向推理基本思想由用户或系统首先提出一批假设,然后系统逐一验证这些假设的真假性,方法:1.看假设是含在数据库中,若在,则假设成立,推理结束或进行下一个假设的验证,否则进行下一步。2.判断这些假设是否是证据节点,若是,系统提问用户,否则进行下一步。3.找出结论部分包含此假设的那些规则,把这些规则的所有前提作为新的假设。4.重复、步。3.3.2 反向推理示意图 图 8 反向推理示意图3.3.3反向推理机所要具有功能1. 能根据用户要求或情况提出假设;2. 能验证此假设是否是在数据库中;3. 能把知识库中将结论部分包含此假设的规则都找出来;4. 能将找出来地规则的前提部分取出,并作为新的假设逐条验证;5. 能判断假设是否是证据接点,若是,能向用户提出相应的问题,并记录结果;6. 能将匹配成功的规则记录下来;7. 能判断何时应结束推理;四、 实例系统实现4.1系统介绍此系统是实现了人工智能导论(第3版)专家系统实例里的动物识别系统。此系统是识别老虎、猎豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁等七种动物。是严格遵循了知识库中的规则,并运用C语言在Visual C+ 6.0环境下实验编译同过的。因为各种原因没能设计实现出比较精美的界面,但还是体现出了很多专家系统所该具备的东西和功能。4.2 基本思路该系统的知识表示采用产生式表示法。产生式系统由规则库、综合数据库、控制系统三个部分构成。其中规则库、综合数据库分别对应本系统中的 rule类, str 指针链表。Rule链表存放用户输入的事实。用到一个fact事实类和Fact事实链表,并用 GetName(),GetNumber(),GetAct(),GetSucc()等函数来获取事实信息。推理控制策略采用精确匹配算法的正向推理。4.3程序主要代码/* */rule:rule()list *L;while(Pre)L=Pre-Next;delete Pre;Pre=L;delete Name;/* */int rule:Query() char c; /保存用户输入按键符号 list *L; /临时前提链 fact *F; /临时事实链 L=Pre; /L指向前提链 F=Fact; if(L=NULL) printf(nError!); /如果推理时,本规则前提链为空,出错,后面while循环也退出! while(L!=NULL) /前提链未处理完 F=Fact; /F指向事实链表 for(;) /以当前前提,在事实链表中查询(根据ID) /因为前提为“-事实ID”,表示该事实不成立,所以取绝对值 if(abs(L-GetNumber()=F-GetNumber() break; F=F-Next; /查询下一事实 /退出循环时,F指向查询到的事实节点 if(L-GetNumber()0) /如果前提为真 if(F-GetSucc()=True) /而且事实链表中的这个事实断言也为真 L=L-Next; /则本规则的当前前提在推理中满足 continue; /继续下一前提的判断 if(F-GetSucc()=False) /该前提在事实链表中断言不成立 return False; /该规则推理使用结束,直接返回 else if(F-GetSucc()=True)/Sorry,该前提在事实链表中断言却为真 return False; /该规则推理使用结束,直接返回 if(F-GetSucc()=False) L=L-Next; continue; /end ifelse printf(%s(Y/N),F-GetName(); /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云原生身份认证-洞察及研究
- 多维度数据融合的数字孪生模型-洞察及研究
- 文化多样性对全球交流的影响-洞察及研究
- 宏观经济预测中计量经济模型的改进-洞察及研究
- 海底设施施工中的质量控制方法研究-洞察及研究
- 智能化客运品牌建设-洞察及研究
- 板块碰撞带流体地球化学-洞察及研究
- 容器磁盘快照优化-洞察及研究
- 亲子互动式早教课程设计-洞察及研究
- 少数民族纹饰在现代设计中的应用-洞察及研究
- 2025年秋人教版(2024)初中数学八年级第一学期教学计划及教学进度表
- 软件行业基础知识培训课件
- GB 46039-2025混凝土外加剂安全技术规范
- 传染病医院质量控制检查标准表
- 卷烟零售户培训课件
- 刑事诉讼法案例课件
- 2025年煤矿从业人员安全培训考试题库及答案
- 医院净化空调系统基本知识
- 内蒙锡林郭勒盟卫生系统招聘考试(护理学专业知识)题含答案2024年
- 财政专题分析报告:财政数据背后的宏观线索-国金证券
- 《智能建造概论》高职完整全套教学课件
评论
0/150
提交评论