明慈 2024-12-17 16:05 采纳率: 100%
浏览 5
已结题

A*算法的疑问 想知道g(n)是哪个算法计算出来的?

A*算法中g(n)是从初始结点到n结点的实际代价,想问一下这个g(n)的数值是广度优先算法计算出来的吗?还是狄杰斯特拉算法出来的数值?这张图片里标注的1、2、3是如何计算得出?

img

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    在A*算法中,g(n)代表的是从起始节点到当前节点n的实际代价,这个代价通常由某种路径寻找算法计算得出。常见的路径寻找算法如广度优先搜索(BFS)和狄杰斯特拉算法都可以用于计算这个代价。具体使用哪种算法取决于你的应用场景和具体需求。

    关于你提供的图片内容,看起来像是二维网格上的路径寻找问题。在这种情况下,通常会使用广度优先搜索(BFS)或者狄杰斯特拉算法来计算每个节点到起始节点的最短路径长度(也就是g(n)的值)。这两种算法都是通过不断地探索邻近节点来找到最短路径的。其中,狄杰斯特拉算法是一种更高效的算法,适用于有权重的图,但两者都可以用于计算从起始节点到各个节点的代价。这些数字(比如1、2、3等)表示的就是从一个起点出发到各个格子的最短距离或者说代价。

    不过需要注意的是,具体的计算方法和结果会受到你的具体问题和场景的影响,比如网格的大小、形状、障碍物等。因此,对于具体的计算过程,还需要根据具体的场景和需求进行理解和实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月26日
  • 已采纳回答 12月18日
  • 创建了问题 12月17日