一、实验目的
1、 掌握产生式系统的推理方法。
2、 能够编程实现推理机。
二、实验原理
基于上个实验了解了动物识别的规则库,这次再来了解一下推理机:
首先(1)初始化综合数据库,即把欲解决问题的已知事实送入综合数据库中。然后(2)检查规则库中是否有使用过的规则,若无转(7),(3)检查规则库的未使用规则中是否有其前提可与综合数据库中的己知事实相匹配的规则,若有,形成当前可用规则库;否则转(6);(4)按照冲突消解策略,从当前可用规则集中选拌一个规则执行,并对该规则作上标记。把执行该规则后所得到的结论作为新的事实放入综合数据库;如果该规则的结论是一些操作,则执行这些操作,(5)检查综合数据库中是否包含了该问题的解,若己包含,说明解已求出,问题求解过程结束;否则,转(2),(6)当规则库中还有使用规则,但均不能与综合数据库中的己有事实相儿配时,要求用户进一步提供关于该问题的己知事实,也能提供,则转(2):否则,执行下一步(7),若知识库中不再有未使用规则,也说明该问题无解,终止问题求解过程。输出“抱歉,没有相符合的动物” 程序退出。
三、实验步骤及内容
首先,建立合理的规则库,然后通过输入不同的
四、实验代码
i=1
while i:
print('请选择进入动物识别系统1或2')
char=input('输入1或者2:\n')
if char == '1':
print('请问这个动物吃肉吗')
char1=input('输入Y或者N:\n')
if char1=='Y':
print('请问这个动物会爬树吗')
char2=input('输入Y或者N:\n')
if char2 =='Y':
print('这个动物是金钱豹')
else:
print('这个动物是老虎')
else:
print('这个动物是不是脖子很长')
char3 = input('输入Y或者N:\n')
if char3 == 'Y':
print('这个动物是长颈鹿')
else:
print('这个动物是斑马')
elif char == '2':
print('这个动物会飞吗')
char4 = input('输入Y或者N:\n')
if char4 == 'Y':
print('这个动物是信天翁')
else:
print('这个动物喜欢冰天雪地吗')
char5 = input('输入Y或者N:\n')
if char5 == 'Y':
print('这个动物是企鹅')
else:
print('这个动物是鸵鸟')
else:
print('输入错误,请重新输入')
print('是否退出动物识别系统')
i = int(input('输入0或1:(1表示继续,0表示退出)\n'))
五、实验结果
根据系统的提示,选择输入相关的条件,通过的系统的判断给出动物的名称,具体的实现过程和结果如下:
六、实验总结
在实验的过程中,我希望我写的动物识别系统可以多次进行识别,在上网上搜集一些资料以后,利用一个while循环和一个选择判断语句成功的解决了该问题,让动物识别系统能都多次进行识别。在修改程序的过程中,通过对判断逻辑测试和修改,才真正的知道该实验的意义。而且通过实操,只学习理论时远远不够的,关键通过实操找到自己学习中漏洞,及时发现问题并解决。实现了对课本中学习过的产生式系统的推理方法复习和巩固。