人工智能大作业动物识别专家系统研究.docx
- 文档编号:26490268
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:13
- 大小:130.78KB
人工智能大作业动物识别专家系统研究.docx
《人工智能大作业动物识别专家系统研究.docx》由会员分享,可在线阅读,更多相关《人工智能大作业动物识别专家系统研究.docx(13页珍藏版)》请在冰豆网上搜索。
人工智能大作业动物识别专家系统研究
人工智能大作业-动物识别专家系统研究
动物识别专家系统研究
摘要:
动物识别专家系统是将人的思维过程转化为计算机语言的逻辑过程,其关键在于知识和信息的表示,智能推理或求解的基础——知识库的创建和管理,以及基于某种知识和信息表示的智能推理或求解过程。
使动物识别具有一定的智能性、良好的交互性和可视化效果。
本论文也主要以识别七种动物的设计思路和程序为例所写的。
关键词:
人工智能;专家系统;动物识别
一、专家系统基本知识
1.1动物识别专家系统介绍
动物识别专家系统是人工智能中一个比较基础的规则演绎系统,是人工智能领域里的一个大模块的专家系统的一个特定例子。
是集知识表与推理为一体的,以规则为基础对用户提供的事实进行向前、逆向或双向的推理得出结论的一种产生式系统。
如果通过良好的分析、精确地设计和细致的规划会创设出高度灵活和快速有效的识别系统,再加上良好的界面供用户添加新的事实和规则,反馈详细的错误或信息的话,那就是一个相当完整的识别系统了。
1.2专家系统实际应用
目前专家系统已经成功地渗透到生活的各个领域,并且还产生了巨大的社会效益和经济效益。
例如,像车辆传感、药物、纺织服装等重工业和轻工业领域中都会应用到,特别是在计算机领域里,现在已经是一门非常重要的学科类了。
1.3专家系统的开发
专家系统设计与实现的一般过程
选用哪种知识获取方法需要根据当前的系统,以及用户的需求来决定。
但在有些大型系统上还可能会用到不是仅仅一种方法的。
2.2数据库
2.2.1数据库作用
数据库即为事实库【2】,在计算机中流出一些存储区间,以存放反应系统当前状态的事实,存放用户回答的事实、已知的事实和由推理而得的事实,即由已知事实推导出的假设成立时,也作为事实。
其综合数据库的内容是不断变化的。
2.2.2数据库建立
char*str[]={"",
"反刍动物"/*1*/,"蹄类动物"/*2*/,"哺乳动物"/*3*/,
"目视前方"/*4*/,"有爪子"/*5*/,"有犬齿"/*6*/,
"吃肉"/*7*/,"下蛋"/*8*/,"会飞"/*9*/,
"有羽毛"/*10*/,"有蹄"/*11*/,"肉食动物"/*12*/,
"鸟类"/*13*/,"产奶"/*14*/,"有毛发"/*15*/,
"善飞"/*16*/,"黑白色"/*17*/,"会游泳"/*18*/,
"长腿"/*19*/,"长脖子"/*20*/,"有黑色条纹"/*21*/,
"有暗斑点"/*22*/,"黄褐色"/*23*/,"信天翁"/*24*/,
"企鹅"/*25*/,"鸵鸟"/*26*/,"斑马"/*27*/,
"长颈鹿"/*28*/,"老虎"/*29*/,"猎豹"/*30*/,
"\0"};
intrulep[][6]={{22,23,12,3,0,0},{21,23,12,3,0,0},{22,19,20,11,0,0},
{21,11,0,0,0,0},{17,19,20,13,-9,0},{17,18,13,-9,0,0},
{16,13,0,0,0,0},{15,0,0,0,0,0},{14,0,0,0,0,0},
{10,0,0,0,0,0},{8,7,0,0,0,0},{7,0,0,0,0,0},
{4,5,6,0,0,0},{2,3,0,0,0,0},{1,3,0,0,0,0}};
intrulec[]={30,29,28,
27,26,25,
24,3,3,
13,13,12,
12,11,11};
二、推理机构
3.1推理机介绍
3.1.1推理机作用原理
推理机是一组函数【4】,本例既有正向推理机又有反向推理机,都是用精确推理。
推理机是实施问题求解的核心执行机构,它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。
3.1.2推理网络
下图为识别本文中所举的识别七种动物时所规则形成的推理网络:
图2
3.2正向推理
3.2.1正向推理基本思想
用户首先提供一批事实,存放到数据库中,然后推理机进行工作。
方法是:
1.推理机用这批事实与知识库中规则的前提进行匹配。
2.把匹配成功的规则的结论部分作为新的事实加到数据库中去(这时,数据库中的事实增加了)。
再用更新后的数据库中的所有事实,重复上述①②二步,如此反复进行,直到得以结论(答案)或不再有新的事实加到数据库为止。
例如,用户输入一批事实:
动物有暗斑点、长脖子、长腿、产奶、有蹄子(这批事实存放在数据库中),要求系统判断这是一个什么动物?
推理机利用这批事实来匹配规则。
3.2.2正向推理示意图
图3
3.2.3正向推理机所要具有功能
要设计一个正向推理机,就是设计一组程序,使其至少具有以下的功能【3】:
1.能用数据库中的事实去匹配规则的前提,若匹配不成功,能自动地进行吓一跳规则的匹配。
这里如何匹配最为合适,是设计专家系统者根据专业特点和知识表示等情况,需要很好考虑的问题,也就是在匹配时到底用什么策略等问题都需要考虑周全;
2.若某条规则匹配成功,系统能将此规则的结论部分自动加入数据库;
3.能判断何时应结束推理;
4.能将匹配成功的规则记录下来;
3.3反向推理
3.3.1反向推理基本思想
由用户或系统首先提出一批假设,然后系统逐一验证这些假设的真假性,方法:
1.看假设是含在数据库中,若在,则假设成立,推理结束或进行下一个假设的验证,否则进行下一步。
2.判断这些假设是否是证据节点,若是,系统提问用户,否则进行下一步。
3.找出结论部分包含此假设的那些规则,把这些规则的所有前提作为新的假设。
4.重复①、②、③步。
3.3.2反向推理示意图
图4
3.3.3反向推理机所要具有功能
1.能根据用户要求或情况提出假设;
2.能验证此假设是否是在数据库中;
3.能把知识库中将结论部分包含此假设的规则都找出来;
4.能将找出来地规则的前提部分取出,并作为新的假设逐条验证;
5.能判断假设是否是证据接点,若是,能向用户提出相应的问题,并记录结果;
6.能将匹配成功的规则记录下来;
7.能判断何时应结束推理;
三、实例系统实现
4.1系统介绍
此系统是实现了《人工智能教程(的二版)》专家系统实例里的动物识别系统。
此系统是识别——老虎、猎豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁等七种动物。
是严格遵循了知识库中的规则,并运用C语言在VisualC++6.0环境下实验编译同过的。
因为各种原因没能设计实现出比较精美的界面,但还是体现出了很多专家系统所该具备的东西和功能。
4.2基本思路
该系统的知识表示采用产生式表示法。
产生式系统由规则库、综合数据库、控制系统三个部分构成。
其中规则库、综合数据库分别对应本系统中的rule类,str指针链表。
Rule链表存放用户输入的事实。
用到一个fact事实类和Fact事实链表,并用GetName(),GetNumber(),GetAct(),GetSucc()等函数来获取事实信息。
推理控制策略采用精确匹配算法的正向推理。
4.3程序主要代码
/*
*/
rule:
:
~rule()
{
list*L;
while(Pre)
{
L=Pre->Next;
deletePre;
Pre=L;
}
deleteName;
}
/*
*/
intrule:
:
Query()
{
charc;//保存用户输入按键符号
list*L;//临时前提链
fact*F;//临时事实链
L=Pre;//L指向前提链
F=Fact;
if(L==NULL)printf("\nError!
");//如果推理时,本规则前提链为空,出错,后面while循环也退出!
while(L!
=NULL)//前提链未处理完
{
F=Fact;//F指向事实链表
for(;;)//以当前前提,在事实链表中查询(根据ID)
{//因为前提为“-事实ID”,表示该事实不成立,所以取绝对值
if(abs(L->GetNumber())==F->GetNumber())break;
F=F->Next;//查询下一事实
}//退出循环时,F指向查询到的事实节点
if(L->GetNumber()>0)//如果前提为真
{
if((F->GetSucc())==True){//而且事实链表中的这个事实断言也为真
L=L->Next;//则本规则的当前前提在推理中满足
continue;//继续下一前提的判断
}
if((F->GetSucc())==False)//该前提在事实链表中断言不成立
returnFalse;//该规则推理使用结束,直接返回
}
else
{
if((F->GetSucc())==True)//Sorry,该前提在事实链表中断言却为真
returnFalse;//该规则推理使用结束,直接返回
if((F->GetSucc())==False){
L=L->Next;
continue;
}
}//endif-else
printf("%s(Y/N)",F->GetName());//向用户提问
c=getchar();//接受用户输入
flushall();
if((c=='Y')||(c=='y'))//
{
if(L->GetNumber()>0)F->PutAct(1,True);
if(L->GetNumber()<0){//且若当前规则中的当前前提要求为“假”
F->PutAct(1,True);//置激活和用户的断言
returnFalse;//本规则推理结束,不成功;后面的前提不判断了!
}
}
else
{
if(L->GetNumber()<0)F->PutAct(-1,False);
if(L->GetNumber()>0){
F->PutAct(-1,False);
returnFalse;
}
}
L=L->Next;//用户断言和当前规则的当前前提符合,则取当前规则的下一前提进行判断!
}//endwhile
————————————得出推理结论————————————
F=Fact;
for(;;)
{
if(Conc==F->GetNumber())break;//在事实表中查找与当前规则得后件相同得事实F=F->Next;
}
if(Conc<24)//如果规则后件(结论)不是最终最终性得(即不是7种要识别得动物)
{
F->PutAct(1,True);//那就是中间事实性结论,设置其激活和中间推理确证了的断言
returnFalse;//然后返回,本规则并不能结束整个推理
}
printf("\n该动物是:
%s\n",F->GetName());
returnTrue;
}
4.4系统执行结果
四、结论
动物识别专家系统实现起来也许相对简单一些,但基本上也包括了专家系统的各个组成部分。
动物识别具有一定的智能性,但是根据所采用的匹配方法的不同其智能性也有不小的差距。
而知识库的管理和数据库的设计是否完善对于动物识别专家系统是极为关键的,这也是很多此类专家系统的通病。
参考文献:
【1】王士同,陈慧萍,赵跃华,钱旭.人工智能教程[M](第二版)北京:
电子工业出版社,2006:
188-206
WangShi-tong,ChenHui-ping,ZhaoYue-hua,QianXu.Artificialintelligencecourse[M]Beijing:
ElectronicIndustryPress,2006:
188-206
【2】马鸣远.人工智能与专家系统导论[M]北京:
清华大学出版社,2006:
232-238
MaMing-yuan.Introductionofartificialintelligenceandexpertsystem[M]Beijing:
TsinghuaUniversitypress,2006:
232-238
【3】敖志刚.人工智能与专家系统导论[M]合肥:
中国科学技术大学出版社,2002:
165-197
AoZhi-gang.Introductionofartificialintelligenceandexpertsystem[M]Hefei:
PressofUSTC,2002:
165-197
【4】渠川路.人工智能、专家系统及智能计算机[M]北京:
航空航天大学出版社,1991:
123-156
QuChuan-lu.Artificialintelligence,Expertsystemandintelligentcomputer[M]Beijing:
UniversitiofAeronauticsandAstronauticsPress,1991:
165-197
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 作业 动物 识别 专家系统 研究