基于产生式规则的动物识别系统

先放效果图

  • 控制台

推理失败截图:
推理成功截图:

  • MFC

    推理失败截图:

    推理成功界面:


    实验目的:
    熟悉一阶谓词逻辑和产生式表示法,掌握产生式系统的运行机制,以及基于规则推理的基本方法。运用所学知识,设计并编程实现一个基于产生式系统的小型专家系统
    实验要求:
    具体实验内容根据自己兴趣设计并实现一个基于产生式系统的某领域的小型专家系统。
    1.具体应用领域根据自己兴趣选择;具体系统名称自定;编程语言不限,使用自己擅长的语言。
    2.确定推理方法,根据问题设计并实现一个简单的推理机(要求涉及:匹配、冲突消解)。
    3.规则库要求至少包含15条规则;查询资料了解:知识规则如何存储,都有哪些可行方案和方法,选择、比较后确定适合自己系统的知识规则存储方法。
    4.推理机和知识库必须分离,在不修改推理机程序的前提下,能够向知识库添加、删除、修改规则。
    5.设计合理的人机交互界面。

功能设计与实现

  1. 建立规则库与目标库
    规则库与目标库是在程序运行之前,由专家提供,以txt文本方式保存在运行目录下。
    目标库如图所示:

    规则库如图所示:

  2. 建立与显示知识库
    知识库包括规则库中所有的特征信息,建立动态数组feature,逐行逐个读取规则库的特征,判断特征是否已存在数组feature中,若不存在,则将该特征加入动态数组feature中。
    建立Listbox Control用于显示知识库,并对该控件添加变量,变量名为m_feature。

  3. 读取已知事实
    创建动态数组message,将用户选择的已知事实放入数组message中。

  4. 推理
    用动态数据库message中的事实与目标库animal匹配,若匹配成功,则输出目标,推理成功。取待测试规则与动态数据库进行匹配,若规则的前件全部在动态数据库中,则将该规则加入冲突集,并且标记该规则已测试。若冲突集为空,则推理失败,若冲突集为1,则将该规则加入临时动态数据库,若冲突集大于1,说明产生冲突,选择前件最长的规则加入临时动态数据库。若动态数据库中的特征不在已知事实库中,则加入,否则不加入。

流程图:

算法描述:

  1. 将初始事实置入动态数据库;
  2. 用动态数据库中的事实,匹配目标条件,若目标条件满足,则推理成功,结束;
  3. 用待测试规则集中各规则的前件匹配动态数据库中的事实,将匹配成功的规则组成冲突集;
  4. 若冲突集为空,则运行失败,退出;
  5. 对冲突集做冲突消解,对选择执行的各规则,将其结论加入动态数据库,或执行其动作,转至2。

源码下载地址:
控制台代码:
https://download.csdn.net/download/weixin_39644536/11422033
MFC代码:
https://download.csdn.net/download/weixin_39644536/11422085

基于产生式规则的动物识别系统相关推荐

  1. 【AI】基于产生式规则的动物识别系统

    产生式系统 --动物识别系统 一.实验目的 二.实验原理 三.算法设计 四.系统代码设计 一.实验目的 [实验内容] 开发一个可以识别虎.金钱豹.斑马.长颈鹿.企鹅.鸵鸟.信天翁等7种动物的产生式系统 ...

  2. 基于CNN的动物识别系统[完整实战源码]

    该专栏仅支持购买本专栏的同学学习使用,不支持以超级会员.VIP等形式使用,请谅解[购买专栏后可选择其中一个完整源码项目] 在图像识别领域中CNN是非常重要的模型,前面我写了一些关于识别系统的文章,后面 ...

  3. 基于Python的动物识别专家系统

    1.问题陈述 基于产生式规则的动物识别系统--识别虎.金钱豹.斑马.长颈鹿.鸵鸟.企鹅.信天翁等七种动物的产生式系统. 运用以下规则,设计实现一个小型动物识别系统. R1: if 动物有毛发 then ...

  4. 基于产生式表示的动物识别系统

      实验目的 理解和掌握产生式知识表示方法及产生式系统的基本过程,能够利用编程技术建立一个基于产生式知识表示的简单的智能系统. 例    建立一个动物识别系统的规则库,用以识别虎.豹.斑马.长颈鹿.企 ...

  5. 基于深度学习的动物识别系统(YOLOv5清新界面版,Python代码)

    摘要:动物识别系统用于识别和统计常见动物数量,通过深度学习技术检测日常几种动物图像识别,支持图片.视频和摄像头画面等形式.在介绍算法原理的同时,给出Python的实现代码.训练数据集以及PyQt的UI ...

  6. 人工智能实验-动物识别系统

    ** 实验一:产生式系统实验 ** 一.实验目的: 熟悉一阶谓词逻辑和产生式表示法,掌握产生式系统的运行机制,以及基于规则推理的基本方法. 二.实验内容: 设计并编程实现一个小型产生式系统(如分类.诊 ...

  7. 动物识别系统 python实现+UI

    完整代码在最下方 实验目的 利用动物识别系统来验证基于符号的推理,通过实验理解简单的专家系统所包含的模块:人机结构,知识获取机构,知识库及管理系系统,推理机,解释机构,数据库及管理系统". ...

  8. AI实验-七种动物识别系统

    AI-动物识别 优惠券 m.fenfaw.net 一.实验目的 1. 理解产生式系统的结构原理与实际应用.  2. 掌握产生式规则表示及规则库组建的实现方法.  3. 熟悉和掌握产生式系统的运行机制, ...

  9. c语言产生式系统动物识别系统,简单动物识别系统的知识表示实验报告

    简单动物识别系统的知识表示实验报告 一. 实验目的: 1. 2. 理解和掌握产生式知识表示方法. 能够用选定的编程语言实现产生式系统的规则库. 二. 实验内容和要求: 1.以动物识别系统的产生式规则为 ...

最新文章

  1. 全流程游戏模型制作学习教程
  2. 为什么神经网络会把乌龟识别成步枪?现在的 AI 值得信任吗?
  3. python字典排序取最值总结
  4. 学习笔记(十八)——MongoDB(CRUD)与Python交互
  5. 为何被主流抛弃-江西IDC机房价格为何居高不下缺少竞争力-2014年5月江西IDC排行榜...
  6. 视频号,近距离、更快接触数据库技术资讯!
  7. [] ubuntu 14.04 搜狗拼音输入法安装
  8. Linux中,Mysql安装
  9. WebComponent魔法堂:深究Custom Element 之 从过去看现在
  10. Tortoise SVN 汉化(官网下载汉化包)
  11. html小游戏开题报告,html5毕设开题报告
  12. ubuntu 查找opencv安装路径_ubuntu 查找opencv安装路径_Ubuntu安装opencv详细步骤
  13. 如何修改朋友圈定位到其他异地城市
  14. Hadoop 3.x 的组成 完整使用 (月薪过万 第三章)
  15. 神秘美女接机刘谦 网友见证奇迹时刻:女子像舒淇
  16. java.util.regex.PatternSyntaxException: Unclosed counted closure near index 14
  17. nova8se鸿蒙,挖东西:华为nova8SE标准版和高配版哪个好?解析有区别没有?主要的优势在哪里?...
  18. 西瓜测试软件,西瓜视频v2.0.0
  19. 点击按钮打开新页面(携带参数)
  20. 【自用】Vue项目中使用自定义字体样式

热门文章

  1. weblogic11g清理缓存tmp
  2. oracle trace跟踪,oracle数据库跟踪工具 — oracle-tech
  3. 美团产品经理助理实习生笔试小计
  4. Eclipse 是什么?
  5. PingPing隐私政策
  6. 树莓派63/100 - NB-IoT模块SIM7020使用MQTT发布消息
  7. c++ 多线程编程demo
  8. C++软件工程师之什么是宏?
  9. Java内存模型:线程并发下的对象逸出
  10. 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全