产生式系统实验Word文件下载.docx

上传人:b****4 文档编号:17947755 上传时间:2022-12-12 格式:DOCX 页数:7 大小:49.76KB
下载 相关 举报
产生式系统实验Word文件下载.docx_第1页
第1页 / 共7页
产生式系统实验Word文件下载.docx_第2页
第2页 / 共7页
产生式系统实验Word文件下载.docx_第3页
第3页 / 共7页
产生式系统实验Word文件下载.docx_第4页
第4页 / 共7页
产生式系统实验Word文件下载.docx_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

产生式系统实验Word文件下载.docx

《产生式系统实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《产生式系统实验Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。

产生式系统实验Word文件下载.docx

2.自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的规则和事实,并基于这种规则和事实进行推理。

这为学生亲手建造产生式系统并进行推理提供了一种有效的实验环境。

五、实验步骤:

1.定义变量,包括变量名和变量的值。

2.建立规则库,其方法是,(a)输入规则的条件:

每条规则至少有一个条件和一个结论,选择变量名,输入条件(符号);

选择变量值,按确定按钮就完成了一条条件的输入。

重复操作,可输入多条条件;

(b)输入规则的结论:

输入完规则的条件后,就可以输入规则的结论了,每条规则必须也只能有一个结论。

选择变量名,输入条件(符号),选择变量值,按确定按钮就完成了一个结论的输入。

重复以上两步,完成整个规则库的建立。

3.建立事实库(总数据库):

建立过程同步骤2。

重复操作,可输入多条事实。

4.然后按“开始”或“单步”按钮即可。

此外,利用实例演示,可以运行系统默认的产生式系统,并且可以进行正反向推理。

其他的可参见其帮助文件。

六、实验流程图和结果:

七、程序清单:

#include<

iostream>

iomanip>

usingnamespacestd;

char*animal[]={"

企鹅"

"

海燕"

鸵鸟"

斑马"

长颈鹿"

虎"

金钱豹"

};

char*feature[]={"

有毛"

产奶"

有羽毛"

会飞"

会下蛋"

吃肉"

有犬齿"

有爪"

眼睛盯前方"

有蹄"

反刍"

黄褐色"

有斑点"

//0123456789101112"

有黑色条纹"

长脖"

长腿"

不会飞"

会游泳"

黑白两色"

善飞"

哺乳类"

鸟类"

肉食类"

蹄类"

//1314151617181920212223

"

//24252627282930

typedefstruct//存放规则的结构体

{

intrelation[5];

intname;

}Rule;

Rulerule[15]={

{{0,-1},20},//规则0

{{1,-1},20},//规则1

{{2,-1},21},//规则2

{{3,4,-1},21},//规则3

{{20,5,-1},22},//规则4

{{6,7,8,-1},22},//规则5

{{20,8,-1},23},//规则6

{{20,9,-1},23},//规则7

{{22,11,12,-1},30},//规则8

{{22,11,13,-1},29},//规则9

{{23,14,15,12,-1},28},//规则10

{{23,13,-1},27},//规则11

{{21,14,15,16,-1},26},//规则12

{{21,19,-1},25},//规则13

{{21,17,18,16,-1},24}};

//规则14

intflag[23]={0};

//标记各个特征是否选择

intIsAnimal(inta);

intinference();

voidinput();

voidmenu();

voidmenu()

inti=0;

for(i=0;

i<

24;

i++)

{

if(i%4==0&

&

i!

=0)

cout<

<

endl;

}

printf("

%-3d.%-15s"

i,feature[i]);

}

voidinput()

intti=0;

for(inti=0;

flag[i]=0;

while(ti!

=-1)

"

\n输入选择(-1结束):

;

cin>

>

ti;

if(ti>

=0&

ti<

=23)

flag[ti]=1;

elseif(ti!

{

输入错误!

请输入0~23之间的数字!

endl;

//tanimal=25

cin.clear();

//清除流错误错误标记

cin.sync();

////////////清空输入缓冲区

intIsAnimal(inta)

if(a>

=24&

a<

=30)

return1;

return0;

intinference()//正向推理

intti;

inti,j;

inttres;

15;

j=0;

ti=rule[i].relation[j];

=-1)//-1作为结束

if(flag[ti]==0)

break;

j++;

ti=rule[i].relation[j];

if(ti==-1)//ti==-1代表规则满足

tres=rule[i].name;

flag[tres]=1;

运用了规则%d:

i);

while(rule[i].relation[j]!

feature[rule[i].relation[j]]<

====>

feature[tres]<

if(IsAnimal(tres))

if(i==15)

{cout<

没有这种动物"

return-1;

charq;

voidmain()

{

while(q!

='

n'

menu();

input();

inference();

\n继续?

(Y/N)"

q;

system("

cls"

);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1