约束式编程学习笔记[6] local consistency (2) 剪二元乃至多元约束

5 Local consistency notions

5.5 Path consistency

  1. Q: 解说"normalized CSP"和"universal relation"的关系。
    A: normalized CSP要求每个二元子序列最多有一个约束(唯一性)。如果我们进一步希望“存在唯一”,那就要形式上引入universal relation进行“占位”。
    注:然而universal relation并不是normalized CSP的约束。更进一步的standardized和regular才要求了“存在唯一”约束,即对任意子序列 X X X存在唯一约束 C X C_X CX.
  2. Q: 二元关系的transposition和composition让你想到什么对象的运算?
    A: 矩阵转置、乘法。
    注:考察这里的乘法封闭、有结合律、有幺元(“单位阵”),故你也可以说composition与幺半群相关。
  3. Q: 如何理解包含关系式 C x , z ⊂ C x , y ⋅ C y , z C_{x,z}\subset C_{x,y}\cdot C_{y,z} Cx,zCx,yCy,z?其等价于什么样的包含关系式包含关系式集
    A: 首先, x , y , z x,y,z x,y,z三者构成变量序列的三元子集,即无序,不重复。
    所以, ( x , z ) , ( x , y ) (x,z),(x,y) (x,z),(x,y)等等都不一定是子序列。如果 x , y x,y x,y是反序的,就用转置运算得到 C x , y = C y , x T C_{x,y}=C_{y,x}^T Cx,y=Cy,xT,等等。
    整个式子要求如果 ( a , c ) ∈ C x , z (a,c)\in C_{x,z} (a,c)Cx,z,则存在 b b b使得 ( a , b ) ∈ C x , y , ( b , c ) ∈ C y , z (a,b)\in C_{x,y},(b,c)\in C_{y,z} (a,b)Cx,y,(b,c)Cy,z.
    当然,这里的 x , y , z x,y,z x,y,z记号可以轮换,因为集合 { x , y , z } \{x,y,z\} { x,y,z}是无序的。所以实际上这一条关系式等价于全排列生成的6条包含关系式。
    然而根据对称性,6条关系式又等价于3条。
    更进一步的, { x , y , z } \{x,y,z\} { x,y,z}如果在CSP变量序列中排序恰好是 x , y , z x,y,z x,y,z,那么这3条可以显式写成 C x , z = C x , y ⋅ C y , z , C x , y = C x , z ⋅ C y , z T , C y , z = C x , y T ⋅ C x , z C_{x,z}=C_{x,y}\cdot C_{y,z},C_{x,y}=C_{x,z}\cdot C_{y,z}^T,C_{y,z}=C_{x,y}^T\cdot C_{x,z} Cx,z=Cx,yCy,z,Cx,y=Cx,zCy,zT,Cy,z=Cx,yTCx,z.
  4. Q: path consistency和前面的几种consistency的明显区别是什么?
    A: 剪枝的是约束不是定义域(或说是二元谓词不是一元谓词,是边不是点)
    考察了多个谓词而非一个谓词。
  5. Q: m-path consistency为什么没有带来新的东西?
    A: 如果一个CSP是 ( m − 1 ) (m-1) (m1)-path consistent,则:
    想构造长度为 m m m的路径。只需先找“倒数第二个点”,使用2-path consistency构造长度为2的路径,再对起点和倒数第二个点使用 ( m − 1 ) (m-1) (m1)-path consistency构造长度为 m − 1 m-1 m1的路径。根据归纳法,path consistent蕴涵m-path consistent.

5.6 Directional path consistency

  1. Q: 简述“重新排序”时怎么考察directional path consistency. 与directional arc consistency比较。
    A: 在已经指定好变量序列时,对于 x , y , z x,y,z x,y,z是子序列,现如果想要考察一个和原始顺序不同的 ≺ \prec (例如 z ≺ y ≺ x z\prec y\prec x zyx)下的directional path consistency,则对 ≺ \prec 进行讨论,分三种情况处理。
    举例 y , z ≺ x y,z\prec x y,zx时,只需考察 C y , z ⊂ C x , y T ⋅ C x , z C_{y,z}\subset C_{x,y}^T\cdot C_{x,z} Cy,zCx,yTCx,z.
    注:可以看到谁在 ⊂ \subset 左边(剪谁)是新的 ≺ \prec 决定的,但是谁转置谁不转置是旧的顺序决定的。对于 ≺ \prec ,只剪靠前的变量相关的东西(此处是约束),不剪靠后变量相关的,这点和directional arc consistency(剪靠前变量定义域)一致。
    注:课本中,对“重新排序”的处理相比directional arc consistency有所不同——在那里是重新构造了CSP P ≺ \mathcal P_\prec P. 当然你想在这两种做法间切换并没有理论上的障碍。

5.7 k-consistency

  1. Q: instantiation的定义域和CSP的定义域是何关系?
    A: instantiation的定义域是CSP变量序列的子序列,而每个分量的值域恰是CSP相应变量的定义域。
  2. Q: k-consistent和global consistent, node consistent, arc consistent有何联系?
    A: global consistent等价于存在一个instantiation是k-consistent,其中k是变量总数。
    但global consistent不等价于整个CSP是k-consistent. 比如 a > 0 , b > 0 , a ∈ { 0 } , b ∈ { 0 } a>0,b>0,a\in\{0\},b\in\{0\} a>0,b>0,a{ 0},b{ 0}显然不存在1-consistent的instantiation,从而vacuously 2-consistent.
    注:可以发现 k − k- kconsistent和 l − l- lconsistent之间互不蕴涵( k ≠ l k\ne l k=l)。直观来看,好像 k k k越大性质越强,但实际上,由于“空虚的真”现象,这也不一定!
    node consistent就是1-consistent.(注:只考虑1元谓词)
    已知node consistent,则arc consistent等价于2-consistent.
  3. Q: 已知node consistent,则3-consistent和path consistent有何联系?
    A: 只有二元约束时,3-consistent等价于path consistent,否则前者更强,因为后者只考虑二元关系。
  4. Q: 构造一个global consistent CSP,是1-consistent,3-consistent,但不是2-consistent.
    把global consistent改成global inconsistent呢?
    A: x < y , x < z , x ∈ { − 1 , 0 , 1 } , y ∈ { 0 , 1 } , z ∈ { 0 , 1 } x<y, x<z,x\in \{-1,0,1\},y\in\{0,1\},z\in\{0,1\} x<y,x<z,x{ 1,0,1},y{ 0,1},z{ 0,1}
    x = y , y = z , x ∈ { 0 } , y ∈ { 1 } , z ∈ { 2 } x=y,y=z,x\in \{0\},y\in\{1\},z\in\{2\} x=y,y=z,x{ 0},y{ 1},z{ 2}

k-CONSISTENCY rule

  1. Q: 如何用变元多的约束构造变元少的约束?如何用多个变元少的约束构造变元多的约束?
    A: projection.
    join.(同时满足多个变元少的约束。例如3个变元,满足3条二元约束)
  2. Q: 说出符号 C ˉ X \bar C_X CˉX良定义的关键点。 C ˉ X \bar C_X CˉX C X C_X CX联系如何?
    A: C ˉ X \bar C_X CˉX是用连续多个join定义的。所以要求运算join可交换。
    C ˉ X \bar C_X CˉX C X C_X CX显然更强。
  3. Q: 用 k = 2 k=2 k=2为例解释 k − k- kCONSISTENCY规则 C X C X ∩ ∏ X ( C ˉ X , y ) \frac{C_X}{C_X\cap \prod_X(\bar C_{X,y})} CXX(CˉX,y)CX. 问:k-consistency剪的是几元约束?
    A: 假设node consistent. 则此时, C ˉ X , y \bar C_{X,y} CˉX,y就是二元约束,其投影用来剪 D X D_X DX(剪一元约束)。
    可以看到和arc consistent剪法相同。
    k = 1 k=1 k=1剪1元,否则剪 k − 1 k-1 k1元。
  4. Q: 为什么k-CONSISTENCY的closed under rule和consistent不等价?它相比arc consistent, node consistent, path consistent等有何本质区别?
    A: 其实根源是 C ˉ X , y \bar C_{X,y} CˉX,y运算。因为 C ˉ X , y \bar C_{X,y} CˉX,y太强了,包含进了所有子序列的约束。
    提示:回忆:arc consistent等价于closed under the corresponding rule. 而node consistent时,arc consistent等价于2-consistent. 可以看到关键在于node consistent.
    k = 2 k=2 k=2,且没有node consistent时, C ˉ X , y \bar C_{X,y} CˉX,y太强了,直接包含进了各个一元约束,其投影自然也保留了这些约束。
    于是2-consistent相比arc consistent的规则,因为有那些一元约束所以“额外多剪了”一些定义域(或者说“必须更小心才能不被剪”)。这正是不等价的来由:即使某CSP已经2-consistent了,但因为它没有注意有关一元约束的事情,所以仍然被剪了
    对于node consistent,因为没有“真子序列”了,自然就不存在此问题。所以1-consistent仍然是和closed under the rule等价。

5.8 Strong k-consistency

  1. Q: 已知并非所有定义域都为空,那么strongly k-consistency和global consistency有何关系?
    A: 此时前者推出后者。
    定义域非空和1-consistent得到一个定义域为单元素集的instantiation(起点非空),之后由于没有vacuously consistent了,因此可以归纳地生成一组定义域为所有变量序列的instantiation. 总之,关键就在于保证每一步非空。
    后者不能推出前者(回忆上期提到:local consistency在“剪枝”这一行为上比global consistency苛刻。如果有些定义域有多余的元素,那么global consistency不被破坏但node consistency被破坏)

猜你喜欢

转载自blog.csdn.net/tritone/article/details/121173937