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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

人工智能导论实验报告题目基于产生式的动物识别专家系统java.docx

1、人工智能导论实验报告题目基于产生式的动物识别专家系统java人工智能导论实验报告-题目-基于产生式的动物识别专家系统-java人工智能导论实验报告题目 基于产生式的动物识别专家系统 学院 信息科学与工程学院专业 计算机科学与技术实验题目:基于产生式的动物识别专家系统实验目的及要求:1.理解和掌握产生式知识表示方法及产生式系统的基本过程,能够利用编程技术建立一个基于产生式知识表示的简单的专家系统。2.建立一个动物识别系统的规则库(至少包含15条规则),用以识别虎、豹、斑马、长颈鹿、企鹅、鸵鸟、信天翁等7种动物 (至少7种动物,规则可增加)。3.初始事实可以任意给定,输入初始事实后能够得到推理结果

2、。三、小组成员及分工四、实验过程1.实验环境:Java;2.算法原理:基于产生式知识表示,采用前向推理的方式;3.系统设计:(1)人机接口 初始状态显示已知事实,用户可以勾选知识,进行推理,推理过程一步 一步显示出来;(2)知识获取机构 直接从写好的文本里获取;(3)知识库及其管理系统 知识库存放产生式规则,推理时用到的一般知识和领域知识,比如动物 的特征、动物的分类标准等,再具体地添加得到的具体动物;管理系统负责 将上次推理裁剪出去的规则重新加回来;(4)推理机 采用正向推理,推理机是动物识别的逻辑状态,它控制、协调系统的推 理,并利用知识库中的规则对综合数据库中的数据进行逻辑操作。 匹配每

3、一条规则的前件是否全部包含于用户输入的已知事实中,若匹配成功 则看该结论是否作为最终结论,如果是则结束,否则继续推理;(5)数据库及其管理系统 数据库用来存放用户回答的问题,存放初始状态、中间推理结果、最终 结果;管理系统负责查找新产生的结论是否已经存在于数据库中;(6)解释机构 通过输出匹配成功的产生式知识来表明推理的过程;1.实现流程: 开始选择动物特征 MainGui.java得出结论并shuchu Infer.java.getconclusion()结束5.关键代码:推理:public class Infer public static ArrayList ESARuleList =

4、new ArrayList(); public static ArrayList database = null; public static String fact =有毛发,有奶,有羽毛,会飞,会下蛋,吃肉, 有犬牙,有爪子,眼盯前方,有蹄, 反刍,黄褐色,暗斑点,黑色条纹,长脖子,不会飞,长腿,黑白两色,会游泳,善飞; public static void init() ESARuleList.add(new RuleMatch(哺乳动物, 有毛发); ESARuleList.add(new RuleMatch(哺乳动物, 有奶); ESARuleList.add(new RuleMat

5、ch(食肉动物, 吃肉); ESARuleList.add(new RuleMatch(食肉动物, 有犬牙, 有爪子, 眼盯前方); ESARuleList.add(new RuleMatch(蹄类动物, 哺乳动物, 有蹄); ESARuleList.add(new RuleMatch(蹄类动物, 哺乳动物, 反刍); ESARuleList.add(new RuleMatch(金钱豹, 哺乳动物, 食肉动物, 黄褐色, 暗斑点); ESARuleList.add(new RuleMatch(老虎, 哺乳动物, 食肉动物, 黄褐色, 黑色条纹); ESARuleList.add(new Rul

6、eMatch(长颈鹿, 蹄类动物, 长脖子, 长腿, 暗斑点); ESARuleList.add(new RuleMatch(斑马, 蹄类动物, 黑色条纹); ESARuleList.add(new RuleMatch(鸵鸟, 鸟类, 不会飞, 长脖子, 长腿, 黑白两色); ESARuleList.add(new RuleMatch(企鹅, 鸟类, 会游泳, 不会飞, 黑白两色); ESARuleList.add(new RuleMatch(信天翁, 鸟类, 善飞); ESARuleList.add(new RuleMatch(鸟类, 会飞, 会下蛋); ESARuleList.add(ne

7、w RuleMatch(鸟类, 有羽毛); public static String conclusions = 金钱豹,老虎,长颈鹿,斑马,鸵鸟,企鹅,信天翁; public static String tuili(ArrayList database) int databaseSize; databaseSize = database.size(); for(int z=0;z2;z+) for (int i = 0; i ESARuleList.size(); i+) if (ESARuleList.get(i).isMatch(database) StringBuffer sbuff

8、= new StringBuffer(); ArrayList database1=(ArrayList) database.clone(); addData(database, ESARuleList.get(i).conclusion); for(int k=0;k + ESARuleList.get(i).conclusion, 中间推断, JOptionPane.PLAIN_MESSAGE); System.out.println(ESARuleList.get(i).conclusion); if( (金钱豹.equals(ESARuleList.get(i).conclusion)

9、|(ESARuleList.get(i).conclusion=老虎)|(ESARuleList.get(i).conclusion=长颈鹿)|(ESARuleList.get(i).conclusion=斑马)|(ESARuleList.get(i).conclusion=鸵鸟)|(ESARuleList.get(i).conclusion=企鹅)|(ESARuleList.get(i).conclusion=信天翁) break; return getConclusion(database.get(database.size() - 1); private static void addD

10、ata(ArrayList list, String data) for (int i = 0; i list.size(); i+) if (list.get(i).equals(data) return; list.add(data); private static String getConclusion(String con) for (int i = 0; i conclusions.length; i+) if (con.equals(conclusionsi) return conclusionsi; return 未得到最终结论,请继续补充事实; 规则库:public clas

11、s RuleMatch public String conditions = null; public String conclusion = null; private Boolean isExist; public RuleMatch(String conclusionString, String. conditionStrings) conclusion = conclusionString; conditions = conditionStrings; public Boolean isMatch(ArrayList list) int size = list.size(); for

12、(String myCondition : conditions) isExist = false; for (int i = 0; i size; i+) if (list.get(i).equalsIgnoreCase(myCondition) isExist = true; break; if (!isExist) return false; return true; 五、实验结果与分析:1实验结果(截图):2 分析:(包括实验心得或体会,调试心得) 本次实验让我推理机和产生式系统有了更深的理解,特别是对正向推理和反向推理的理解,同时也明白了知识库对于系统的重要性对知识库进行合适的管理,可以检测并排除那些冗余及矛盾的知识,保持知识的一致性,提高规则库的质量。锻炼了我的编程能力,更提高了我的逻辑推理能力,该系统由规则库、综合数据库、控制系统三部分构成,但是该程序的缺点是只有正向推理的过程,没有反向推理的过程。通过这次课程设计我对专业课的学习有了更加深刻的认识,让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一段美好的回忆。以后我要更加努力学好每门专业课,让自己拥有更多的知识,才能解决更多问题。六、成绩评定:成绩:

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

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