2024年4月6日发(作者:亥康复)
维普资讯
第l6卷第1期
广西大学梧州分校学报
No.1 vo1.16
2(gJ6年1月
JOⅥ 0F GI『^NcxI I7Nn『】璃 WIEHOU BRAN叫
Jan.2006
动物识别知识系统在C语言下的实现
罗梅兰
(湖南文理学院生命科学系, 湖南常德415000)
[摘要】文章首先介绍了知识系统的基本工作原理,并对动物识别知识系统的问题和要求作了简单的介绍,然后用
c语言实现了动物识别知识系统。在该知识系统中,事实和规则库都采用链表的形式来存储,因为链表是一种比较灵活
的存储方式,便于规则库的扩展。该系统具有启发性、透明性和灵活性等特点。
[关键字】知识系统;动物识别;产生式规则;c语言
[中图分类号]Tm82[文献标识码】A[文章编号]1009—2633(2006)Ol一0095—04
The Implementation of an Animal identiifer
Knowledge System by C Language
lmo Meilan
(Department of Life Science,Htman University of Arts and Science.Changde 412500,China)
ⅪIIa吐:IIIt 8 paper,the essential principles ofknowledge system 8Ieintroduced.andthe requirements。fexpert system ofanimal
identiifers is briefly disetmed.The knowledge system of animal identiifers is pl印lerIted by C language.IfI the b led 8y'8:{e ̄n,the
facts and production rules are stored by linked list which is flexible and eonvenlent for expandiTIg p ̄hetion mlebase.
1  ̄:expert system;animal identiifer;production rule;C 1angI】8ge
1.引言
的复杂问题。【lj
知识系统的研究是当前人工智能领域的研究热点之
2.2知识系统的结构
一
。
本文用c语言来实现一个比较简单的知识系统即动
知识系统的结构是指知识系统各组成部分的构造方
物识别知识系统(II)Dm衄 )。该知识系统通常用PRO.
法和组织形式。n 系统结构选择恰当与否与知识系统的适
IJ 语言来实现。而C语言是最常用的计算机高级语言之
用性和有效性密切相关。
一
,
本文将采用c语言来实现动物识别知识系统IDENTI.
尽管知识系统有众多类型,名称各异,但基本原理框
FIER。
图一致。如图1所示。
2.知识系统的基本工作原理
领域专家
2.1知识系统
用户 知识工程师
尽管知识系统已经得到广泛的应用,但对于究竟什
么是知识系统这个问题,目前尚无统一且精确的定义。一
般地说,知识系统是一个智能计算机程序系统,其内部具
有大量的专家水平的某个领域的知识与经验,能够利用人
类专家的知识和解决问题的方法来解决该领域的问题。
也就是说,知识系统是一个具有大量专门知识与经验的程
序系统,它应用人工智能技术和计算机技术,根据某领域
图1知识系统的一般结构
一
个或多个专家提供的知识和经验,进行推理和判断。模
拟人类专家的决策过程,以便解决那些需要人类专家处理
知识系统的核心是知识库和推理机,其基本工作过程
收稿Et期:2005—11—23
为:系统根据知识库中的知识和用户提供的事实进行推
・
95-
维普资讯
20O6年第1期 广西大学梧州分校学报 第16卷
理。不断地由巳知前提推出一些初步结论。并将这些初步
结论作为中间结果存放在数据库中,然后将其作为新的巳
R07 IF该动物是哺乳动物AND有蹄THEN该动物是
有蹄类动物
知事实进行下一步推理,循环往复,逐步逼近求解目标。
在这个过程中,系统可以通过人机接口不断地与用户交
流,向用户提问,或对用户提出的问题做出解释。
R08 IF该动物是哺乳动物AND反刍THEN该动物是
有蹄类动物
R09 IF该动物是哺乳动物AND是肉食动物AND是
知识库是知识系统的知识存储器,用来存放求解问题
的领域知识(包括事实性知识和启发性知识)。常见的知
黄褐色AND身上有暗斑点THEN该动物是金钱豹
RIO IF该动物是哺乳动物AND是肉食动物AND是
识表示法有:一阶谓词逻辑表示法、产生式规则表示法、语
义网络表示法、框架表示法、脚本表示法、过程表示法、状
态图表示法、面向对象表示法以及一些不确定知识的表示
方法等。
推理机是知识系统中用来实现推理的程序。其主要
功能是模拟领域专家的思维过程,控制并执行对问题的求
解。它能根据当前巳知的事实。利用知识库中的知识,按
一
定的推理方法和控制策略进行推理,直到得出相应的结
论为止。它包括推理方法和控制策略两个部分。推理方
法可以采用精确推理或非精确推理。控制策略分为推理
策略和搜索策略两个部分,其中。搜索策略是关键,它可以
分为非启发式的搜索和启发式搜索。现在主要采用启发式
搜索。
数据库又称为“黑板”或“综合数据库”。它主要用来存
储有关领域问题的初始事实、问题描述、推理过程中得到
的中间结果以及最终结果等信息。
解释机构由一组程序组成,它能够跟踪并记录推理过
程,当用户提出的询问需要给出解释时,它将根据问题的
要求做出相应的处理,最后把解答用约定的形式通过人机
接口输出给用户。目前,大多数知识系统都采用人机对话
的交互式解释方法。
知识获取机构主要实现机器学习。
人机接口是领域专家、知识工程师、一般用户间进行
交互的界面,由一组程序及相应的硬件组成,用于完成输
人输出工作。
3.动物识别知识系统及C语言实现
3.1动物识别知识系统(I【)D ER)
动物识别知识系统IDEN'rIFI ̄是一个用于识别动物
的分析系统。从本质上讲这个系统是用于分析和分类的。
在知识系统Ⅲ 仰}Ⅱ丑中,知识库中的知识采用的是确
定性知识,并用产生式规则来表示。本系统能够识别7种
动物。知识库中共有以下l5条规则。
RO1 IF该动物有毛发THEN该动物是哺乳动物
R02IF该动物有奶删该动物是哺乳动物
R03 IF该动物有羽毛THEN该动物是鸟
R04IF该动物会飞AND会下蛋THEN该动物是鸟
R05 IF该动物吃肉删该动物是肉食动物
R06 IF该动物有犬齿AND有爪AND眼盯前方THEN
该动物是肉食动物
・
96・
黄褐色AND身上有黑色条纹THEN该动物是虎
RI1 IF该动物是有蹄类动物AND有长脖子AND有
长腿AND身上有暗斑点THEN该动物是长颈鹿
R12 IF该动物是有蹄类动物AND身上有黑色条纹
TttEN该动物是斑马
R13 IF该动物是鸟AND有长脖子AND有长腿AND
不会飞TI-IEN该动物是鸵鸟
R14IF该动物是鸟AND会游泳AND不会飞AND有
黑白二色THEN该动物是企鹅
R15 IF该动物是鸟AND善飞THEN该动物是信天翁
在知识系统IDENTIFIER中,利用上面15条规则,能
识别7种动物。
3.2 IDEN'rWIER的C语言实现
3.2.1知识的表示
要在C语言环境下实现这个知识系统,必须解决两个
问题【,】:
(1)产生式规则内的前提和结论如何表示?
(2)产生式规则如何存储?
经过分析得出,在规则中的前提和结论部分可以用二
元组(变量,变量值)表示,而且一个变量在任何一种情况
下都有可能取两个或多个值。例如,若定义了变量HAS
表示“拥有”,它在规则RII的前提部分就取三个值:长脖
子、长腿、暗斑点。这在c语言中是不允许的 为了解决这
个问题,我们采用结构体来存储规则的前提和结论。该结
构体被定义如下:
咖ct Contype//这个类定义了条件和结论的结构
{
publl ̄:
int variable,value;
Contype*next;
};
其中v ̄able用于存放变量名;value用于存放变量的
值;如前提或结论有多个变量。next用于指向下一个变量,
若只有一个变量,则它为空,前提和结论的事实采用链表
[4。5]的形式表示。在这里。变量用其取值的类型都是int
型的。为了便于理解。我们采用了枚举定义,对于变量的枚
举定义有:
e. ̄num{I{AS,ANⅡ讧AII咖,CAN,coL0R,EYE,EAT。
AND AL,,C^NN0T。0D(}】 r};
维普资讯
2OO6年第1期 罗梅兰:动物识别知识系统在c语言下的实现
(1)在数据库DB中包含了目标,即在DB中含有变量AN.
它们分别表示拥有、动物类型、能(会)、颜色、眼睛、
吃、动物名、不能(不会)、善于。
IMAL,则说明找到了目标,就将DB中变量ANIMAL的值输
对于变量取值的枚举定义如下:
enum{Man,Fei,YuMao,XiaDan,Nai,Rou,Ya,Zhua,
出,作为推理得到的最终结论。(2)当被考察的规则数I
大于规则总数R[FL,ENUM时,则说明从当前给出的初始事
ⅪangQian,FanChu,Yi,Hu ̄H ̄,A.nB&n。TiaoWen,Chang・
BoZi,Cl ̄Tul。HeiSheTiaoWen,YouYor ̄,HeiBal,BuRu・
实中推断不出是哪种动物,则询问是否存在新事实,若存
在,则将新事实加入到DB中,继续进行推理;若没有,则
失败退出。 Type。NiaoType,ShiRouType,TiType,YouTiType,JinQian・
Bao,LlloHu,cIlar I u.BanMa,TuoNiao。Q啦,XinTmn・
Wengl;
它们分别表示毛、飞、羽毛、下蛋、奶等。如规则R11
的前提部分可表示为:
i(ANIMALTYPE。唧),(HAS,cllangB0zi)。(HAS,
ChangTui),(HAs,AnBan)}
其对应的存储结构如图2所示。
AHm .1丫fE _—● HA宕 —-. HAS -—● HA宕
脚 口m审。 ∞ lI】i AnBI也
‘、0‘
圈2规则R11的前提部分的结构表示
另外。产生式规则也采用链表的形式来保存。用于保
存规则的结构体被定义为:
ucl Rule,,这个类定义了规则的结构
i
public:
int RuleNum;
Gontype*Cond.*Res;
Rule*NextRule;
};
其中Rlll ̄lml为规则代号;Cond和Res分别表示规则
的前提部分和结论部分;NextRule指向下一条规则,若为
最后一条规则。则其值为‘、0’。
利用链表来存储规则库主要有两个原因:(1)链表这
种存储方式比较灵活,从理论上讲能够存储任意数目的规
则而且不会浪费太大的存储空间;(2)能很方便地进行规
则的扩展,在推理的过程中,有可能产生一些新的规则,新
的规则可以很方便地加入到链表中。
3.2.2推理机
在该动物识别系统中。可以对提供的初始事实进行推
理,能推出这些事实是哪种动物。它是一个求解的过程,
所以推理方式采用正向推理[2。6]。其推理过程如图3所
示。
在图3所示的推理机中,DB是用来保存数据库的。
规则I匹配成功与否,决定于规则I的前提部分是否在当
前数据库中存在相应的事实。推理机有两种退出方式:
图3推理机流程图
3.2.3推理过程
给定初始事实:有毛发,吃肉,黄褐色,身上有黑色条
纹,即数据库中的初始值有:
{(HAs,Mao),(EAT,Rou).(COLOR,Hllal1 ),
(HAS。HeiSheTiaoWen)}
求解这些初始事实描述的是哪种动物(目标为Am.
MAL,即在总数据库中出现了变量ANIMAL时,推理结束)。
数据库的初始内容为给定的初始事实。数据库中的
已知事实与规则库中的知识是从第一条(即R01)开始,逐
条进行匹配的,当推理开始时,推理机构的工作过程为:
(1)首先从规则库中取出第一条规则R01,检查其前
提部分是否与数据库中的已知事实匹配成功。通过检查,
发现在数据库中存在“有毛发”这个事实,所以匹配成功。
此时R01被执行,并将其结论部分加入到数据库中,作为
新的已知事实。此时数据库变成了:
}(H 。Mao),(EAT,Rou),(COLOR,HlIal ),
(HAs.HeiSheTiaoWen),(ANIMALTYPE,BuRuType)}
(2)接着分别用R02、R03、R04与数据库中的已知事
・
97・
维普资讯
2OO6年第1期 广西大学梧州分校学报
灵活性等特点。
参考文献:
第16卷
实进行匹配,均不成功。但当用规则R05与之进行匹配
时,获得成功,此时执行R05并将其结论部分“该动物是肉
食动物”加入到数据库中,数据库的内容变成了:
{(HAs,Mao),(EAT,Rou),(COLOR,HllaI1gHe),
(HAS,HeiShcTiaoWen),(^NIM^II咖,BuRuType),( -
[1]李运爽,武建军.人工智能的原理及应用[J].山西电子
技术,2034,(2):9—19,35
[2]蔡自兴,徐光桔.人工智能及应用(第三版)[M】.北京:
清华大学出版社,2003. MALTYPE.ShiRouType)}
(3)在此之后,发现R10又与数据库中的巳知事实成
[3]苏小红,陈惠鹏等.c语言程序设计数程[M].北京:电
功匹配.同样地,将规则R10的结论部分加入到数据库中,
子工业出版社,2002.
此时.数据库变成了:
[4]许卓群,张乃孝等.数据结构[M].北京:高等教育出版
{(HAs,Mao),(EAT,Rou),(COLOR,HuangHe).
社,l987.
(HAs,HdSheTiaoWcn),(^NIM^【彻,BuRuType)。(枷-
[5]严蔚敏,吴伟民.数据结构[M】.北京:清华大学出版
MALTYPE。ShiRouType),(^NIM^I.,LaoHu)I
社,1992.
此时在数据库中已经出现了目标,即出现了变量AN.
【6]高济,朱淼良,何钦铭.人工智能基础[M].北京:高等
IMAL,则将变量ANIMAL的值(即LaoHu)作为最终结论。
教育出版社,2002.
至此,问题的求解就结束了。
[作者介绍]罗梅兰(1972一),女,湖南茶陵人,湖南文
4.小结
理学院生命科学系教师,主要研究方向为动物学。
本文利用c语言实现动物识别知识系统,并给出了该
(责任编辑:苏运霖)
知识系统的推理过程。该知识系统具有启发性、透明性、
(上接第90页)
才综合素质的一个极为重要的方面,时代性与文化性的结
三、时代性与文化性并举
合对于大学艺术设计教育具有重要的现实意义。
艺术设计教育体系中的时代性和文化性是两个永远互
参考文献:
补的关系,缺一不可。艺术设计教育的社会服务性决定了
[1]‘‘新世纪中国设计教育发展高层论坛发言摘要”+
它必须与市场接轨,教和学都必须建立在顺应时代潮流的
[2】宁绍强,穆荣兵.从包豪斯的“作坊”到今天的“工作
基础之上。从事艺术设计工作的人员只有掌握社会经济运
室”——设计艺术人才培养的实践环境营造探讨[EB/
行的基本知识和规律。才能具备适应现代科技、现代文化、
OL].http://www.dolcn.COII1.Cr1.
现代生活方式、现代审美观念的能力,才能在日趋激烈的社
[3]王进展.设计艺术人才的知识结构中应该着重加强的三
会竞争中不断前进。艺术设计的专业性决定了艺术设计教
个方面[J].装饰,2O04,(11).
育体系的文化性。面临新时代的要求,设计教育需要培养
[作者简介]吴鑫(1973一),女,四川省成都市人,现任
的是具有创新精神的人才,创新是设计的灵魂,而创新的来
厦门大学艺术教育学院美术系讲师。2003级厦门大学美术
源便是文化的积淀,文化底蕴是设计教育的灵魂。将文化
教育在学硕士。
底蕴融入整个艺术设计教育体系之中,是培养艺术设计人
(责任编辑:易敬源)
・
98-
2024年4月6日发(作者:亥康复)
维普资讯
第l6卷第1期
广西大学梧州分校学报
No.1 vo1.16
2(gJ6年1月
JOⅥ 0F GI『^NcxI I7Nn『】璃 WIEHOU BRAN叫
Jan.2006
动物识别知识系统在C语言下的实现
罗梅兰
(湖南文理学院生命科学系, 湖南常德415000)
[摘要】文章首先介绍了知识系统的基本工作原理,并对动物识别知识系统的问题和要求作了简单的介绍,然后用
c语言实现了动物识别知识系统。在该知识系统中,事实和规则库都采用链表的形式来存储,因为链表是一种比较灵活
的存储方式,便于规则库的扩展。该系统具有启发性、透明性和灵活性等特点。
[关键字】知识系统;动物识别;产生式规则;c语言
[中图分类号]Tm82[文献标识码】A[文章编号]1009—2633(2006)Ol一0095—04
The Implementation of an Animal identiifer
Knowledge System by C Language
lmo Meilan
(Department of Life Science,Htman University of Arts and Science.Changde 412500,China)
ⅪIIa吐:IIIt 8 paper,the essential principles ofknowledge system 8Ieintroduced.andthe requirements。fexpert system ofanimal
identiifers is briefly disetmed.The knowledge system of animal identiifers is pl印lerIted by C language.IfI the b led 8y'8:{e ̄n,the
facts and production rules are stored by linked list which is flexible and eonvenlent for expandiTIg p ̄hetion mlebase.
1  ̄:expert system;animal identiifer;production rule;C 1angI】8ge
1.引言
的复杂问题。【lj
知识系统的研究是当前人工智能领域的研究热点之
2.2知识系统的结构
一
。
本文用c语言来实现一个比较简单的知识系统即动
知识系统的结构是指知识系统各组成部分的构造方
物识别知识系统(II)Dm衄 )。该知识系统通常用PRO.
法和组织形式。n 系统结构选择恰当与否与知识系统的适
IJ 语言来实现。而C语言是最常用的计算机高级语言之
用性和有效性密切相关。
一
,
本文将采用c语言来实现动物识别知识系统IDENTI.
尽管知识系统有众多类型,名称各异,但基本原理框
FIER。
图一致。如图1所示。
2.知识系统的基本工作原理
领域专家
2.1知识系统
用户 知识工程师
尽管知识系统已经得到广泛的应用,但对于究竟什
么是知识系统这个问题,目前尚无统一且精确的定义。一
般地说,知识系统是一个智能计算机程序系统,其内部具
有大量的专家水平的某个领域的知识与经验,能够利用人
类专家的知识和解决问题的方法来解决该领域的问题。
也就是说,知识系统是一个具有大量专门知识与经验的程
序系统,它应用人工智能技术和计算机技术,根据某领域
图1知识系统的一般结构
一
个或多个专家提供的知识和经验,进行推理和判断。模
拟人类专家的决策过程,以便解决那些需要人类专家处理
知识系统的核心是知识库和推理机,其基本工作过程
收稿Et期:2005—11—23
为:系统根据知识库中的知识和用户提供的事实进行推
・
95-
维普资讯
20O6年第1期 广西大学梧州分校学报 第16卷
理。不断地由巳知前提推出一些初步结论。并将这些初步
结论作为中间结果存放在数据库中,然后将其作为新的巳
R07 IF该动物是哺乳动物AND有蹄THEN该动物是
有蹄类动物
知事实进行下一步推理,循环往复,逐步逼近求解目标。
在这个过程中,系统可以通过人机接口不断地与用户交
流,向用户提问,或对用户提出的问题做出解释。
R08 IF该动物是哺乳动物AND反刍THEN该动物是
有蹄类动物
R09 IF该动物是哺乳动物AND是肉食动物AND是
知识库是知识系统的知识存储器,用来存放求解问题
的领域知识(包括事实性知识和启发性知识)。常见的知
黄褐色AND身上有暗斑点THEN该动物是金钱豹
RIO IF该动物是哺乳动物AND是肉食动物AND是
识表示法有:一阶谓词逻辑表示法、产生式规则表示法、语
义网络表示法、框架表示法、脚本表示法、过程表示法、状
态图表示法、面向对象表示法以及一些不确定知识的表示
方法等。
推理机是知识系统中用来实现推理的程序。其主要
功能是模拟领域专家的思维过程,控制并执行对问题的求
解。它能根据当前巳知的事实。利用知识库中的知识,按
一
定的推理方法和控制策略进行推理,直到得出相应的结
论为止。它包括推理方法和控制策略两个部分。推理方
法可以采用精确推理或非精确推理。控制策略分为推理
策略和搜索策略两个部分,其中。搜索策略是关键,它可以
分为非启发式的搜索和启发式搜索。现在主要采用启发式
搜索。
数据库又称为“黑板”或“综合数据库”。它主要用来存
储有关领域问题的初始事实、问题描述、推理过程中得到
的中间结果以及最终结果等信息。
解释机构由一组程序组成,它能够跟踪并记录推理过
程,当用户提出的询问需要给出解释时,它将根据问题的
要求做出相应的处理,最后把解答用约定的形式通过人机
接口输出给用户。目前,大多数知识系统都采用人机对话
的交互式解释方法。
知识获取机构主要实现机器学习。
人机接口是领域专家、知识工程师、一般用户间进行
交互的界面,由一组程序及相应的硬件组成,用于完成输
人输出工作。
3.动物识别知识系统及C语言实现
3.1动物识别知识系统(I【)D ER)
动物识别知识系统IDEN'rIFI ̄是一个用于识别动物
的分析系统。从本质上讲这个系统是用于分析和分类的。
在知识系统Ⅲ 仰}Ⅱ丑中,知识库中的知识采用的是确
定性知识,并用产生式规则来表示。本系统能够识别7种
动物。知识库中共有以下l5条规则。
RO1 IF该动物有毛发THEN该动物是哺乳动物
R02IF该动物有奶删该动物是哺乳动物
R03 IF该动物有羽毛THEN该动物是鸟
R04IF该动物会飞AND会下蛋THEN该动物是鸟
R05 IF该动物吃肉删该动物是肉食动物
R06 IF该动物有犬齿AND有爪AND眼盯前方THEN
该动物是肉食动物
・
96・
黄褐色AND身上有黑色条纹THEN该动物是虎
RI1 IF该动物是有蹄类动物AND有长脖子AND有
长腿AND身上有暗斑点THEN该动物是长颈鹿
R12 IF该动物是有蹄类动物AND身上有黑色条纹
TttEN该动物是斑马
R13 IF该动物是鸟AND有长脖子AND有长腿AND
不会飞TI-IEN该动物是鸵鸟
R14IF该动物是鸟AND会游泳AND不会飞AND有
黑白二色THEN该动物是企鹅
R15 IF该动物是鸟AND善飞THEN该动物是信天翁
在知识系统IDENTIFIER中,利用上面15条规则,能
识别7种动物。
3.2 IDEN'rWIER的C语言实现
3.2.1知识的表示
要在C语言环境下实现这个知识系统,必须解决两个
问题【,】:
(1)产生式规则内的前提和结论如何表示?
(2)产生式规则如何存储?
经过分析得出,在规则中的前提和结论部分可以用二
元组(变量,变量值)表示,而且一个变量在任何一种情况
下都有可能取两个或多个值。例如,若定义了变量HAS
表示“拥有”,它在规则RII的前提部分就取三个值:长脖
子、长腿、暗斑点。这在c语言中是不允许的 为了解决这
个问题,我们采用结构体来存储规则的前提和结论。该结
构体被定义如下:
咖ct Contype//这个类定义了条件和结论的结构
{
publl ̄:
int variable,value;
Contype*next;
};
其中v ̄able用于存放变量名;value用于存放变量的
值;如前提或结论有多个变量。next用于指向下一个变量,
若只有一个变量,则它为空,前提和结论的事实采用链表
[4。5]的形式表示。在这里。变量用其取值的类型都是int
型的。为了便于理解。我们采用了枚举定义,对于变量的枚
举定义有:
e. ̄num{I{AS,ANⅡ讧AII咖,CAN,coL0R,EYE,EAT。
AND AL,,C^NN0T。0D(}】 r};
维普资讯
2OO6年第1期 罗梅兰:动物识别知识系统在c语言下的实现
(1)在数据库DB中包含了目标,即在DB中含有变量AN.
它们分别表示拥有、动物类型、能(会)、颜色、眼睛、
吃、动物名、不能(不会)、善于。
IMAL,则说明找到了目标,就将DB中变量ANIMAL的值输
对于变量取值的枚举定义如下:
enum{Man,Fei,YuMao,XiaDan,Nai,Rou,Ya,Zhua,
出,作为推理得到的最终结论。(2)当被考察的规则数I
大于规则总数R[FL,ENUM时,则说明从当前给出的初始事
ⅪangQian,FanChu,Yi,Hu ̄H ̄,A.nB&n。TiaoWen,Chang・
BoZi,Cl ̄Tul。HeiSheTiaoWen,YouYor ̄,HeiBal,BuRu・
实中推断不出是哪种动物,则询问是否存在新事实,若存
在,则将新事实加入到DB中,继续进行推理;若没有,则
失败退出。 Type。NiaoType,ShiRouType,TiType,YouTiType,JinQian・
Bao,LlloHu,cIlar I u.BanMa,TuoNiao。Q啦,XinTmn・
Wengl;
它们分别表示毛、飞、羽毛、下蛋、奶等。如规则R11
的前提部分可表示为:
i(ANIMALTYPE。唧),(HAS,cllangB0zi)。(HAS,
ChangTui),(HAs,AnBan)}
其对应的存储结构如图2所示。
AHm .1丫fE _—● HA宕 —-. HAS -—● HA宕
脚 口m审。 ∞ lI】i AnBI也
‘、0‘
圈2规则R11的前提部分的结构表示
另外。产生式规则也采用链表的形式来保存。用于保
存规则的结构体被定义为:
ucl Rule,,这个类定义了规则的结构
i
public:
int RuleNum;
Gontype*Cond.*Res;
Rule*NextRule;
};
其中Rlll ̄lml为规则代号;Cond和Res分别表示规则
的前提部分和结论部分;NextRule指向下一条规则,若为
最后一条规则。则其值为‘、0’。
利用链表来存储规则库主要有两个原因:(1)链表这
种存储方式比较灵活,从理论上讲能够存储任意数目的规
则而且不会浪费太大的存储空间;(2)能很方便地进行规
则的扩展,在推理的过程中,有可能产生一些新的规则,新
的规则可以很方便地加入到链表中。
3.2.2推理机
在该动物识别系统中。可以对提供的初始事实进行推
理,能推出这些事实是哪种动物。它是一个求解的过程,
所以推理方式采用正向推理[2。6]。其推理过程如图3所
示。
在图3所示的推理机中,DB是用来保存数据库的。
规则I匹配成功与否,决定于规则I的前提部分是否在当
前数据库中存在相应的事实。推理机有两种退出方式:
图3推理机流程图
3.2.3推理过程
给定初始事实:有毛发,吃肉,黄褐色,身上有黑色条
纹,即数据库中的初始值有:
{(HAs,Mao),(EAT,Rou).(COLOR,Hllal1 ),
(HAS。HeiSheTiaoWen)}
求解这些初始事实描述的是哪种动物(目标为Am.
MAL,即在总数据库中出现了变量ANIMAL时,推理结束)。
数据库的初始内容为给定的初始事实。数据库中的
已知事实与规则库中的知识是从第一条(即R01)开始,逐
条进行匹配的,当推理开始时,推理机构的工作过程为:
(1)首先从规则库中取出第一条规则R01,检查其前
提部分是否与数据库中的已知事实匹配成功。通过检查,
发现在数据库中存在“有毛发”这个事实,所以匹配成功。
此时R01被执行,并将其结论部分加入到数据库中,作为
新的已知事实。此时数据库变成了:
}(H 。Mao),(EAT,Rou),(COLOR,HlIal ),
(HAs.HeiSheTiaoWen),(ANIMALTYPE,BuRuType)}
(2)接着分别用R02、R03、R04与数据库中的已知事
・
97・
维普资讯
2OO6年第1期 广西大学梧州分校学报
灵活性等特点。
参考文献:
第16卷
实进行匹配,均不成功。但当用规则R05与之进行匹配
时,获得成功,此时执行R05并将其结论部分“该动物是肉
食动物”加入到数据库中,数据库的内容变成了:
{(HAs,Mao),(EAT,Rou),(COLOR,HllaI1gHe),
(HAS,HeiShcTiaoWen),(^NIM^II咖,BuRuType),( -
[1]李运爽,武建军.人工智能的原理及应用[J].山西电子
技术,2034,(2):9—19,35
[2]蔡自兴,徐光桔.人工智能及应用(第三版)[M】.北京:
清华大学出版社,2003. MALTYPE.ShiRouType)}
(3)在此之后,发现R10又与数据库中的巳知事实成
[3]苏小红,陈惠鹏等.c语言程序设计数程[M].北京:电
功匹配.同样地,将规则R10的结论部分加入到数据库中,
子工业出版社,2002.
此时.数据库变成了:
[4]许卓群,张乃孝等.数据结构[M].北京:高等教育出版
{(HAs,Mao),(EAT,Rou),(COLOR,HuangHe).
社,l987.
(HAs,HdSheTiaoWcn),(^NIM^【彻,BuRuType)。(枷-
[5]严蔚敏,吴伟民.数据结构[M】.北京:清华大学出版
MALTYPE。ShiRouType),(^NIM^I.,LaoHu)I
社,1992.
此时在数据库中已经出现了目标,即出现了变量AN.
【6]高济,朱淼良,何钦铭.人工智能基础[M].北京:高等
IMAL,则将变量ANIMAL的值(即LaoHu)作为最终结论。
教育出版社,2002.
至此,问题的求解就结束了。
[作者介绍]罗梅兰(1972一),女,湖南茶陵人,湖南文
4.小结
理学院生命科学系教师,主要研究方向为动物学。
本文利用c语言实现动物识别知识系统,并给出了该
(责任编辑:苏运霖)
知识系统的推理过程。该知识系统具有启发性、透明性、
(上接第90页)
才综合素质的一个极为重要的方面,时代性与文化性的结
三、时代性与文化性并举
合对于大学艺术设计教育具有重要的现实意义。
艺术设计教育体系中的时代性和文化性是两个永远互
参考文献:
补的关系,缺一不可。艺术设计教育的社会服务性决定了
[1]‘‘新世纪中国设计教育发展高层论坛发言摘要”+
它必须与市场接轨,教和学都必须建立在顺应时代潮流的
[2】宁绍强,穆荣兵.从包豪斯的“作坊”到今天的“工作
基础之上。从事艺术设计工作的人员只有掌握社会经济运
室”——设计艺术人才培养的实践环境营造探讨[EB/
行的基本知识和规律。才能具备适应现代科技、现代文化、
OL].http://www.dolcn.COII1.Cr1.
现代生活方式、现代审美观念的能力,才能在日趋激烈的社
[3]王进展.设计艺术人才的知识结构中应该着重加强的三
会竞争中不断前进。艺术设计的专业性决定了艺术设计教
个方面[J].装饰,2O04,(11).
育体系的文化性。面临新时代的要求,设计教育需要培养
[作者简介]吴鑫(1973一),女,四川省成都市人,现任
的是具有创新精神的人才,创新是设计的灵魂,而创新的来
厦门大学艺术教育学院美术系讲师。2003级厦门大学美术
源便是文化的积淀,文化底蕴是设计教育的灵魂。将文化
教育在学硕士。
底蕴融入整个艺术设计教育体系之中,是培养艺术设计人
(责任编辑:易敬源)
・
98-