《人工智能》实验指导与报告书

上传人:第*** 文档编号:31888552 上传时间:2018-02-09 格式:DOC 页数:14 大小:102.50KB
返回 下载 相关 举报
《人工智能》实验指导与报告书_第1页
第1页 / 共14页
《人工智能》实验指导与报告书_第2页
第2页 / 共14页
《人工智能》实验指导与报告书_第3页
第3页 / 共14页
《人工智能》实验指导与报告书_第4页
第4页 / 共14页
《人工智能》实验指导与报告书_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《《人工智能》实验指导与报告书》由会员分享,可在线阅读,更多相关《《人工智能》实验指导与报告书(14页珍藏版)》请在金锄头文库上搜索。

1、 常熟理工学院人工智能实验指导与报告书2016 2017 学年 第 1 学期专 业 计算机科学与技术 班 级 计科142 学 号 Z09314214 姓 名 张磊 实验地点 N6-110 指导教师 汤力 计算机科学与工程学院1实验目录实验 1 产生式系统 .2实验 2 图像分割算法 .42实验1 实验目的1. 理解产生式系统的结构原理与实际应用。2. 掌握产生式规则表示及规则库组建的实现方法。3. 理解推理机的算法原理并掌握其编程实现方法。预习内容产生式系统实验内容运用所学知识,设计并编程实现一个简单的产生式系统1. 简单产生式系统的名称及概述(包括所做系统的背景介绍)答:通过理解并体会知识库

2、与控制系统相互独立的智能产生式系统与一般程序的区别,为以后设计并实现复杂的专家系统奠定基础。知识表示为产生式知识表示方法,设计并实现具有 15 条规则能自动识别 7 种动物的产生式系统。知识库与控制系统相互独立,系统完成后除了能识别已有的 7 种动物外,按产生式知识表示方法向知识库中添加、修改新的知识后,系统能在不修改控制系统程序的情况下仍然能正确识别。2. 简单产生式系统的总体设计(系统组成模块及功能说明,包括人机交互模块、规则库存储及管理模块、综合数据库管理模块以及推理机制模块等)。答:产生式系统由三部分组成,即总数据库、产生式规则和控制策略。总数据库用于存放求解过程中各种当前信息的数据结

3、构。产生式规则中某条规则的前提与总数据库中的某些事实相匹配时,该规则就被激活,并把其结论作为新的事实存入总数据库。产生式规则是一个规则库,在本系统中为 Rule.txt 文本文件,用于存放于求解问题有关的某个领域知识的规则集合及其交换规则。控制策略为一个推理机构,由一组程序组成,用来控制产生式系统的运行,决定问题求解过程的推理路线,实现对问题的求解。3. 简单产生式系统的详细设计答:根据产生式系统的原理,该系统一般由规则库、综合数据库、控制系统三部分构成。先定义规则库结构体,里面包括 Condition620,result20和规则数 Cnum,再定义综合数据库即事实库,里面包括 item20

4、20,和事实数 Fnum,主要用到的参数就是这些。然后初始化规则库和综合数据库,编辑规则库。之后就是主程序,也就是推理机的作用:先让用户输入事实,然后与规则库中的知识从第一条开始逐条匹配,当匹配成功时,将结论插入事实库并更新事实库,再逐条匹配,依次循环.最终如果3能匹配成功就显示该动物是.,否则显示无法识别该动物,程序结束。4. 系统流程5. 系统运行演示过程4实验结果(可续页)#include stdafx.h#include#include#includeusing namespace std;int _tmain()int rule40;int data100=17,21,22,13,3

5、;int n=5;int i;for( i=1;i32;i+)rulei=i;for(i=0;in;i+)if(rule1=datai) datan=rule2;n+;coutcheck1;else if(rule3=datai)datan=rule2;5n+;coutcheck3endl;else if(rule4=datai)datan=rule5;n+;coutcheck4;else if(rule6=datai) for(i=0;in;i+)if(rule7=datai)datan=rule5;n+;coutcheck6;else if(rule2=datai)for(i=0;in;i

6、+)if(rule8=datai)datan=rule9;n+;coutcheck2;else if(rule13=datai)datan=rule14;n+;coutsecondendl;else if(rule15=datai)datan=rule15;n+;else if(rule10=datai)6 for(i=0;in;i+)if(rule11=datai)for(i=0;in;i+)if(rule12=datai) datan=rule9;n+;coutcheck10;else if (rule9=datai)for(i=0;in;i+)if(rule16=datai) for(i

7、=0;in;i+)if(rule17=datai) datan=rule18;n+;coutcheck9;else if(rule19=datai)datan=rule20;n+;else if(rule14=datai) cout this is the checkendl;7for(i=0;in;i+) if(rule19=datai)datan=rule24;n+;coutcheck14;else if(rule21=datai)for(i=0;in;i+)if(rule22=datai) for(i=0;in;i+)if(rule17=datai)datan=rule23;n+;cou

8、texampleendl;else if(rule5=datai)for(i=0;in;i+)if(rule30=datai)datan=rule31;n+;coutcheck5endl;else if(rule27=datai)for(i=0;in;i+)if(rule28=datai)8 for(i=0;in;i+)if(rule25=datai)datan=rule29;n+;coutexampleendl;for( i=0;in;i+)coutdatai;for(i=0;in;i+)if(rule18=datai)cout该动物金钱豹endl;else if(rule20=data20

9、) cout该动物为虎endl;else if(rule20=data23) cout该动物为长颈鹿endl;else if(rule20=data24) cout该动物为斑马endl;else if(rule20=data26) cout该动物为鸵鸟endl;else if(rule20=data29) cout该动物为企鹅endl;else if(rule20=data31) cout该动物为信天翁endl;return 0;实验小结:通过本次实验,第一次真正的接触到产生式系统,虽然还没有具体学习过产生式算法,但是通过本次实践,对正向推理反向推理的过程可以说已经有了大概的了解喝一些自己的9

10、看法,对代码的控制能力也有了一定的提高,递归函数的设计,流程的控制都得到了一定的强化。我觉得本次实验的算法还是比较简单的,关键是数据结构的设计,我运用了很多自定义的结构体想使程序显得简单一些,但是效果并不好,别人很难分清那些结构体。但是总的来说实验过程和结果都挺顺利的,收获颇丰。教师评分实验2 图像分割算法实验目的理解和掌握图像边缘检测(Sobel 、Prewitt、Log 边缘算子)的方法和应用; 掌握用阈值法进行图像分割的基本方法, 通过图像分割算法理解人工智能中的遗传算法和神经网络算法预习内容遗传算法和神经网络算法实验内容实现一个图像分割算法实验结果(可续页)Canny 边缘分割clc;

11、a = imread(1.bmp);a=rgb2gray(a); % 选取的是 jpg 格式的图片,试用要进行灰度处理 imshow(a); title(灰度图 );ffta = fft2(a); % 获取 2 维离散傅里叶变化后的图像,保存到 fftIsffta = fftshift(ffta); % 将傅里叶变化的中心移到图像中心,保存到 sfftIRR = real(sffta); % 取实部II = imag(sffta); % 取虚部10A = sqrt(RR.2 + II.2); % 计算频谱幅值A = (A - min(min(A)/(max(max(A) - min(min(A

12、)*225; % 灰度拉升,将变换后的图像拉升到 0255 区间b=edge(a,canny,0.03,0.06); %灰度图的边缘提取c=edge(a,canny,0.05,0.1);d=edge(a,canny,0.05,0.1,2);figure;subplot(1,3,1),imshow(b), axis on;title(canny 阈值=0.02);subplot(1,3,2),imshow(c), axis on;title(canny 阈值=0.07);subplot(1,3,3),imshow(d),axis on;title(默认);figure; imshow(A); title(频谱图 );Soble 算子-阈值不同时的边缘分割a = imread(1.bmp);a=rgb2gray(a); % 灰度处理 b=edge(a,sobel,0.02); c=edge(a,sobel,0.07); d,e=edge(a,sobel);subplot(1,3,1),imshow(b), axis on;title(sobel 阈值=0.02);subplot(1,3,2),imshow(c), axis on;title(sobel 阈值=0.07)subplot(1,3,3),imshow(d),axis on;title(默认 );四种算子的边缘分割I=im

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 工业设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号