【问题标题】:Depth limited search - logic - how do we stop backtracking?深度受限搜索 - 逻辑 - 我们如何停止回溯?
【发布时间】:2017-02-17 18:50:22
【问题描述】:

寻找一些逻辑建议。我正在运行深度受限搜索,以便从开始状态到结束状态。我正在扩展深度 > 0 包括源节点的每个节点的所有可能移动(这是问题所在)。

我尝试存储以前的状态并将其作为不扩展的条件。但是,这也否定了其他扩展分支通过这种状态的能力。

从逻辑的角度来看,我怎样才能避免这个问题,同时避免倒卖?

@acelent 评论(here) 给了我一个想法,即创建一个 configDepth 类来存储每个访问状态及其对应的深度。然后在下一次递归中 -

IF newState(depth) == state(depth-1) THEN !expand 

您对此解决方案有何看法?我走上了许多死胡同,需要新的意见和想法。

谢谢。

【问题讨论】:

    标签: artificial-intelligence iterative-deepening


    【解决方案1】:

    由于递归是实现深度搜索的好方法,您可以创建另一个递归,该递归将接收它可以达到的最大深度。如果达到这个深度,它将中断递归,它会返回到上一个节点,该节点仍然有尚未达到这个深度的元素。

    为此,您需要从树的创建中知道顶点的深度,或者您可以在递归过程中计算它。

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2020-09-24
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多