文档详情

(人工智能专家系统实验.doc

发布:2017-01-25约4.33千字共7页下载文档
文本预览下载声明
河南城建学院 《》实验报告实验名称:__成绩:专业班级:?学? 081411202 ? 姓名:?? 实?验?日?期 :??年?月?? 日一、实验目的二、实验 三、实验步骤 (1)定义变量,包括变量名和变量的值。 (2)建立规则库,其方法是: (a) 输入规则的条件:每条规则至少有一个条件和一个结论,选择变量名,输入条件(符号);选择变量值,按确定按钮就完成了一条条件的输入。重复操作,可输入多条条件; (b) 输入规则的结论:输入完规则的条件后,就可以输入规则的结论了,每条规则必须也只能有一个结论。选择变量名,输入条件(符号),选择变量值,按确定按钮就完成了一个结论的输入。重复以上两步,完成整个规则库的建立。 (3)建立事实库(总数据库):建立过程同步骤2。重复操作,可输入多条事实。 该动物识别专家系统由15条规则组成,可以识别七种动物,在15条规则中,共出现 30个概念(也称作事实),共30个事实,每个事实给一个编号,从编号从1到30,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下: char *feature[]={有毛,产奶,有羽毛,会飞,会下蛋,吃肉,有犬齿,有爪,眼睛盯前方,有蹄,反刍,黄褐色,有斑点,有黑色条纹,长脖,长腿,不会飞,会游泳,黑白两色,善飞,哺乳类,鸟类,肉食类,蹄类,企鹅,海燕,鸵鸟,斑马,长颈鹿,虎,金钱豹}; 存放规则的结构体typedef struct { int relation[5]; int name; }Rule; 存放产生式规则推理过程的数组: Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27},//如果动物是蹄类(23),且有黑色条纹(13),则该动物对应事实数组的第27个“斑马” {{21,14,15,16,-1},26}, {{21,19,-1},25},//如果动物是鸟类(21),且是肉食类(19),则该动物对应事实数组的第25个“海燕”。 {{21,17,18,16,-1},24} }; 程序用编号序列的方式表达了产生式规则,如资料中规则14,如果动物是鸟,且是肉食类,则该动物对应事实数组的第二十五个“海燕”。如资料中规则12,如果动物是蹄类,且有黑色条纹,则该动物对应事实数组的第二十七个“斑马”。 (4)按“开始”或“单步”按钮即可。 此外,利用实例演示,可以运行系统默认的产生式系统,并且可以进行正反向推理。其他的可参见其帮助文件。 源代码 #includeiostream #includeiomanip using namespace std; char *animal[]={企鹅,海燕,鸵鸟,斑马,长颈鹿,虎,金钱豹}; char *feature[]={有毛,产奶,有羽毛,会飞,会下蛋,吃肉,有犬齿,有爪,眼睛盯前方,有蹄,反刍,黄褐色,有斑点, //0 1 2 3 4 5 6 7 8 9 10 11 12 有黑色条纹,长脖,长腿,不会飞,会游泳,黑白两色,善飞,哺乳类,鸟类,肉食类,蹄类, //13 14 15 16 17 18 19 20 21 22 23 企鹅,海燕,鸵鸟,斑马,长颈鹿,虎,金钱豹}; //24 25 26 27 28 29 30 typedef struct //存放规则的结构体 { int relation[5]; int name; }Rule; Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{
显示全部
相似文档