动物识别系统实验报告人工智能原理及其应用 本文关键词:人工智能,及其应用,识别系统,原理,动物
动物识别系统实验报告人工智能原理及其应用 本文简介:实验报告实验目的及要求:实验目的:1.熟悉产生式的特点,基本结构和设计思想2.掌握基于规则推理的基本过程和方法(在实验中采用正向推理过程)3.学会用高级程序设计语言开发基于规则的动物识别系统实验要求:1.根据动物识别系统的规则建立合理的数据结构或数据库来表示知识。2.利用所选开发语言来建立推理过程。
动物识别系统实验报告人工智能原理及其应用 本文内容:
实验报告
实验目的及要求:
实验目的:
1.熟悉产生式的特点,基本结构和设计思想
2.掌握基于规则推理的基本过程和方法(在实验中采用正向推理过程)
3.学会用高级程序设计语言开发基于规则的动物识别系统
实验要求:
1.
根据动物识别系统的规则建立合理的数据结构或数据库来表示知识。
2.
利用所选开发语言来建立推理过程。(该程序能正向推理识别动物过程)
3.
利用控制台或者图形界面给出合理的交互接口,实现基本演示功能。
4.
提交实验报告和源程序,总结实验结论和经验教训。
实验原理:
1.基于规则产生式系统结构:
基于规则的产生式系统一般由规则库(知识库)、综合数据库和推理引擎(推理机)三部分组成,规则库中它的基本组成框架如下图1所示。
知识库由谓词演算事实和有关讨论主题的规则构成,综合库又称为上下文,用来暂时存储推理过程中的结论和数据。推理机是用规则进行推理的过程和行为,。知识采集系统是领域专家把相关领域的知识表示成一定的形式,并输入到知识库中。解释系统通过用户输入的条件来分析被系统执行的推理结构,并将专家知识以易理解的方式并把知识解释给用户。
图1
规则产生式系统的基本结构
2.
简单动物识别产生式系统结构:
⑴
知识库
ANIMAL的知识库非常小,仅仅包含16条规则(一
般说来,一个产生式系统的知识库应包含≥几百条规则);
⑵
解空间很小,仅仅包含8个解,或8个最高假设(在一个特定
的动物园里,共有虎、豹、长颈鹿、斑马、鸵鸟、企鹅和信天
翁、八哥等8种动物);
⑶
初始事实集合很小,仅仅包含21个事实,如图中的F1至F21;
⑷
数据(即事实、证据、断言),知识(即浅层知识,规则)和推
理都是精确的,即确定性的;
⑸
知识库。
综合库
实验步骤:
本识别系统需要通过正向推理,正向推理过程的具体步骤是:
(1)读入事实集到工作存储器。
(2)取出某条规则,将规则的全部前件与工作存储器中的所有事实进行比较。如果匹配成功,则所得结果显示到屏幕上,转向(3);否则,直接转向(3)。
(3)结束。
大体步骤流程图:
用户输入事实
读入事实
将事实集到事实库
Main类动物识别系统的过程实现
顺序调出规则库中的每条规则
与事实库fact的规则逐条比对
返回true
Recognition类动物识别系统的过程实现
返回false
事实库中是否包含最终的解
是
否
传递到recognition类的facts中
返回识别结果
Facts是否全部包括说明匹配规则的前件
返回true
返回false
是
否
输出识别结果
输出无法识别
完成识别过程
思考题:
考虑实际情况,系统中那些地方需要改进。比如规则数目的增多,规则之间复杂的关系等,证据知识的不确定性等,发现你的问题(至少包括两个问题),并在实验报告中写出响应的解决方法。
答:在调试的时候发现添加规则时候有一些问题,就是用户在选择条件的时候如果已经存在这个基本事实的话,则不应该再添加相同的记录。
备注知识:
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.通过一周的设计,动物识别系统基本开发完毕,由于首次设计比较生疏,加之时间较短,所以该系统还有许多不尽如人意的地方,比如没有反向推理出现一些缺陷等问题,因此有待进一步改进。
总的来说,这次实验我们收益颇多,进一步掌握了运用java语言编写人工智能系统的思路及过程,为以后我们进行软件开发奠定了基础。
6