八数码实验报告人工智能课设报告

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

学生实验报告

实验课名称:人工智能

实验名称: 八数码

专业名称:计算机科学与技术

班级:

学号:

学生姓名:

教师姓名:

2010 年10 月20日

一.实验内容

用OPEN表和CLOSED表解决搜索问题。

二.实验题目

采用启发式算法(如A*算法)求解八数码问题。

三.实验要求

1.必须使用OPEN表和CLOSED表。

2.明确给出问题描述。系统初始状态。目标状态和启发式函数。

3.除了初始状态以外,至少搜索四层。

4.给出解路径(解图)。

四.实验过程

①问题:初始状态到目标状态是否可解如何判断?

答:实验过程自己给出的初始状态使用A*算法求解,并不是所有的初始状态都可解到达目标状态。因为八数码问题其实是0~9的一个排列,而排列有奇排列和偶排列,从奇排列不能转化为偶排列或者相反。例如:函数f(s)表示s前比s 小的数字的数目(s

则当f(a8)+f(a7)+……+f(a1)为偶数时才能重排成,所以嘛,上面那个有解的.

②问题描述:

在3X3的九宫格棋盘上,摆有8个将牌,每一个将牌都刻有1~8数码中的某一个数码。棋盘中留有一个空格,允许周围的某一个将牌向空格移动,这样通过移动将牌就可以不断地改变将牌的布局。这种游戏的求解的问题是:给定一种处

世的将牌布局或结构和一个目标的布局,问如何移动将牌,实现从从初始状态到目标状态的转变。

下面给出初始状态和目标状态:

初始状态:Array

目标状态:

评价函数f(n)形式为:f(n)=g(n)+h(n),其中g(n)是节点所处的深度,

h(n)是启发式函数,这里启发式函数h(n)表示“不在位”的将牌个数,这时f(n)

注意:移动规则为左-→上→右→下。

③搜索过程:

因此可得解路径:S(4)→B(4)→D(5)→E(5)→I(5)→K(5)→L(5).

④得到OPEN表和CLOSED表

OPEN表

结论:由以上分析,可以从CLOSED表中可知从初始状态到结束状态的搜索路径为:

S0→S2→S5→S9→S11→S12.

五、实验体会

通过本次实验又将课本内容熟悉了一遍,而且通过互联网了解了更多的关于八数码问题,如读过网上用VC++编写八数码问题的源代码,虽然理解不是很深,但基本思想也是有所体会;同时也对广度优先搜索算法,深度优先算法,双向广度优先算法及A*算法有更深的掌握。

相关文档
最新文档