python | 您所在的位置:网站首页 › 哺乳动物子宫类型 › python |
一、实验目的:熟悉一阶谓词逻辑和产生式表示法,掌握产生式系统的运行机制,以及基于规则推理的基本方法。 二、实验内容 设计并编程实现一个小型产生式系统(如:分类、诊断等类型) 系统名称:动物识别系统 三、实验要求 1. 具体应用领域自选,具体系统名称自定。 2. 用一阶谓词逻辑和产生式规则作为知识表示,利用产生式系统实验程序,建立知识库,分别运行正、反向推理。 四、实验报告要求 1. 系统设置,包括系统名称和系统谓词,给出谓词名及其含义 系统名称:动物识别系统。 定义系统谓词: 谓词 含义 示例 F(“A”) A是该动物具有的特征 F(“有毛”):有毛是该动物的特征 Type(“B”) 该动物属于B(种类) Type(“哺乳类”):该动物属于哺乳类 Animal(“C”) 该动物是C Animal(“斑马”):该动物是斑马 表1. 系统谓词表 2. 编辑知识库,通过输入规则或修改规则等,建立规则库 1. 知识库:知识库由id、feature组成。其中feature表示的是知识。 图1. 知识库 图2.知识库 2. 规则库:规则库由id、f1、f2、f3、f4、console组成。其中f1、f2、f3、f4表示为规则的四个特征,为0时表示为无特征;console表示最终规则推出的结果。 图3.规则库 3.系统的功能 该动物识别系统一共具有10个功能。其中包括查看知识、查看规则、添加知识、添加规则、修改知识、修改规则、删除知识、删除规则、正向推理、反向推理。 1. 查看知识:点击查看知识功能后,系统会根据知识库中的信息进行知识查看,再点击修改、添加或删除数据时,点击刷新数据按钮,系统将会重新刷新数据。 图5.查看知识页面 2. 查看规则:点击查看规则功能后,会查询出数据库中规则信息。 图6.查看规则页面 3. 添加知识:点击添加知识页面后,当输入相关内容后,点击添加,页面提醒添加成功,该功能完成。
图8.添加成功页面 4. 添加规则:点击添加规则后,输入相关的信息,进行规则添加;注意:在输入相关信息时,如果没有四个特征,则需要给多余特征输入框输入0。 图9.添加规则页面 5. 修改知识:在查看知识页面,查看找到需要修改的知识的id,进行修改。 图10.修改知识页面 6. 修改规则:查看需要修改的规则id,进行修改。 图11.修改规则页面 7. 删除知识:输入需要删除的知识id进行删除。 图12.删除知识页面 8. 删除规则:输入需要删除的规则id进行删除。 图13.删除规则页面 9. 正向推理:输入事实,系统进行正向推理得出正确答案和整个推理过程。
图14.正向推理页面 该正向推理功能的逻辑是对输入的四个事实建立list(事实为0表示没有特征,不会被加入数组中);以规则库建立二维数组list1,然后通过遍历事实数组list中的每一位事实,先在规则库list1行中找到与该事实相同的,再找list1中的列是否在list中存在,全部存在,则将该行规则的console加入list中,再遍历list中的下一条数据,直到遍历完成即可。 在遍历过程中,一旦有console加入,则表明该条规则是满足推理的,所以对该条规则的每一位数据找到知识表中的具体对应,再找到与之对应的系统谓词进行修饰,最终给该规则建立id,放入字典,形成完整的推理过程。
图15.正向推理逻辑图 10. 反向推理:输入事实,系统进行反向推理得出正确答案和整个推理过程。 图16.反向推理页面 该反向推理功能的逻辑:对事实建立list,存入不为0的事实;建立list1存入所有规则,遍历list中的事实与list2中console进行匹配,找出对应规则,将该规则的所有不为0的特征存入list中,直到遍历完整个list,最终字典中的内容就是推理过程。 在list与list1中console能对应上的规则,并遍历知识库,找到与该规则所有特征和结论对应的知识进行修饰,最终加入到key为id的字典dict中形成推理过程。 图17.反向推理逻辑图 4.关于系统 该系统一共分为四部分。 MySql部分:该部分文件名为AnimalSystem.sql,主要存储系统的sql代码。due部分:该部分为系统后端部分,该部分主要内容为系统各个功能的具体实现。(在该部分的开头,修改数据库接口)Main1和views部分:这两部分为系统的前端部分,主要使用tkinter;(在Main1页面上进行运行)Gui部分:该部分为初版页面,存在很多问题。5. 代码: 代码地址:GitHub - wooyeonicon/AnimalSystem: 动物识别产生式系统动物识别产生式系统. Contribute to wooyeonicon/AnimalSystem development by creating an account on GitHub. |
CopyRight 2018-2019 实验室设备网 版权所有 |