1 / 6
文档名称:

3A星算法实验报告.docx

格式:docx   大小:80KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

3A星算法实验报告.docx

上传人:dajiede 2022/6/16 文件大小:80 KB

下载得到文件列表

3A星算法实验报告.docx

文档介绍

文档介绍:人工智能实验报告
实验二A*算法实验I
一、实验目的:
熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解 N数码难题,理解求解流程和搜索顺序。
二、实验原理:
A*算法是一种启发式图搜索算法,其特点在于对估价函数人工智能实验报告
实验二A*算法实验I
一、实验目的:
熟悉和掌握启发式搜索的定义、估价函数和算法过程,并利用A*算法求解 N数码难题,理解求解流程和搜索顺序。
二、实验原理:
A*算法是一种启发式图搜索算法,其特点在于对估价函数的定义上。对于 一般的启发式图搜索,总是选择估价函数f值最小的节点作为扩展节点。因此, f是根据需要找到一条最小代价路径的观点来估算节点的,所以,可考虑每个节 点n的估价函数值为两个分量:从起始节点到节点n的实际代价以及从节点n 到达目标节点的估价代价。
三、实验内容:
参考A*算法核心代码,以8数码问题为例实现A*算法的求解程序(编程语 言不限),要求设计两种不同的估价函数。
2在求解8数码问题的A*算法程序中,设置相同的初始状态和目标状态,针对 不同的估价函数,求得问题的解,并比较它们对搜索算法性能的影响,包括扩展 节点数、生成节点数等。
3对于8数码问题,设置与上述2相同的初始状态和目标状态,用宽度优先搜 索算法(即令估计代价h(n) = 0的A*算法)求得问题的解,以及搜索过程中的 扩展节点数、生成节点数。
4上交源程序。
四、实验结果:
1 A*算法求解框图:
将升始毛点佣 入表中
眼出裘中 ftn}=h(nj-g(n 孺I大的节点
没有路独到达

。】0呼 表萍耳与该蓄点 的近的不在close 表中的芍点初人 到第一个装中
找到最坦蹈 径,推索成功
在求解8数码问题的A*算法程序中,设置相同的初始状态和目标状态,针 对不同的估价函数,求得问题的解,并比较它们对搜索算法性能的影响,包 括扩展节点数、生成节点数等。
①:int calw(string s)//计算该状态的不在位数h(n)
{
int re=0;
for(int i=0;i<9;i++) if(s[i]!=t[i]) re++; 〃取一格局与目的格局位置不符
的数码数目
return re;
}
Step 20: 13 4 8 2
6 5
Step 21: 1 3
2 4
6 5
Step 22: 1 3
2 4
Step 23:
12 3
8 4
7 6 5
M动结枣! 控索节出数:8423
请按任意键继续---
②:int calw(string s)//计算该状态的不在位数h(n)
(
int re=0, i;
int ss[9][2];
for(i = 0; i < 9; ++i) { //计算各数码移到目的位置
所需移动的距离总和
ss[s[i] - 48][0] = i / 3;
ss[s[i] - 48][1] = i % 3;
}
for(i = 0; i < 9; ++i)
re += (abs(ss[i][0] - source[i][0]) + abs(ss[i][1]- source[i][1]));
return re;}
Step 20:
3 4 8