Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Artificial intelligence 深度限制搜索-逻辑-我们如何停止回溯?_Artificial Intelligence_Iterative Deepening - Fatal编程技术网

Artificial intelligence 深度限制搜索-逻辑-我们如何停止回溯?

Artificial intelligence 深度限制搜索-逻辑-我们如何停止回溯?,artificial-intelligence,iterative-deepening,Artificial Intelligence,Iterative Deepening,寻找一些逻辑建议。我正在运行深度限制搜索,以便从开始状态到结束状态。我正在扩展每个节点的所有可能移动,深度>0时包括源节点(这就是问题所在) 我尝试存储以前的状态,并将其作为不扩展的条件。但是,这也否定了其他扩展分支通过此状态的能力 从逻辑的角度来看,我怎样才能避免这个问题,同时又避免背后兜售 @acelent comment让我想到创建一个configDepth类,该类存储每个访问的状态及其相应的深度。然后在下一个递归中- IF newState(depth) == state(depth-1

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

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

从逻辑的角度来看,我怎样才能避免这个问题,同时又避免背后兜售

@acelent comment让我想到创建一个configDepth类,该类存储每个访问的状态及其相应的深度。然后在下一个递归中-

IF newState(depth) == state(depth-1) THEN !expand 
你对这个解决方案有什么想法?我走了许多死路,需要新的意见和想法


谢谢。

因为递归是实现深度搜索的好方法,所以您可以创建另一个递归,该递归将在可以达到的最大深度处接收。如果达到此深度,它将中断递归,并返回到上一个节点,该节点仍有未达到此深度的元素

为此,您需要让顶点在创建树时就知道它们的深度,或者您可以在进行递归时计算它