人工智能之-产生式系统

知识共享许可协议 版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons

实验内容

用基于产生式系统的方法求解动物识别系统的实现,主要根据观察到的事实,依据系统给出的一系列规则来进行正向推理,将逐渐的推导出结果。
以一个动物识别系统为例,构造产生式系统求解问题的过程,识别虎、金钱豹、斑马、长颈鹿、鸵鸟、企鹅、信天翁等七种动物的产生式系统。
部分推理树如下:

问题状态的表示
程序将在显示界面列出特征选项,用户动态的输入对应文字特效描述,不限个数,但是特征要按照编号的先后顺序输入。
会显示出匹配的规则与推理过程 并得出结论。
数据库描述
采用string类存放特征。
规则库描述
采用2个string类存放映射规则,用find匹配,序号对应的object则为结果。
控制机制
在这里插入图片描述
状态空间图
部分分析如下
在这里插入图片描述
实验结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
程序清单
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
遇到的问题
在建立数据库和规则联系的时候,考虑用数字数组还是字符数组,考虑到数组的复杂性,最终选择了集成度较高的C++类string类完成对应。用find函数匹配字符串来查表获取信息。
第二次遇到困难是多层次映射(例如有毛与哺乳动物等效,则可以替换哺乳动物)难以解决,由于自身水平受限和时间约束,采用了暴力枚举把情况补充到了数据库中做出对应。
改进:可以使用Vector容器与map映射解决情况的出入,更加简洁高效的建立连接。

猜你喜欢

转载自blog.csdn.net/weixin_44611644/article/details/95015827