人工智能实验报告二 班级:X X X X 姓名:X X X X 学号:X X X X X 一. 实验目的 1
理解并掌握基于规则系统的表示与推理
学会编写小型的产生式系统,理解正向推理和反向推理的过3
程以及两者的差别
学会设计简单的人机交互界面
二. 实验预习内容及实验环境: 1
了解动物识别系统问题; 2
产生式系统的组成部分,正向推理,逆向推理的算法和产生式系统的类型
三、实验内容和步骤: 1. 内容:结合第五章内容,以动物识别系统(或货物袋装系统)为例,实现基于规则的系统构造实验
2. 要求: 1> 结果显示要求 (1) 有若干选择动物特征的选择列表; (2) 表现判断动物时,使用了哪些规则; (3 ) 表现数据库的变化;(正向推理中表现每使用一次规则后,产生新事实
反向推理中表现新的目标事实有哪些需要证明,哪些已经得到证实); (4 ) 显示规则的调用次序; (5 ) 显示最后的结果,包含动物能识别出来和动物不能识别出来两种情况
(6 ) 至少检查两个例子实现正向推理和反向推理的区别; 老虎的例子如上所示,以下为金钱豹的例子: 正向推理: 反向推理: 2> 指出综合数据库和规则库分别使用哪些函数实现的
综合数据库和规则库均采用数组完成
其中的综合数据库为一个 string 类型的数组,内容为事实的名称字符串,下标则为该事实的序号
数组长度为 33,表示共有 33 个事实(最后 7 个为动物名称)
代码如下: string facts[factnum]={"有爪","有犬齿","有奶","有毛发","目视前方","吃肉","有蹄","有羽毛","会飞","生蛋","不会飞","黑白色","会游泳","善飞","不怕风浪","长腿","长脖子","有暗斑点","白色","黑色斑点","黑色条纹","黄褐色","食肉动物","鸟","哺