动物识别专家系统设计文档

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

动物识别专家系统

设计文档

一、设计目的

1.理解并掌握基于规则系统的表示与推理

2.学会编写小型的生产式系统,理解正向推理和反向推理的过程以及两者的区

二、系统描述

这是一个用来识别老虎(tiger)、金钱豹(cheetah)、斑马(zebra)、长颈鹿(giraffe)、企鹅(penguin)、鸵鸟(ostrich)和信天翁(albatross)等七种动物的产生式ES。共15条规则、可以识别七种动物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。

三、运行环境

PC机、Visual prolog

四、系统分析

由上述规则可看出,虽然该系统是用来识别七种动物的,但在规则库中并没有简单地只设计七条规则,而是设计了15条,其基本方法是,首先根据一些比较简单的条件,如“有毛发”、“有羽毛”、“会飞”等条件将动物粗略分成哺乳动物、鸟、食肉动物三大类,然后随着条件的增加,逐步缩小分类范围,最后给出分别识别七种动物的规则。用此规则可形成各种动物的推理网络。

图1为有关“长颈鹿”的规则形成的正向推理网络,同理可画出其它动物的推理网络。

图1 有关“长颈鹿”的规则形成的(正向)推理网络

在推理网络中,最高节点如“长颈鹿”为结论(正向推理)或假设(反向推理)节点。在正向推理情况下,该节点没有输出线,当推理到本节点时,推理就结束;中间节点既有输入线,又有输出线,如节点“哺乳动物”,当推理到中间节点时,系统会自动将此中间结果存入综合数据库;终端节点也称为事实节点,如节点“长脖子”、“有毛发”等,这些节点没有输入线,该事实是否为真可通过人机接口询问用户,然后加入综合数据库中。

图2 动物识别系统的推理链结构五、系统结构

图3 专家系统原理图善

R9 R10 R11 R12 R13 R14 R15

本系统采用产生式结构,它包含三个主要部分:知识库、综合数据库和推理机。

⑴知识库。

在本系统当中,知识库中的知识用产生式规则来表示。本系统能够识别7种动物,知识库中共有以下15条规则:

r1: IF 该动物有毛发 THEN 该动物是哺乳动物

r2: IF 该动物有奶 THEN 该动物是哺乳动物

r3: IF 该动物有羽毛 THEN 该动物是鸟

r4: IF 该动物会飞 AND 会下蛋 THEN 该动物是鸟

r5: IF 该动物吃肉 THEN 该动物是食肉动物

r6: IF 该动物有犬齿 AND 有爪 AND 眼盯前方 THEN 该动物是食肉动物r7: IF 该动物是哺乳动物 AND 有蹄 THEN 该动物是有蹄类动物

r8: IF 该动物是哺乳动物 AND 嚼反刍 THEN 该动物是有蹄类动物

r9: IF 该动物是哺乳动物 AND 食肉 AND 是黄褐色 AND 有黑色斑点,THEN 该动物是金钱豹

r10: IF 该动物是哺乳动物 AND 食肉 AND 是黄褐色 AND 有黑色条纹,THEN 该动物是虎

r11: IF 该动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND 有暗斑点THEN 该动物是长颈鹿

r12: IF 该动物是有蹄类动物 AND 有黑色条纹 THEN 该动物是斑马

r13: IF 该动物是鸟 AND 不会飞 AND 有长脖子 AND 有长腿 AND 有黑白色 THEN 该动物是鸵鸟

r14: IF 该动物是鸟 AND不会飞 AND 会游泳 AND 有黑白色 THEN 该动物是企鹅

r15: IF 该动物是鸟 AND善飞 THEN 该动物是信天翁

⑵综合数据库。

综合数据库用来存放问题求解过程中各种当前信息,例如问题的原始事实、中间结论及最终结论,它的内容是动态和不断变化的。

⑶推理机。

在本系统中,我们采用正向推理,并且是精确推理。推理过程如图3所示。

图4 正向推理流程图

六、PROLOG源程序

七、C++源程序及运行结果

C++代码详见Animal identification.cpp 运行结果:

八、总结

从专家系统的原理框图出发, 简单阐述了专家系统的基本工作原理。并在此基础上, 采用精确推理的方法, 运用PROLOG 语言实现了一个简单的动物识别专家系统。

相关文档
最新文档