赞
踩
理解产生式系统求解问题的过程。
Python版本:Python 3及以上
所需要的依赖包:无
可采用的软件:PyCharm
知识库:教材中的动物识别系统中的15条规则。
根据教材给的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 该动物是有蹄类动物
r 8: IF 该动物是哺乳动物 AND 是反刍动物 THEN 该动物是有蹄类动物
r9: IF 该动物是哺乳动物 AND 是食肉动物 AND 是黄褐色 AND 身上有暗斑点 THEN 该动物是金钱豹
r10:IF 该动物是哺乳动物 AND 是食肉动物 AND 是黄褐色 AND 身上有黑色条纹 THEN 该动物是虎
r11: IF 该动物是有蹄类动物 AND 有长脖子 AND 有长腿 AND 身上有暗斑点 THEN 该动物是长颈鹿
r 12:IF 该动物有蹄类动物 AND 身上有黑色条纹 THEN 该动物是斑马
r13:IF 该动物是鸟 AND 有长脖子 AND 有长腿 AND 不会飞 AND 有黑白二色 THEN 该动物是鸵鸟
r14: IF 该动物是鸟 AND 会游泳 AND 不会飞 AND 有黑白二色 THEN 该动物是企鹅
r15: IF 该动物是鸟 AND 善飞 THEN 该动物是信天翁
当输入相应的条件,根据知识库推理得出相应的知识。
打印推理过程,可文字或画图。
3.1 代码
3.2 结果与分析:(可以包含数据集分析、实验过程、结果截图、结果分析等)
运行截图:
首先,输入事实数据库,和目标动物
其次,根据规则9-15将对应动物所需的事实导出
然后,选择动物金钱豹25,则所需事实为:[21, 23, 12, 13]
最后,循环遍历需要的事实列表,如**[21, 23, 12, 13]**。判断每一个元素是否在事实数据库中存在,如果存在则继续遍历,不存在则判断事实库中中是否包含能够推出此事实的规则,如:21可根据规则1、2推导出如果有则继续遍历,没有,则推理失败。
遍历所需事实列表结束且每个事实都能存在于事实数据库,则推理成功
3.3 实验总结
通过这个实验,我们学习了如何使用 Python 模拟基于规则的推理系统。具体来说,我们实现了一个简单的动物识别程序,该程序可以根据一些特征来推理出动物的种类。
首先,我们定义了一些规则,这些规则描述了不同的动物特征之间的关系。例如,“有毛发”的动物可能是哺乳动物,“下蛋并且会飞”的动物可能是鸟类等等。这些规则可以用一个字典来表示,其中每个规则都包含两个部分:前提(if)和结论(then)。在推理过程中,我们会遍历所有的规则,找到符合条件的规则,并得出最终的结论。
接下来,我们定义了一个推理函数,该函数接收一个特征列表作为输入,并遍历所有的规则来找出符合条件的规则。对于每个符合条件的规则,我们将其结论添加到一个结果列表中,并最终返回该列表。在实际应用中,推理函数可能会更加复杂,例如,可能需要考虑规则的优先级、模糊匹配等等。
最后,我们编写了一个交互式程序,在程序中,我们首先要求用户输入要查询的特征,然后调用推理函数来得到结果,并将结果输出到屏幕上。在实际应用中,程序可以通过不同的方式来接收用户输入和展示结果,例如,可以使用图形界面、命令行界面或者 Web 界面等等。
总之,这个实验展示了如何使用基于规则的推理系统来解决一些简单的问题。在实际应用中,基于规则的推理系统可以应用于很多领域,例如,智能家居、自动驾驶、金融投资等等。在实际应用中,我们需要根据实际情况来定义规则、设计推理算法,并进行大量的测试和优化,以确保系统的准确性和效率。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。