发布时间:2024-02-16 12:30
资源下载地址:https://download.csdn.net/download/sheziqiong/85896806
资源下载地址:https://download.csdn.net/download/sheziqiong/85896806
制作小型动物识别系统进行正向推理
1 熟悉和掌握产生式系统的构成和运行机制;
2 掌握基于规则推理的基本方法和技术,掌握正确的正向推理和逆向推理方法;
3 熟悉在具体问题中如何实现正向推理和逆向推理的求解流程。
以动物识别系统为例,用选定的编程语言建造规则库和综合数据库,并能对它们进行增加、删除和修改操作,开发能进行正确的正向推理或反向推理的推理机。
1)规则采用文件记录
每一条规则由“:”分割,在每一条规则中,每一个事实用空格分开,最后一个为结论,当需要加入规则时可以在文件中直接加入也可以在窗体中加入。
2)在程序中所用到的数据结构是C#提供的dictionary字典,key字段我存放的是规则的前件,value字段我存放的是规则的结论
主界面如下:(界面的实现是通过网上下载的界面美化类,继承这个界面类得到的,压缩包是CSkin 16.1.14.3,老师如果想验证可以查看一下这个压缩包中的使用教程配置一下VS)
如果用户输入的事实中包含了一条知识的所有前件则返回一个true否则返回false
2.接着我设计了一个文件读写工具类File_tools用来简化文件读写操作
第一个方法是read_rules功能是根据输入的路径读到文件中的所有文本
第二个方法是update_rules功能是用来添加指定的规则到文件中
3.当主界面加载的时候需要初始化字典数据结构,从文件中读到规则然后依次将规则放入到字典中:
4.当用户勾选完了所需要的知识后,按下开始推理按钮,按钮的触发事件对应的函数的功能是,首先得到用户所有的输入事实构造一个List:
接下来便进入一个循环,每次将已有的事实和规则集中的知识前件进行匹配,即每次遍历知识库,把发生匹配的知识放到一个List中,如果说这个List不为空,说明本次有相应的知识发生了匹配,然后要做的工作是把已知事实中包含的匹配的知识的前件删除,然后把匹配的知识的结论加入到已知事实的末尾:
如果遍历一遍知识库,发现没有知识与之匹配了,即List为空时,并且这时是第一次推理,则推理失败,没有匹配项,而如果这是不是第一次推理,则可以输出事实集中的最后一项作为结果:
再次查看所有规则:
资源下载地址:https://download.csdn.net/download/sheziqiong/85896806
资源下载地址:https://download.csdn.net/download/sheziqiong/85896806
为什么 React 的 Diff 算法不采用 Vue 的双端对比算法?
uniapp 改写uni-data-picker级联选择器(带搜索和多选)新增列出选择和删除功能
南京 | 内推 | 股权激励 | 外企 WLB |慧咨环球 | 混合办公 | 程序员招聘 | 行业领袖 扁平管理 可移民澳洲
「开源摘星计划」Harbor 高可用集群设计及部署(实操 + 视频),基于离线安装方式
RK356x U-Boot研究所(命令篇)3.4 mem内存相关命令的用法
为SciPy插上异构的翅膀,MindSpore SciPy教程详解
低烧开个车 | 弃政从商?全新GA8你一个中期改款要不要搞出那么大阵仗?