- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
学生试验报告
实验课名称:人工智能
试验工程名称:产生式系统试验
专
业
名
称:计算机科学与技术
班
级:2023240202
学
教
师
姓
号:
名:陈亮亮
2023 年10月25日
试验日期:2023 年10月23日 试验室名称: 明远2203
一.试验名称:产生式系统试验
二.试验目的与要求:
1、确定推理方法〔正向还是反向〕,并依据问题设计并实现一个简洁的推理机〔要求涉及:匹配、冲突消解〕
2、规章库要求至少包含15条规章〔学问规章如何存储?〕
3、推理机和学问库必需分别
4、初始事实可以任意给定,输入初始事实后能够得到推理结果
5、设计合理的人机界面,解释模块供给查询规章的功能
6、可以不考虑学问库治理模块
7、提交试验报告
8、报告中要有推理树
三.试验内容:
本试验我设计了一个动物识别的小型专家系统,主要是依据一些观看到的事实,依据系统给出的一系列规章来进展正向推理,将渐渐的推导出结果。本次试验设计了一个简洁的推理机,推理机给出的推理结果有“它是动物”、“条件缺乏,不能推出它是什么动物”、“条件有冲突,没有这样的动物”或“条件不完全,但它有的局部特征”。
局部推理树如下:
四、算法描述:
表示事实和特征的学问。
在本程序中,我将动物的特征写入data.txt,将规章记入rules.txt,将动物种类记为goal.txt。
通过函数
voidreadFiles
{
readGoal;readCod;readRule;
}//reaFiles
读入全部数据分别存放于goal[],rule[],cod[]自定义数组中。
综合数据库和规章库实现综合数据库〔包括特征和目标〕typedefstruct
{
intxuh;//存放编号
charvalu[50];//存放具体内容
}Node;
Nodegoal[20];Nodecod[50];voidreadCod
{
FILE *fp;inti;
if((fp=fopen(“data.txt“,“r“))==NULL)
{
printf(“cannotopendata\n“);exit(0);
}
i=0;
while((fscanf(fp,“%d%s“,cod[i].xuh,cod[i++].valu))!=EOF);fclose(fp);
}//readCod
voidreadGoal
{
FILE *fp;inti;
if((fp=fopen(“goal.txt“,“r“))==NULL)
{
printf(“cannotopengoal\n“);exit(0);
}
i=0;
while((fscanf(fp,“%d%s“,goal[i].xuh,goal[i++].valu))!=EOF);fclose(fp);
}//readGoal规章库
typedefstruct
{
intrslt;
intcodNum;//记载前提的个数intcod[10];//记载前提的序号intused;//记载是否已匹配成功
}Nrule;
Nrulerule[50];voidreadRule
{
FILE *fp;inti;
inttempxuh,tempcodn;charch;
if((fp=fopen(“rules.txt“,“r“))==NULL)
{
printf(“cannotopenrules\n“);exit(0);
}
i=0;
rule[i].codNum=0;
while((ch=fgetc(fp))!=EOF)
{
if(i==15)
i=i;tempcodn=0;
while(ch!=”\n”ch!=EOF)//每一条规章
{
tempxuh=0;while(ch=”9”ch=”0”)
{
tempxuh=tempxuh*10+ch-”0”;//ch=fgetc(fp);
}
rule[i].cod[tempcodn++]=tempxuh;
tempxuh=0;
if(ch==”=”)//下一个是结论
{
ch=fgetc(fp);while(ch=”9”ch=”0”)
{
tempxuh=tempxuh*10+ch-”0”;ch=fgetc(fp);
}
rule[i].rslt=tempxuh;
}//if
elseif(ch==”*”)
{
ch=fgetc(fp);
}
rule[i].codNum++;
}
i++;
ch=fgetc(fp);
}
rulenum=i;fclose(fp);
}
规章库的匹配算法是什么?如何选用可用规章集中的规章?分别使用哪些函数实现的?
程序中的正向搜寻是
专注地铁、铁路、市政领域安全管理资料的定制、修改及润色,本人已有7年专业领域工作经验,可承接安全方案、安全培训、安全交底、贯标外审、公路一级达标审核及安全生产许可证延期资料编制等工作,欢迎大家咨询~
文档评论(0)