参考资料: 《人工智能通识教程》——王万良
一、实现效果
二、运行环境
Pycharm 社区版 + Anaconda3
三、相关知识
3.1 产生式系统
规则库
:用于描述相应领域内知识的产生式集合
综合数据库
:用于存放问题求解过程中各种当前信息的数据结构
控制系统
:由程序组成,负责整个产生式系统的运行,实现对问题的求解
3.2 控制系统(程序)的工作
- 从
规则库
中选择与综合数据库
中的已知事实进行匹配 - 匹配成功的规则可能不止一条,进行冲突消解
- 执行规则时,若右部是一或多个(1) 结论,则把这些结论加入到
综合数据库
中,(2) 操作,则执行 - 对于不确定知识,执行规则时,根据算法计算结论的不确定性
- 检查
综合数据库
中是否包含了最终结论,决定是否停止系统的运行
本次实验是实现识别虎、金钱豹、斑马、长颈鹿、鸵鸟、且、信天翁共七种动物的产生式系统
3.3 规则库总结
1有毛发 2有奶 3 有羽毛 4会飞 5会下蛋
6吃肉 7犬齿 8有爪 9眼盯前方 10有蹄
11反刍动物 12黄褐色 13暗斑点 14黑色条纹 15长脖子
16有长腿 17不会飞 18有黑白二色 19会游泳 20善飞
21哺乳类 22鸟类 23食肉类 24有蹄类 25金钱豹
26虎 27长颈鹿 28斑马 29鸵鸟 30企鹅 31信天翁
【R1】1 =>21 【R2】2 => 21 【R3】3 => 22 【R4】4 + 5 => 22 【R5】6 => 23
【R6】7 + 8 + 9 => 23 【R7】10+ 21 => 24 【R8】11 + 21 => 24
【R9】6 + 12 + 13 +21 => 25 【R10】12 + 14 + 21 + 23 => 26
【R11】15 + 16 + 13 + 24 => 27 【R12】 14 + 10 => 28
【R13】15 + 16 + 17 + 18 + 22 => 29 【R14】 17 + 18 + 19 + 22 => 30
【R15】20 + 22 => 31
四、程序
4.1 流程图
4.2 编写程序
测试数据:
已知初始事实(综合数据库
):
暗斑点、长脖子、长腿、奶、蹄
rule.txt
[有毛发, 有奶,有羽毛,会飞, 会下蛋,吃肉,犬齿,有爪,眼盯前方,有蹄,反刍动物,黄褐色,暗斑点,黑色条纹,长脖子,有长腿,不会飞,有黑白二色,会游泳,善飞,哺乳类,鸟类,食肉类,有蹄类,金钱豹,虎,长颈鹿, 斑马,鸵鸟,企鹅,信天翁]
(1>21)
(2>21)
(3>22)
(4,5>22)
(6>23)
(7,8,9>23)
(10,21>24)
(11,21>24)
(21,23,12,13>25)
(21,23,12,14>26)
(24,15,16,13,2>27)
(24,14>28)
(22,15,16,17,18>29)
(22,19,17,18>30)
(22,20>31)
Animal.py
import