0

为了解决约束问题,我们可以使用推理方法和/或搜索方法约束传播。Christian Bessiere,2006在一开始就指出:约束传播是一种推理形式,而不是搜索。

据我了解,推理方法是减少域。CP中的搜索方法是什么意思?许多资料提到,约束问题可以单独用推理方法来解决。怎么可能?(我的想法:在推理步骤中,我们仍然要循环约束,那么我认为它也做了搜索约束处理。这里没有使用搜索方法吗?)

基本上,这个问题是关于推理方法与搜索方法的不同之处。如何判断解决方案仅使用推理方法或仅使用搜索方法或两者兼而有之?先感谢您。

4

1 回答 1

1

让我澄清传播和搜索之间的区别:

传播:(也称为约束传播、过滤算法或推理方法):假​​设我们有约束 $x+7 <= 9 $ 使得 $x$ 的当前域是 $D(x) = {0,1,2 ,3,4} $,则可以推断出应该删除 $3$ 和 $4$ 的值。这个过程称为传播。通常,每个约束 C 都与一个传播器相关联,该传播器在调用时会查看其范围内每个变量的当前域并尝试减少它们。

搜索:现在假设我们执行了给定问题的所有传播者,直到不再发生过滤。CP 求解器所做的是在变量上“分支”并将其分配给一个值,即我们决定转到搜索树中的一个新节点。该决定确实可能是一个糟糕的决定,因此我们应该能够稍后回溯并做出另一个决定。这种机制称为搜索、决策、分支……通常使用启发式方法执行。

最先进的 CP 求解器使用 Search+Propagation 组合(可以看作是 DPLL 的改进(http://en.wikipedia.org/wiki/DPLL_algorithm))。还要注意,当求解器开始传播时,它永远不会停止,直到达到一个固定点,即为了确保不再发生域缩减。

于 2013-10-13T15:39:30.117 回答