约束式编程学习笔记[8] 简单的不完全求解器

目录

6 Some incomplete constraint solvers

  1. Q: 解释“‘customise’ the general framework to a specific language”
    A: 提示:比如:用hyper-arc consistency能剪掉一些定义域,但是剪了之后的集合不好表示,这就不行。
    interval arithmetics就有这类问题,所以最后取了各个区间的凸包。

6.1 A useful lemma

  1. Q: hyper-arc consistency和domain reduction有何联系?
    A: 回忆上一章内容:reduction(剪枝)分为剪定义域和剪约束,其中利用单个约束剪定义域的最一般情况就是hyper-arc consistency.
    hyper-arc consistent CSP不可能再通过单个约束剪任何定义域。
  2. Q: 如何理解“the HYPER-ARC CONSISTENCY rule is the strongest.”
    A: 在所有使用单个约束剪定义域的方法中,该规则是最强的(即可以达到理论上最优的定义域缩减效果)
    在具体问题中,如果使用其它办法达到了hyper-arc consistency,那也就是达到某种意义的“最强”“最优”了。

6.2 Equality and disequality constraints

  1. Q: 对于proof system EQU,涉及相等的可以使用集合的交,涉及不等的却只考察了\(y=a\)或\(x=a\)的情况,没有对一般的\(x=y\)情况给出剪枝规则,这为什么没有影响其最优性?
    A: 这是一个具有误导性的问题。
    注意,\(x\ne y, x\in\{0,1\},y\{1,2\}\)是剪不了的。只要定义域中至少有2个元素,不等约束就剪不了。
  2. Q: 为什么说EQU是不完全的?
    A: 例如\(x=y,x\ne y\)造成的矛盾其无法捕捉到,则closed under the rules时既不成功也不失败。
    回忆:

to bring the initial CSP to some specific, simpler form that usually satisfies some specific local consistency notion.

6.3 Boolean constraints

  1. Q: propositional formula \(x\wedge y\)就是AND constraint吗?
    A: 不是。AND constraint指的是\(x\wedge y = z\),而propositional formula实际上相当于指定某表达式为1,即\(x\wedge y = 1\).
  2. Q: 通过有限次、等价的Preprocess过程,可以得到()
    A: 所有约束都形如\(x=y,\neg x=y,x\wedge y=z,x\vee y=z\). 注意其中\(x,y,z\)都是布尔变量,而非一般的布尔表达式。过程中可能引入许多新的变量。
  3. Q: 如何理解“each of these rules can yield a failed CSP”. 明明没有看到任何\(\perp\)啊?
    A: \(x=1\)是定义域,而不是约束。因为1是domain element. 所以如果定义域缩减到空就是fail.
  4. Q: BOOL system在什么意义下有最优性?
    A: 其能达成hyper-arc consistency(暴力讨论可证明),而删除其任意一条规则就不能了。
上一篇:sql sever 约束


下一篇:随机约束、随机分布、随机数组等-systemverilog