- 39
- 0
- 约8.03千字
- 约 12页
- 2018-01-26 发布于贵州
- 举报
人工智能实验报告毕业设计]
人工智能实验报告
姓 名:
学 号:
所学专业:
报告题目:
提交日期:
八数码演示程序
问题描述
1.1八数码问题的解释
八数码问题是人工智能经典难题之一。问题是在3×3 方格盘上,放有八个数码,剩下一个为空,每一空格其上下左右的数码可移至空格。问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始位置转化为目标位置。本文介绍用A星算法,采用估计值h(n)(曼哈顿距离)和g(m)(当前深度)的和作为估计函数。
1.2八数码问题的搜索形式描述
初始状态:初始状态向量,规定向量中各分量对应的位置,各位置上的初始数字0,1,3,4,5,6,7,8,2
后继函数:移动规则,按照某条规则移动数字得到的新向量
0,1,3,4,5,6,7,8,9转移到4,1,3,0,5,6,7,8,2
目标测试:新向量是否是目标状态,也即为0,1,2,3,4,5,6,7,8
路径耗散函数:在搜索时,每深入一层则当前步数代价加1,代价总和由当前步数和可能还需要移动的步数之和。
1.3 解决方案介绍
首先,A*算法需要个估价(评价)函数:
f(x)=g(x)+h(x)
g(x)通常表示移动至当前状态需要的步数,h(x)则是启发函数。在算法进行的时候,我们将对每一个可能移动到的状态做评价,计算其f(x),然后将其放入一个OPEN数组中,最后我们选取OPEN中f(x)值最小的状态作为下一步,再重复上 述过程,因为f(x)值最小的状态意味着它最有可能(不是一定)最接近最终状态
算法介绍
2.1 搜索算法一般介绍
A*算法是一种启发式搜索算法,是常用的最短路搜寻算法,在游戏领域中有广泛的应用。所谓启发式算法,它与常规的搜索方法最大的不同是在执行过程中始终有一个提示性的信息在引导着算法的进行,使得我们不断靠近目标而不是盲目的遍历,这个提示信息就是由启发函数产生的,启发函数的好坏将直接影响算法的效率,从几篇文献看来,A*算法和广度优先、深度优先算法相比是有很明显的效率优势的。OPEN、CLOSE、初始状态最终状态
Push(source, OPEN);
While(!OPEN.isEmpty()){
FindFirstElementOfOpen();
cuNode=Pop(OPEN);
If isTheSame(cuNode,dest)
Then exit;
Push(cuNode,close)
Extend(cuNode);
}
ExtendNewNode(NewNode){
If CLOSE.NOTcontains(NewNode) Then
If OPEN.NOTcontains(NewNode)
Push(NewNode,OPEN);
Else If OPEN.get(NewNode).fNewNode.f Then
Push(NewNode,OPEN);
}
算法实现
3.1 实验环境与问题规模
本文采用java语言进行程序设计,在图形界面上可以显示八数码格局,并可以随机生成新的起始状态和目标状态。问题规模为8,解决八数码问题,但可以比较容易就能修改为对15数码问题的求解。
3.2 数据结构
1.类Node,表示一个结点,也即搜索过程中的某一个状态,其内部数据成员有ID(可以唯一地表示一个状态结点),parentID(该状态结点的母结点,保存这个值是为了在找到目标结点时可以回溯其路径),a[][](一个二维数组,用于存放当前八数码的状态),g(表示从起始状态结点开始到当前状态结点所走过的步数),h(表示从当前状态结点到目标状态结点有可能还要走多少步数),f(就是g值与h值的和)。
2.OPEN表,实现的时候使用的是,用途是存放产生的可能的新状态
3.CLOSE表,实现的时候使用的是,存放=Node结点键值对, 用途是记录已经访问过的状态。起始状态
2 1 0
7 8 5
4 3 6
终结状态
0 1 2
3 4 5
6 7 8
2.有解时的情形:
起始状态:
自动演示时的移动过程截图:
最后达到目标状态:
参考文献
人工智能游戏编程真言 (美) Steve Rabin主编
Java项目开发实践 陆正武, 张志立编著
Java SE 6.0编程指南 吴亚峰, 纪超编著
数据结构经典算法实现与习题解答 汪杰等编著
Swing Hacks:100个业界最尖端的技巧和工具 Joshua Marinacci, Chris Adamson著
Java综合实例经典 吴其庆编著
附录—源代码及其注释(算法部分,不包括界面设计的代码):
package MyAI;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
imp
您可能关注的文档
- 《让我们爱上语文》 .ppt
- 《语入乡问俗——语言和文化》课件2教学课件.ppt
- 《说“一”不“二”——避免歧义》课件3教学课件.ppt
- 《论厄运》课件3教学课件.ppt
- 《跳水》课堂演示课件 教学课件.ppt
- 《金子》[苏教版第三册].ppt
- 《那片绿绿的爬山虎》(四年级上册) 教学课件.ppt
- 《铸剑》课件12教学课件.ppt
- 《项脊轩志》课件4教学课件.ppt
- 《项脊轩志》课件5教学课件.ppt
- 7 谁是最可爱的人 课件(共24张PPT) 统编版(2024)七年级语文下册.pptx
- 2025-2026学年广西南宁市宾阳县人教版四年级上册期末练习卷(含部分答案).pdf
- 2025-2026学年人教版(2024)广东省七年级英语第二学期开学考模拟卷(含答案).pdf
- 2025-2026学年人教版广东省九年级英语第二学期开学模拟卷(含答案).pdf
- 16.2《登泰山记》课件(共41张PPT)2025-2026学年统编版高中语文必修上册.pptx
- 2025-2026学年山西省多校高二上学期1月月考英语试题.pdf
- 2025-2026学年湖南衡阳市常宁市高一上学期创新班期末测试英语试题.pdf
- 5雷锋叔叔,你在哪里 课件(共21张PPT).pptx
- 12 台阶 课件(共26张PPT) 统编版(2024)七年级语文下册.pptx
- 2025-2026学年河北沧州市沧县第一学期期末监测高二英语试题.pdf
最近下载
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)参考考试题库附答案解析.docx VIP
- 儿童身高管理.pptx VIP
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)参考考试试题附答案解析.docx VIP
- 2026至未来5年中国冲压端子市场数据分析及竞争策略研究报告.docx
- 《电梯触摸屏操控终端技术要求》.docx VIP
- 上海大学继续教育市场营销网课答案更新版.pdf VIP
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)备考考试试题及答案解析.docx VIP
- 2026中国建设银行远程智能银行中心客服代表社会招聘200人(广州20人)考试备考题库附答案解析.docx VIP
- 2021 年全国一级建造师考试执业资格考试法规-白金卷.docx VIP
- 中国燃料电池汽车产业发展白皮书(2025年).docx
原创力文档

文档评论(0)