首页 > 代码库 > A*算法的理解
A*算法的理解
A*算法是一种最短路径搜索算法,算是一种贪心算法。所谓贪心算法,即在搜索的每一步都向着当前利益最大化的方向搜索。A*算法告诉了我们一种“利益”的定义方式:
f(n) = g(n) + h(n)
这里f(n)代表最终花费,g(n)代表已经花费多少,h(n)代表还要花费多少。A*算法的搜索过程中,只要向着使得每一步的花费f(n)最少的方向搜索,最终就会得到一个最短路径。有同学可能要问了,这里的h(n)我也不知道呀,如果知道还用费劲搜索:知道了花费了多少,知道了还要花费多少,不就啥都知道了。注意这里的h(n)并不是确定的还要花费多少,而是最少还要花多少,是一个参考值。比如从北京到上海,最短距离肯定是直线距离,但我们往往不可能走直线,但这个直线距离却可以成为我们的参考值。如此,每一步我们都看一下每个搜索路径花费了多少(g(n)),每个搜索路径至少还要花费多少(h(n)),都向着总花费(f(n))最少的方向寻找,即最短搜索路径。
A*算法的理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。