




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕毕 业业 设设 计 论计 论 文 文 题目 题目 姓姓 名名 学学 号号 所在学院所在学院 专业班级专业班级 指导教师指导教师 日日 期期 年 月 日 毕业设计 论文 任务书毕业设计 论文 任务书 学 院计算机学院指导教师熊才权职 称教授 学生姓名专业班级学 号 设计题目 设 计 内 容 目 标 和 要 求 设计内容目标和要求 设计进度等 指导教师签名 年 月 日 基层教学 单位审核 学 院 审 核 此表由指导教师填写学院审核 毕业设计 论文 学生开题报告 课题名称 课题来源应用需求课题类型 DY 指导教师 学生姓名学 号专业班级 本课题的研究现状 研究目的及意义 课题类型 1 A 工程实践型 B 理论研究型 C 科研装置研制型 D 计算机软件型 E 综合应用型 2 X 真实课题 Y 模拟课题 1 2 均要填 如 AY BX 等 2 本课题的研究内容 本课题研究的实施方案 进度安排 1 明确选题的性质和任务 第 2 周 2 查阅相关文献资料 第 3 4 周 3 完成开题报告 第 5 周 4 学习生物分类学 Drools 规则引擎以及 Java 相关技术 第 6 7 周 5 系统分析 第 8 周 6 系统设计 第 9 周 7 规则库 第 10 周 8 系统详细设计 第 11 周 9 编码与测试 第 12 13 周 10 系统运行与调试 第 14 周 11 撰写毕业设计论文 第 15 16 周 12 结题 答辩 第 17 周 开题报告 2 已查阅的主要参考文献 1 刘伟 Java 规则引擎 Drools 的介绍及应用 J 微计算机应用 2005 26 6 717 721 2 张宇 陈德礼 Drools 规则引擎应用分析 J 福建电脑 2007 10 11 12 3 Michael Negnevitsky 人工智能智能系统指南 M 第 2 版 顾力挧 沈晋惠译 北京 机械工业出版社 2007 4 Joseph C Giarratano Gary D Riley 专家系统原理与编程 M 第 4 版 印鉴 陈 忆群译 北京 机械工业出版社 2006 5 侯林 吴孝兵 动物学 M 北京 科学出版社 2007 6 尹朝庆 尹皓 人工智能与专家系统 M 北京 水利水电出版社 2002 指导教师意见 指导教师签名 年 月 日 开题报告 3 毕业设计 论文 学生申请答辩表 课 题 名 称 指导教师 职称 申 请 理 由 学生所在学院 计算机学院 专业班级 0 学号 学生签名 日期 毕业设计 论文 指导教师评审表毕业设计 论文 指导教师评审表 3 序号评分项目 理工科 管理类 评分项目 文科 满分评分 1工作量外文翻译 15 2文献阅读与外文翻译文献阅读与文献综述 10 3技术水平与实际能力创新能力与学术水平 25 4研究成果基础理论与专业知识论证能力 25 5文字表达文字表达 10 6学习态度与规范要求学习态度与规范要求 15 是否同意参加答辩 是否同意参加答辩 总分总分 评 语 指导教师签名 另附 毕业设计 论文 指导记录册 年 月 日 毕业设计 论文 评阅人评审表毕业设计 论文 评阅人评审表 4 学生姓名专业班级学号 设计 论文 题目 评阅人评阅人职称 序号评分项目 理工科 管理类 评分项目 文科 满分评分 1工作量外文翻译 15 2文献阅读与外文翻译文献阅读与文献综述 10 3技术水平与实际能力创新能力与学术水平 25 4研究成果基础理论与专业知识论证能力 25 5文字表达文字表达 10 6学习态度与规范要求学习态度与规范要求 15 总分总分 评 语 评阅人签名 年 月 日 毕业设计 论文 答辩表毕业设计 论文 答辩表 学生姓名专业班级学号 设计 论文 题目Drools 规则引擎的生物识别与分类专家系统 序号评审项目指 标满分评分 1 报告内容 思路清新 语言表达准确 概念清楚 论点正确 实验方法科学 分析归纳合理 结论有应用价值 40 2 报告过程准备工作充分 时间符合要求 10 3 创 新对前人工作有改进或突破 或有独特见解 10 4 答 辩 回答问题有理论依据 基本概念清楚 主要问题 回答准确 深入 40 总分 答辩 组 评语 答辩组组长 签字 年 月 日 答辩 委员 会意 见 答辩委员会负责人 签字 年 月 日 5 毕业设计 论文 成绩评定总表毕业设计 论文 成绩评定总表 学生姓名 卢海 专业班级 04 计算机 1 班 毕业设计 论文 题目 Drools 规则引擎的生物识别与分类专家系统 注 成绩评定由指导教师 评阅教师和答辩组分别给分 以百分记 最后按 优 90 100 良 80 89 中 70 79 及格 60 69 不及格 60 以下 评定等级 其中 指导教师评定成绩占 40 评阅人评定成绩占 20 答辩组评定成绩占 40 成绩类别成绩评定 指导教师评定成绩 评阅人评定成绩 答辩组评定成绩 总评成绩 40 20 40 评定等级 湖北工业大学毕业设计 论文 摘 要 生物分类是生物学领域最基础的研究工作 生物多样性是当前生命科学研究热点之 一 通过对 drools 规则原理和生物分类的研究 在 Java Swing 技术的基础上 设计并开发 了生物识别与分类专家系统 它根据生物形态结构和生理功能等方面的特征 以树型的 结构从大类到小类构建了生物知识库 根据生物知识库中的规则 能智能的判断生物的 种类与所属分类 它具有面向对象的特点 结构清晰简单 降低了大量的逻辑关系带来 的复杂性 非计算机专业人员也可以在了解简单的接口之后开发生物知识库 经过测试 系统操作方便 性能稳定 能满足对生物识别与分类知识的基本需求 生物识别与分类 专家系统作为一个生物知识领域的工具 是人类建立生物分类体系结构 保存 传播生 物学知识的有效手段 对于生物分类和生物种群的研究具有积极意义 关键词 专家系统 生物识别 生物分类 规则引擎 Drools 湖北工业大学毕业设计 论文 I Abstract Taxonomy is the most basic research in biological areas currently biodiversity is the focus of life science research Through the study in the principles of drools rules and taxonomic design and development of biological identification and classification expert system base on Java Swing The biological knowledge base has a tree structure base on biological structure and physiological functions According to the rules of biological knowledge base it can judge the animals type and their classification intelligent The biological identification and classification expert system which is base on drools rules engine and Java technology has characteristics of the object oriented clear structure of simple non computer professionals can also development of biological knowledge base after understand a simple interface After testing the system is easy to operate stable performance to meet the basic needs of identification and classification of biological knowledge Keywords Expert system Biology identification Biology classification Rule engine Drools 湖北工业大学毕业设计 论文 II 目 录 第 1 章 绪论 1 1 1 课题来源与研究意义 1 1 2 专家系统简介 1 1 3 生物分类学 3 1 4 DROOLS规则引擎 3 第 2 章 系统分析 5 2 1 设计中要解决的问题 5 2 2 可行性研究 5 2 2 1 要解决问题的可行性分析 5 2 2 2 几种常用的专家系统开发工具的对比 6 2 2 3 实现所采用的关键技术 7 2 3 需求分析 8 2 3 1 功能需求 8 2 3 2 性能需求 8 2 3 3 运行环境需求 8 第 3 章 系统结构与设计 9 3 1 系统的总体结构 9 3 2 知识库的规则策略 9 3 2 1 Drools 的规则表达方式 9 3 2 2 Rete 算法 12 3 2 3 生物知识库的树形结构 14 3 3 系统的设计模式 15 第 4 章 系统实现 18 4 1 人机交互窗体的实现 18 4 2 知识库的实现 21 4 3 规则导入与规则响应的实现 22 4 4 程序流程图 24 湖北工业大学毕业设计 论文 III 第 5 章 系统测试与性能分析 25 5 1 系统测试环境 25 5 2 系统测试实例 25 5 3 性能分析 26 5 3 1 智能性分析 26 5 3 2 响应速度分析 27 第 6 章 系统评估与总结 28 6 1 系统的优点 28 6 2 系统的存在的不足 28 6 3 系统的改进方案 28 6 4 系统的意义 29 结 论 30 致 谢 31 参考文献 32 附录一 英文文献翻译 34 附录二 系统部分源程序 47 湖北工业大学毕业设计 论文 0 第 1 章 绪论 1 1 课题来源与研究意义 本课题来源于生物的多样性为研究生物带来的困难性 专家们不得不花费大量的时 间在研究动物的识别和分类上 而这样并不能避免知识的遗漏与人类记忆的遗忘曲线 因为迫切的需要通过计算机来对庞大的生物信息进行存储和管理 以便于生物学研究 因此大量的生物领域的专家系统应运而生 但是局限于生物分类中存在的大量逻辑关系 并没有一种很好的方式简化这种逻辑处理 规则引擎作为一种在商业业务处理中大量使 用新兴技术 可以构建良好的规则框架 将大量的逻辑关系要通过计算机来对庞大的生 物信息进行存储和管理 以便于生物学研究 因此大量的生物领域的专家系统应运而生 但是局限于生物分类中存在的大量逻辑关系 并没有一种很好的方式简化这种逻辑处理 规则引擎作为一种在商业业务处理中大量使用新兴技术 可以构建良好的规则框架 将 大量的逻辑关系有更多的实际的应用 使更多的程序开发人员能够在程序的逻辑处理上 有新的思路 1 2 专家系统简介 专家系统是人工智能应用研究的主要领域 简单的说 专家系统就是一个具有智能 特点的计算机程序 它的智能化主要表现为能够在特定的领域内模仿人类专家思维来求 解复杂问题 专家系统应具有下列三个特点 启发性 指专家系统能使用判断性知识及已确立理论的形式知识进行推理 透明性 指专家系统能够解释其推理过程并对有关它的知识的询问做出回答 灵活性 指专家系统能够把新的知识不断地加入到已有的知识库中 可以看到 专家系统的一切都是围绕着知识在运转 要使专家系统将知识作为一种 结果输出到用户的面前 它必须具备两个核心 即知识库与推理机 知识库是专家系统的知识存储器 用来存放求解问题的领域知识 包括事实性知识 和启发性知识 常见的知识表示法有 一阶谓词逻辑表示法 产生式规则表示法 语义 网络表示法 框架表示法 脚本表示法 过程表示法 状态图表示法 面向对象表示法 以及一些不确定知识的表示方法等 湖北工业大学毕业设计 论文 1 推理机是专家系统中用来实现推理的程序 其主要功能是模拟领域专家的思维过程 控制并执行对问题的求解 它能根据当前已知的事实 利用知识库中的知识 按一定的 推理方法和控制策略进行推理 直到得出相应的结论为止 它包括推理方法和控制策略 两个部分 推理方法可以采用精确推理或非精确推理 控制策略分为推理策略和搜索策 略两个部分 其中 搜索策略是关键 它可以分为非启发式的搜索和启发式搜索 现代 主要采用启发式搜索 由于专家系统可以因知识 即资料部分 的改变而改变系统的功能及行为 因此适 用于领域知识尚不完整 新知识不断增加及需要具备自我学习机制的应用领域 除此之 外 专家系统具备多个吸引人使用的优点 包括 1 提升可用性 建构专家系统虽然耗费时间 但由于完成后的专业知识将可在任何适 用的电脑硬体大量复制使用 因此 将可增加专业知识的可用程度 2 降低成本 由于专家系统具备可复制的特性 因此 提供专业知识给每一个使用 者的单位成本将会降低很多 3 减低危险性 专家系统可以使用在对人们有危害的工作场所 以降低人为操作的 危险性 4 持久性 人类专家行对问题的求解 它能根据当前已知的事实 利用知识库中的 知识 按一定的推理方法和控制策略进行推理 直到得出相应的结论为止 它包括推理 方法和控制策略两个部分 推理方法可以采用精确推理或非精确推理 控制策略分为推 理策略和搜索策略两个部分 其中 搜索策略是关键 它可以分为非启发式的搜索和启 发式搜索 现代主要采用启发式搜索 由于专家系统可以因知识 即资料部分 的改变而改变系统的功能及行为 因此适 用于领域知识尚不完整 新知识不断增加及需要具备自我学习机制的应用领域 除此之 外 专家系统具备多个吸引人使用的优点 包括 1 提升可用性 建构专家系统虽然耗费时间 但由于完成后的专业知识将可在任何适 用的电脑硬体大量复制使用 因此 将可增加专业知识的可用程度 2 降低成本 由于专家系统具备可复制的特性 因此 提供专业知识给每一个使用 者的单位成本将会降低很多 3 减低危险性 专家系统可以使用在对人们有危技术会很快落后 不论它是心智或 湖北工业大学毕业设计 论文 2 身体的活动 但专家知识库一旦被建构 便可长久保存 5 整合多种来源的专业知识 对一个需要许多方面专家才能解法的问题 专家系统 可以整合多种行对问题的求解 它能根据当前已知的事实 利用知识库中的知识 按一 定的推理方法和控制策略进行推理 直到得出相应的结论为止 它包括推理方法和控制 策略两个部分 推理方法可以采用精确推理或非精确推理 控制策略分为推理策略和搜 索策略两个部分 其中 搜索策略是关键 它可以分为非启发式的搜索和启发式搜索 现代主要采用启发式搜索 由于专家系统可以因知识 即资料部分 的改变而改变系统的功能及行为 因此适 用于领域知识尚不完整 新知识不断增加及需要具备自我学习机制的应用领域 除此之 外 专家系统具备多个吸引人使用的优点 包括 1 提升可用性 建构专家系统虽然耗费时间 但由于完成后的专业知识将可在任何适 用的电脑硬体大量复制使用 因此 将可增加专业知识的可用程度 2 降低成本 由于专家系统具备可复制的特性 因此 提供专业知识给每一个使用 者的单位成本将会降低很多 3 减低危险性 专家系统可以使用在对人们有危虽然具有专业知识 然却不会受情绪 的影响 总会在一定时间内完成工作 10 知识指导者 专家系统可用来保存经验及训练人员 使经验不致有失传之疑虑 生手能很快变成经验丰富的执行者 1 3 生物分类学 生物分类学 是生物学中的一个重要分支 它根据生物的相似程度 包括形态结构 和生理功能等 把生物划分为种和属等不同的等级 并对每一类群的形态结构和生理功 能等特征进行科行对问题的求解 它能根据当前已知的事实 利用知识库中的知识 按 一定的推理方法和控制策略进行推理 直到得出相应的结论为止 它包括推理方法和控 制策略两个部分 推理方法可以采用精确推理或非精确推理 控制策略分为推理策略和 搜索策略两个部分 其中 搜索策略是关键 它可以分为非启发式的搜索和启发式搜索 现代主要采用启发式搜索 由于专家系统可以因知识 即资料部分 的改变而改变系统的功能及行为 因此适 用于领域知识尚不完整 新知识不断增加及需要具备自我学习机制的应用领域 除此之 湖北工业大学毕业设计 论文 3 外 专家系统具备多个吸引人使用的优点 包括 1 提升可用性 建构专家系统虽然耗费时间 但由于完成后的专业知识将可在任何适 用的电脑硬体大量复制使用 因此 将可增加专业知识的可用程度 2 降低成本 由于专家系统具备可复制的特性 因此 提供专业知识给每一个使用 者的单位成本将会降低很多 3 减低危险性 专家系统可以使用在对人们有危地球上存在的物种以百万计 千变 万化 各不相同 如果不予分类 不立系统 便无从认识 难以研究利用 分类的对象 是形形色色的种类 都是进化的产物 因而从理论意义上说 生物分类学是生物进化的 历史总结 正是因为生物种类的庞杂与繁琐 才更需要一个专家系统来将整个生物分类的知识 存储起来 并提供给生物专家来查询和研究 1 4 drools 规则引擎 俗话说得好 惟一不变的是变化 软件应用程序的业务逻辑正是如此 出于以下原 因 实现应用程序业务逻辑的组件可能必须更改 在开发期间或部署后修复代码 但也可以运行在 Java 和 Net 上 Drools 的设计目的 是允许插件式的语言实现 目前 规则可以由 Java Python 和 Groovy 编写 针对你的问 题域 problem domain Drools 也允许使用基于 Schema 的 XML 以支持域特定语言 DSL domain specific language DSL 包括代表问题域的元素和属性 一个 XML 编辑器 提供了半快速的 semi rapid 开发环境 附带有针对基于所提供的 Schema 的 DnD drag and drop 类型接口支持 湖北工业大学毕业设计 论文 4 第 2 章 系统分析 2 1 设计中要解决的问题 在开始基于 Drools 规则引擎的生物识别与分类专家系统的设计之前 要先了解这个 设计中需要解决的问题 在查阅了许多人工智能 专家系统 以及规则引擎的相关资料 之后 我总结出了这个系统所需要解决的几个主要问题 i 如何收集整理并不擅长的生物专业领域的知识 ii 如何设计表示生物知识的形式体系 iii 如何针对生物知识体系设计相应的推理形式 iv 如何设计带有引导性的人机交互界面 2 2 可行性研究 2 2 1 要解决问题的可行性分析 随着科技的发展 当今社会已经处在一个信息爆炸的年代 我们可以很容易的从书 籍 电视媒体 以及互联网上获取任何自己并不熟悉的相关信息 在维基百科上 有丰 富的生物分类学的相关知识 这些知识都是由一些在生物分类学有相当造诣的专家提供 而且可以随时由人们来更正 修改 这些知识充分弥补了我在生物知识上的欠缺 也为 我的生物分类专家系统奠定了知识基础 生物的特征多种多样 要将生物的特征以一种相对统一的信息化方式来表示 的确 存在很大难度 但是面向对象的思想在程序设计方面已经非常成熟 我们可以将面向对 象的思想应用在生物知识的形式表达上 将生物的特征作为一种属性和生物封装在一起 形成一个类 这样在判别生物的时候 只需要判断他的属性是否匹配 就可以判断出是 哪一种生物 以及该生物的分类体系结构 规则引擎为推理机提供了一种很好的解决方案 使我们不再需要繁琐的条件判断语 句 仅仅只要将一条条规则进行匹配 就能推理出想要的结果 而且这种方式 易于增 加 删除 修改 当我们需要修改某一个知识时 仅仅需要修改它所对应的规则 而不 需要整个的修改它的逻辑结构 从而大大提高了效率 一个优秀的专家系统 必然有一个优秀的人机交互界面 它不仅要能引导用户输入 恰当的关键词 还要能反映专家系统的推理过程和知识的结构 同样随着图形化编程技 术的发展 图形化的人机交互界面并不像以前那样难以实现 只要针对生物分类的知识 湖北工业大学毕业设计 论文 5 体系 把握用户的操作心理 就能做出优秀的人机交互 2 2 2 几种常用的专家系统开发工具的对比 1 VISUAL PROLOG Visual Prolog 是基于 Prolog 语言的可视化集成开发环境 是 PDC 推出的基于 Windows 环境的智能化编程工具 目前 Visual Prolog 在美国 西欧 日本 加拿大 澳大利亚等 国家和地区十分流行 是国际上研究和开发智能化应用的主流工具之一 Visual Prolog 具有模式匹配 递归 回溯 对象机制 事实数据库和谓词库等强大功 能 它包含构建大型应用程序所需要的一切特性 图形开发环境 编译器 连接器和调 试器 支持模块化和面向对象程序设计 支持系统级编程 文件操作 字符串处理 位 级运算 算术与逻辑运算 以及与其它编程语言的接口 Visual Prolog 包含一个全部使用 Visual Prolog 语言写成的有效的开发环境 包含对话 框 菜单 工具栏等编辑功能 Visual Prolog 与 SQL 数据库系统 C 开发系统 以及 Visual Basic Delphi 或 Visual Age 等编程语言一样 也可以用来轻松地开发各种应用 2 CLISP CLIPS C Language Integrated Production System 于 1984 年由美国航空航天局约翰逊 空间中心 NASA s Johnson Space Center 推出 意在克服 LISP 移植性差 开发工具和硬 件成本高 嵌入性低的缺点 CLIPS 是一个基于 Rete 算法的前向推理语言 用标准 C 语言 编写 目前最新的版本为 6 10 它具有高移植性 高扩展性 强大的知识表达能力和编 程方式以及低成本等特点 一经推出 立即受到欢迎 被广泛应用于政府 工业和学术 界 有力地推动了专家系统技术在各领域及各种运行环境下的应用 目前 CLIPS 是一个 自由软件 主要由原来在 NASA 工作的设计人员维护 它提供了一个新闻讨论组 可作为 从事 CLIPS 的开发人员交换信息的场所 此外 在 NASA 的组织下还成立了一个 CLIPS 用 户协会 以推动 CLIPS 的开发与应用 更详细的信息可访问它的官方网站 CLIPS 的强大功能与良好性能 以及 NASA 对该 软件采取的开放政策 CLIPS 在美国国内外都有众多用户 他们应用 CLIPS 开发了许多实 用的专家系统 并根据各自的需要对 CLIPS 进行扩充和改造 如加拿大研究委员会在 CLIPS 中加入了模糊推理功能 推出了 FuzzyCLIPS 我们也成功地在 CLIPS 中加入了图形功 湖北工业大学毕业设计 论文 6 能 推出了图形化专家系统工具 GEST Graphical Expert System Shell 3 ILOG JRules 在 Java 应用程序中没有比 ILOG JRules 再简单的规则引擎 ILOG JRules 把获得的业务 逻辑作为标准能简单的嵌入 web 继承和保留应用程序的后台管理 作为用于 Java 的业 务规则管理的核心组件 JRules 可以快速 安全的改变用于 Java 的业务规则的重配置而不需 要改变软件的编码 2 2 3 实现所采用的关键技术 本系统主要使用了两种技术 一种是 Drools 规则引擎 它用来生成生物知识库 同 样 由于 Drools 规则引擎可以封装类似于 if then 的业务逻辑 它同样实现了知识的推 理 选择 Drools 作为本系统的规则引擎 是因为 Drools 具备很多优点 首先 在众多的 规则引擎中 Drools 是开源而且免费的 不需要什么成本 而且在开源社区 可以找到很 多相关的资料 其次 Drools 拥有非常简洁的结构 甚至非技术人员也可以编写利用 Drools 来编写规则 最后 Drools 是基于 Java 开发的 可以很容易去的嵌入到 Java 项目 当中 一种是 Java 技术 确切的说是 Java 中的 Swing 技术 Swing 是一个用于开发 Java 应 用程序用户界面的开发工具包 它以抽象窗口工具包 AWT 为基础使跨平台应用程序可 以使用任何可插拔的外观风格 Swing 开发人员只用很少的代码就可以利用 Swing 丰富 灵活的功能和模块化组件来创建优雅的用户界面 2 3 需求分析 2 3 1 功能需求 对于专家系统来说 它所要实现的主要功能就是通过输入信息来查询知识库 而这 个输入的信息 需要为用户提供一定的引导性 比如说某些生物所共有的特征 可以为 用户提供选择 而一些变化性较大的特征 可是为用户提供带有提示信息的输入框 以 减少用户的盲目输入 也同样减少系统设计的复杂性 2 3 2 性能需求 因为生物分类是一项庞大的科学 其信息量可能在百万条甚至千万条规则以上 要 操作如此庞大的信息 必须将规则逻辑设计得尽可能简洁 对信息的操作也必须高效 对于专家系统来说 其编写需要由计算机技术人员来完成 可是技术人员在生物领域的 知识是欠缺的 所以知识库的完善需要相关领域的专家来共同完成 但是生物学的专家 湖北工业大学毕业设计 论文 7 对于编程也许同样是无能为力 所以知识规则库必须减少代码的嵌套 以最简洁的方式 组织它的结构 从而使生物学的专家也可以毫不费力的编写规则知识库 2 3 3 运行环境需求 根据系统所要使用的技术 运行环境需要从编写者和用户两方面来考虑 对于系统的编写者 由于使用了 Java 技术 需要安装 JDK 开发环境 即 J2SE develop kit 同时需要安装一个 Java 编辑器 这里我使用的是 Eclipse 对于另一个核心技术 则 需要安装 Drools 库 为了便于开发 还需要安装 Drools 的 Eclipse 的插件 有了这个插件 可以方便的在 Eclipse 中添加 Drools 项目 Drools 插件需要有 GEF 插件的支持 即 Graphical Editor Framework 插件 它是一个图形化编辑框架 允许开发人员以图形化的方 式展示和编辑模型 从而提升用户体验 有了这个插件 Drools 才能在 Eclipse 生成图形 化的节点树 决策树等等 对于系统的用户 至少需要安装 JVM 即 Java 虚拟机 这样才能在电脑上运行由 Java 开发的程序 湖北工业大学毕业设计 论文 8 第 3 章 系统结构与设计 3 1 系统的总体结构 本系统和其他的专家系统具有相同的总体结构 其用例图如下 图 3 1 专家系统用例图 Domain Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专 家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面 user interface 用户使用用户界面和专家系统 打交道 他和专家系统之间的交流的一些信息由工作空间 working storage 储存 推理机 构根据用户信息和知识库中的信息为用户提供服务 3 2 知识库的规则策略 3 2 1 Drools 的规则表达方式 一条规则有 attributes 一个 Left Hand Side LHS 和一个 Right Hand Side RHS 其形式如下 湖北工业大学毕业设计 论文 9 Drools 允许下列几种 attributes salience agenda group no loop auto foExpert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知识 翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系统的推理机 构 interface engine 和用户界面 HS 将被执行 RHS 被称为结果 Conseq Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知 识翻译成电 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专 家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面的模式匹配算法有下列几种 Linear RETE Treat Leaps DroolsExpert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专 家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面的 Listener 当 rules 被加入 Productioin Memory 后 rules 被规则引擎用 RETE 算法分解成一 个图 rule when then end 湖北工业大学毕业设计 论文 10 图 3 2 规则的算法分解图 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知 识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面 当一条规则被完全匹配 它并没有立刻被激发 这条规则和与其匹配的 facts 将激活 被放入 Agenda 由 Agenda 来负责安排激发 Activations 指的是 rule the matched facts 下面的图很清楚的说明了 Drools 规则引擎的执行过程 湖北工业大学毕业设计 论文 11 图 3 3 drools 执行过程 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知 识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面的菱形部分就是在 Agenda 中来执行的 Agenda 就会根据冲突解决策略来安排 Activation 的执行顺序 3 2 2 Rete 算法 ReteExpert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家 的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge 将只让匹配 object type 的对象通过到达节点 通过这种方法 如果一个应用 assert 一个新的 account 它不会将 Order 对象传递到节点中 很多现代 RETE 实现都 有专门的 ObjectTypeNode 在一些情况下 ObjectTypExpert 就是某个领域的专家 他 提供原始的知识 Knowledge Engineer 是把专家的知识翻译成电脑所能够识别的知识的工 程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计 专家系统的程序员 他的主要任务是编写专家系统的推理机构 interface engine 和用户界 湖北工业大学毕业设计 论文 12 面用 IntraElement conditions 来表述 Drools 通过散列法优化了从 ObjectTypeNode 到 AlphaNode 的传播 每次一个 AlphaNode 被加到一个 ObjectTypeNode 的时候 就以字面值 literal value 作为 key 以 AlphaNode 作为 value 加入 HashMap 当一个新的实例进入 ObjectTypeNode 的 时候 不用传递到每一个 AlphaNode 它可以直接从 HashMap 中获得正确的 AlphaNode 避免了不必要的 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知 识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowExpert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知识翻译成电脑所能够识别的知识的工程师 某领域的专 家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进 行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他 的主要任务是编写专家系统的推从那里 它进入 ObjectTypeNode 并沿着网络向下传播 当数据匹配一个节点的条件 节点就将它记录到相应的内存中 这样做的原因有以下几 点 主要的原因是可以带来更快的性能 虽然记住完全或部分匹配的对象需要内存 它 提供了速度和可伸缩性的特点 当一条规则的所有条件都满足 这就是完全匹配 而只 有部分条件满足 就是部分匹配 3 2 3 生物知识库的树形结构 要设计 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专 家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面叉特征 如蝙蝠可以飞 但是却是哺乳动物 如鸵鸟不能飞 而且擅长奔跑 却属于是鸟纲的一种鸟类 所以我们不得不将这三种类 别作一个统一的划分 这样 只要规则库中的动物 都带上有脊椎和生活习性两项特征 即可判断它属于脊索动物门中的哪一纲 然后再根据更细的特征 来判断具体的动物 下图详细给出了生物分类的树形结构 湖北工业大学毕业设计 论文 13 图 3 4 生物分类结构图 在此结构的基础上 可以再根据鱼纲 两栖纲 鸟纲 爬行纲和哺乳纲的特点来具 体细分 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家 的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面 肉食还是杂食 它的体型是大还是小 它的 头长和身体长度的比值是大还是小 它的身体长度和身体高度的比值是大还是小 它的 性情是温和还是凶猛 它的是否有鱼鳞 是否有鱼鳔 是否有须触 它的体色如何等等 不同的鱼类具备不 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知 识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成 知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写 专家系统的推理机构 interface engine 和用户界面来判别 3 3 系统的设计模式 MVC 是 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专 家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 生物 无脊椎动物 脊椎动物 鱼纲 生活在水中 两栖纲 生活在水中和陆上 鸟纲 爬行纲 哺乳纲 生活在陆上 湖北工业大学毕业设计 论文 14 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面 et 随着应用的复杂性和规模性 界面的处理 也变得具有挑战性 一个应用可能有很多不同的视图 MVC 设计模式对于视图的处理仅 限于视图上数据的采集和处理 以及用户的请求 而不包括在视图上的业务流程的处理 业务流程的处理交予模型 Model 处理 比如一个订单的视图只接受来自模型的数据并显 示给用户 以及将用户界面的输入数据和请求传递给控制和模型 模型 Model 就是业务流程 状态的处理以及业务规则的制定 业务流程的处理过程 对其它层来说是黑箱操作 模型接受视图请求的数据 并返回最终的处理结果 业务模 型的设计可以说是 MVC 最主要的核心 MVC 设计模式告诉我们 把应用的模型按一定的 规则抽取出来 抽取的层次很重要 这也是判断开发人员是否优秀的设计依据 抽象与 具体不能隔得太远 也不能太近 MVC 并没有提供模型的设计方法 而只告诉你应该组 织管理这些模型 以便于模型的重构和提高重用性 我们可以用对象编程来做比喻 MVC 定义了一个顶级类 告诉它的子类你只能做这些 但没法限制你能做这些 这点对编程 的开发人员非常重 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知 识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成 知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写 专家系统的推理机构 interface engine 和用户界面应多个模型 模型 视图与控制器的分离 使得一个模型可以具有多个显示视图 如果用户通过 某个视图的控制器改变了模型的数据 所有其它依赖于这些数据的视图都应反映到这些 变化 因此 无论何时发生了何种数据变化 控制器都会将变化通知所有的视图 导致 显示的更新 这实际上是一种模型的变化 传播机制 模型 视图 控制器三者之间的关系和各自的主要功能 如下图所示 湖北工业大学毕业设计 论文 15 第 4 章 系统实现 4 1 人机交互窗体的实现 Java 的 SwiExpert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是 把专家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识 告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知 识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专 家系统的推理机构 interface engine 和用户界面示不同的内容 AnimalsFrame BasicPanel ButtonPanel FishPanel LiangqiPanel wujizhuiPanel LushangPanel 图 4 1 窗体结构图 首先 我们生成一个 JFrame 窗体 AnimalsFrame 在这个 AnimalsFrame 上 从生物分 类的根节点 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把专 家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告诉 knowledge engineer 以后 由 knowledge engineer 对这些知识进行处理 最后做成知识库 knowledge base System Engineer 是设计专家系统的程序员 他的主要任务是编写专家系 统的推理机构 interface engine 和用户界面 湖北工业大学毕业设计 论文 16 图 4 2 最原始的 AnimalsPanel 显示效果 下面两张图为一次判断之后的 AnimalsPanel 的两种显示情况 图 4 3 a 选择有脊椎之后的显示效果 湖北工业大学毕业设计 论文 17 图 4 3 b 选择无脊椎之后的显示效果 图 4 4 显示了 FishPanel 之后的 AnimalsPanel 湖北工业大学毕业设计 论文 18 图 4 5 显示了 LushangPanel 之后的 AnimalsPanel 4 2 知识库的实现 为了尽可 Expert 就是某个领域的专家 他提供原始的知识 Knowledge Engineer 是把 专家的知识翻译成电脑所能够识别的知识的工程师 某领域的专家把他所知道的知识告 诉 knowledge engineer 以后 由 knowledge engineer 对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030儿童营养包干预项目的公共卫生效益与商业拓展
- 2025-2030儿童脑功能连接组学在个体化教育中的应用
- 2025-2030儿童空间认知能力培养的神经科学依据与方法创新
- 2025-2030儿童智力开发行业知识产权保护与技术创新研究
- 2025-2030儿童执行功能训练方案的医学验证与产业化路径
- 2025-2030儿童情绪识别能力的神经发育轨迹分析
- 2025-2030儿童实木家具安全标准与消费者行为调查报告
- 2025-2030儿童医疗游戏化设计的神经激励原理与产品合规性研究
- 2025-2030儿童人工耳蜗植入后大脑听觉皮层重塑的长期随访报告
- 2025-2030健康食品市场发展现状及投资价值评估分析报告
- CJ∕T 537-2019 多层钢丝缠绕改性聚乙烯耐磨复合管
- 兰州大学博士英文复试模板
- 新生儿胸腔镜手术的麻醉管理
- 生活垃圾清运服务 投标方案(技术方案)
- 口腔科临床诊疗指南及操作规范
- (苏教版)数学六年级上册计算题“天天练”习题卡-共94份题组
- 第4章工程活动中的环境伦理
- 货架承载力计算单位公斤
- 畜牧兽医职称考试题库及答案
- 安东尼奥高迪设计大师
- 混凝土施工技术难点及相应解决方案,通用
评论
0/150
提交评论