长安大学人工智能实验产生式系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学生实验报告

实验课名称:人工智能实验

实验项目名称:产生式系统实验

专业名称:计算机科学与技术班级:

学号:

学生姓名:

教师姓名:

2014年12 月9 日

一.实验名称:

产生式系统实验

二.实验目的与要求:

1、确定推理方法(正向还是反向),并根据问题设计实现一个简单的不通用推理机(匹配、冲突消解)

2、规则库要求至少包含15条规则

3、初始事实可以任意给定,输入初始事实后能够得到推理结果

4、设计人机界面,解释模块提供查询规则的功能

5、可以不考虑知识库管理模块

6、提交实验报告

7、报告中要有推理树

三.实验内容:

做一个动物识别系统的规则库:

1、对已有的产生式系统(默认的例子)进行演示,同时可以更改其规则库(和)事实库,进行正反向推理,了解其推理过程和机制。

2. 自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的规则和事实,并基于这种规则和事实进行推理。这为学生亲手建造产生式系统并进行推理提供了一种有效的实验环境。

四.算法描述:

在输入框内输入条件abc,根据输入的条件在规则库中进行判断。将判断后的结果加入条件,再进行寻找。流程图如下:

五.源程序:

String^ s1=textBox1->Text;

string ss;

int flag=0;

int flag2=0;

MarshalString(s1,ss);

for(int i=0;i!=s1->Length;i++){

for(int j=48;j!=79;j++){

if(ss[i]==j) {

if(j<58){

pd[j-48]=1;

}

if(j>58){

pd[j-55]=1;

}

}

}

}

if(flag==0){

if(pd[0]==1) pd[9]=1;

if(pd[1]==1) pd[9]=1;

if(pd[2]==1) pd[10]=1;

if(pd[3]==1&&pd[4]==1) pd[10]=1;

if(pd[5]==1){pd[14]=1;textBox2->AppendText("该动物是食肉动物\n");}

if(pd[6]==1&&pd[7]==1&&pd[8]==1){pd[14]=1;textBox2->AppendText("该动物是食肉动物\n");}

if(pd[9]==1&&pd[12]==1)pd[11]=1;

if(pd[9]==1&&pd[13]==1)pd[11]=1;

}

if(flag==0){

if(pd[9]==1&&pd[10]==0){

textBox2->AppendText("该动物是哺乳动物\n");

if(pd[12]==1&&pd[5]==0)textBox2->AppendText("该动物是蹄类动物\n");

if(pd[13]==1&&pd[5]==0)textBox2->AppendText("该动物是蹄类动物\n");

}

if(pd[10]==1&&pd[9]==0){

textBox2->AppendText("该动物是鸟类动物\n");

}

}

if(flag==0){

if(pd[9]==1&&pd[10]==0&&pd[14]==1&&pd[15]==1&&pd[16]==1&&pd[11]==0&&pd[ 17]==0){

textBox2->AppendText("是黄褐色\n");

textBox2->AppendText("身上有暗斑点\n");

textBox2->AppendText("是金钱豹\n");

flag2=1;

}

if(pd[9]==1&&pd[10]==0&&pd[14]==1&&pd[15]==1&&pd[16]==0&&pd[11]==0&&pd[ 17]==1){

textBox2->AppendText("是黄褐色\n");

textBox2->AppendText("身上有黑色条纹\n");

textBox2->AppendText("是老虎\n");

flag2=1;

}

if(pd[9]==1&&pd[10]==0&&pd[14]==0&&pd[11]==1){

if(pd[18]==1&&pd[19]==1&&pd[16]==1&&pd[17]==0){

textBox2->AppendText("有长脖子\n");

textBox2->AppendText("有长腿\n");

textBox2->AppendText("身上有暗斑点\n");

textBox2->AppendText("该动物是长颈鹿\n");

flag2=1;}

if(pd[18]==0&&pd[19]==0&&pd[16]==0&&pd[17]==1){

textBox2->AppendText("身上有黑色条纹\n");

textBox2->AppendText("该动物是斑马\n");

flag2=1;

}

}

if(pd[9]==0&&pd[10]==1){

if(pd[18]==1&&pd[19]==1&&pd[20]==1&&pd[21]==1&&pd[22]==0&&pd[23]==0){

textBox2->AppendText("有长脖子\n");

textBox2->AppendText("有长腿\n");

textBox2->AppendText("不会飞\n");

textBox2->AppendText("有黑白二色\n");

textBox2->AppendText("该动物是鸵鸟\n");

flag2=1;

}

if(pd[22]==1&&pd[20]==1&&pd[21]==1&&pd[18]==0&&pd[19]==0&&pd[23]==0){

textBox2->AppendText("会游泳\n");

textBox2->AppendText("不会飞\n");

textBox2->AppendText("是黑白二色\n");

textBox2->AppendText("该动物是企鹅\n");

flag2=1;

}

相关文档
最新文档