A*搜索
我们知道dfs和bfs在搜索中会搜素一些完全不会搜的点,这是因为,他们只考虑到起点到当前点的作用,未考虑到终点。
我们不妨设f[i]=g[i]+h[i],其中g[i]为到i的最短路(已知),h[i]为i到终点的估计值。所以说,我们用f[i]做bfs
每次取出f最小的i,拓展,然后直到终点……
那么h[i]怎么求??
我们可以用曼哈顿距离或者欧式距离等等来表示,注意我们要用二叉堆来维护f数组。
代码目前网上很多,就不写了。
标签:style font size 数组 估计 维护 作用 class 很多
A*搜索
我们知道dfs和bfs在搜索中会搜素一些完全不会搜的点,这是因为,他们只考虑到起点到当前点的作用,未考虑到终点。
我们不妨设f[i]=g[i]+h[i],其中g[i]为到i的最短路(已知),h[i]为i到终点的估计值。所以说,我们用f[i]做bfs
每次取出f最小的i,拓展,然后直到终点……
那么h[i]怎么求??
我们可以用曼哈顿距离或者欧式距离等等来表示,注意我们要用二叉堆来维护f数组。
代码目前网上很多,就不写了。
标签:style font size 数组 估计 维护 作用 class 很多
原文地址:https://www.cnblogs.com/Alex-leaves/p/8450106.html