- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动物识别专家系统
动物识别专家系统是流行的专家系统实验模型,它用产生式规则来表示知
识,共15 条规则、可以识别七种动物,这些规则既少又简单,可以改造他
们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。动物识别15 条规则的中文表示是:
规则1:
如果:动物有毛发
则 :该动物是哺乳动物
规则2:
如果:动物有奶
则 :该单位是哺乳动物
规则3:
如果:该动物有羽毛
则 :该动物是鸟
规则4:
如果:动物会飞,且会下蛋
则 :该动物是鸟
规则5:
如果:动物吃肉
则 :该动物是肉食动物
规则6:
如果:动物有犬齿,且有爪,且眼盯前方
则 :该动物是食肉动物
规则7:
如果:动物是哺乳动物,且有蹄
则 :该动物是有蹄动物
规则8:
如果:动物是哺乳动物,且是反刍动物
则 :该动物是有蹄动物
规则9:
如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点
则 :该动物是豹
规则10:
如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹
则 :该动物是虎
规则11:
如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类
则 :该动物是长颈鹿
规则12:
如果:动物有黑条纹,且是有蹄类动物
则 :该动物是斑马
规则13:
如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞
则 :该动物是鸵鸟
规则14:
如果:动物是鸟,且不会飞,且会游泳,且是黑色的
则 :该动物是企鹅
规则15:
如果:动物是鸟,且善飞
则 :该动物是信天翁
动物分类专家系统由15 条规则组成,可以识别七种动物,在15 条规则中,
共出现 30 个概念(也称作事实),共30 个事实,每个事实给一个编号,从编
号从1 到30,在规则对象中我们不存储事实概念,只有该事实的编号,同样规
则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:
char *str[]={chew_cud反刍动物,hooves蹄类动物,mammal哺乳动物,forward_eyes眼盯前方,
claws有爪,pointed_teeth有犬齿,eat_meat吃肉,lay_eggs会下蛋,fly会飞,
feathers有羽毛,ungulate有蹄,carnivore食肉动物,bird鸟,give_milk能产奶,
has_hair有毛发,fly_well善飞,blackwhite_color黑白色,can_swim会游泳,
long_legs长腿,long_neck长脖子,black_stripes黑条纹,dark_spots黑斑点,
tawny_color黄褐色,albatross信天翁,penguin企鹅,ostrich驼鸟,zebra斑马,
giraffe长颈鹿,tiger老虎,cheetah猎豹,0};
程序用编号序列的方式表达了产生式规则,如资料中规则15,如果动物是
鸟,且善飞,则该动物是信天翁。相应的规则数组第七条是{16,13,0,0,0,
0},第十三个是“bird”(鸟),如果事实成立,询问使用者下一个事实,第十
六个“fly_weil”(善飞),如果也成立,则查找结论断言编号数组{30,29,28,
27,26,25,24,3,3,13,12,12,11,11,0}中第七个“24”,这里24 对应事实数组中
的“albatross”(信天翁)。
上述就是程序的推理过程,也是程序中的重点,该部分是由规则类(类rul
e)中的Query 方法实现。
程序完整代码:
#include string.h
#include math.h
#include stdio.h
#include iostream.h
#define True 1
#define False 0
#define DontKnow -1
char *str[]={chew_cud反刍动物,hooves蹄类动物,mammal哺乳动物,forward_eyes眼盯前方,
claws有爪,pointed_teeth有犬齿,eat_meat吃肉,lay_eggs会下蛋,fly会飞,
feathers有羽毛,ungulate有蹄,carnivore食肉动物,bird鸟,give_milk能产奶,
has_hair有毛发,fly_well善飞,blackwhite_color黑白色,can_swim会游泳,
long_legs长腿,long_neck长脖子,black_stripes黑条纹,dark_spots黑斑点,
tawny_color黄褐色,albatross信天翁,penguin企鹅,ostrich驼鸟,zebra斑马,
giraffe长颈鹿,tiger老虎,cheetah猎豹,0};
int rulep[][6]={{22,23,12
文档评论(0)