2

如何决定heuristic cost问题cities connected with roads。该图具有非负加权单向边,并且没有边将任何顶点连接到自身。在这个图中,任意两个顶点之间只有一条边。single source我的目标是获得和之间的最短距离single destination

4

3 回答 3

1

如果您的边位于欧几里得平面上,您的顶点对应于道路,并且顶点成本是道路的长度,那么欧几里得距离或 L2 范数对于启发式成本是一个不错的选择。


这就是为什么。但首先,一些快速的术语:

f(x)路径成本,即计算出的从起始节点到节点的最短距离x

h(x)启发式成本,从节点到目标的距离的估计x

因为A*是一个有向的最佳优先搜索算法。在每一步,它都会移动到最小化的节点 h(x) + f(x)(计算h(x)需要我们记住一个目标节点)。


为了保证这种方法在开始和结束节点之间找到正确的最短补丁距离,h(x)必须是一个可接受的启发式。这实质上意味着它不能高估到目标节点的距离

因此,如果您的节点是在欧几里得平面上组织的,并且您的成本对应于节点之间的 L2 范数距离,那么当前节点和目标节点之间的欧几里德距离x或 L2 范数保证是一个可接受的启发式(它是两个节点之间可能的最短路径,因此沿着图中一系列顶点的任何实际路径必须更长)。


作为奖励,请注意Dijkstra 算法只是A*的一个特例,具有h(x) = 0. 对于任何节点,我们假设到达目标的路径是0,这意味着我们只是采取最小的可能步骤。这当然是一种可接受的启发式方法,因为任何两个节点之间的距离不能小于0(如果我们假设非负边成本)。

于 2012-04-07T20:22:28.687 回答
0

如果您尝试优化行驶距离,欧几里得距离是一个很好的基线启发式方法。

于 2012-04-07T15:28:19.553 回答
0

如果给定一个加权图,请使用边权重,就好像它是线段的长度一样。加权图中的最短路径是组合边权重最低的路径。

于 2012-04-07T15:42:33.210 回答