1、实验环境 Visual Studio 2019 2、实验目的和要求 ①实验目的:熟悉掌握启发式搜索算法A*及其可采纳性 ②实验要求:编写程序实现8数码和15数码问题,采用至少两种估价函数,分析估价函数求解问题时候的效率差别,分析估价函数对搜索算法的影响 3、解题思路 ①首先,定义一个open表和一个close表用于后续搜索,再定义一个搜索图G,并将初始状态节点放入open表,图G中。 ②其次,对open表按照估价函数进行排序(首次排序其实无意义),由排序后的open表得到最接近目标状态的结点,将该节点取出,若该节点与目标状态一致,则跳转第④步。 ③对由②中找到的结点进行扩展(本题中具体实现为将“0”码向上、下、左、右四个方向移动),并将扩展得到的新节点放入open表和图G中,将扩展结束的结点放入close表中避免再次对其扩展。而后返回第②步。 ④根据每一次扩展后在子节点的结构体中留下的父节点信息(close数组下标),由最终得到的目标状态结点一步步往前回溯,可得到最终解图。
2024-10-24 14:24:06 5KB
1
课设作业实现15数码的广度搜索、和A*算法 程序由c++与SDl库结合完成
2022-12-13 02:00:05 2.59MB c++和SDL
1
使用A-star算法解决十五数码难题,python环境下大约2s即可解决,关键在于评价函数的加权处理。
2022-11-08 17:18:12 2KB 十五数码难题
1
用启发式算法实现15数码问题 python实现code+运行结果
2022-06-08 16:06:22 50KB python 启发式算法 源码软件 开发语言
本资源代码可以直接运行,有详细注释。 15数码问题同八数码问题,是人工智能中一个很典型的智力问题。15数码问题是在4×4方格盘上,放有15个数码,剩下一个位置为空(方便起见,用0表示空),每一空格其上下左右的数码可移至空格。本问题给定初始位置和目标位置,要求通过一系列的数码移动,将初始状态转化为目标状态。 状态转换的规则:空格四周的数移向空格,我们可以看作是空格移动,它最多可以有4个方向的移动,即上、下、左、右。问题的求解方法,就是从给定的初始状态出发,不断地将空格上下左右的数码移至空格,将一个状态转化成其它状态,直到产生目标状态。 本报告利用A*算法,给出了15数码问题的C++算法实现。 A*算法是一种预测算法,主要用于寻路等,根据当前状态和目标状态之间的差异,预测到达目标需要多少开销,根据这个开销来判断下一次选择以那个状态开始。这个开销在八数码问题中可以以路程为标准。
2022-06-04 19:52:10 13KB 算法 c语言 开发语言 15数码
1
用A算法解决十五数码问题.doc.doc
2022-05-19 14:07:05 254KB 文档资料
用人工智能领域中经典的A*算法解决了人工智能中常见的十五数码问题。
2021-11-28 16:26:25 315KB 15数码 A* C# 说明及源代码
1
用人工智能领域中经典的启发式算法实现了人工智能中的十五数码问题。包括详细的实验报告和源代码,源码由C#可视化编写,debug中有编译好的程序,界面友好。另注:船院6系学生不要下载,避免雷同。
2021-11-21 16:59:50 315KB 15数码 启发式算法 A星算法 迭代
1
本人目前大三,才上完这课不久。完成的是八数码,十五数码问题以及动物管理系统。为了避免不必要的麻烦,下载前请私聊博主。
1
人工智能——十五数码
1