《人工智能》实验报告1.wps

上传人:b**** 文档编号:14631602 上传时间:2023-06-25 格式:WPS 页数:26 大小:1.26MB
下载 相关 举报
《人工智能》实验报告1.wps_第1页
第1页 / 共26页
《人工智能》实验报告1.wps_第2页
第2页 / 共26页
《人工智能》实验报告1.wps_第3页
第3页 / 共26页
《人工智能》实验报告1.wps_第4页
第4页 / 共26页
《人工智能》实验报告1.wps_第5页
第5页 / 共26页
《人工智能》实验报告1.wps_第6页
第6页 / 共26页
《人工智能》实验报告1.wps_第7页
第7页 / 共26页
《人工智能》实验报告1.wps_第8页
第8页 / 共26页
《人工智能》实验报告1.wps_第9页
第9页 / 共26页
《人工智能》实验报告1.wps_第10页
第10页 / 共26页
《人工智能》实验报告1.wps_第11页
第11页 / 共26页
《人工智能》实验报告1.wps_第12页
第12页 / 共26页
《人工智能》实验报告1.wps_第13页
第13页 / 共26页
《人工智能》实验报告1.wps_第14页
第14页 / 共26页
《人工智能》实验报告1.wps_第15页
第15页 / 共26页
《人工智能》实验报告1.wps_第16页
第16页 / 共26页
《人工智能》实验报告1.wps_第17页
第17页 / 共26页
《人工智能》实验报告1.wps_第18页
第18页 / 共26页
《人工智能》实验报告1.wps_第19页
第19页 / 共26页
《人工智能》实验报告1.wps_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《人工智能》实验报告1.wps

《《人工智能》实验报告1.wps》由会员分享,可在线阅读,更多相关《《人工智能》实验报告1.wps(26页珍藏版)》请在冰点文库上搜索。

《人工智能》实验报告1.wps

人工智能人工智能实验报告实验报告实验报告实验报告实验一实验名称:

知识的表示与推理实验姓名:

实验日期:

年月日成绩:

一、实验目的一、实验目的状态空间表示法是人工智能领域最基本的知识表示方法之一,也是进一步学习状态空间搜索策略的基础,本实验通过牧师与野人渡河的问题,强化学生对知识表示的了解和应用,为人工智能后续环节的课程奠定基础。

二、实验设备二、实验设备PC,Matlab三、实验步骤三、实验步骤实验内容:

有n个牧师和n个野人准备渡河,但只有一条能容纳c个人的小船,为了防止野人侵犯牧师,要求无论在何处,牧师的人数不得少于野人的人数(除非牧师人数为0),且假定野人与牧师都会划船,试设计一个算法,确定他们能否渡过河去,若能,则给出小船来回次数最少的最佳方案。

实验要求:

输入:

牧师人数(即野人人数):

n;小船一次最多载人量:

c。

输出:

若问题无解,则显示Failed,否则,显示Successed输出一组最佳方案。

用三元组(X1,X2,X3)表示渡河过程中的状态。

并用箭头连接相邻状态以表示迁移过程:

初始状态-中间状态-目标状态。

例:

当输入n=2,c=2时,输出:

221-200-211-010-021-000;其中:

X1表示起始岸上的牧师人数;X2表示起始岸上的野人人数;X3表示小船现在位置(1表示起始岸,0表示目的岸)。

要求:

写出算法的设计思想和源程序,并以图形用户界面实现人机交互,进行输入和输出结果,如:

Pleaseinputn:

2Pleaseinputc:

2OptimalProcedure:

221-200-211-010-021-000SuccessedorFailed?

:

Successed实验原理:

先来看看问题的初始状态和目标状态,假设和分为甲岸和乙岸:

初始状态:

甲岸,n野人,n牧师;乙岸,0野人,0牧师;船停在甲岸,船上有0个人;目标状态:

甲岸,0野人,0牧师;乙岸,n野人,n牧师;船停在乙岸,船上有0个人;整个问题就抽象成了怎样从初始状态经中间的一系列状态达到目标状态。

问题状态的改变是通过划船渡河来引发的,所以合理的渡河操作就成了通常所说的算符。

以n=3、c=2为例,可以得出以下5个算符(按照渡船方向的不同,也可以理解为10个算符):

渡1野人、渡1牧师、渡1野人1牧师、渡2野人、渡2牧师算符知道以后,剩下的核心问题就是搜索方法了,可以考虑采用深度优先搜索,通过一个函数找出下一步可以进行的渡河操作中的最优操作,如果没有找到则返回其父节点,看看是否有其它兄弟节点可以扩展,然后递规调用,一级一级的向后扩展。

搜索中采用的一些规则如下:

1、渡船优先规则:

甲岸一次运走的人越多越好(即甲岸运多人优先),同时野人优先运走;乙岸一次运走的人越少越好(即乙岸运少人优先),同时牧师优先运走;2、不能重复上次渡船操作(通过链表中前一操作比较),避免进入死循环;3、任何时候河两边的野人和牧师数均分别大于等于0且小于等于3;4、由于只是找出最优解,所以当找到某一算符(当前最优先的)满足操作条件后,不再搜索其兄弟节点,而是直接载入链表。

5、若扩展某节点a的时候,没有找到合适的子节点,则从链表中返回节点a的父节点b,从上次已经选择了的算符之后的算符中找最优先的算符继续扩展b。

四、实验结果与分析四、实验结果与分析MATLAB程序:

function=guohe()globalnnode;n=2;solveNum=1;%问题的解法result=zeros(100,1);node=zeros(300,5);node(1,:

)=3,3,1,1,-1;%初始化%1左岸传教士数2左岸野人数3船(1为左岸,0为右岸)%4是否可扩展(1为可扩展)5父节点号(-1表示无父节点,即为初始节点)j=1;%forj=1:

nwhile

(1)ifjnbreakendifnode(j,4)=1%判断结点是否可扩展ifnode(j,3)=1%船在左岸if(node(j,1)=0)|(node(j,1)=3)&(node(j,2)=1)forward(j,0,1);endif(node(j,1)=1&node(j,2)=1|node(j,1)=3&node(j,2)=2)forward(j,1,0);endif(node(j,1)=1&node(j,1)=node(j,2)forward(j,1,1);endif(node(j,1)=0|node(j,1)=3)&node(j,2)=2forward(j,0,2);endif(node(j,1)=2&node(j,2)=2|node(j,1)=3&node(j,2)=1)forward(j,2,0);endelseifnode(j,3)=0%船在右岸if(node(j,1)=0)|(node(j,1)=3)&(node(j,2)=2)afterward(j,0,1);endif(node(j,1)=2&node(j,2)=2|node(j,1)=0&node(j,2)=1)afterward(j,1,0);endif(node(j,1)=2&node(j,1)=node(j,2)afterward(j,1,1);endif(node(j,1)=0|node(j,1)=3)&node(j,2)1BoatPriNum=node(result(j),1)-node(result(j-1),1);BoatWildNum=node(result(j),2)-node(result(j-1),2);ifnode(result(j),3)=1fprintf(第%d次:

左岸到右岸,传教士过去%d人,野人过去%d人n,.StepNum,abs(BoatPriNum),abs(BoatWildNum);StepNum=StepNum+1;endifnode(result(j),3)=0fprintf(第%d次:

右岸到左岸,传教士过去%d人,野人过去%d人n,.StepNum,abs(BoatPriNum),abs(BoatWildNum);StepNum=StepNum+1;endj=j-1;endpause(0.2);fprintf(n);solveNum=solveNum+1;endendfprintf(问题结束);%从左岸到右岸,船上传教士x个,野人y个function=forward(z,x,y)globaln;globalnode;node(n,1)=node(z,1)-x;node(n,2)=node(z,2)-y;node(n,3)=0;r=search(z);if(r)returnendnode(z,4)=0;node(n,4)=1;node(n,5)=z;s=destination();ifsnode(n,4)=-1;endn=n+1;%从右岸到左岸,船上传教士x个,野人y个function=afterward(z,x,y)globaln;globalnode;node(n,1)=node(z,1)+x;node(n,2)=node(z,2)+y;node(n,3)=1;r=search(z);if(r)returnendnode(z,4)=0;node(n,4)=1;node(n,5)=z;s=destination();ifsnode(n,4)=-1;endn=n+1;%functionr=search(x)globalnnode;i=x;whilenode(i,5)=-1ifnode(i,1)=node(n,1)&node(i,2)=node(n,2)&node(i,3)=node(n,3)r=0;returnendi=node(i,5);end%跟初始节点比较ifnode(i,1)=node(n,1)&node(i,2)=node(n,2)&node(i,3)=node(n,3)r=0;returnendr=1;%均不相同%functions=destination()globalnnode;ifnode(n,1)=0&node(n,2)=0&node(n,3)=0s=1;returnends=0;实验结果:

传教士野人过河问题第1种方法:

第1次:

左岸到右岸,传教士过去1人,野人过去1人第2次:

右岸到左岸,传教士过去1人,野人过去0人第3次:

左岸到右岸,传教士过去0人,野人过去2人第4次:

右岸到左岸,传教士过去0人,野人过去1人第5次:

左岸到右岸,传教士过去2人,野人过去0人第6次:

右岸到左岸,传教士过去1人,野人过去1人第7次:

左岸到右岸,传教士过去2人,野人过去0人第8次:

右岸到左岸,传教士过去0人,野人过去1人第9次:

左岸到右岸,传教士过去0人,野人过去2人第10次:

右岸到左岸,传教士过去0人,野人过去1人第11次:

左岸到右岸,传教士过去0人,野人过去2人第2种方法:

第1次:

左岸到右岸,传教士过去1人,野人过去1人第2次:

右岸到左岸,传教士过去1人,野人过去0人第3次:

左岸到右岸,传教士过去0人,野人过去2人第4次:

右岸到左岸,传教士过去0人,野人过去1人第5次:

左岸到右岸,传教士过去2人,野人过去0人第6次:

右岸到左岸,传教士过去1人,野人过去1人第7次:

左岸到右岸,传教士过去2人,野人过去0人第8次:

右岸到左岸,传教士过去0人,野人过去1人第9次:

左岸到右岸,传教士过去0人,野人过去2人第10次:

右岸到左岸,传教士过去1人,野人过去0人第11次:

左岸到右岸,传教士过去1人,野人过去1人第3种方法:

第1次:

左岸到右岸,传教士过去0人,野人过去2人第2次:

右岸到左岸,传教士过去0人,野人过去1人第3次:

左岸到右岸,传教士过去0人,野人过去2人第4次:

右岸到左岸,传教士过去0人,野人过去1人第5次:

左岸到右岸,传教士过去2人,野人过去0人第6次:

右岸到左岸,传教士过去1人,野人过去1人第7次:

左岸到右岸,传教士过去2人,野人过去0人第8次:

右岸到左岸,传教士过去0人,野人过去1人第9次:

左岸到右岸,传教士过去0人,野人过去2人第10次:

右岸到左岸,传教士过去0人,野人过去1人第11次:

左岸到右岸,传教士过去0人,野人过去2人第4种方法:

第1次:

左岸到右岸,传教士过去0人,野人过去2人第2次:

右岸到左岸,传教士过去0人,野人过去1人第3次:

左岸到右岸,传教士过去0人,野人过去2人第4次:

右岸到左岸,传教士过去0人,野人过去1人第5次:

左岸到右岸,传教士过去2人,野人过去0人第6次:

右岸到左岸,传教士过去1人,野人过去1人第7次:

左岸到右岸,传教士过去2人,野人过去0人第8次:

右岸到左岸,传教士过去0人,野人过去1人第9次:

左岸到右岸,传教士过去0人,野人过去2人第10次:

右岸到左岸,传教士过去1人,野人过去0人第11次:

左岸到右岸,传教士过去1人,野人过去1人从知识的表示和推理过程来看,过河问题共有四种方案。

通过本次实验,对人工智能的经典问题的解决方法有了一定的了解。

通过牧师与野人渡河的问题,强化了我对知识表示的了解和应用,而且这次试验也为进一步学习状态空间搜索策略和人工智能课程的后续学习奠定了基础。

实验报告实验报告实验二实验名称:

基于MATLAB的模糊推理系统设计姓名:

实验日期:

年月日成绩:

一、实验目的一、实验目的理解模糊逻辑推理的原理及特点,熟练应用模糊推理,了解可能性理论。

二、实验设备二、实验设备Matlab的FuzzyLogicTool三、实验步骤三、实验步骤实验内容:

设计洗衣机洗涤时间的模糊控制。

已知人的操作经验为:

“污泥越多,油脂越多,洗涤时间越长”;“污泥适中,油脂适中,洗涤时间适中”;“污泥越少,油脂越少,洗涤时间越短”。

实验要求:

(1)假设污泥、油脂、洗涤时间的论域分别为0,100、0,100和0,120,设计相应的模糊推理系统,给出输入、输出语言变量的隶属函数图,模糊控制规则表和推论结果立体图。

(2)假定当前传感器测得的信息为x0(污泥)=60,y0(油脂)=70,采用面积重心法反模糊化,给出模糊推理结果,并观察模糊推理的动态仿真环境,给出其动态仿真环境图。

提示:

模糊控制规则如下表1所示,其中SD(污泥少)、MD(污泥中)、LD(污泥多)、NG(油脂少)、MG(油脂中)、LG(油脂多)、VS(洗涤时间很短)、S(洗涤时间短)、M(洗涤时间中等)、L(洗涤时间长)、VL(洗涤时间很长)。

洗衣机的模糊控制规则:

xyzSDNGVSSDMGMSDLGLMDNGSMDMGMMDLGLLDNGMLDMGLLDLGVL先模糊推理所处理的事物自身是模糊的,概念本身没有明确的外延,一个对象是否符合这个概念难以明确地确定,模糊推理是对这种不确定性,即模糊性的表示与处理。

模糊逻辑推理是基于模糊性知识(模糊规则)的一种近似推理,一般采用Zadeh提出的语言变量、语言值、模糊集和模糊关系合成的方法进行推理。

实验过程:

在MATLAB的命令窗口输入fuzzy命令,打开模糊逻辑工具箱的用户界面窗口。

新建一个Mamdani模糊推理系统,增加一个输入变量。

将输入变量命名为mud、oil,输出变量为time,这样建立了一个两输入单输出模糊推理系统框架。

(3)设计模糊化模块:

双击变量图标打开MembershipFunctionEditor窗口,分别将两输入变量的论域均设为0,100,输出论域为0,120。

通过增加隶属度函数来进行模糊空间划分。

输入变量mud划分为三个模糊集:

SD、MD和LD,隶属度函数均为高斯函数,参数分别为0050、050100和50100100;输入变量oil划分为三个模糊集:

SG、MG和LG,隶属度函数均为梯形函数,参数分别为0050、050100和50100100;输出变量time划分为五个模糊集:

VS、S、M、L、VL,隶属度函数均为三角形函数,参数分别为0020、02050、205080、5080120和80120120。

设置模糊规则:

实验结果:

模糊推理参数均使用默认值,通过曲面观察器(SurfaceViewer)查看小费模糊推理的输入输出关系曲面。

从图中可以看出,当污泥=60,油污=70,洗涤时间为71.3。

实验报告实验报告实验三实验名称:

状态空间搜索八数码问题姓名:

实验日期:

年月日成绩:

一、实验目的一、实验目的1.熟悉启发式搜索的思想,加深对各种图搜索策略概念的理解;2.运用搜索算法重排九宫使之从初始状态到底目标状态,并求解最短路径。

二、实验设备二、实验设备PC,MATLABl三、实验步骤三、实验步骤实验内容:

三种不同的搜索算法中任选一种实现重排九宫。

这三种方法分别是:

A*算法、有界深度优先搜索和广度优先搜索。

具体描述:

在一个33的方格棋盘上放置8个标有1、2、3、4、5、6、7、8数字的将牌,留下一个空格(用0表示)。

规定:

与空格相邻的将牌可以移入空格。

实验要求:

寻找一条从初始状态到目标状态的将牌移动路线。

实验原理:

启发式搜索是在搜索中加入了与问题有关的启发性信息,用以指导搜索朝着最有希望的方向前进,加速问题的求解过程并找到最优解。

A*算法是一种启发式搜索。

广度优先搜索按照“先扩展出的节点先被考察”的原则进行搜索。

深度优先搜索按照“后扩展出的节点先被考察”的原则进行搜索。

有界深度优先搜索的原则与深度优先搜索相同,但是它规定了深度限界,使搜索不得无限制地向纵深方向发展。

(一)搜索的一般描述:

1.把初始节点S0放入OPEN表,并建立目前只包含S0的图,记为G;2.检查OPEN表是否为空,若为空则问题无解,退出;3.把OPEN表的第一个节点取出放入CLOSE表,并计该节点为n;4.考察节点n是否为目标节点。

若是,则求得了问题的解,退出;5.扩展节点n,生成一组子节点。

把其中不是节点n先辈的那些子节点记做集合M,并把这些子节点作为节点n的子节点加入G中;6.针对M中子节点的不同情况,分别进行如下处理:

(1)对于那些未曾在G中出现过的M成员设置一个指向父节点(即节点n)的指针,并把它们放入OPEN表;(不在OPEN表)

(2)对于那些先前已经在G中出现过的M成员,确定是否需要修改它指向父节点的指针;(在OPEN表中)(3)对于那些先前已在G中出现并且已经扩展了的M成员,确定是否需要修改其后继节点指向父节点的指针;(在CLOSE表中)7.按某种搜索策略对OPEN表中的节点进行排序;8.转第2步。

(二)A*算法描述:

1.把初始节点S0放入OPEN表,并建立目前只包含S0的图,记为G;2.检查OPEN表是否为空,若为空则问题无解,退出;3.把OPEN表的第一个节点取出放入CLOSE表,并计该节点为n;4.考察节点n是否为目标节点。

若是,则求得了问题的解,退出;5.扩展节点n,生成一组子节点。

把其中不是节点n先辈的那些子节点记做集合M,并把这些子节点作为节点n的子节点加入G中;6.针对M中子节点的不同情况,分别进行如下处理:

(1)对于那些未曾在G中出现过的M成员设置一个指向父节点(即节点n)的指针,并把它们放入OPEN表;(不在OPEN表)

(2)对于那些先前已经在G中出现过的M成员,确定是否需要修改它指向父节点的指针;(在OPEN表中,对g(x)进行更新)(3)对于那些先前已在G中出现并且已经扩展了的M成员,确定是否需要修改其后继节点指向父节点的指针;(在CLOSE表中,对节点n子节点的子节点更新g(x))7.对OPEN表中的节点按估价函数进行排序;8.转第2步。

四、实验结果与分析四、实验结果与分析MATLAB程序:

clear;clc;disp(重排九宫);disp(在一个33的方格棋盘上放置8个标有1、2、3、4、5、6、7、8数字的将牌,留下一个空格(用0表示)。

);s=input(请输入初始状态矩阵(33)如012;345;678:

);t=input(请输入目标状态矩阵(33)如012;345;678:

);disp(初始状态:

);sdisp(目标状态:

);tdisp(移动路径:

);snum=ex1_1(s,t);%判断当前不在位数whilenum0%不再位数大于0R=ex1_2(s);lth=length(R);dir_new=null;%计算可用规则不在位数,选择最小值作为下一步走向iflth=0disp(找不到路径,程序结束);elsefork=1:

lthdir=R(k);next_s=ex1_3(s,dir);num=ex1_1(s,t);nextnum=ex1_1(next_s,t);%保存不在位数最少的走步方向ifnumnextnumdir_new=dir;endendendifdir_new=null;disp(找不到路径,程序结束);returnend%根据不在位数最少的走步方向走一步s=ex1_3(s,dir_new);num=ex1_1(s,t);endfunctionnum=ex1_1(s,t)n=0;fori=1:

3forj=1:

3if(s(i,j)=t(i,j)&s(i,j)=0)n=n+1;endendendnum=8-n;functionR=ex1_2(s)ind=find(s=0);i_0,j_0=ind2sub(33,ind);R=;num=0;ifj_0-1=1R=strcat(R,L);num=num+1;endifj_0+1=1R=strcat(R,U);num=num+1;endifi_0+1=3R=strcat(R,D);num=num+1;endfunctionnext_s=ex1_3(s,dir)ind=find(s=0);i_0,j_0=ind2sub(33,ind);next_s=s;switchdircaseLnext_s(i_0,j_0)=next_s(i_0,j_0-1);next_s(i_0,j_0-1)=0;caseRnext_s(i_0,j_0)=next_s(i_0,j_0+1);next_s(i_0,j_0+1)=0;caseUnext_s(i_0,j_0)=next_s(i_0-1,j_0);next_s(i_0-1,j_0-1)=0;caseDnext_s(i_0,j_0)=next_s(i_0+1,j_0);next_s(i_0+1,j_0)=0;otherwisedisp(wrong);End实验结果:

重排九宫在一个33的方格棋盘上放置8个标有1、2、3、4、5、6、7、8数字的将牌,留下一个空格(用0表示)。

请输入初始状态矩阵(33)如012;345;678:

012;345;678请输入目标状态矩阵(33)如012;345;678:

120;345;678初始状态:

s=012345678目标状态:

t=120345678移动路径:

s=012345678实验报告实验报告实验四实验名称:

分类专家系统设计姓名:

实验日期:

年月日成绩:

一、实验目的一、实验目的专家系统是人工智能的重要研究内容和组成部分之一,本实验通过设计一个简单的专家系统,加深学生对专家系统的组成结构和构造原理的理解,并能转化为具体的应用。

二、实验设备二、实验设备Matlab三、实验步骤三、实验步骤实验内容:

一个动物识别专家系统可由若干个属性组成,请设计一个动物识别专家系统,使其符合以下15条规则,用于识别七种动物。

动物识别15条规则的中文表示是:

规则1:

如果动物有毛发,则该动物是哺乳动物;规则2:

如果动物有奶,则该动物是哺乳动物;规则3:

如果该动物有羽毛,则该动物是鸟;规则4:

如果动物会飞,且会下蛋,则该动物是鸟;规则5:

如果动物吃肉,则该动物是肉食动物;规则6:

如果动物有犬齿,且有爪,且眼盯前方,则该动物是食肉动物;规则7:

如果动物是哺乳动物,且有蹄,则该动物是有蹄动物;规则8:

如果动物是哺乳动物,且是反刍动物,则该动物是有蹄动物;规则9:

如果动物是哺乳动物,且是食肉动物,是黄褐色的有暗斑点,则该动物是豹;规则10:

如果动物是黄褐色的,且是哺乳动物,食肉,有黑条纹,则该动物是虎;规则11:

如果动物有暗斑点,且有长腿,有长脖子,是有蹄类,则该动物是长颈鹿;规则12:

如果动物有黑条纹,且是有蹄类动物,则该动物是斑马;规则13:

如果动物有长腿、长脖子,是黑色的,是鸟,不会飞,则该动物是鸵鸟;规则14:

如果动物是鸟,且不会飞,且会游泳,且是黑色的,则该动物是企鹅;规则15:

如果动物是鸟,且善飞,则该动物是信天翁;按照上述规则设计的动物识别专家系统,要求能够根据属性的对应值(Y或N)

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2