6 Some incomplete constraint solvers

6.4 Linear constraints on integer intervals

  1. Q: 本节中的linear expression为什么不需要乘法运算?
    A: 由于只考察整数和“整数倍”,故用不断复合加法表示乘法。

6.4.1 - 6.4.2

  1. Q: “By combining the corresponding domain reduction rules for these two inequality constraints we obtain a domain reduction rule for an equality constraint.”是否形如\([a..b]\cap [b..c]=\{b\}\)
    A: 不对。提示:\(\ge,\le\)两条中,一个对正系数对应变量取上界,对负系数对应变量取下界;另一个反之。所以两个区间有长度非零的重合区间。
  2. Q: 这两节中,唯一一处出现除法但没有取整运算的规则是什么?提示:等号,一个变量。
    A: \(ax=b\)时,可以直接看\(b/a\)是否在定义域中,从而直接给出\(x\)取值或者得到fail.

6.4.3 - 6.4.6

  1. Q: 如何处理严格不等式?
    A: \(s< t\)等价于\(s\le t, s\ne t\).
  2. Q: “an arbitrary element can be removed from a domain, not only the ‘boundary’ one”描述的是什么?
    A: finite domains相比intervals所具有的优势:在处理\(x\ne a\)时,可以直接从\(D_x\)中删去一个元素。(无论是否在边界)
  3. Q: 处理SEND+MORE=MONEY时,\([2..8]\)从何而来?
    A: 显然\(M=1,S=9,O=0\),此时可以直接排除掉位于\([0..9]\)边界的三个数。
  4. Q: 接上,直观上看,为什么\(E,N\)被剪得多,\(D,R,Y\)被剪得少?
    A: 提示:\(E,N\)分别是等式左右两边系数最大的未确定数值的变量。“没人帮它们顶着”。
  5. Q: 解说“The other eighteen simple disequality constraints are solved.”
    A: 原本\(C_8^2=28\),确定三个数\(S,M,O\),且它们恰好取的都是靠边的值,所以可以直接在另外五个变量的定义域中删去\(0,1,9\),于是现在只需要\(C_5^2\)个disequality. 其余18条已经多余,所以可以删除了。

6.4.7 - 6.4.8

  1. Q: LINEAR EQUALITY等规则没有考虑涉及“整除性”的东西,所以得到的显然比hyper arc consistency弱。那么本节加强的interval consistent和bound consistent哪个考察了整除性从而更强呢?
    A: 对整数CSP的interval consistent.
    注意:根据定义,整数CSP的bound consistent是某实数CSP的interval consistent.
  2. Q: 凸性和hyper-arc consistent有何联系?
    A: 对于实数CSP,由于解集是凸集,故仅通过控制上下界即可到达hyper-arc consistent(相比之下,整数CSP有整除问题所以麻烦得多)
    (注:对于等式和不等式,都可以通过控制上下界到达实数CSP的hyper-arc consistent)

6.5 Arithmetic constraints on integer intervals

6.5.1 - 6.5.3

  1. Q: 简要描述在涉及一般的Arithmetic constraints时剪定义域的一些典型困难。
    A: (合理即可)
    没有显式表示(根式解)导致\(x\le f(x,y,z)\),右侧不能去除\(x\). 从而导致难剪(\(x\)本来定义域就很大的话,\(f(\cdot)\)值域还是很大)
    涉及0以及和0相关的分类讨论。(偶数次幂)
    涉及分母相关的分类讨论。(如\(xy\le z\)
    表达式范围太大导致剪不了。
  2. Q: 引入辅助变量为什么有助于剪定义域?提示:新增分类标准。
    A: 除了对original variables定义域二分,还可以对辅助变量定义域二分。(多了一些分类标准,使得分类不一定只能“正交”着进行)
  3. Q: 解说“To estimate the right-hand side we now need a double case analysis on x and z. This leads to nine cases”
    A: 分别考虑0与定义域关系,3*3=9(凡是偶数次幂显然都要作此讨论)
  4. Q: 多项式中无非就是加法和乘法,所以可以把一般的约束变成线性约束或者()。为了解决复杂的分类讨论,为什么按此方法引入许多辅助变量会有帮助?
    A: \(xy=z\)(思考:此处为什么没有必要引入一般的6种运算符?)
    提示:拆成许多子过程,每个子过程分类都不是很多(比如为定值2),总的(能表达的)类数与子过程的个数就成指数关系(例如\(2^n\))。
  5. Q: 解说“The problem of an appropriate characterisation of the MULTIPLICATION rules remains then open.”
    A: 现在由于对非凸集(如区间相除结果)取了凸包,所以这方法现在也不行了。
    这个问题是arithmetic特有的。因为linear处不涉及对非凸集合取凸包。

6.5.4 - 6.5.5

  1. Q: 说明implementation时区间除法需要的特别处理。
    A: 由于涉及0,故需要进行许多分类讨论。
    即使确认不涉及0,由于可能得到非整数(以及整除问题),故最终也不妨进一步(分别从小到大和从大到小)枚举讨论确定更精准的剪枝结果。
  2. Q: 引入更多变量()(填“升高”或“降低”,下同)耦合程度,从而()了剪定义域能力,比如\(x^3\le 1000, x\in [1..1000]\).
    把区间改成一般的有限集()了语言的表达能力,()了剪定义域能力,但()了分类讨论难度,()了效率。
    A: 降低,降低,升高,升高,升高,降低。

6.6 Arithmetic constraints on reals

6.6.1 - 6.6.3

  1. Q: 实数相比整数多了开闭区间的问题。为什么要引入\(\langle \rangle\)记号?
    A: 便于处理关于无穷的问题(涉及无穷时始终挖去,但有限时始终表示含端点值)
    注:为什么不直接全部用开区间表示?因为此时不便于表示单元素集。
  2. Q: 由于实数区间相比整数区间来说多了凸性,所以实数区间四则运算造成非凸的可能性只有()。
    A: 除数区间包含0
    注:当然,还有可能“挖掉边界的0”,这不影响凸性,但影响开闭。我们定义\(int(\cdot)\)运算结果是凸包的闭包。
  3. Q: 相比整数情况,实数情况可以使用()这类区间,因此容易将()转化为等式和\(\ne\).
    A: \(\langle -\infty,0\rangle\)\(>,<,\ge,\le\)
  4. Q: 由于非凸性仍存在,所以()consistency和整数情况类似进行论证,也不适用于实数。
    A: interval
  5. Q: 添加\(+\infty,-\infty\)的实数集的算术运算中,无定义的情况分为()和()两种。为什么不认为\(1/0=+\infty\)
    A: 不定式(四则运算都有不定式),除以0
    0没有分正0和负0(计算机浮点数表示中其实有,但此处我们理论中没有区分)
  6. Q: 解说“The appropriate result for the multiplication operation requires only the categories P, M, N and Z of Table 6.4.”的“only”.
    A: 提示:乘法比加减法需要分类讨论得更多,除法比乘法需要得又更多。所以形成了分类的树结构,乘法不需要全部叶子。

6.6.4 - 6.6.5

  1. Q: 如何处理浮点数带来的问题?
    A: 使用outward rounding:对于非浮点数区间,取包含它的最小的浮点数区间。其具体实现细节不在本书范围。
  2. Q: 6.6.5中哪些问题是实数相比整数特有的?
    A:
    Interval Division中涉及0的问题与整数相同。
    Additional Interval Operations涉及的问题和整数相同(整数情况也有可能特别解释\(x^2\)提高效率等)
    Convergence中,\(x-y=1,y-x=1\)带来的问题并不是实数相比整数本质地特有的。它只是因为我们在整数处没有考虑\([-\infty..n]\)这种区间。
    \(x-y=0,x-2y=0\)这种是特有的。
    Choice of atomic constraints的问题与整数相同:太少的atomic种类导致效率下降,不能显式表达的atomic不能导出好用的规则,等等。
    Choice of transformations into atomic constraints中dependency problem类似于之前涉及\(x^2\)的问题,是共有的。
    Choice of the function representation是共有的。

6.7 Arithmetic equations over reals

  1. Q: 如何理解“In contrast to the other incomplete constraint solvers discussed in this chapter, the one discussed here is not based on the domain reduction rules but rather on the transformation rules.”
    A: 本节讲的求解器(或说化简算法)相比之前的,出发点不同。之前的基于剪定义域,而这里的基于代入法。它们都从某个角度上能一定程度化简问题,但不足以解决问题。