4 Some complete constraint solvers

4.3 Linear equations over reals

  1. Q: 利用教材的约定,试将\(a-b=2c\)表示成一阶逻辑原子公式。
    A: 形如\(A_1^2(f_+^2(f_1^1(a),f_{-1}^1(b)),f_2^1(c))\),谓词和函项的解释略。
  2. Q: 对线性方程normalize可能得到什么?
    A: 希望得到\(\sum_{i=1}^n a_ix_i=r\)
    但实际上可能是三种情况。\(0=0\)(不提供信息),\(0=r(r\ne 0)\)(相当于\(\perp\)了),或者“正常情况”\(\sum_{i=1}^n a_ix_i=r\),左侧至少有一项系数非零。
    注:只有“正常情况”可能导出pivot form.
  3. Q: 为了类比4.2节的结果,我们把哪些4.2节中针对一般一阶逻辑表达式的概念挪用到了此处?
    A: 如substitution:除了要求代入的项\(t\)是normal form,其它都与一般的一阶逻辑情况一致。(显然,此处代入结果仍是linear equation)
    如unifier:让方程\(s=t\)变成\(0=0\).(也可以模仿上一节把此结果称为\(s\equiv t\),以示与\(=\)的区分)
    如solved form:每一条方程都是pivot form,且每个左侧变量不出现在每个右侧。
    如strong mgu, determine含义都与之前对应。
  4. Q: solved form对应什么样的矩阵?
    A: \(x_i=t_i\)中的左侧变量不出现在其它任何地方,这实际上相当于矩阵分块为左右两部分,左侧是\(n\)阶单位矩阵,右侧是\(n\times m\)的一般的矩阵。其中\(n\)是solved form的公式条数。
    当然,此形状的矩阵和最简阶梯形矩阵(简化阶梯形矩阵)有联系。
  5. Q: 如何理解"We pursue here a more general possibility according to which each variable domain consists of the set of linear expressions in normal form, that we denote by \(\mathcal N\mathcal F\)."?
    A: 回忆线性代数中求\(x_1=x_3+x_4,x_2=x_3-x_4\)的通解方法:分别代入\((x_3,x_4)=(0,1); (x_3,x_4)=(1,0)\),然后对得出的两个线性无关的\(\vec X:=(x_1,x_2,x_3,x_4)\)线性组合.
    即:当线性方程组的解不唯一时,我们先找mgu,再进一步代入具体数值。此处约束求解只是走到找mgu这一步。这里的mgu中的项\(t_i\)就不一定都是常数值了,可能有一般的表达式。

The LIN proof system

  1. Q: SUBSTITUTION规则何时并未做SUBSTITUTION而是做了其它工作?LIN中SUBSTITUTION相当于之前UNIF中的什么规则?进一步比较LIN和UNIF.
    A: 对于\(s=v\),先化简成pivot form \(x=t\),这时如果\(E\)中除了这一条没有其它方程(或者其它方程都不含\(x\)),那么该次运用规则SUBSTITUTION就没有做任何SUBSTITUTION,而是只化了个简。
    实际上,SUBSTITUTION相当于做了之前UNIF规则中SUBSTITUTION, TRANSPOSITION两条。
    由于该问题特殊性,LIN相比UNIF,FAILURE 1规则窄化成了\(0=r\)形式,FAILURE 2规则不存在,DECOMPOSITION规则不存在。
  2. Q: LIN系统“如果终止就正确”的论证和UNIF有什么异同?
    (注:这里不是在问其“总是终止”的证明)
    A: 大体遵循相同模式。只有由于规则集不同,故如何从closed推出solved的论证有细节上的区别。
  3. Q: 书中提到"a less drastic alternative". 请用矩阵操作作为书写工具,对是否"drastic"的两种算法做对比。
    A: drastic的那种类似于
    \(\begin{matrix} 1&2&3\\2&0&-2\\2&0&0 \end{matrix}\to \begin{matrix} 1&2&3\\0&-4&-8\\0&-4&-6 \end{matrix}\to \begin{matrix} 1&0&-1\\0&-4&-8\\0&0&2 \end{matrix}\)
    关注刚刚第二个箭头中,对于第二行第二列的-4,我们不但用它消去下面的-4,还用它消去上面的2,这就是所谓"global".
    自己实际操作对比,可以看出这相比“先化为阶梯形矩阵”的算法(在此处,体现为只会先用-4消去下面-4),效率更低。
    注:"drastic"称为高斯-约当消元法。而"a less drastic alternative"(先化为阶梯形矩阵)称为高斯消元法。
  4. Q: 接上,证明这两种消元法的completeness过程有何异同?
    A: 高斯-约当:(unsolved var, card)元组。
    高斯:无法再考察unsolved var个数了,如果你仍想用“元组”考察,可以定义"left unsolved"概念,表示某\(x_i=t_i\)\(x_i\)是否出现在\(t_1,\cdots,t_i\)(考察“单侧”)。以及相应的"right unsolved"概念。
    当然,也没必要一定用元组考察。像课本中直接叙述也可。

4.4 Linear inequalities over reals

  1. Q: 为什么需要\(^\le x,x^\le, \bar x\)三种normal form?之前LIN系统那样统一用一种normal form不好吗?
    A: 这样看起来使得形式不统一了,但注意形式统一并不是我们的目的,消元才是我们的目的
    所以应该针对某个变量\(x\),对于不等式关于其的关系做讨论,化简成便于考察\(x\)的形式,才方便消去它。之前LIN系统是恰好只用一种normal form就足够消元了
  2. Q: 处理不等式时如何类比上节中提到的\(=,\equiv\)
    A: 如果你愿意的话,\(s\le t\)等价于\(r\le 0\),其中\(r\)是小于等于0的常数时,你可以记作\(s?t\),其中?是新符号。这里的?就相当于上一节的\(\equiv\).
  3. Q: 直观解释\(x-ELIMINATION\)规则具有某种意义下的equivalence preserving性质。
    A: 注:应用前对\(x\)有限制,应用后对\(x\)无限制,故该规则显然不是一般意义的equivalence preserving.
    实际上,\(x-ELIMINATION\)规则在所有变量取值为常数(而非一般的\(\mathcal N\mathcal F\)中的项)时是w.r.t.一个子序列的equivalence preserving(当然,从而是consistency preserving)
    一方面,满足\(LI\)的显然满足\(^\le x(LI)\cdot x^\le (LI),\bar x(LI)\).
    反之,如果针对除\(x\)外的变量能找到一组\(^\le x(LI)\cdot x^\le (LI),\bar x(LI)\)的(常数)解,则依托这组解来确定\(x\)(找\(x\)下界的上界,\(x\)上界的下界,从而找到一个可行的\(x\)值),就找到一组\(LI\)的解。
  4. Q: 如何将Fourier–Motzkin Elimination的原始形式转化为可以解出全部解集或最优解的形式?(注:只考虑解为常数,不考虑为一般的\(\mathcal N\mathcal F\)中的项)
    A:
    全部解集:每次消元不要彻底扔掉\(x\),而是挂着\(max\{s_1,\cdots,s_m\}\le x\le min\{t_1,\cdots,t_n\}\)这样一条(当然后面不会再动这一条了。并且\(max\{\cdots\}\)很有可能并不是线性函数,而是分段函数)
    举例:针对\(y\ge x-1,y\le x+1,y\ge -x-1,y\le -x+1\),本来消去\(y\)得到4条关于\(x\)不等式,但现在还额外加入\(max\{x-1,-x-1\}\le y\le max \{x+1,-x+1\}\).
    那4条关于\(x\)的不等式照样正常解得到\(-1\le x\le 1\),联合上额外加入的这条,最后得到解集\(\{(x,y)|-1\le x\le 1,max\{x-1,-x-1\}\le y\le max\{x+1,-x+1\}\}\)
    最优解:例如针对线性的优化(最小化)目标\(f(x,y)\),增加约束\(f(x,y)\le z\),消掉其它元直至只剩下\(z\),例如得到\(-4\le z\),这就说明待优化的目标最小是-4. 这时把\(z=-4\)代回,再“往回计算”,解出最小值点。
  5. Q: 解说"The accumulated increase of the number of inequalities can lead in the worst case to a doubly exponential number of inequalities."
    A: 每次应用消元规则,都导致不等式个数出现“乘积”,即(最坏)\(x\)个不等式得到\(x^2/4\)个,接下来是\(x^4/64,x^8/2^{14},x^{16}/2^{30}\),以此类推(注:认为此处\(x\)比较大,\(x-1\approx x\))。
    这样一来,\(n\)次这种操作(在\(n\)较大时,最坏情况,大约)产生了\(\frac{4x^{2^n}}{2^{2^{n+1}}}\)条不等式。这就是"doubly exponential number".