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