资源描述:
《人工智能专家系统实验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、河南城建学院《人工智能》实验报告实验名称:__实验四名称实现一个基于产生式系统的小型专家系统(动物识别)成绩:专业班级: 0814112学号: 081411202 姓名: xxxxxxxxxxxx 实 验 日 期: 2014年 5月 20 日 实验器材:VC6.0软件,多媒体计算机。一、实验目的掌握产生式系统的运行机制和基于规则推理的基本方法。通过一个实例了解小型专家系统的结构、设计和实现过程,初步掌握专家系统的设计和实现方法。二、实验要求设计并实现一个某领域的小型专家系统(动物识别),该系统能对输入的询问回答分类或预测的结果,并根据推理过程回答“为什么”或“怎样
2、得出该结论”的问题。三、实验步骤(1)定义变量,包括变量名和变量的值。(2)建立规则库,其方法是:(a)输入规则的条件:每条规则至少有一个条件和一个结论,选择变量名,输入条件(符号);选择变量值,按确定按钮就完成了一条条件的输入。重复操作,可输入多条条件;(b)输入规则的结论:输入完规则的条件后,就可以输入规则的结论了,每条规则必须也只能有一个结论。选择变量名,输入条件(符号),选择变量值,按确定按钮就完成了一个结论的输入。重复以上两步,完成整个规则库的建立。(3)建立事实库(总数据库):建立过程同步骤2。重复操作,可输入多条事实。该动物识别专家系统由15条规则组成
3、,可以识别七种动物,在15条规则中,共出现30个概念(也称作事实),7共30个事实,每个事实给一个编号,从编号从1到30,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:char*feature[]={"有毛","产奶","有羽毛","会飞","会下蛋","吃肉","有犬齿","有爪","眼睛盯前方","有蹄","反刍","黄褐色","有斑点","有黑色条纹","长脖","长腿","不会飞","会游泳","黑白两色","善飞","哺乳类","鸟类","肉食类","蹄类","企鹅","海燕",
4、"鸵鸟","斑马","长颈鹿","虎","金钱豹"};存放规则的结构体:typedefstruct{intrelation[5];intname;}Rule;存放产生式规则推理过程的数组:Rulerule[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
5、,-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)按“开始”或“单步”按钮即可。此外,
6、利用实例演示,可以运行系统默认的产生式系统,并且可以进行正反向推理。其他的可参见其帮助文件。三、源代码#include#includeusingnamespacestd;7char*animal[]={"企鹅","海燕","鸵鸟","斑马","长颈鹿","虎","金钱豹"};char*feature[]={"有毛","产奶","有羽毛","会飞","会下蛋","吃肉","有犬齿","有爪","眼睛盯前方","有蹄","反刍","黄褐色","有斑点",//0123456789101112"有黑色条纹","长脖","长腿","不会飞
7、","会游泳","黑白两色","善飞","哺乳类","鸟类","肉食类","蹄类",//1314151617181920212223"企鹅","海燕","鸵鸟","斑马","长颈鹿","虎","金钱豹"};//24252627282930typedefstruct//存放规则的结构体{intrelation[5];intname;}Rule;Rulerule[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},{{