【问题标题】:Differences between inference method and search method in constraint programming约束规划中推理方法和搜索方法的区别
【发布时间】:2013-10-11 07:34:55
【问题描述】:

要解决约束问题,我们可以使用推理方法和/或搜索方法Constraint Propagation. Christian Bessiere, 2006 一开始就声明:约束传播是一种推理形式,而不是搜索。

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

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

【问题讨论】:

    标签: constraint-programming


    【解决方案1】:

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

    传播:(也称为约束传播、过滤算法或推理方法):假​​设我们有约束 $x+7

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

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

    【讨论】:

    • 是不是:对于一种搜索方法,总是给每个变量赋值来确定?但是对于推理方法,有些变量可能没有取值?
    • 他们完全无与伦比!当我们说搜索时,它是基于我们为探索搜索树而做出的决定。为此,我们取一个尚未分配给值的变量,我们决定(例如)将其分配给其域的给定值,然后我们执行传播,即在给定变量的当前域的情况下我们可以推断出什么.如果我们达到我们做出的决定导致失败的状态,我们会回溯,撤消在给定级别上对域执行的所有操作,然后再做出另一个决定。
    猜你喜欢
    • 2016-01-13
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-03
    • 2016-09-27
    • 1970-01-01
    相关资源
    最近更新 更多