中南大学人工智能实验报告

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

人工智能实验报告

学院:

专业班级:

指导老师:

学号:

姓名:

第一次实验:搜索策略

1.节点静态图(Node1为起点,Node0为终点)

2.DFS

搜索策略:当节点v的所有边都己被探寻过,搜索将回溯到发现节点v的那条边的起始节点。这一过程一直进行到已发现从源节点可达的所有节点为止。如果还存在未被发现的节点,则选择其中一个作为源节点并重复以上过程,整个进程反复进行直到所有节点都被访问为止。属于盲目搜索。

搜索结果

前四步open表和close表的变化

3.BFS

搜索策略:BFS并不使用经验法则算法。从算法的观点,所有因为展开节点而得到

的子节点都会被加进一个先进先出的队列中。依次对出队的结点进行搜索,直至找到目标节点

搜索结果

前四步open表和close表的变化

4.Lowest cost first

搜索策略:类似于BFS,但在搜索结点时,并不按照队列的顺序进行搜索,而选取队列中与起始结点距离最近的结点进行搜索。

搜索结果

前四步open表和close表的变化

5.best first

搜索策略:最佳优先搜索通过扩展最有可能到达目标节点的节点,根据指定的规则,探索一个图。

搜索结果

前四步open表和close表的变化

6.层次深度优先

搜索策略:令k=1,进行k层的深度优先搜索,如果没有找到目标,则k+1,进行k+1层的深度优先搜索,以此类推。

搜索结果

前四步open表和close表的变化

7.A*算法

搜索策略:A*[1](A-Star)算法是一种静态路网中求解最短路最有效的直接搜索方法。

公式表示为:f(n)=g(n)+h(n),

其中f(n) 是从初始点经由节点n到目标点的估价函数,

g(n) 是在状态空间中从初始节点到n节点的实际代价,

h(n) 是从n到目标节点最佳路径的估计代价。

保证找到最短路径(最优解的)条件,关键在于估价函数f(n)的选取:

估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。并且如果h(n)=d(n),即距离估计h(n)等于最短距离,那么搜索将严格沿着最短路径进行,此时的搜索效率是最高的。

如果估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。

搜索结果

前四步open表和close表的变化

8.修改源代码中的估价函数

对于一个启发式算法来说,他的搜索顺序依赖于估价函数的定义,而估价函数中启发函数部分h的定义比较主观,容易对搜索造成比较大的影响。因此,如果我们修改关于八数码问题的源代码,将估价函数中的曼哈顿距离改为欧式距离,结果可能会改变。

修改前

修改后(将启发函数由曼哈顿距离改为欧氏距离)

由上面的2个结果可以看出,当未做修改前,我们的算法可以通过5步搜索得出结果,当把曼哈顿距离改为欧氏距离之后,算法尝试了561次搜索,直到内存不够,也没能得出结果。可见估价函数对于整个搜索的影响力。

第二次实验:推理技术

1.实验说明

产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。

2.实验内容

下面以一个具体的动物识别专家系统模型来说明其原理。

建立该专家系统的代码:

实现逆向推理过程(该动物是鸟):

将该事实(该动物是鸟)与规则库进行匹配,与“该动物是鸟 <- 该动物有羽毛.”和“该动物是鸟 <- 该动物会飞&会下蛋”这两条规则匹配,于是得到这两个结论,将它们加入用于推理的事实中,继续与规则库匹配,发现没有能够继续匹配的规则了,于是推理终止。过程如下

我尝试对规则库进行修改,将“该动物是鸟 <- 该动物会飞&会下蛋.”改为了“该动物是鸟 <- 该动物会飞&会下蛋&有屁股.”,果然发现得到的结果改变了

后来我又尝试自己建立规则库

规则库代码如下:

% file: 动物识别系统规则库.pl

该动物是人 <- 该动物有毛发.

该动物是人 <- 该动物会说话.

该动物是人 <- 该动物知羞耻.

该动物有毛发 <- 该动物等级高.

该动物有毛发 <- 该动物不是鱼.

该动物不是鱼 <- 该动物不会游泳.

%------动物识别系统事实集:

%---- %--该动物是人

%该动物有毛发.

%会说话.

%知羞耻

%--- %该动物有毛发

%该动物等级高

%该动物不是鱼

%--- %该动物不是鱼

%该动物不会游泳

实验自己生成的产生式系统(逆向推理“该动物有毛发”),得到如下结

由“该动物有毛发”推出了“该动物等级高”和“该动物不是鱼”,进而推出了“该动物不会游泳”。可见这个产生式系统是符合要求的。

第三次实验:神经网络

1.实验内容

1.1多数赞成表决器的应用

网络拓扑图

所使用的训练数据集:

数据类型:(输入节点0,输入节点1,输入节点2,输入

节点5)

(0,0,0,0)(0,0,1,0)(0,1,1,1)(1,0,0,0)(1,0,1,1)(1,1,0,1)(1,1,1,1) 反复对这个网络训练的结果:

训练两百次时的误差 0.03

可见随着不断的训练,误差越来越小,也就是说网络越来越能满足功能的要求,下面是误差随训练次数的变化图。 1.2异或问题的实现 网络拓扑图 用于训练的数据集:

(0,0,0)

(0,1,0)(1,0,1)

对网络进行训练的结果:

训练200次的误差 0.010

误差测试如下图

可以发现,和多数赞成表决器的BP 网络一样,这个BP 网络经过训练,误差也在不断减小。单层的神经网络无法实现异或问题,但是含有中间层的BP 网络却可以很好

训练一次时的总误差 1.68 训练五十次时的误差 0.52 训练一百次时的误差 0.11 训练一百五十次时的误差 0.05

数据类型:(输入节点0,输入节点1,输入节点4) 训练1次的误差 0.018 训练50次的误差 0.010 训练100次的误差 0.010 训练150次的误差 0.010

相关文档
最新文档