用用Python实现一个动物识别专家系统实现一个动物识别专家系统–人工智能作业分享人工智能作业分享
考察 产生式系统产生式系统
我知道在搜索引擎的茫茫大海中,你能看见我的这篇文章不是缘分,而是你要交作业了
拿代码去拿代码去“学习学习”之前,至少点个赞吧之前,至少点个赞吧
代码没写GUI,因为不喜欢这玩意,直接在终端中进行人机交互。使用代码之前,请根据自身情况对字符编码、文件路径进行使用代码之前,请根据自身情况对字符编码、文件路径进行
修改修改
代码写的很烂,以后有能力了再把算法加进去优化代码吧
第一问第一问
先根据题图,创建规则库(使用了一个文本文件)
if 有毛发 then 哺乳动物
if 有乳 then 哺乳动物
if 吃肉 then 食肉动物
if 有犬齿 and 有爪 and 眼向前方 then 食肉动物
if 哺乳动物 and 有蹄 then 有蹄类
if 哺乳动物 and 反刍动物 then 有蹄类
if 哺乳动物 and 食肉动物 and 黄褐色 and 暗斑点 then 豹子
if 哺乳动物 and 食肉动物 and 黄褐色 and 黑条纹 then 老虎
if 有蹄类 and 长脖子 and 长腿 and 暗斑点 then 长颈鹿
if 有蹄类 and 黑条纹 then 斑马
代码:
rules = {} # 以字典形式存储规则
"""
读取规则库文件中规则,并存放在rules字典中
- 字典的键:前提
- 字典的值:结论
"""
def readRules(filePath):
global rules
for line in open(filePath, mode = 'r', encoding = 'utf-8'):
line = line.replace('if', '').strip()
temp = line.split(' then ')
premise = temp[0] conclusion = temp[1] rules[premise] = conclusion
"""
2. 推理机用这些事实(即:facts变量),依次与知识库中的规则的前提匹配
- 注意:匹配成功的规则可能不止一条,进行冲突消解
3. 若某规则的前提全被事实满足,则规则可以得到运用
4. 规则的结论部分作为新的事实存储
5. 用更新过的事实再与其它规则的前提匹配,直到不再有可匹配的规则为止
评论0