50得票3回答
迭代加深搜索与深度优先搜索

我一直在阅读关于迭代加深的内容,但是我不明白它与深度优先搜索有什么不同。 我了解到深度优先搜索会继续往更深的层级搜索。 迭代加深算法会确定一个初始的深度值,如果在该层级没有找到解决方案,则将该值递增,并从头开始搜索(回到根节点)。 这难道不和深度优先搜索相同吗? 我的意思是您会不断递增...

30得票5回答
广度优先搜索和迭代加深算法的区别

我理解BFS和DFS,但我真的无法弄清楚迭代加深搜索和BFS之间的区别。显然,迭代加深搜索的内存使用量与DFS相同,但我无法看出这是如何可能的,因为它就像BFS一样不断扩展。 如果有人能澄清一下那就太棒了。 A / \ B C / / \ D E F

9得票2回答
国际象棋:高分支因子

我正在尝试开发一个简单的国际象棋引擎,但是我在其性能方面遇到了困难。我已经实现了带有Alpha-Beta剪枝和迭代加深的Negamax算法(没有任何额外的启发式算法),但是我无法在3-4层以上得到合理的搜索时间。以下是我的程序日志的一部分,从游戏开始时记录: 2013-05-11 18:22...

9得票1回答
Prolog深度优先迭代加深

我正在尝试实现一个状态空间图的深度优先迭代加深搜索算法。我的图有三个顶点,其中有两条激活边和两条抑制边。每个节点都有一个二进制值,这是图形的状态。通过查看一个节点是否高于或低于阈值(从所有传入节点的总和计算)可以将图转换为新状态。每次转换最多只会更改一个节点。由于有三个节点,因此每个状态在状态...

7得票2回答
如何使用Alpha-Beta剪枝实现迭代加深搜索

我正在编写一个玩点格子游戏的程序,并希望通过按照启发式值对alphaBeta中考虑的移动进行排序,以迭代加深方案来提高时间效率。基本上,我想进入搜索树,每次迭代增加深度,并使用alphaBeta评估每个节点。在每个连续的迭代中,我考虑节点的顺序将由上一次迭代的节点的启发式值所决定。然而,我在理...

7得票4回答
如何使用 call_with_depth_limit/3

我正在尝试使用 SWI-Prolog 中的 call_with_depth_limit/3 来实现迭代加深,但我不确定它的工作原理或者其行为不正常。我有一个例子,其中发生了以下情况: ?- call_with_depth_limit(mygoal, 29, Result). Result =...