A*算法

来源:互联网 发布:linux 创建文件 编辑:程序博客网 时间:2024/06/06 16:37
 F=G+H
   从一个点到另一个点,需要电脑自己去分析障碍物然后到达目的地,需要电脑的处理。每检测一个节点,电脑就要开启一些节点,并把检测过的关闭。把离起点最近的几个点开启进行检测,方向都指向起点,找到F最小的一个检测点,作为下次检测的起点,以此循环,直到找到最终点,实现最优检




   A*算法的速度,即查找每一个检测点的速度
1,把开启的节点都检测一遍
2,二叉树,父节点永远比子节点小
   二叉树每个节点的父节点下标 = n / 2;(小数去掉)
   二叉树每个节点的左子节点下标 = n * 2;右子节点下标 = n * 2 +1
   用A*算法,就要用他的黄金搭档,二叉树,耗时最少。


启发式搜索
A star算法在静态路网中的应用  


A*[1](A-Star)算法是一种静态路网中求解最短路最有效的方法。


公式表示为: f(n)=g(n)+h(n),


其中 f(n) 是从初始点经由节点n到目标点的估价函数,


g(n) 是在状态空间中从初始节点到n节点的实际代价,


h(n) 是从n到目标节点最佳路径的估计代价。


保证找到最短路径(最优解的)条件,关键在于估价函数h(n)的选取:


估价值h(n)<= n到目标节点的距离实际值,这种情况下,搜索的点数多,搜索范围大,效率低。但能得到最优解。


如果 估价值>实际值,搜索的点数少,搜索范围小,效率高,但不能保证得到最优解。

0 0