首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

A*算法估价函数有关问题

2012-02-13 
A*算法估价函数问题在迷宫、机器人寻路、游戏寻路等路径规划中(共同特点是地图网格化),可以使用A*算法进行路

A*算法估价函数问题
在迷宫、机器人寻路、游戏寻路等路径规划中(共同特点是地图网格化),可以使用A*算法进行路径规划,而且还一定能得到最优解。因为在估价函数f(n)=G(n)+H(n)中,G(n)是源点到目前点的已经走过的路程,这很好得到,H(n)是目前点到目标点的距离,通过距离公式计算就可以,也很容易实现。

本人现在的问题是,在无向加权网络图中,G(n)为源点到目前点的权,在计算H(n)时犯难了,因为当前点到目标点的权并未直接给出。本人曾经采用H(n)为目前点到目标点的距离计算,偶尔能得到最优解,但是大多数不满足要求。

请问在无向加权网络图中H(n)该怎么设计。

肯定高人帮忙解决!现在程序都差不多了,就差估价函数不合理。也不知道怎么设置才好!


如果可以,我愿意以一下算法之一作为报酬!

VC++版的遗传算法
matlab版的dijkstra算法
基于Windows Api函数的CryptoApi和Base64编码的加密解密算法(VC++版)等

[解决办法]
如果启发函数h(n)的值小于当前点到终点的距离,总可以得到最优解的
不管是由向网图还是无向图
[解决办法]
方格游戏H(N)可取曼哈顿距离(城市距离)
如果是平面坐标可取欧式距离
[解决办法]
H(N)得具体问题具体分析,不是网格状选一个好的估价函数是不容易的,可以试下:
H{N}=与这个点相连接的所有路径中权的最小的值(除了来的路径以外)
顺便说下,这个算法是绝对可以得到最优解的,但是经常会找到路就停止计算,所有这不一定是最优解,补偿就是减少了用时.

热点排行