Lisp 约束满足问题中的启发式是否确保没有回溯?(当存在解决方案时)

Lisp 约束满足问题中的启发式是否确保没有回溯?(当存在解决方案时),lisp,scheme,artificial-intelligence,constraints,heuristics,Lisp,Scheme,Artificial Intelligence,Constraints,Heuristics,我正在用Scheme做一个地图着色问题,我用最小剩余值选择合法颜色最少的顶点,用度启发法选择邻居数最多的顶点。如果存在针对特定配置的解决方案,这些启发式方法是否可以确保不需要回溯?一般来说:不,MRV和其他启发式方法不能保证直接走到目标。我想,如果你的问题有一些非常特殊的结构,它们可能会出现,但在你看到定理之前不要指望它。一般来说:不,MRV和你的其他启发式方法不能保证直接走到目标。如果你的问题有一些非常特殊的结构,我想他们可能会这样做,但是在你看到定理之前不要指望它。启发式方法会修剪搜索空间,

我正在用Scheme做一个地图着色问题,我用最小剩余值选择合法颜色最少的顶点,用度启发法选择邻居数最多的顶点。如果存在针对特定配置的解决方案,这些启发式方法是否可以确保不需要回溯?

一般来说:不,MRV和其他启发式方法不能保证直接走到目标。我想,如果你的问题有一些非常特殊的结构,它们可能会出现,但在你看到定理之前不要指望它。

一般来说:不,MRV和你的其他启发式方法不能保证直接走到目标。如果你的问题有一些非常特殊的结构,我想他们可能会这样做,但是在你看到定理之前不要指望它。

启发式方法会修剪搜索空间,或者改变搜索顺序,使提前终止的可能性更大。这与回溯不同

但这是一个相关的概念

我们删减一些空间是因为我们确信解决方案不存在于搜索树的那些分支中,或者改变顺序是因为我们有理由相信,如果我们先查看一些子树,速度会更快

我们也切断了回溯,因为我们确信解决方案在我们现在所在的空间分支中,所以如果我们在这个子树中找不到它,我们就可以声明失败而不必麻烦

这两种策略最终都是要以某种方式搜索更少的空间,并在不搜索所有内容的情况下获得肯定或否定的答案

MRV和度启发式是关于重新排序子搜索,而不是避免回溯。启发法可能是正确的,可以进行简短的搜索,但这并不相同 例如消除回溯,例如Prolog中的cut操作符。当你找到你想要的,你可以宣布成功,当然,这消除了进一步的回溯。但真正的回溯消除意味着在搜索完成之前,做出无论如何都不回溯的决定


例如,如果您正在进行深度优先搜索,并且您在没有回溯的情况下通过dumb luck找到了您要查找的内容,我们不能说dumb luck是一种消除回溯的围栏操作

启发式算法修剪搜索空间,或更改搜索顺序,使提前终止的可能性更大。这与回溯不同

但这是一个相关的概念

我们删减一些空间是因为我们确信解决方案不存在于搜索树的那些分支中,或者改变顺序是因为我们有理由相信,如果我们先查看一些子树,速度会更快

我们也切断了回溯,因为我们确信解决方案在我们现在所在的空间分支中,所以如果我们在这个子树中找不到它,我们就可以声明失败而不必麻烦

这两种策略最终都是要以某种方式搜索更少的空间,并在不搜索所有内容的情况下获得肯定或否定的答案

MRV和度启发式是关于重新排序子搜索,而不是避免回溯。启发法可能是正确的,可以进行简短的搜索,但这并不相同 例如消除回溯,例如Prolog中的cut操作符。当你找到你想要的,你可以宣布成功,当然,这消除了进一步的回溯。但真正的回溯消除意味着在搜索完成之前,做出无论如何都不回溯的决定


例如,如果您正在进行深度优先搜索,并且您在没有回溯的情况下通过dumb luck找到了您要查找的内容,我们不能说dumb luck是一种消除回溯的围栏操作

让我们做一个简单的理论分析

对于一般图形,如果不要求使用少于4种颜色的着色。这意味着不存在已知的多项式时间算法

你的启发式算法在多项式时间内是可计算的

假设不需要回溯,则需要执行n个步骤,每个步骤需要多项式时间n是顶点数。因此,您可以在多项式时间内解决该问题。 要么你已经证明了P=NP,要么你的假设是错误的。
我让你们来决定第4点中哪个选项更合理。

让我们做一个简单的理论分析

对于一般图形,如果不要求使用少于4种颜色的着色。这意味着不存在已知的多项式时间算法

你的启发式算法在多项式时间内是可计算的

假设不需要回溯,则需要执行n个步骤,每个步骤需要多项式时间n是顶点数。因此,您可以在多项式时间内解决该问题。 要么你已经证明了P=NP,要么你的假设是错误的。 我不说了
由您决定第4点中哪个选项更合理。

谢谢。你能想出一个图形配置,它有一个解决方案,并且即使使用了这些启发式算法,回溯也是必要的吗?我已经想了一段时间了,但是想不出一个。@goldfrapp04:我脑子里没想出来。考虑生成随机图并解决这些问题,从简单到复杂。谢谢。你能想出一个图形配置,它有一个解决方案,并且即使使用了这些启发式算法,回溯也是必要的吗?我已经想了一段时间了,但是想不出一个。@goldfrapp04:我脑子里没想出来。考虑生成随机图并解决这些问题,从简单到复杂。