Skip to content

每个算法交出什么,怎样验证它 ​

一个可执行的迭代式还不是完整解法。需要先说明模型有哪些结构、一步允许调用什么运算,再确定输出是预测点平均、可行近端点、分裂影子,还是原对偶变量。本终点用几份小模型把这些区别变成能逐项核算的交付。

单调变分不等式给出平衡与间隙;外梯度和Mirror–Prox控制预测点的平均间隙。前向–后向利用余强单调性,前向–后向–前向为一般 Lipschitz 单调场增加一次修正。Douglas–Rachford返回近端影子,PDHG将线性耦合拆为两次矩阵乘法与两次近端调用。

任务一:反馈变强后,平均间隙预算怎样改变 ​

盒上的旋转 ​

给定 C=[−1,1]2、F(x)=2Jx,其中 J(x1,x2)=(−x2,x1),初始点 x0=(1/2,0)。目标是交出 Minty 间隙不超过 1/50 的候选。

场的 Lipschitz 常数为 L=2。取外梯度步长 γ=1/4,计算

wk=PC(xk−γF(xk)),xk+1=PC(xk−γF(wk)).

于是 γL=1/2<1。第一步为

w0=(1/2,−1/4),x1=(3/8,−1/4).

这些点与未缩放旋转、步长 1/2 的点相同,因为两者的 γF 相同;但本问题的间隙为 GM(x)=2(|x1|+|x2|),数值是原来的两倍。不能只见迭代轨道没变,就照抄旧误差数值。

从初始点到盒中最远点的距离平方为

R2=(3/2)2+12=13/4.

输出 w¯N=N−1∑k=0N−1wk,理论证书为

GM(w¯N)≤R22γN=132N.

取 N=325 即达目标,需要650次场调用及650次盒投影;二维盒投影逐坐标截断。这个 N 是无需观察轨道的充分预算,实际间隙可能提前达标。若计算实际平均间隙,须平均预测点,而不是未经证明就改平均更新点。

若直接保留旧步长 γ=1/2,则 γL=1。在此轨道上更新化为 xk+1=−Jxk,出现四周期,点本身不收敛。这个边界例检出了遗漏缩放的风险。

单纯形上的同类缩放 ​

将两人零和博弈的支付矩阵改为

2M,M=(1−1−11).

仍取初始概率 p0=(3/4,1/4),q0=(1/2,1/2),使用两块负熵与正文的块范数。此时 L=2,选择 γ=(log⁡2)/2。指数更新中的 γF 不变,第一预测点仍是 wp=p0,wq=(2/3,1/3);校正锚点的首坐标为

p1(1)=33+22/3,q1(1)=23.

初始 Bregman 半径仍为 Θ=log⁡8,故平均预测策略的鞍点间隙不超过 6/N。要求间隙至多 1/100,取 N=600 足够。改变支付尺度没有改变可行策略,却同时改变安全步长与证书数值;若初始概率含零,熵更新会锁死该坐标,不能继续使用覆盖整个单纯形的有限半径。

任务二:同一阻尼旋转,为什么有两种合法分裂 ​

设 A=0,B(x)=3x+4Jx,在整个 R2 上寻找零点。其唯一零点为0,且对任意差向量 h,

⟨Bh,h⟩=3‖h‖2,‖Bh‖2=25‖h‖2.

因此可取余强单调常数 β=3/25,而 Lipschitz 常数为5。前向–后向只需一次 B 调用,因为 JγA=I,更新为

xk+1=((1−3γ)I−4γJ)xk.

取 γ=1/5<2β=6/25,有

‖xk+1‖2=45‖xk‖2.

从 x0=(1,0) 得 x1=(2/5,−4/5)。若误取 γ=1/4,平方范数因子变成 17/16,非零点发散。检查的是余强单调预算,并非只找一个看起来小的步长。

只使用单调与 Lipschitz 条件时,也可选 FBF 的 γ=1/10<1/L。预测点为 p=x−γBx,更新为 x+=p+γ(Bx−Bp)。对于当前线性场,

x+=(63100I−425J)x,‖x+‖2=169400‖x‖2.

每轮多调用一次 B。这个具体例里平方范数收缩更快,但不能据此宣布 FBF 对所有模型都更快:每轮成本、参数限制与目标精度都要计入。

进一步把 A 改为约束集的法锥时,FBF 的预测点在约束内,校正状态却未必可行。需要可行候选就报告近端预测点及其包含残差;不得把“状态能继续迭代”和“当前状态满足约束”当成同一件事。

接口核验:分裂状态的极限,怎样变成原问题的解 ​

令

A(x)=x−4,B=N{1},γ=2.

原包含关系只有 x=1 可行,且在该点 A(1)=−3、B(1)=R,所以 x=1 确为解。两个预解算子为

J2A(z)=z+83,J2B(v)=1.

Douglas–Rachford 从 z0=0 开始,依次算 pk=J2Azk、qk=J2B(2pk−zk)、zk+1=zk+qk−pk。因此

zk+1=2zk−53,zk=−5+5(2/3)k,pk=1+53(2/3)k.

前三个新状态为 −5/3,−25/9,−95/27。状态趋于 -5,而原解影子趋于1;第二个影子 qk 恰好每步等于1。知道这一特例的可行点只有一个,已可直接认证 q 是解,但一般分裂问题没有这种捷径。

若以第一影子输出,位置误差就是 |pk−1|=(5/3)(2/3)k。分裂差 qk−pk 同时趋零。不过有限 k 时所计算的算子值分别位于 A(pk) 与 B(qk);将它们的和未经说明写成 (A+B)(pk) 的成员,会把两个不同位置合并错。

输出时应逐项检查:返回哪个变量、它是否原可行,以及有限步的算子值究竟位于哪个位置。

任务三选择PDHG步长时,要先量清矩阵对向量的最大放大。诱导矩阵范数说明这里的二范数为何由最大奇异值决定;计算出范数上界以后,再检查两个步长的联合预算。

任务三:三点信号中的融合段和活动边 ​

给定观测信号 b=(0,0,3),希望去除小幅相邻差异,同时保留最后一处较大跳变。求解

minx∈R3P(x):=12‖x−b‖2+|x2−x1|+|x3−x2|.

定义域包含三个信号值、两条相邻边,对偶变量为二维。令

K=(−1100−11),KTy=(−y1,y1−y2,y2).

取 f(x)=‖x−b‖2/2、g(v)=‖v‖1。对偶可行域为盒 [−1,1]2,各坐标分别控制一条边。KKT=(2−1−12) 的两个特征值为1和3,故 ‖K‖22=3。取 τ=σ=1/2,步长乘积为 3/4<1。

先给一份完整最优证书 ​

候选为

x∗=(1/2,1/2,2),y∗=(1/2,1).

先检验站立条件:KTy∗=(−1/2,−1/2,1),因此

x∗−b+KTy∗=0.

再检验边上的次梯度:Kx∗=(0,3/2)。第一条边融合,允许 y1∗∈[−1,1];当前值 1/2 严格在盒内。第二条边是正跳变,必须 y2∗=1,恰在盒边界。这两条边承担不同角色,不能只检查一个对偶向量的长度。

f∗(u)=⟨b,u⟩+‖u‖2/2,所以可行 y 的完整对偶值为

D(y)=⟨b,KTy⟩−12‖KTy‖2=3y2−12(y12+(y1−y2)2+y22).

代入得 P(x∗)=3/4+3/2=9/4、D(y∗)=9/4。零 gap 认证最优;平方损失的1-强凸性还给原最优点唯一。

有一个值得核查的错误候选:y=(1,1) 虽对偶可行,由站立式恢复 x=b−KTy=(1,0,2),第一条差分却为 -1,要求的次梯度应是 -1 而不是 +1。因此“对偶在盒内,并且站立方程成立”仍少了边上的相容性。它的 P=4,D=2,非零 gap 正好揭示缺失条件。

从零点执行原变量先更新的 PDHG ​

两个 prox 都显式:

x+=2x−KTy+b3,y+=clip[−1,1]2(y+12K(2x+−x)).

从 x0=(0,0,0),y0=(0,0) 开始,得到

x1=(0,0,1),y1=(0,1),P(x1)=3,D(y1)=2,P(x1)−D(y1)=1.

第一条边暂时也融合,但还没有全体最优性条件;状态不是最终解。第二轮为

x2=(0,1/3,4/3),y2=(1/3,1),P(x2)=25/9,D(y2)=20/9,gap=5/9.

这轮第一条边又不相等,说明有限次算法的融合图样不能只看一次相邻值相同就永久固定。当前保证来自真实 P-D,而不是推测将来的活动集。

对任意原候选 x 与盒内 y,有

0≤P(x)−P(x∗)≤P(x)−D(y).

由于原目标1-强凸,还可进一步给 ‖x−x∗‖≤2(P(x)−D(y))。这里能把 gap 转成距离,是因为明确用了曲率;一般 VI 的小间隙不自动给同样的位置误差。

迁移到较长信号时保留什么 ​

将 K 换成长度 n 路径的相邻差分,两个 prox 的形式仍成立,但 x 有 n 个坐标、y 有 n-1 个盒约束。每次 K 和 K转置乘法都可沿边表用线性工作量完成。要复用收敛定理,需重新给出该矩阵的有效范数上界及步长预算;要声明某段已融合,需检验各条边的次梯度与站立残差。不同边的盒内点、盒边界点,以及零差分之间的对应,正是从两点模型迁移到一段信号新增的结构。

交付与复算 ​

运行 python foundations-operator-splitting-check.py --output result.json。有理旋转、投影、平方预算、分裂状态与融合目标使用 Fraction;负熵指数迭代用70位 Decimal,单独列出容差。精确恒等式与高精度交叉核验分开记录,后者不是机器有向舍入区间。

最终报告应包含模型及定义域、结构常数、合法步长、每轮调用成本、实际返回的对象、认证量及其范围。上述任务分别检查尺度与间隙、阻尼结构以及多边融合证书;额外的一维核验只帮助辨认内部状态和原解接口。每一次模型迁移都应能追到具体的结构条件与可行性检查。