没有合适的资源?快使用搜索试试~ 我知道了~
人工智能
资源详情
资源评论
资源推荐
基于 A*算法的八数码问题求解
一、实验目的
八数码游戏包括一个 33 的棋盘,棋盘上摆放着 8 个数字的棋子,留下一个空位。与空
位相邻的棋子可以滑动到空位中。游戏的目的是要达到一个特定的目标状态。标注的形式
化如下:<初始状态<<<<<<753
164
280
目标状态<<<<<<<<<<<<<<<<123
804
765
搜索形式描述
状态:<<<<<<<<状态描述了 8 个棋子和空位在棋盘的 9 个方格上的分布。
初始状态:<<<<任何状态都可以被指定为初始状态。
操作符:<<<<<<用来产生 4 个行动(上下左右移动)。
目标测试:<<<<用来检测状态是否能匹配上图的目标布局。
路径费用函数:每一步的费用为 1,因此整个路径的费用是路径中的步数。
现在任意给定一个初始状态,要求找到一种搜索策略,用尽可能少的步数得到上图的目标
状态。
在 A*算法中,启发性信息用一个特别的估价函数 f*来表示:
f*(n)=g*(n)+h*(n)
式中:
g*(n)为从初始节点到节点 n 的最佳路径所付出的代价;
h*(n)是从 n 到目标节点的最佳路径所付出的代价;
f*(n)是从初始节点出发通过节点 n 到达目标节点的最佳路径的总代价。
(在这里要特别说明前面所说的 f(n)=g(n)+h(n)未带<<*为评估代价而非一定是最优代价)
基于上述 g*(n)和 h*(n)的定义,对启发式搜索算法中的 g(n)和 h(n)做如下限制:
①g(n)是对 g*(n)的估计,且 g(n)>0;
②h(n)是 h*(n)的下界,即对任意节点 n 均有 h(n)≤h*(n)。
在满足上述条件情况下的有序搜索算法称为 A*算法。
对于某一搜索算法,当最佳路径存在时,就一定能找到它,则称此算法是可纳的。可以证
明,A*算法是可纳算法。也就是说,对于有序搜索算法,当满足 h(n)≤h*(n)条件时,只要
最佳路径存在,就一定能找出这条路径。
二、实验流程
算法思路:
根据需要 open 表和 close 表记录结点信息。OPEN 表保存所有已生成而未考察的节点,
CLOSED 表中记录已访问过的节点。同时 open 表和 close 表里面所包含的结点状态不重复。
每一个结点需包含以下属性:
Struck{
父结点<数据(应为 open 表和 close 表数据唯一性可根据父节点信息找到父结点)prev
本身数据<con
总访问次数 num
初始结点到该节点最小代价 g(n)
按顺序<每一个将牌估分值总和加上中心位置估分值 s(n)
最终估计函数所得值也就是到达目标估计代价 f(n)=g(n)+h(n)=g(n)+P(n)+3*S(n)
}
具体程序:
function []=bashuma
global e; %open±í¼ÆÊý
global i; %close±í¼ÆÊý
global m; %Ñ»·´ÎÊý¼ÆÊý
a=0;b=0;n=0;i=0;
e=1;m=0;
%%
% *BOLD TEXT*
%³õʼ»¯
dis=[1 2 3;8 0 4;7 6 5]; %Ä¿±ê½Úµã
f.prev=zeros(3);
f.con=[2 8 3;1 0 4;7 6 5]; %³õʼ½Úµã
f.num=1;
f.g=0;
f.s=gufei(f,dis);
f.fuc=valuefuc(f,dis);
y=dis;
open(1)=f; %³õʼ»¯Open±í
k=f;
while a==0
m=m+1;
%ÉèÖÃÑ»·´ÎÊý
if m>=10000
disp('error!!');
break;
end
% Ñ°ÕÒ´ú¼Û×îСֵ
for j=1:e
if k.fuc>open(j).fuc
k=open(j);
end
end
%%ÌíCLOSE±í
i=i+1;
j=k.num;
close(i)=k;
close(i).num=i;
%%ɾOPEN±í
open(j).con=zeros(3);
open(j).fuc=inf;
%%ÊÇ·ñÕÒµ½Ä¿µÄ½Úµã
a=getit(close,dis);
if a==1
disp('success!!');
break;
end
%%À©Õ¹½Úµã
open=opera(open,close,k,dis);
k.fuc=inf;
end
%Êä³ö·¾¶
while 1
for j=1:i
if y==zeros(3)
b=1;
剩余13页未读,继续阅读
zqm14789
- 粉丝: 1
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0