最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

动物识别知识系统在C语言下的实现

IT圈 admin 50浏览 0评论

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- 

发布评论

评论列表 (0)

  1. 暂无评论