A*算法的一些总结
2016-09-03 21:54
232 查看
看拓扑状态监控的一篇文章时发现提到了A*算法,他的目的是提取拓扑中的重要拓扑信息来进行监控,进而减少控制信息消耗。觉得这个想法不错,但具体A*算法是怎么样的呢?于是找了一下资料,觉得下面这篇带着实例讲的不错,比较直观,虽说博主也是借他山之石吧,但还是总结归纳的不错,排版也很清晰,点赞。
理解A*算法的寻路过程接
上面的内容中A*算法用来在静态网络中求最短路径,而且上面文章中好像用的是游戏中的例子,算法的关键是估价函数f(n)=g(n)+h(n),其实想一想的话,dijkstra算法就是一个h(n)=0的特殊A*算法啊,所有点分两个集合,一个集合中是处理过的点,一个是待处理的点,不断的选取处理集合中的邻居点加入到处理集合中直到目的点被选取。
而且广度优先搜索BFS算法好像也算是这种特殊的A*算法。
然而A*算法与Dijkstra和贪心算法具体是什么关系呢,好的博客一篇就够:
关于寻路算法的一些思考(1):A*算法介绍
那么估价函数到底应该如何设计?有思考1就有思考2:
关于寻路算法的一些思考(2):Heuristics 函数
有没有讲代码实现的,思考3来了:
关于寻路算法的一些思考(3):A*算法的实现
拓展:
关于寻路算法的一些思考(4):A* 算法的变体
关于寻路算法的一些思考(5):处理移动中的障碍物
关于寻路算法的一些思考(6):预先计算好的路径的所用空间
说实话,思考3中关于处理OPEN和CLOSED集合的各种数据结构优劣的分析很精彩,有兴趣可以仔细看看,像伸展树和HOT队列都没听说过,涨了姿势啊!
再说一下,A*算法在上述理解A*算法的寻路过程接游戏例子中到底是不是最优的,不信你可以请看下边这个文章,作者起名叫B*算法,其实只是作者的一厢情愿罢了,不具备学术性的流行度。
一种高效的寻路算法 - B*寻路算法
注意,A*算法也不是只用了搜索最短路,它是状态空间搜索的一种最好优先算法。请看下面云风大牛的博客,讲的很好,是状态空间搜索中启发式算法的一种,启发式算法是为了避免穷举这种无“方向性”的搜索,采取了对搜索方向的评估策略,A*就是一种最好优先策略。
A* 算法之误区
另外,有A*算法,那么有A算法吗?搜了一下,还真的是升级啊,大概意思就是朴素的状态空间搜索如BFS和DFS就是A算法,而加了启发式的评估就是A*算法。
理解A*算法的寻路过程接
上面的内容中A*算法用来在静态网络中求最短路径,而且上面文章中好像用的是游戏中的例子,算法的关键是估价函数f(n)=g(n)+h(n),其实想一想的话,dijkstra算法就是一个h(n)=0的特殊A*算法啊,所有点分两个集合,一个集合中是处理过的点,一个是待处理的点,不断的选取处理集合中的邻居点加入到处理集合中直到目的点被选取。
而且广度优先搜索BFS算法好像也算是这种特殊的A*算法。
然而A*算法与Dijkstra和贪心算法具体是什么关系呢,好的博客一篇就够:
关于寻路算法的一些思考(1):A*算法介绍
那么估价函数到底应该如何设计?有思考1就有思考2:
关于寻路算法的一些思考(2):Heuristics 函数
有没有讲代码实现的,思考3来了:
关于寻路算法的一些思考(3):A*算法的实现
拓展:
关于寻路算法的一些思考(4):A* 算法的变体
关于寻路算法的一些思考(5):处理移动中的障碍物
关于寻路算法的一些思考(6):预先计算好的路径的所用空间
说实话,思考3中关于处理OPEN和CLOSED集合的各种数据结构优劣的分析很精彩,有兴趣可以仔细看看,像伸展树和HOT队列都没听说过,涨了姿势啊!
再说一下,A*算法在上述理解A*算法的寻路过程接游戏例子中到底是不是最优的,不信你可以请看下边这个文章,作者起名叫B*算法,其实只是作者的一厢情愿罢了,不具备学术性的流行度。
一种高效的寻路算法 - B*寻路算法
注意,A*算法也不是只用了搜索最短路,它是状态空间搜索的一种最好优先算法。请看下面云风大牛的博客,讲的很好,是状态空间搜索中启发式算法的一种,启发式算法是为了避免穷举这种无“方向性”的搜索,采取了对搜索方向的评估策略,A*就是一种最好优先策略。
A* 算法之误区
另外,有A*算法,那么有A算法吗?搜了一下,还真的是升级啊,大概意思就是朴素的状态空间搜索如BFS和DFS就是A算法,而加了启发式的评估就是A*算法。
相关文章推荐
- 一些算法及题目总结
- STL一些常用的容器和算法--总结
- 算法—二叉查找树的相关一些操作及总结
- 字符识别算法SWT实现中的一些经验总结
- javascript中的一些常用的数组算法总结
- AS3一些算法的总结
- 【算法】上一篇的续:一些计算机操作的二进制总结
- 转加解密算法的一些概述总结
- linux内核使用的一些算法和思想(个人总结)
- K-D树算法的一些总结
- 由二分图匹配匈牙利算法总结的一些知识
- iOS开发-一些面试算法总结
- 黑马程序员-- 一些算法总结
- 一些常见算法复杂度总结
- qgy总结的一些算法
- 一些算法的总结
- 对于矩阵类型的一些算法的总结(一)
- 刷ACM题自己总结的一些算法
- JavaScrip常见的一些算法总结
- IGD indicator演化算法的一些小总结