上下文:回跳是对原始回溯的优化。通过智能地跳回导致失败的节点(而不是回溯到按时间顺序排列的父级),它减少了搜索树的分支因子。
《人工智能,现代方法》第5章,第3版,p149-150给出了有关如何在回跳过程中创建冲突集的简短示例。
该示例与为Australia's map着色有关。
有问题的部分的报价:
搜索分支的“终端”失败总是会发生,因为 变量的域为空;该变量具有一个标准 冲突集。在我们的示例中,SA失败,并且其冲突集为(例如) {WA,NT,Q}。我们跳回Q,Q吸收了SA设置的冲突 (当然减去Q本身)变成自己的直接冲突集,即 {NT,NSW};新的冲突集为{WA,NT,NSW}。那就是 考虑到{WA,NT,NSW}的前面的分配,从Q开始没有解决方案。因此,我们最新回溯到NT 。 NT将{WA,NT,NSW}-{NT}吸收到它自己的直接冲突集中{WA}中, 给出{WA,NSW}(如上段所述)。现在 如我们希望的那样,算法回跳到新南威尔士州。
我正在努力理解重点内容:
答案 0 :(得分:0)
问题1的答案在上一段中,关键是决策顺序:
再次考虑部分分配{WA =红色,NSW =红色}(根据我们前面的讨论,这是不一致的)。 假设我们接下来尝试T =红色,然后分配NT,Q,V和SA。 我们知道最后四个变量都不能赋值,所以最终我们用光了数值来尝试NT。
NT是最新的,因为在讨论此示例时,它是堆栈的顶部。
我们回跳到新南威尔士州,因为这是与冲突集相交的最后一个决定。