Artificial intelligence 深度限制搜索-逻辑-我们如何停止回溯?
寻找一些逻辑建议。我正在运行深度限制搜索,以便从开始状态到结束状态。我正在扩展每个节点的所有可能移动,深度>0时包括源节点(这就是问题所在) 我尝试存储以前的状态,并将其作为不扩展的条件。但是,这也否定了其他扩展分支通过此状态的能力 从逻辑的角度来看,我怎样才能避免这个问题,同时又避免背后兜售 @acelent comment让我想到创建一个configDepth类,该类存储每个访问的状态及其相应的深度。然后在下一个递归中-Artificial intelligence 深度限制搜索-逻辑-我们如何停止回溯?,artificial-intelligence,iterative-deepening,Artificial Intelligence,Iterative Deepening,寻找一些逻辑建议。我正在运行深度限制搜索,以便从开始状态到结束状态。我正在扩展每个节点的所有可能移动,深度>0时包括源节点(这就是问题所在) 我尝试存储以前的状态,并将其作为不扩展的条件。但是,这也否定了其他扩展分支通过此状态的能力 从逻辑的角度来看,我怎样才能避免这个问题,同时又避免背后兜售 @acelent comment让我想到创建一个configDepth类,该类存储每个访问的状态及其相应的深度。然后在下一个递归中- IF newState(depth) == state(depth-1
IF newState(depth) == state(depth-1) THEN !expand
你对这个解决方案有什么想法?我走了许多死路,需要新的意见和想法
谢谢。因为递归是实现深度搜索的好方法,所以您可以创建另一个递归,该递归将在可以达到的最大深度处接收。如果达到此深度,它将中断递归,并返回到上一个节点,该节点仍有未达到此深度的元素 为此,您需要让顶点在创建树时就知道它们的深度,或者您可以在进行递归时计算它