Artificial intelligence 高峰时间-迭代深化

Artificial intelligence 高峰时间-迭代深化,artificial-intelligence,Artificial Intelligence,我必须通过迭代深化算法来解决“高峰时间难题”。我在stackoverflow和internet上阅读了很多主题。我认为我理解迭代深化算法。基本上,你只需要深入到树中,并试图找到解决方案 我想我需要从拼图中创建一个图形或一棵树,但我真的不知道如何创建。另外,如果我拥有这棵树,那么我如何判断某个东西是有效的移动还是最终状态 有人回答说,节点应该是可能移动的,边位于节点之间,可以在一次移动中到达。我可以想象这一点,但不知何故,我很难看到这是如何有用或更好,但这如何解决问题 请帮助我,我不是要求完整的解

我必须通过迭代深化算法来解决“高峰时间难题”。我在stackoverflow和internet上阅读了很多主题。我认为我理解迭代深化算法。基本上,你只需要深入到树中,并试图找到解决方案

我想我需要从拼图中创建一个图形或一棵树,但我真的不知道如何创建。另外,如果我拥有这棵树,那么我如何判断某个东西是有效的移动还是最终状态

有人回答说,节点应该是可能移动的,边位于节点之间,可以在一次移动中到达。我可以想象这一点,但不知何故,我很难看到这是如何有用或更好,但这如何解决问题


请帮助我,我不是要求完整的解决方案或代码样本,我只是需要一些简单的问题解释

您需要使用加深算法是有原因的。想象一下你给每辆车命名为A,B,C,D。。。树的根节点是初始板状态。现在,移动汽车A。你在树上向下移动一个节点。把车开回去。您处于初始状态,但为了到达这里,您做了两次移动,因此您是树下的两个节点。重复一遍又一遍。你永远不会达到最后的状态

树的根节点是初始板状态。给定该节点,为每个可能的有效移动向其添加一个子节点。因此,每个子节点都将是初始树在移动一次后的样子。现在,对于这些子节点中的每一个,执行相同的操作:创建一个子节点,其中每个节点都是原始子节点上的一个节点


最终,你会找到解决这个难题的办法。发生这种情况时,将打印从根节点到解决方案子节点的移动并退出。此算法可确保您找到移动次数最少的解决方案。

谢谢,这样节点就可以实际代表整个电路板了?这对我现在来说是有意义的。然而,这非常消耗内存,还有其他方法吗?有两种方法。方法1:每个节点都是一个完整的电路板(当然,您可以将其作为一个对象)。方法2:每个节点都是一个移动。要查看节点上板的状态,必须从初始板开始,遍历树以到达要检查的节点,因为所有的都是移动。一个需要更多的记忆。一个需要更多的处理时间。你想做什么?我想我会有更多的记忆。移动方法似乎有点复杂