SAT编码与互联Alldiff约束的CSP约简
1. Alldiff约束基本概念
Alldiff(V)表示对变量子集V的Alldiff约束,语义上对应于 $n*(n - 1)/2$ 个成对不相等约束的合取,即 $\bigwedge_{x_i,x_j\in V,i\neq j} x_i \neq x_j$。
2. 单个Alldiff约束规则
- [O1]规则 :
- 若变量x的域 $D_x = {d_1}$,则将 $d_1$ 从其他变量的域中移除。
- 表示为:$< C \land Alldiff(V), D > |x \in V \land D_x = {d_1} \to < C \land Alldiff(V), D’ > |d_1 \notin D’_{V \setminus {x}}$
- 性质1:若 $< Alldiff(V), D > \to^* {[O1]} < Alldiff(V), D’ >$,则对应的合取 $\bigwedge {x_i,x_j\in V} x_i \neq x_j$ 关于 $< D’ >$ 是全局弧一致(GAC)的,但用[O1]对不相等约束强制执行GAC比直接对全局Alldiff约束强制执行GAC减少的域更少。
- [Om]规则 :
- 考虑m个变量的子集 $V’$ 有m个可能的值,$1 \leq m \leq (#V - 1
超级会员免费看
订阅专栏 解锁全文
8924

被折叠的 条评论
为什么被折叠?



