数码显示实验报告C语言,数码问题C语言A星算法详细实验报告含代码(9页)-原创力文档...
一、实验内容和要求
八数码问题:在3×3的方格棋盘上,摆放着1到8这八个数码,有1个方格是空的,其初始状态如图1所示,要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态到目标状态。
例如:
28
4 7 6 5 7 0 5
目标状态初始状态 (b) (a)
图1 八数码问题示意图
请任选一种盲目搜索算法(广度优先搜索或深度优先搜索)或任选一种启发式搜索方法(全局择优搜索,加权状态图搜索,A 算法或 A* 算法)编程求解八数码问题(初始状态任选)。选择一个初始状态,画出搜索树,填写相应的OPEN表和CLOSED表,给出解路径,对实验结果进行分析总结,得出结论。
二、实验目的
1. 熟悉人工智能系统中的问题求解过程;
2. 熟悉状态空间的盲目搜索和启发式搜索算法的应用;
3. 熟悉对八数码问题的建模、求解及编程语言的应用。
三、实验算法
A*算法是一种常用的启发式搜索算法。
在A*算法中,一个结点位置的好坏用估价函数来对它进行评估。A*算法的估价函数可表示为:
f'(n) = g'(n) + h'(n)
这里,f'(n)是估价函数,g'(n)是起点到终点的最短路径值(也称为最小耗费或最小代价),h'(n)是n到目标的最短路经的启发值。由于这个f'(n)其实是无法预先知道的,所以实际上使用的是下面的估价函数:
f(n) = g(n) + h(n)
其中g(n)是从初始结点到节点n的实际代价,h(n)是从结点n到目标结点的最佳路径的估计代价。在这里主要是h(n)体现了搜索的启发信息,因为g(n)是已知的。用f(n)作为f'(n)的近似,也就是用g(n)代替g'(n),h(n)代替h'(n)。(大多数情况下都是满足的,可以不g(n)>=g'(n))1(这样必须满足两个条件:
用考虑),且f必须保持单调递增。(2)h必须小于等于实际的从当前节点到达目标节点的最小耗费h(n)<=h'(n)。第二点特别的重要。可以证明应用这样的估价函数是可以找到最短路径的。
*算法的步骤
A*算法基本上与广度优先算法相同,但是在扩展出一个结点后,要计算它的估价函数,并根据估价函数对待扩展的结点排序,从而保证每次扩展的结点都是估价函数最小的结点。
A*算法的步骤如下:
1)建立一个队列,计算初始结点的估价函数f,并将初始结点入队,设置队列头和尾指针。
2)取出队列头(队列头指针所指)的结点,如果该结点是目标结点,则输出路径,程序结束。否则对结点进行扩展。
3)检查扩展出的新结点是否与队列中的结点重复,若与不能再扩展的结点重复(位于队列头指针之前),则将它抛弃;若新结点与待扩展的结点重复(位于队列头指针之后),则比较两个结点的估价函数中g的大小,保留较小g值的结点。跳至第五步。
4)如果扩展出的新结点与队列中的结点不重复,则按照它的估价函数f大小将它插入队列中的头结点后待扩展结点的适当位置,使它们按从小到大的顺序排列,最后更新队列尾指针。
5)如果队列头的结点还可以扩展,直接返回第二步。否则将队列头指针指向下一结点,再返回第二步。
四、程序框图
五、实验结果及分析
输入初始状态:2 8 3 目标状态: 1 2 3
8 0 4 1 6 4
7 6 5 7 0 5
运行结果屏幕打印
OPEN表与CLOSE表:
OPEN CLOSE
0 1 2 3 4
0 1 2 3 4 5 6
0 1 5 2 3 4 6 7
0 1 5 7 2 3 4 6 8 90 1 5 7 6 2 3 4 8 9 10
0 1 5 7 6 9 2 3 4 8 11 12 13
0 1 5 7 6 9 11 2 3 4 8 12 13 14 15
0 1 5 7 6 9 11 2 3 4 8 12 13 14 15 16 170 1 5 7 6 9 11 2 3 4 8 12 13 14 15 16 17 18 190 1 5 7 6 9 11 2 3 18 4 8 12 13 14 15 16 17 19 200 1 5 7 6 9 11 2 3 18 4 8 12 13 14 15 16 17 19 21 22
0 1 5 7 6 9 11 2 3 18 4 8 12 13 14 15 16 17 19 21 22 23
0 1 5 7 6 9 11 2 3 18 4 8 23 12 13 14 15 16 17 19 21 22 24 250 1 5 7 6 9 11 2 3 18 4 8 23 24 12 13 14 15 16 17 19 2
数码显示实验报告C语言,数码问题C语言A星算法详细实验报告含代码(9页)-原创力文档...相关推荐
- c语言八数码A星算法代码解析,八数码问题c语言a星算法详细实验报告含代码解析...
八数码问题c语言a星算法详细实验报告含代码解析 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 一.实验内容和要求 八数码问题:在3 ...
- 每个c语言程序写完后 都要按照,c语言基础学习小结(习题总结)(5页)-原创力文档...
书山有路勤为径 学海无涯苦作舟 一.思考题. 1.你如何向别人解释清楚什么是编程.什么是计算机语言? 2.什么是C语言? 二.解答题. 1.用C语言编写程序:求任意两个整数的和.如果是小数的话,要求输 ...
- c语言中奇数导通,多功能电脑时钟设计报告含正确C语言程序96分(58页)-原创力文档...
精品 多功能电脑时钟设计报告 一.实训目的意义及任务要求 1.1 目的意义 在如今,单片机的使用领域已十分广泛,它在智能仪器仪表.实时工控.通 讯设备.导航系统.家用电器等均有很广泛的应用. 单片机又 ...
- html新闻网页包括主页面,工作报告之html网页制作实验报告(8页)-原创力文档...
html网页制作实验报告 [篇一:html实验报告] 武夷学院实验报告 课程名称:电子商务网站设计与开发_ 项目名称:_基于html的网页设计 姓名:林元卿专业:旅游管理 班级:3班学号:201360 ...
- 大学计算机实验报告信息的表示与转换,大学计算机实验报告一(8页)-原创力文档...
北京信息科技大学 信息管理学院 实 验 报 告 课程名称 信息系统基础 实验项目 实验一 计算机数据信息化和指令执行过程 实验仪器 PC.Office2003 专 业 **** 班级/学号 *** 学 ...
- c语言课程设计报告15页左右,C语言课程设计报告——学生信息管理系统(15页)-原创力文档...
C语言程序设计 课程设计报告 设计题目:学生信息管理系统 专 业 电子信息工程 班 级 学 生 指导教师 年 学期 设计任务: C语言课程设计任务书及指导书 5 题目:学生信息管理系统 功能:学生信息 ...
- 在c语言如何对拨码开关编程,实验四 指示灯和拨码开关实验_百度文库(15页)-原创力文档...
实验四 指示灯和拨码开关实验 一.实验目的 1.了解F2812-A 评估板在TMS320F2812DSP 外部扩展存储空间上的扩展. 2.了解F2812-A 评估板上指示灯扩展原理. 3.了解F281 ...
- 深圳大学 c语言,深圳大学C语言实验(3页)-原创力文档
精品文档 PAGE . 得分 教师签名 批改日期 深 圳 大 学 实 验 报 告 课程名称: 高级语言程序设计 实验名称: 学院: 信息工程学院 指导教师:张金凤 报告人: Kingsta 学号: 实 ...
- 5乘7的c语言程序,C语言程序设计实验5-7教案(20页)-原创力文档
第 7-8 次 课程名称 程序设计基础 课程性质 实验课 授课班级 网络 16-1 .2 授课地点 1402 2016 年 11 月 9 日第 5 小节 ~第 8 小节 授课时间 2016 年 11 ...
- 买三种文具编程C语言,C语言程序设计实验的个人物品管理系统程序(33页)-原创力文档...
实用标准文案 实用标准文案 精彩文档 精彩文档 <程序设计与算法综合实习I> 个人物品管理程序2015.05.16题 目: 班 级: 学生学号: 学生姓名: 指导老师: 提交时间: 成 绩 ...
最新文章
- Python快速学习10: 循环的对象及设计 (生活的规律)
- selenium+python面试题目总结,完整度80%,看看你会多少?
- java B2B2C Springboot电子商城系统 (六) 分布式配置中心(Spring Cloud Config)
- echarts 图表配置tooltip 的formatter
- 使用aconda3-5.1.0(Python3.6.4) 搭建pyspark远程部署
- 全局莫兰指数_空间自相关 | 莫兰指数
- 【算法系列之七】合并两个有序链表
- 《深入Linux内核》 UNIX的一些故事
- HTML和CSS 基本要点必看
- C语言编译php环境,vscode中C语言编译环境的配置方法(分享)
- linux 用户与工作组
- node中exports和module.exports的关系及使用
- c4d语言在哪个文件夹,c4d的插件目录是哪个文件夹(c4d插件怎么安装)
- 基于树莓派的智能图像识别垃圾分类系统
- MyBatis 大于等于、小于等于的写法
- 蓝凌工作ekp开发使用一些js编写开发记录
- 腾讯云轻量服务器Centos 7.6安装redis 5.0.4教程
- HTML DOM nextSibling 和nextElementSibling属性
- matlab 怀特图,怀特异方差检验方法在matlab中的实现,以及广义最.....
- 【.NET资源收集】C#与时俱进的知识点...