桑桑学院·言采其莫
相关资料~对熊进行分类的基于规则的专家系统 上一篇下一篇

谓词:
 
Born(X) 胎生or 卵生 Skin(X) 皮毛or羽毛or光滑皮肤 Hand(X) 掌部特征
Animal(X) 动物分类 Color(X) 毛色(肤色) Chest(X) 胸部特征
Live(X) 居住地域 Eye(X) 眼睛特征 Leg(X) 下肢特征
Size(X) 体形大小 Ear(X) 耳朵特征    
Eat(X) 素食or肉食or杂食 Tongue(X) 舌头特征 Other(X) 其他特征
Nose(X) 鼻子特征 Weight(X) 体重    

规则:

1.
IF on_cl (Born(胎生)) ∧ on_cl (Skin(皮毛)) ∧ not (on_cl (Animal(哺乳动物)))
THEN put_on_cl (Animal(哺乳动物))
2.
IF on_cl (Weight(大于100公斤)) ∧ not (on_cl (Size(大)))
THEN put_on_cl (Size(大))
3.
IF on_cl (Animal(哺乳动物)) ∧ on_cl (Live(陆地)) ∧ on_cl (Size(大))
∧ on_cl (Eat(杂食)) ∧ on_cl (Ear(小)) ∧ on_cl (Ear(圆))
∧ on_cl (Hand(五趾)) ∧ on_cl (Other(游泳)) ∧ on_cl (Other(后肢站立))
∧ not (on_cl (Live(非洲)) ∧ not (on_cl (Live(南极洲))) ∧ not (on_cl (Live(大洋洲)))
∧ not (on_cl (Animal(熊)))
THEN put_on_cl (Animal(熊))
4.
IF (on_cl (Live(马来西亚)) ∨ on_cl (Live(印度尼西亚)) ∨ on_cl (Live(泰国))
∨ on_cl (Live(老挝)) ∨ on_cl (Live(越南)) ∨ on_cl (Live(缅甸))
∨ on_cl (Live(孟加拉)) ∨ on_cl (Live(柬埔寨))) ∧ not (on_cl (Live(东南亚)))
THEN put_on_cl (Live(东南亚))
5.
IF on_cl (Live(东南亚)) ∧ on_cl (Live(丛林)) ∧ not (on_cl (Live(东南亚热带丛林)))
THEN put_on_cl (Live(东南亚热带丛林))
6.
IF (on_cl (Live(美国)) ∨ on_cl (Live(加拿大)) ∨ on_cl (Live(墨西哥)))
∧ not (on_cl (Live(北美洲)))
THEN put_on_cl (Live(北美洲))
7.
IF (on_cl (Live(美国)) ∨ on_cl (Live(加拿大)) ∨ on_cl (Live(格陵兰)))
∧ on_cl (Live(北极圈)) ∧ not (on_cl (Live(北极冰封海域)))
THEN put_on_cl (Live(北极冰封海域))
8.
IF (on_cl (Live(印度)) ∨ on_cl (Live(尼泊尔)) ∨ on_cl (Live(斯里兰卡)))
∧ not (on_cl (Live(南亚)))
THEN put_on_cl (Live(南亚))
9.
IF on_cl (Live(南亚)) ∧ on_cl (Live(丛林)) ∧ not (on_cl (Live(南亚丛林)))
THEN put_on_cl (Live(南亚丛林))
10.
IF (on_cl (Live(日本)) ∨ on_cl (Live(中国)) ∨ on_cl (Live(东西伯利亚))
∨ on_cl (Live(朝鲜半岛)) ∨ on_cl (Live(蒙古))) ∧ not (on_cl (Live(东亚)))
THEN put_on_cl (Live(东亚))
11.
IF on_cl (Live(东亚)) ∧ on_cl (Live(森林)) ∧ not (on_cl (Live(东亚森林)))
THEN put_on_cl (Live(东亚森林))
12.
IF (on_cl (Live(东亚)) ∨ on_cl (Live(东南亚)) ∨ on_cl (Live(南亚)))
∧ not (on_cl (Live(亚洲)))
THEN put_on_cl (Live(亚洲))
13.
IF (on_cl (Color(咖啡)) ∨ on_cl (Color(土黄)) ∨ on_cl (Color(褐))
∨ on_cl (Color(米))) ∧ not (on_cl (Color(棕))) THEN put_on_cl (Color(棕))
14.
IF on_cl (Animal(熊)) ∧ on_cl (Live(北极冰封海域)) ∧ on_cl (Color(白))
∧ not (on_cl (Animal(北极熊)))
THEN put_on_cl (Animal(北极熊))
15.
IF on_cl (Animal(熊)) ∧ on_cl (Tongue(黑)) ∧ not (on_cl (Animal(北极熊)))
THEN put_on_cl (Animal(北极熊))
16.
IF on_cl (Animal(熊)) ∧ on_cl (Nose(黑)) ∧ on_cl (Color(白))
∧ not (on_cl (Animal(北极熊)))
THEN put_on_cl (Animal(北极熊))
17.
IF on_cl (Animal(熊)) ∧ on_cl (Hand(有蹼)) ∧ not (on_cl (Animal(北极熊)))
THEN put_on_cl (Animal(北极熊))
18.
IF on_cl (Animal(熊)) ∧ on_cl (Live(北美洲)) ∧ on_cl (Eye(小))
∧ on_cl (Color(白)) ∧ not (on_cl (Live(北极冰封海域)))
∧ not (on_cl (Animal(北美黑熊)))
THEN put_on_cl (Animal(北美黑熊))
19.
IF on_cl (Animal(熊)) ∧ on_cl (Live(北美洲)) ∧ on_cl (Eye(小))
∧ on_cl (Color(黑)) ∧ not (on_cl (Live(北极冰封海域)))
∧ not (on_cl (Animal(北美黑熊)))
THEN put_on_cl (Animal(北美黑熊))
20.
IF on_cl (Animal(熊)) ∧ on_cl (Live(北美洲)) ∧ on_cl (Color(棕))
∧ on_cl (Weight(不大于250公斤)) ∧ not (on_cl (Animal(北美黑熊)))
THEN put_on_cl (Animal(北美黑熊))
21.
IF on_cl (Animal(熊)) ∧ on_cl (Live(北美洲)) ∧ on_cl (Eye(小))
∧ on_cl (Color(蓝)) ∧ not (on_cl (Live(北极冰封海域)))
∧ not (on_cl (Animal(北美黑熊)))
THEN put_on_cl (Animal(北美黑熊))
22.
IF on_cl (Animal(熊)) ∧ on_cl (Live(东南亚热带丛林)) ∧ on_cl (Leg(O型))
∧ not (on_cl (Animal(马来熊)))
THEN put_on_cl (Animal(马来熊))
23.
IF on_cl (Animal(熊)) ∧ on_cl (Chest(黄色毛斑)) ∧ not (on_cl (Animal(马来熊)))
THEN put_on_cl (Animal(马来熊))
24.
IF on_cl (Animal(熊)) ∧ on_cl (Live(东南亚热带丛林)) ∧ on_cl (Tongue(特别长))
∧ not (on_cl (Animal(马来熊)))
THEN put_on_cl (Animal(马来熊))
25.
IF on_cl (Animal(熊)) ∧ on_cl (Live(南美洲)) ∧ on_cl (Eye(白毛))
∧ on_cl (Color(棕色)) ∧ not (on_cl (Animal(眼睛熊)))
THEN put_on_cl (Animal(眼睛熊))
26.
IF on_cl (Animal(熊)) ∧ on_cl (Live(南美洲)) ∧ on_cl (Other(三肢奔跑))
∧ not (on_cl (Animal(眼睛熊)))
THEN put_on_cl (Animal(眼睛熊))
27.
IF on_cl (Animal(熊)) ∧ on_cl (Live(南亚丛林)) ∧ on_cl (Nose(无毛))
∧ on_cl (Nose(鼻孔可关闭)) ∧ not (on_cl (Animal(懒熊)))
THEN put_on_cl (Animal(懒熊))
28.
IF on_cl (Animal(熊)) ∧ on_cl (Live(东亚森林)) ∧ on_cl (Color(黑))
∧ on_cl (Chest(白月牙型毛斑)) ∧ not (on_cl (Animal(亚洲黑熊)))
THEN put_on_cl (Animal(亚洲黑熊))
29.
IF on_cl (Animal(熊)) ∧ on_cl (Live(欧洲)) ∧ on_cl (Color(棕))
∧ not (on_cl (Animal(棕熊)))
THEN put_on_cl (Animal(棕熊))
30.
IF on_cl (Animal(熊)) ∧ on_cl (Live(亚洲)) ∧ not (on_cl (Animal(马来熊)))
∧ not (on_cl (Animal(懒熊))) ∧ not (on_cl (Chest(白月牙型毛斑)))
∧ not (on_cl (Animal(棕熊)))
THEN put_on_cl (Animal(棕熊))
31.
IF on_cl (Animal(熊)) ∧ on_cl (Live(北美洲)) ∧ on_cl (Color(灰))
∧ not (on_cl (Animal(棕熊)))
THEN put_on_cl (Animal(棕熊))
32.
IF on_cl (Animal(熊)) ∧ on_cl (Live(北美洲)) ∧ on_cl (Color(棕))
∧ on_cl (Weight(大于250公斤)) ∧ not (on_cl (Animal(棕熊)))
THEN put_on_cl (Animal(棕熊))

匹配原则:
1.    选用第一个(或几个)可使用的信息,参与规则匹配。
2.    最近产生的信息,先使用。
3.    按照序号从小到大,依次匹配规则。
4.    没有一条规则可成立时,停机。输出最后一条规则产生的信息。

示例1:
设:预先在知识库中存放有以下事实:
Animal(熊) Live(加拿大) Live(北极圈) Color(白)
 
  知识库中内容 选用信息 选用规则 加入知识库的新信息
1 Animal(熊)  Live(加拿大)
Live(北极圈) Color(白)
Live(加拿大) R6 Live(北美洲)
2 Animal(熊) Live(加拿大)
Live(北极圈) Color(白)
Live(北美洲)
Live(加拿大)
Live(北极圈)
R7 Live(北极冰封海域)
3 Animal(熊) Live(加拿大)
Live(北极圈) Color(白)
Live(北美洲) Live(北极冰封海域)
Animal(熊)
Color(白)
Live(北极冰封海域)
R14 Animal(北极熊)
4 Animal(熊) Live(加拿大)
Live(北极圈) Color(白)
Live(北美洲) Live(北极冰封海域)
Animal(北极熊)
  停机 输出Animal(北极熊)

结论:
Animal(熊) Live(加拿大) Live(北极圈) Color(白)
具有以上特征的动物,一般是北极熊。

示例2:
设:预先在知识库中存放有以下事实:
Animal(熊) Live(越南) Live(丛林) Color(黑)

  知识库中内容 选用信息 选用规则 加入知识库的新信息
1 Animal(熊) Live(越南)
Live(丛林) Color(黑)
Live(越南) R4 Live(东南亚)
2 Animal(熊) Live(越南)
Live(丛林) Color(黑)
Live(东南亚)
Live(丛林)
Live(东南亚)
R5 Live(东南亚热带丛林)
3 Animal(熊) Live(越南)
Live(丛林) Color(黑)
Live(东南亚) Live(东南亚热带丛林)
Live(东南亚) R14 Live(亚洲)
4 Animal(熊) Live(越南)
Live(丛林) Color(黑)
Live(东南亚) Live(东南亚热带丛林)
Live(亚洲)
Animal(熊)
Live(亚洲)
R30 Animal(棕熊)
5
 
Animal(熊) Live(越南)
Live(丛林) Color(黑)
Live(东南亚) Live(东南亚热带丛林)
Live(亚洲) Animal(棕熊)
  停机 输出Animal(棕熊)

结论:
Animal(熊) Live(越南) Live(丛林) Color(黑)
具有以上特征的动物,一般是棕熊。