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

先放效果图

  • 控制台

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

  • 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. cocoahttpserver 载入本地html,利用CocoaHttpServer搭建手机本地服务器
  2. python中的字符串处理
  3. Python类的实例属性详解
  4. 为什么 Go 的泛型一拖再拖?(转)
  5. 【Flink】Flink flink-runtime.version.properties generated correctly. You MUST run mvn generate-source
  6. 没有钱,能做什么呢?(转载)
  7. Linux的timerfd分析
  8. mysql中distinct走索引吗_MySQL中索引优化distinct语句及distinct的多字段操作
  9. 数据库MySQL--常见基础命令
  10. python线性拟合numpypolyfit_python – 具有适配参数的numpy.polyfit
  11. sit是什么环境_SIT和UAT有什么区别?谢谢!
  12. Zalo电脑版多开软件
  13. 宝塔Inode信息使用率100%满了怎么清理?
  14. 微软全球副总裁洪小文:微软未来的三大战略
  15. 正斜杠“/“和反斜杠“\“的区别
  16. FairMOT多目标跟踪(安装+代码解读)
  17. 硅谷开始玩中国玩剩下的了?
  18. Android实现语音识别成中文
  19. 51nod 1298 圆与三角形
  20. 你知道管理的精髓是什么吗?-进度猫带你走进管理者的世界

热门文章

  1. 浅析局域网ARP欺骗导致的信息泄露
  2. 【实例】Python爬取淘宝图片
  3. Vue3(撩课学院)笔记02-创建组件,全局组件,局部组件,父子组件,组件标签化,组件的data数据共享,组件间通讯,props,父传子$ref,子传父$parent
  4. matlab中liccode函数,基于matlab车牌识别系统设计与实现(最终版)
  5. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java流浪动物救助系统68at6
  6. Multisim 14.3安装包下载链接及安装教程
  7. GIS行业应用|智慧城市系列之智慧市政03
  8. 零基础学图形操作机器视觉软件SGVision
  9. SimpleDateFormat使用详解
  10. 该怎么用好EDIUS中的调音台