ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:355.96KB ,
资源ID:731228      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/731228.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于web的动物识别系统实验报告.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于web的动物识别系统实验报告.docx

1、基于web的动物识别系统实验报告 基于web的动物识别系统 一、实验目的 理解和掌握产生式知识表示方法及产生式系统的基本过程,能够利用Web编程技术建立一个基于产生式知识表示的简单的智能系统。二、实验环境 (1) 硬件环境:网络环境中的微型计算机。 (2) 软件环境:Windows操作系统,Microsoft Visual Studio C#语言。三、实验原理 该系统用到的表示方法是产生式表示方法,是陈述性知识表示方法的一种。 3.1 产生式表示的基本方法 (1)事实的表示 在产生式表示方法中,事实通常是用三元组或四元组来表示的。对确定性知识,一个事实可用一个三元组 (对象,属性,值)或(关系

2、,对象1,对象2)来表示。这种表示方式,在机器内部可用一个表来实现。 (2)规则的表示 规则描述的事物间的因果关系。规则的产生式表示形式常称为产生式规则,简称为产生式,或规则。其基本形式为 PQ或者 IF P THEN Q其中,P是产生式的前提,也称为产生式的前件,它给出了该产生式可否使用的先决条件,用事实的逻辑组合来构成;Q是一组结论或操作,也成为产生式的后件,它指出当前提P满足时应该推出的结论或应该执行的操作。产生式的含义是:如果前提P满足,则可推出结论Q或执行Q所规定的操作。 2产生式系统的基本结构及过程 通常,把用产生式知识表示方法构造的智能系统统称为产生式系统。一个产生式系统的基本结

3、构包括综合数据库、规则库和控制系统这三个主要部分。 2.1综合数据库 综合数据库也称为事实库,是一个用来存放与求解问题有关的各种当前信息的数据结构。在推理过程中,当规则库中某条规则的前提可以和综合数据库中的已知事实相匹配时,该规则被激活,由它推出的结论将被作为新的事实放入综合数据库,成为后面推理的已知事实。 2.2规则库规则库是一个用来存放与求解问题有关的所有规则的集合。它包含了将问题从初始状态转换成目标状态所需要的所有变换规则。2.3控制系统 控制系统也成为推理机,它由一组程序组成,用来控制整个产生式系统的运行,决定问题求解过程的推理路线,实现对问题的求解。其主要工作如下: (1)按一定策略

4、从规则库中选择规则与综合数据库的已知事实进行匹配。 (2)当匹配成功的规则多于一条时,推理机构应该能够按照某种策略从中选出一条规则去执行。 (3)对要执行的规则,如果该规则的后件不是问题的目标,则当其为一个或多个结论时,把这些结论加入到综合数据库中;当其为一个或多个操作时,执行这些操作。(4)对要执行的规则,如果该规则的后件满足问题的结束条件,则停止推理。 (5)在问题求解过程中,记住应用过的规则序列,以便最终能够给出问题的解路径。3产生式系统的基本过程产生式系统问题求解的基本过程:(1)初始化综合数据库,把欲解决问题的已知事实送入综合数据库。(2)检查规则库中是否存在尚未使用过的规则,若有,

5、则执行(3);否则,转(7)。(3)检查规则库中的未使用规则中是否有其前提可与综合数据库中已知事实相匹配的规则,若有,则从中选择一个;否则,转(6)。(4)执行当前选种规则,并对该规则加上标记,把执行该规则后所得到的结论作为新的事实放入综合数据库。如果该规则的结论是一些操作,则执行这些操作。(5)检查综合数据库中是否包含了该问题的解,若已包含,则说明求出解,问题求解过程结束;否则,转(2)。(6)当规则库中还有未使用的规则,但均不能与综合数据库中的已有事实相匹配时,要求用户进一步提供关于该问题的已知事实,若能提供,则转(2);否则,说明该问题无解,终止求解过程。(7)若知识库中不再有未使用规则

6、,也说明该问题无解,终止问题求解过程。需要说明的是,这个过程是不确定的。原因是第(3)步没有明确指出当有多余规则可用时,如何从中选择一条作为当前可执行规则。另外,从第(3)步到第(5)步的循环过程实际上就是一个搜索过程。当采用的控制策略不同时,所得到的搜索过程也不同。四、实验内容4.1 基本功能简介本动物识别系统可以识别老虎、金钱豹、斑马、长颈鹿、企鹅、信天翁这6种动物。其规则库包含如下15条规则:r1: IF 该动物有毛发 THEN 该动物是哺乳动物r2: IF 该动物有奶 THEN 该动物是哺乳动物r3: IF 该动物有羽毛 THEN 该动物是鸟r4: IF 该动物会飞 AND 会下蛋 T

7、HEN 该动物是鸟r5: IF 该动物吃肉 THEN 该动物是肉食动物r6: IF 该动物有犬齿 AND 有爪 AND 眼盯前方 THEN 该动物是肉食动物r7: IF 该动物哺乳动物 AND 有蹄 THEN 该动物是蹄类动物r8: IF 该动物哺乳动物 AND 是嚼反刍动物 THEN 该动物是蹄类动物r9: IF 该动物哺乳动物 AND 是肉食动物 AND 是黄褐色AND 身上有暗斑点 THEN 该动物是金钱豹r10: IF 该动物哺乳动物 AND 是肉食动物 AND 是黄褐色AND 身上有黑色条纹 THEN 该动物是虎r11: IF 该动物是蹄类动物AND 有长脖子 AND 有长腿AND

8、身上有暗斑点 THEN 该动物是长颈鹿r12: IF 该动物是蹄类动物AND 身上有黑色条纹 THEN 该动物是斑马r13: IF 该动物是鸟 AND 有长脖子 AND 有长腿 AND 不会飞 THEN 该动物是鸵鸟r14: IF 该动物是鸟 AND 会游泳 AND 不会飞 AND 有黑白二色 THEN 该动物是企鹅r15: IF 该动物是鸟 AND 善飞 THEN 该动物是信天翁注:在这里,必须前件都满足,结果才会成立。比如,r1和r2,必须既有毛发又有奶,才能判定是哺乳动物。4.2 识别算法说明4.2.1算法的文字说明本识别算法为仿产生式识别算法,其思想基于产生式算法,但根据实际情况作了稍

9、许改进。算法步骤如下:1)获得出入参数:事实集infors和规则集rules;初始化参数match=false和changed=false,这两个参数分别表示是否成功匹配(历次)和本次循环是否找到匹配。2)判断match=false|changed=ture,是转第三步;否则转7;3)对rules中的每一个规则,对其结果进行搜寻,找到相同结果的规则项,组成一个集合cur_rules;4)对cur_rules中的每一个前件,在infor中寻找匹配。若均能找到匹配则转5,否则转6;5)changed=true;match=true;根据cur_rules中的规则,对infors进行更新,将参与产生

10、规则的事实删去,得到的新结果作为事实加入。转步骤2。6)changed=false。若changed=false|match=false,则无能匹配的规则,转7); 否则转2。7)若match=false 转8;否则转9。8)将res置空,temp_res置“匹配失败”,返回。9)返回所以能够匹配的结果res,temp_res置“匹配结果为:”。注:本算法将所有前件能够匹配的规则的结果均作为最终结果输出 4.2.2 流程图4.2.3 核心代码及注释如下: bool match = false; int i = 0; string res =; string temp_res = ; bool

11、changed = false; while (match = false |changed= true ) DataStruct temp_infor = new DataStruct();/infor是事实库,为规则前件; DataStruct temp_result = new DataStruct();/result是结果库,为规则后件; changed = false; for (i = 0; i rule_dt.Rows.Count; )/对于规则库中的每一条规则 res = rule_dt.RowsiResult.ToString();/当前规则的结果 /与当前规则相同的规则的集

12、合 DataRow rows = rule_dt.Select(Result = + res + and RuleID = + rule_dt.RowsiRuleID.ToString() + ); for (int j = 0; j rows.Length; j+)/对于当前集合中的每一个规则 if (infor_data.Search(rowsjInfor.ToString() != -1) /如果可以在已知事实库中找到该规则的前件 if (j = rows.Length - 1) /当集合中规则的全部前件均能找到 for (int k = 0; k = j; k+) If(temp_in

13、for.Search(rowskInfor.ToString() = -1) temp_infor.Insert(rowskInfor.ToString(); if (temp_result.Search(res) = -1) temp_res = temp_res + res + .; temp_result.Insert(res); changed = true; match = true; break; else break; i += rows.Length; if (match = true) /当无匹配结果时的处理 if (match = false& changed= false

14、) temp_res += 根据选择信息无法识别出结果!; res = ; break; /把已经用过的infor从事实库中删除 for (int k = 0; k temp_infor.NumOfElements; k+) infor_data.Delete(temp_infor.Arrayk); /把新得到的结果加入事实库 for (int k = 0; k temp_result.NumOfElements; k+) infor_data.Insert(temp_result.Arrayk); if (res != ) res = temp_res; temp_res = 匹配结果是:; /for (int k = 0;k temp_res return temp_res + res; 4.3 基于C#语言的整体结构设计 4.3.1 概述 本次实验共可以分为三个部分。 第一,用户界面接口部分; 第二,产生式识别算法部分; 第三,基于文件系统的数据存储部分。(主要用于支持添加和删除规则功能)4.3.2用户界面接口部分总的用户界面:识别系统:在该处按住Ctrl在左边特征信息中选取已有特征,点击识别,即可得到结果。规则管理:可以对规则进行选择,修改,删除,添加。4.3.3产生式识别算法部分

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1