Algorithm A*功能

Algorithm A*功能,algorithm,search,shortest-path,a-star,Algorithm,Search,Shortest Path,A Star,我只是想澄清一下,在两条路径具有相等值的情况下,A*for path finding应该如何运行,无论是在计算期间还是在最后,如果有两条相等的短路径 例如,我在我的开始节点,有两个可能的节点可以展开,但它们都有相同的f(x)。它们都被扩展了吗?按什么顺序 如果在搜索结束时有两条相等的最短路径,会发生什么情况?在这两种情况下,您只需选择任意一条。请注意,A*查找其中一条最短路径,而不是所有路径,并且没有像您描述的那样解决歧义的特定方法是它工作所必需的 在这两种情况下,您只需选择任意一种。请注意,A

我只是想澄清一下,在两条路径具有相等值的情况下,A*for path finding应该如何运行,无论是在计算期间还是在最后,如果有两条相等的短路径

例如,我在我的开始节点,有两个可能的节点可以展开,但它们都有相同的f(x)。它们都被扩展了吗?按什么顺序


如果在搜索结束时有两条相等的最短路径,会发生什么情况?

在这两种情况下,您只需选择任意一条。请注意,A*查找其中一条最短路径,而不是所有路径,并且没有像您描述的那样解决歧义的特定方法是它工作所必需的

在这两种情况下,您只需选择任意一种。请注意,A*查找其中一条最短路径,而不是所有路径,并且没有像您描述的那样解决歧义的特定方法是它工作所必需的

如果您构建自己的A*实现,您就可以决定如何准确处理此类情况。通常,当算法确定所有剩余路径的成本至少与最短路径相同时,无论哪一条相等的最短路径是当前路径,都将作为最短路径返回

在我的游戏程序(在十六进制网格上)中,我使用了两个单独的A*实现。短距离(且无道路移动)使用向量积作为相等路径之间的连接断路器,选择视觉上更直接的路径。对于较长距离的一种方法可以实现道路移动,而忽略了上述改进,但使用了一种更复杂的启发式方法,在较长距离内更有效


关于A*算法的各种改进有很多问题。

如果您构建自己的A*实现,您就可以准确地决定如何处理此类情况。通常,当算法确定所有剩余路径的成本至少与最短路径相同时,无论哪一条相等的最短路径是当前路径,都将作为最短路径返回

在我的游戏程序(在十六进制网格上)中,我使用了两个单独的A*实现。短距离(且无道路移动)使用向量积作为相等路径之间的连接断路器,选择视觉上更直接的路径。对于较长距离的一种方法可以实现道路移动,而忽略了上述改进,但使用了一种更复杂的启发式方法,在较长距离内更有效


有许多问题可以解决A*算法的各种改进。

一个好的启发式算法将在许多条件下进行评估(添加概率条件,如风险、成本、效用管理、操作合理性等),从而将最短路径的数量降至最低


但是,如果在边缘上仍然有多条路径(即可扩展节点阵列),一个简单的a*将任意拾取。

一个好的启发式将在许多条件下进行评估(添加风险、成本、效用管理、操作合理性等概率条件)从而使最短路径的数目最小化


但是,如果条纹上仍有多条路径(即可扩展节点阵列),则简单的a*将任意拾取。

拾取一条随机路径?您是否有关于路径(风险、收益等)的任何其他数据?请随机选择一个?您是否有关于路径(风险、收益等)的其他数据?