当一个 dual 路线走不通时,我真正得到的东西

我原本以为我要找的是一个 dual bound

这段时间我一直在继续推进和无线传感器网络定位(WSN localization)相关的 dual 研究线。最开始我想弄清楚的是:对于这个目标函数,是否能够在当前 gauge-free formulation 下得到一个 genuinely informative dual lower bound。换句话说,我最初想找的其实是一个有内容的 dual certificate,而不是只得到一个形式上存在但实际上什么都没告诉我的下界(trivial 0 bound🥀)

结果:两条最自然的 dual 路线都塌了

目前这一阶段经过各种推导我终于把这件事想得比之前清楚了很多,结论是:我尝试的两条相当自然的 Lagrangian dual (也是Prof Sabach上学期教的)路线最后都会 collapse 到 trivial lower bound 0,但与此同时我随便加的现学的 conjugate-based DC dual 却并不是 identically zero,它会导出一个和 realizable edge-difference subspace,也就是 Range(B),直接相关的非平凡几何量。

但我还是没白算,留下来了个 score

更具体地说就是,经过把目标函数写成 DC form 再结合 convex conjugates 和 quadratic conjugate 的结构,我最后得到的对象可以写成一个 projector formula。它本质上衡量的是在由测量距离给出的 blockwise norm budget 之下,到底有多少东西能够真正落在可实现的 edge-difference subspace 里面,也正是因为这个公式,我开始意识到也许这条 dual 线索最自然的归宿并不是一个 standalone dual theory,而是一个 instance-level structural score。

基于这个想法,我现在把它暂时 formalize 成一个 dual-based score:

Sdual(B, δ) = Σδℓ² − (1/4) · sup over u in V of ||Pu||²。

这里的 P 是到 Range(B) 的正交投影,V 是对应每条边上由测量距离诱导出的 blockwise budget set,这个 quantity 的有趣之处在于它不依赖某一个具体 iterate x,而是只依赖 measurement instance 本身,所以至少在当前阶段它更像是一个关于这个实例本身有多不一致或者有多难的结构性指标。

这个 score 为什么有意思

到目前为止我已经把它最基本的一些性质理清了。首先它总是非负的,其次,它在 exactly realizable 的情形下恰好等于 0,也就是说当且仅当这些距离数据能够被某个 configuration 同时精确实现时,这个 score 才会消失。再进一步,在 forest case 里,这个 score 会自动退化成 0,不过一旦图里出现 cycle 它就可能变成 strictly positive。这里面最关键的机制是 cycle consistency 会把 Range(B) 压成一个真子空间,于是想把每个 block 都同时完全饱和这件事不一定还能做到。

所以如果要总结这段时间 dual 研究真正带给我的东西,大概就是它并没有给我一个漂亮的 ordinary Lagrangian dual bound,但它反而更清楚地告诉我问题里真正非平凡的部分到底在哪里。也就是说 plain dualization 本身太弱,真正留下来的是一个和 cycle consistency、realizability,以及图结构本身密切相关的 diagnostic quantity。

一个 example

我还专门算了一个很小但很直观的 triangle example,就是说在标量情形下三角形图会对应一个简单的 cycle equation,正是这个约束(必须连在一起或者说 u1 + u2 + u3 = 0),使得 dual-based score 不再为 0。在这个例子里它甚至可以被显式算成 1/3,这个例子很直观我很喜欢。

接下来我想干啥

这也让我对下一步的方向变得更明确了一点,所以我现在不太把继续硬推一个 dual 当作主线了,更自然的方向我感觉就是把这条 dual work 保留下来作为 supporting theoretical result,把它变成一个 dual-based inconsistency score 或 diagnostic surrogate,与此同时把主要的算法推进放在 AM framework 和 escape logic 的结合上。也就是说 dual 在这里更像是在告诉我哪些 instance 可能更难,哪些结构性 obstruction 值得被算法注意。

我现在还不想过早夸大这个 score 的作用,至少在当前形式下它并不是 primal objective 的替代品,也不是一个 iterate-level 的 good function。它更像是一个 global、instance-level 的 quantity:不是用来评价某个具体解,而是用来评价这个问题实例本身的结构状态,虽然老师之前某些节点的时候说过觉得 dual 不值得继续研究可以换 topic,但是我还是觉得需要把所有没搞懂的都搞清楚再说,结果也是我搞清楚后还是觉得很有意思。这种不是答案本身但能告诉你问题难在哪里的对象,往往会在真正的算法设计里变得很有用。

对我来说,这一阶段最重要的收获不只是写下了一个公式,而是终于把一条原本有点发散的 dual 研究线,收敛成了一个更清楚的判断,也就是什么会 collapse,什么不会,什么只是形式上的 duality,什么才真正触碰到了这个问题的几何结构。接下来我打算把这条 dual-based score 线索和更具体的算法框架连接起来,看看它是否真的能帮助识别 instance difficulty 或者说指导 restart / escape logic,又或者进一步引出更 local 的 graph-based variants。

(Btw 我考虑了一下没有把我的研究 note 全部具体放上来,页数有点多,感觉有点太 draft,而且数学公式太多感觉大家都看不下去哈哈哈哈)

返回数学栏目