欢迎来到天天文库
浏览记录
ID:20622367
大小:364.48 KB
页数:9页
时间:2018-10-14
《动物识别专家系统设计文档》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、设计文档一、设计目的1.理解并掌握基于规则系统的表示与推理2.学会编写小型的生产式系统,理解正向推理和反向推理的过程以及两者的区别二、系统描述这是一个用来识别老虎(tiger)、金钱豹(cheetah)、斑马(zebra)、长颈鹿(giraffe)、企鹅(penguin)、鸟它鸟(ostrich)和信天翁(albatross)等七种动物的产生式ES。井15条规则、可以识别七种动物,这些规则既少乂简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东四的新规则来取代这些规则。三、运行环境PC机、V
2、isualprolog四、系统分析由上述规则可看出,虽然该系统是用来识别七种动物的,但在规则库中并没有简单地只设计七条规则,而是设计了15条,其基本方法是,首先根据一些比较简单的条件,如“有毛发”、“有羽毛”、“会飞”等条件将动物粗略分成哺乳动物、鸟、食肉动物三大类,然后随着条件的增加,逐步缩小分类范围,最后给出分别识别七种动物的规则。用此规则可形成各种动物的推理网络。图1为有关“长颈鹿”的规则形成的正向推理网络,同理可画出其它动物的推理网络。r7有暗斑点图1有关“长颈鹿”的规则形成的(正向)推理网络
3、在推理网络中,最高节点如“长颈鹿”为结论(正向推理)或假设(反向推理)节点。在正向推理情况下,该节点没冇输出线,当推理到本节点吋,推理就结束;中间节点既有输入线,乂有输出线,如节点“哺乳动物”,当推理到中间节点时,系统会自动将此中间结果存入综合数据库;终端节点也称为事实节点,如节点“长脖子”、“有毛发”等,这些节点没有输入线,该事实是否为真可通过人机接口询问用户,然后加入综合数据库中。R9RIORllR12R13R14R15方阁2动物识别系统的推理链结构五、系统结构图3V家系统原理图本系统采用产生式结
4、构,它包含三个主要部分:知识库、综合数据库和推理机。(1)知识库。在本系统当屮,知识库屮的知识用产生式规则來表示。本系统能够识别7种动物,知识库中共有以下15条规则:rl:IF该动物有毛发THEN该动物是哺乳动物r2:IF该动物有奶THEN该动物是哺乳动物r3:IF该动物有羽毛THEN该动物是鸟r4:IF该动物会飞AND会下蛋THEN该动物是鸟r5:IF该动物吃肉THEN该动物是食肉动物r6:TF该动物冇犬齿AND冇爪AND眼盯前方THEN该动物是食肉动物r7:IF该动物是哺乳动物AND有蹄THEN该
5、动物是有蹄类动物r8:IF该动物是哺乳动物AND嚼反刍THEN该动物是有蹄类动物r9:TF该动物是哺乳动物AND食肉AND是黄褐色AND冇黑色斑点,THEN该动物是金钱豹rlO:IF该动物是哺乳动物AND食肉AND是黄褐色AND有黑色条纹,THEN该动物是虎rll:IF该动物是有蹄类动物AND有长脖子AND有长腿AND有暗斑点THEN该动物是长颈鹿rl2:IF该动物是有蹄类动物AND有黑色条纹THEN该动物是斑马rl3:IF该动物是鸟AND不会飞AND有长脖子AND有长腿AND有黑白色THEN该动物是
6、鸵鸟rl4:IF该动物是鸟AND不会飞AND会游泳AND有黑白色THEN该动物是企鹅rl5:IF该动物是鸟AND善飞THEN该动物是信天翁⑵综合数据库。综合数据库用来存放问题求解过程中各种当前信息,例如问题的原始事实、中间结论及最终结论,它的内容是动态和不断变化的。⑶推理机。在本系统中,我们采用正向推理,并II是精确推理。推理过程如图3所示取出规卜阁4正昀推理流程阁六、PROLOG源程序#include@,,main.pronclassmainopencore"下面为谓词说明V►-databasexp
7、ositive(symbol'symbol).xnegative(symbolfsymbol).predicatesclasslnfo:core::classlnfo.%@shortClassinformationpredicate.%@detailThispredicaterepresentsinfomationpredicateofthisclass.%@endpredicatesrun:core::runnable.►run.animal—is(symbol).itjs(symbol).posi
8、tive(symbolfsymbol).negative(symbolzsymbol).clear_facts.remember(symbolrsymbol).ask(symbolrsymbol).endclassmainimplementmainopencoreconstantsclassName=nmain".classVersion=,,n.clausesclassInfo(classNamezclassVersion)./*下面为推理过程clau
此文档下载收益归作者所有