产生式动物识别系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

重庆大学研究生课程报告书基于Java语言的可视化动物识别系统课程名称:学号:姓名:专业:重庆大学自动化学院二〇一五年十一月2/26目录一、学习目的....................................................................................................................................3二、系统原理....................................................................................................................................32.1规则库...........................................................................................................................................32.2综合数据库...................................................................................................................................32.3推理机构.......................................................................................................................................3三、动物识别系统的设计过程.........................................................................................................43.1系统整体设计...............................................................................................................................43.2系统各个部分设计.......................................................................................................................43.2.1准备工作...............................................................43.2.2推理子程序.............................................................43.2.3规则库建立.............................................................63.2.4可视化界面设计和数据输入输出...........................................7四、动物识别系统的实验效果.........................................................................................................9五、实验心得体会..........................................................................................................................13六、附录.........................................................................................................................................146.1可视化界面设计程序......................................................146.2匹配算法子程序..........................................................253/26一、学习目的1.熟悉产生式的特点,基本结构和设计思想2.掌握基于规则推理的基本过程和方法(在实验中采用正向推理过程)3.学会用高级程序设计语言开发基于规则的动物识别系统二、系统原理把一组产生式放在一起,让它们互相配合、协同作用,一个产生式生成的结论可以供另一个产生式作为已事实使用,以求得问题的解,这样的系统称为产生式系统。一般产生式由规则库、综合数据库、控制系统(推理机)三部分组成。如图2.1。控制器规则库综合数据库(事实库)推理机图2.1产生式系统的基本结构2.1规则库用于描述相应领域内知识的产生式集合称为规则库。显然,规则库是产生式系统求解问题的基础,其知识是否完整、一致,表达是否准确、灵活,对知识的组织是否合理等,将直接影响到系统的性能。因此,需要对规则库中的知识进行合理的组织和管理,检测并排除冗余及矛盾的知识,保持知识的一致性。采用合理的结构形式,可使推理机避免访问那些与求解当前问题无关的知识,从而提高求解问题的效率。2.2综合数据库综合数据库又称为事实库、上下文、黑板等。它是一个用于存放问题求解过程中各种当前信息的数据结构,例如问题的初始状态、原始证据、推理中得到的中间结论及最终结论。当规则库中某条产生式的前提可与综合数据库的某些已知事实匹配时,该产生式被激活,并把它推出的结论放入综合数据库中,作为后面推理的已知事实。显然,综合数据库的内容是在不断变化的。2.3推理机构由一组程序组成,负责整个产生式系统的运行,实现对问题的求解。粗略地说,它要做以下几项工作:⑴、按一定的策略从规则库中选择与综合数据库中的已知事实进行匹配。⑵、匹配成功的规则可能不止一条,这称为发生了冲突。此时,推理机构必须调用相应的解决冲突策略进行消解,以便从匹配成功的规则中选出一条执行。⑶、在执行某一规则时,如果该规则的右部是一个或多个结论,则把这些结论加入到综合数据库中;如果是一条或多条操作,则执行这些操作。⑷、对于不确定的知识,执行每一条规则时还要按照一定的算法计算结论的不确定性。⑸、检查综合数据库中是否包含了最终结论,决定是否停止系统的运行。4/26三、动物识别系统的设计过程3.1系统整体设计根据课本中的流程以及老师给的思路,我将本系统分为推理子程序、规则库、综合数据容器、可视界面数据输入几个部分。然后分别实现,最后通过接口和调用方法来实现。首先,根据推理子程序建立本系统所需的15条规则;然后通过可视化界面输入本系统要匹配的动物特征形成初始综合数据库;通过执行每条规则并匹配综合数据库中的特征。如果成功则更新综合数据库,否则执行下一条规则;最后判断是否匹配完成。匹配成功则显示匹配的动物图片和介绍,否则显示匹配不成功。它们之间的关系如图3.1所示。图3.1系统的框架设计3.2系统各个部分设计3.2.1准备工作(1)24个条件编号为了方便程序内部的处理,我将24个动物特征依次编号如下:9-毛发、10-哺乳动物、11-奶、12-羽毛、13-鸟、14-会飞、15-会下蛋、16-吃肉、17-食肉动物、18-有犬齿、19-有爪、20-眼盯前方、21-有蹄、22-有蹄类动物、23-咀嚼反刍动物、24-黄褐色、25-身上有暗斑、26-身上有黑色条纹、27-有长脖子、28-有长腿、29-不会飞、30-有黑白二色、31-会游泳、32-善飞(2)7个动物编号同样为了方便,我将7个动物的名称依次编号如下:2-金钱豹、3-虎、4-长颈鹿、5-斑马、6-鸵鸟、7-企鹅、8-信天翁3.2.2推理子程序本程序把整个推理过程写成子程序,然后通过参数设置来完成每条规则库的建立,推理子程序的流程图如图3.2所示:5/26开始初始化综合数据库中是否有当前规则条件?该条件置1该条件置0综合数据库是否匹配该规则?把当前规则的结果添加到综合数据库达到匹配目标?返回匹配目标结束NYYNNY图3.2推理子程序流程图该推理过程主要的步骤有以下几条:⑴、首先把当前规则的各个条件和结论编号送人数组以便于循环遍历。⑵、遍历规则的每个条件对比综合数据库。若该条件在综合数据库中,则把该条件置1;若该条件不在综合数据库中,则把该条件赋值0。⑶、判断综合数据库是否完全满足当前规则的条件。若满足,则把该规则的结果加入综合数据库;若不满足,则结束。⑷、遍历综合数据库,判断是否匹配目标成功。若成功则返回匹配目标;否则,返回0。编程实现代码如下:publicintMatching(inta,intb,intc,intd,inte,intf){int[]r={a,b,c,d,e};//推理条件送入数组int[]result={2,3,4,5,6,7,8};//推理目标数组booleantv=false;intrlt=0;//判断容器中的综合数据库中是否有该条规则的条件,如果有则把该条件置1,没有则置0for(inti=0;ir.length;i++){if(r[i]!=1)6/26{for(Integerk:this.Comprehensive){if(r[i]==k){tv=true;}}if(tv==true){r[i]=1;tv=false;}else{r[i]=0;}}}//判断容器中的综合数据库是否具备该规则的所有条件,如果是则把该规则的结果加入综合数据库if(r[0]*r[1]*r[2]*r[3]*r[4]==1){this.Comprehensive.add(f);}//判断是否达到匹配目标,如果是,则把结构参数传递出去for(inti=0;iresult.length;i++){for(Integers:this.Comprehensive){if(result[i]==s){rlt=s;}}}returnrlt;}3.2.3规则库建立本系统能够识别7种动物,规则库共有以下15条规则:R1IF该动物有毛发THEN该动物是哺乳动物R2IF该动物有奶THEN该动物是哺乳动物R3IF该动物有羽毛THEN该动物是鸟R4IF该动物会飞AND会下蛋THEN该动物是鸟R5IF该动物是哺乳动物AND吃肉THEN该动物是肉食动物R6IF该动物有爪AND有犬齿AND目视前方THEN该动物是肉食动物R7IF该动物是哺乳动物AND有蹄THEN该动物是有蹄类动物R8IF该动物是有蹄动物AND是反刍食物THEN该动物是有蹄动物R9IF该动物是哺乳动物AND食肉动物AND是黄褐色AND身上有黑色斑点THEN该动物是金钱豹R10IF该动物是哺乳动物AND食肉动物AND是黄褐色AND身上有黑色条纹THEN7/26该动物是老虎R11IF该动物是有蹄类动物AND有长脖子AND有长腿AND身上有暗斑点THEN该动物是长颈鹿R12IF该动物是有蹄类动物AND身上有黑色条纹THEN该动物是斑马R13IF该动物是鸟AND有不会飞AND有长腿AND长脖子AND是黑白色THEN该动物是鸵鸟R14IF该动物是鸟AND不会飞AND会游泳AND是黑白色THEN该动物是企鹅R15IF该动物是鸟AND善飞THEN该动物是信天翁推理过程如图3.3所示。图3.3推理网络框图对应的编程代码如下:Matching(9,1,1,1,1,10);//R1Matching(11,1,1,1,1,10);//R2Matching(12,1,1,1,1,13);//R3Matchin

1 / 26
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功