【问题标题】:What node to expand using A-star if the open list contains more than one node with the least cost value?如果打开列表包含多个成本值最小的节点,则使用 A-star 扩展哪个节点?
【发布时间】:2014-07-04 00:06:29
【问题描述】:

使用 A-star 算法进行搜索,如果你在 open list 中有两个(或多个)节点具有相同的值,恰好是最小的成本值,你应该选择哪个节点?

我知道你应该选择启发式价值最小的那个,但是如果这个成本也一样呢?

例如:

我有两个从根扩展的节点。 f(n1) = f(n2) 和 h(n1) = h(n2)。 我应该扩展哪个节点,n1 还是 n2? 我应该随机展开还是使用第一个添加到打开列表的?

【问题讨论】:

    标签: language-agnostic artificial-intelligence a-star


    【解决方案1】:
    • 一种常见的策略是以 LIFO 方式处理绑定节点。这为算法提供了更多的深度优先字符。一般来说,这不一定是最有效的解决方案。

    • 你也可以利用机会打破僵局。

    • 或者您选择实用策略,即选择您的算法以某种方式生成的第一个节点。

    【讨论】:

      【解决方案2】:

      我见过或编写的大多数算法只是选择第一个发现成本较低的值。如果比较的下一个值具有完全相同的成本,则将选择第一个进行扩展。无论如何,该算法通常会尽快回顾并扩展另一个算法,因此不会造成伤害。

      【讨论】:

        猜你喜欢
        • 2014-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-31
        • 1970-01-01
        相关资源
        最近更新 更多