【问题标题】:A* algorithm with multiple goals具有多个目标的 A* 算法
【发布时间】:2014-01-09 12:05:17
【问题描述】:

给定一个包含 5 个节点的 Graph,其中 2 个是目标节点。

通过运行算法,它找到成本为 7 的目标 1 节点并终止。
不过,还有另一个目标,goal-2,成本为 6。

将目标 1 作为第一个解决方案是否正确?或者最优解是 A* 以 6 的成本找到目标 2?

【问题讨论】:

  • 它应该找到目标2。从一个目标搜索到多个目标搜索的启发式不应该相同
  • 这是你的作业吗?
  • @UmNyobe:但是 A* 只使用了一个函数 f,它计算节点 N(g 函数)和启发式函数的路径成本之和,即从当前目标到的距离一个目标节点。也就是说,用数学术语来说:f(n) = g(n) + h(n)。
  • @thiago.lenz:这是我在尝试解决练习时遇到的问题。我应该将此问题标记为作业吗?
  • 我说的是h(n)。您的意思是“当前节点”而不是“当前目标”对吗?我的意思是你需要改变h(n)

标签: algorithm search heuristics


【解决方案1】:

将目标 1 作为第一个解决方案是否正确?

是正确的,但不是最优的

或者最优解是 A* 用成本找到目标 2 6 个?

确实

A* 依靠启发式来执行搜索。您应该根据是执行“一个目标”还是“多个目标”搜索来提供不同的启发式方法。如果您有一个 admissible heuristic 用于一个目标,这并不意味着它可以用于多个目标。

您的初始启发式是h(x) = somedistance(x,g)

通用版是h'(x) = min{ somedistance(x,gi), gi in GoalSet }

【讨论】:

  • 问题定义了我们的启发式算法:从当前节点到目标节点的最小路径数。所以,我们必须使用这个启发式函数。考虑到上述情况,找到目标 1 是一个可以接受的解决方案,对吧? A* 找到目标 1 的最优路径成本,因为还有一条成本为 12 的路径。
  • 发布你是如何实现这个功能的问题
  • "最小路径数" ?真的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-04
  • 2014-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-02
  • 2014-10-13
相关资源
最近更新 更多