1、1 实实验验报报告告 实验目的及要求:实验目的:实验目的:1.熟悉产生式的特点,基本结构和设计思想2.掌握基于规则推理的基本过程和方法(在实验中采用正向推理过程)3.学会用高级程序设计语言开发基于规则的动物识别系统实验要求实验要求:1根据动物识别系统的规则建立合理的数据结构或数据库来表示知识。2利用所选开发语言来建立推理过程。(该程序能正向推理识别动物过程)3利用控制台或者图形界面给出合理的交互接口,实现基本演示功能。4提交实验报告和源程序,总结实验结论和经验教训。实验原理实验原理:1.基于规则产生式系统结构:基于规则的产生式系统一般由规则库(知识库)、综合数据库和推理引擎(推理机)三部分组成
2、,规则库中它的基本组成框架如下图 1 所示。知识库由谓词演算事实和有关讨论主题的规则构成,综合库又称为上下文,用来暂时存储推理过程中的结论和数据。推理机是用规则进行推理的过程和行为,。知识采集系统是领域专家把相关领域的知识表示成一定的形式,并输入到知识库中。解释系统通过用户输入的条件来分析被系统执行的推理结构,并将专家知识以易理解的方式并把知识解释给用户。2 图 1 规则产生式系统的基本结构2.简单动物识别产生式系统结构:知识库 ANIMAL 的知识库非常小,仅仅包含 16 条规则(一 般说来,一个产生式系统的知识库应包含几百条规则);解空间很小,仅仅包含 8 个解,或 8 个最高假设(在一个
3、特定 的动物园里,共有虎、豹、长颈鹿、斑马、鸵鸟、企鹅和信天 翁、八哥等 8 种动物);初始事实集合很小,仅仅包含 21 个事实,如图中的 F1 至 F21;数据(即事实、证据、断言),知识(即浅层知识,规则)和推 理都是精确的,即确定性的;知识库。实验步骤:实验步骤:本识别系统需要通过正向推理,正向推理过程的具体步骤是:(1)读入事实集到工作存储器。(2)取出某条规则,将规则的全部前件与工作存储器中的所有事实进行比较。如果匹配成功,则所得结果显示到屏幕上,转向(3);否则,直接转向(3)。(3)结束。大体步骤流程图:大体步骤流程图:综合库3 用户输入事实读入事实将事实集到事实库Main 类动
4、物识别系统的过程实现顺序调出规则库中的每条规则与事实库 fact 的规则逐条比对返回trueRecognition 类动物识别系统的过程实现返回 false事实库中是否包含最终的解是否传递到 recognition类的 facts 中返回识别结果Facts 是否全部包括说明匹配规则的前件返回true返回 false是否输出识别结果输出识别结果输出无法识输出无法识别别完成识别过程完成识别过程思考题思考题:考虑实际情况,系统中那些地方需要改进。比如规则数目的增多,规则之间复杂的关系等,证据知识的不确定性等,发现你的问题(至少包括两个问题),并在实验报告中写出响应的解决方法。4 答:答:在调试的时候
5、发现添加规则时候有一些问题,就是用户在选择条件的时候如果在调试的时候发现添加规则时候有一些问题,就是用户在选择条件的时候如果已经存在这个基本事实的话,则不应该再添加相同的记录。已经存在这个基本事实的话,则不应该再添加相同的记录。备注知识:备注知识:1.动物识别系统包括 16 条规则下所示:如r1 毛发 哺乳动物r2 奶 哺乳动物r3 羽毛 鸟 r4 会飞|下蛋 鸟r5 吃肉 食肉动物r6 犬齿|爪|眼睛盯着前方 食肉动物r7 哺乳动物|蹄 有蹄类动物r8 哺乳动物|反刍 有蹄类动物r9 哺乳动物|食肉动物|黄褐色|暗斑点 金钱豹r10 哺乳动物|食肉动物|黄褐色|黑色条纹 虎r11 有蹄类动物
6、|长脖子|长腿|暗斑点 长颈鹿r12 有蹄类动物|黑条纹 斑马r13 鸟|不会飞|长脖子|长腿|黑白色 鸵鸟r14 鸟|不会飞|游泳|黑白色 企鹅r15 鸟|善飞 信天翁2.正向推理过程分析:正向推理过程分析:下面以一个具体的动物识别产生式系统模型来说明其原理。初始事实集初始事实集:动物身上有暗斑点、有长脖子、有长腿、有奶、有蹄 要求解的问题是判断满足该事实集的是何种动物?推理过程推理过程:1。首先从规则库取出第一条规则 r1,将 r1 中的前提部分与初始事实集中的事实相比较,匹配失败;于是继续取第二条规则再试,匹配成功!将此规则的结论部分作为新事实加入到 综合数据库的初始事实集中。于是初始事
7、实集变为:该动物身上有暗斑点、有长脖子、有长腿、有奶、有蹄、是哺乳动物。2。接着依次取 r3、r4、r5、r6 与初始事实集匹配、均不成功,当执行到 r7 时再次获得匹配,于是事实集中以增加一条事实:该动物身上有暗斑点、有长脖子、有长腿、有奶、有蹄、是哺乳动物、是有蹄类动物。5此后,当搜索到 r11 时又一次匹配成功,事实集变为:该动物身上有暗斑点、有长脖子、有长腿、有奶、有蹄、是哺乳动物、是有蹄类动物、该动 物是长颈鹿。于是得到最终结论-该动物是长颈鹿。上述问题的求解过程是一个不断地从规则库中选取可用规则与综合数据库中的已知事实进行匹 配的过程,规则的每一次匹配都会使综合数据库增加新的内容,
8、并朝着问题的解决前进了一 步。这就是一个推理过程。1.逆向推理过程分析:逆向推理过程分析:初始事实集初始事实集:动物身上有暗斑点、有长脖子、有长腿、有奶、有蹄 要求解的问题是判断满足该事实集的是何种动物?5 推理过程推理过程:1。我们假设这个动物是长颈鹿的话,为了检验这个假设,根据规则 r11,要求这个动物是长脖子,长腿,暗斑点且是有蹄类动物。2。这时数据库中已经有了长脖子,长腿,暗斑点事实,为此我们还要验证“动物是有蹄类动物”,根据规则 r8 要求动物反刍,且是哺乳动物,而事实库中没有反刍,根据规则 r7 要求动物有蹄,且是哺乳动物,事实中动物有蹄。为此我们要验证动物是哺乳动物6我们要验证动
9、物是哺乳动物,根据规则 r2 知道,要求动物有奶,事实中动物有奶,此时各个子目标都是已知事实,所以逆向推理成功。上述问题的求解过程是从目标的(作为假设)状态出发,朝着出事状态前进,逆向适用规则的一种方法。实验总结及结论:实验总结及结论:1.1.对人工智能的产生式系统有了进一步的认识,特别是对正向推理和反向推理有更对人工智能的产生式系统有了进一步的认识,特别是对正向推理和反向推理有更深的了解。深的了解。2.2.本次实验是我们第一次上机完成人工智能实验,充分培养了我们的独立解决问题本次实验是我们第一次上机完成人工智能实验,充分培养了我们的独立解决问题的能力。的能力。3.3.由于我们班日前没有接触过
10、由于我们班日前没有接触过 c+c+和和 javajava 语言,所以对语言,所以对 javajava 的编程环境非常陌生,的编程环境非常陌生,使实验进度一再陷入停滞状态。通过近一段时间的研习,逐步熟悉了使实验进度一再陷入停滞状态。通过近一段时间的研习,逐步熟悉了 javajava 语言。通过语言。通过这次试验,也更加熟悉了编程工具和编程语言。这次试验,也更加熟悉了编程工具和编程语言。5.5.通过一周的设计,动物识别系统基本开发完毕,由于首次设计比较生疏,加之时通过一周的设计,动物识别系统基本开发完毕,由于首次设计比较生疏,加之时间较短,所以该系统还有许多不尽如人意的地方,比如没有反向推理出现一些缺陷等问间较短,所以该系统还有许多不尽如人意的地方,比如没有反向推理出现一些缺陷等问题,因此有待进一步改进。题,因此有待进一步改进。总的来说,这次实验我们收益颇多,进一步掌握了运用总的来说,这次实验我们收益颇多,进一步掌握了运用 javajava 语言编写人工智能系统语言编写人工智能系统的思路及过程,为以后我们进行软件开发奠定了基础。的思路及过程,为以后我们进行软件开发奠定了基础。谢谢大家下载,本文档下载后可根据实际情况进行编辑修改.再次谢谢大家下载.翱翔在知识的海洋吧.