Skip to content

算法Algorithm

Clarkson 加权抽样

Clarkson weighted sampling · Clarkson iterative reweighting · Clarkson 迭代倍增算法

反复按整数权重抽取小样本,核验全部约束,并只在违反总权较小时倍增违反者,以基权增长证明期望终止。

形式陈述 ​

一个完整的加权内层算法 ​

设 H 含 n 个约束,满足 LP-type 的单调性、局部性和基大小上界,所有子问题值都有定义,已知整数 δ≥1 控制每份基大小。假设能求解一个小子集,并对任意约束做准确的违反测试。

初始化每个约束的整数权重 wh=1。取样本长度 r=6δ2,每一轮执行:

  1. 令 W=∑hwh;独立抽 r 次,每次取 h 的概率为 wh/W,允许重复。
  2. 求这些抽中约束的共同最优解;求解前可以去掉重复身份,但不能改变抽取时的概率。
  3. 对全部 H 检查违反集合 V,求 w(V)=∑h∈Vwh。
  4. V=∅ 时返回;否则,若 w(V)≤W/(3δ),将 V 中每个权重乘二;若超过阈值,本轮不改权,重新独立抽样。

本页实现的是有放回的加权内层算法。Clarkson 原文的迭代版从整数多重集中无放回抽取,且采用不同常数;其递归/混合版还有额外的外层约束缩减。本页另证所用抽样分布的界,不把混合版的线性主项归到这一个循环上。[1, §2.2–3]

接受试验与接受答案不同 ​

通过轻违反集阈值,只表示允许倍增权重,仍不是一个可交付答案。只有全部约束都通过违反检查,才可返回。若执行设置了轮数预算,预算耗尽应返回 unknown,不能把最后一次小样本解包装成全局最优解。

样本已经不可行时,完整系统也不可行,可以直接返回;这需要底层求解器的不可行结论真实可靠。一般 LP-type 表述中对应一个最大值状态,它没有进一步违反者。

直觉

漏掉的重要约束要更容易被再次抽中 ​

随便抽一个小子集,经常会漏掉真正决定全局答案的约束。算法不把所有违反者永久塞进一个不断膨胀的子问题,而是提高它们下一轮出现的机会。小样本规模固定,增加的是抽样分布的偏向。

为什么违反者太多时反而不加权?若几乎全部权重都同时翻倍,各项的相对概率几乎没变,重要约束也没变得更突出。轻违反阈值控制总权增长,才能让某份真正的全局基比全体约束更快变重。

保持样本规模,改变下一轮抽样概率

精确整数票,不把大权重转浮点 ​

按固定 ID 次序建立累计权重 si=∑j≤iwj。独立均匀取整数票 t∈{0,…,W−1},用二分查找找第一个 si>t,就精确实现概率 wi/W。当 t 恰为某项累计值时,应归入下一项,故是严格大于而不是大于等于。

一轮内重复抽中同一个约束,不意味着它在求解时应多次施加,也不意味着更新时要按抽中次数翻倍。倍增对象是全局检查得到的违反集合,每个违反 ID 只乘二一次。重新使用同一串票或每轮重置相同种子会破坏条件独立性,不能沿用下面的概率证明。

例子与边界

四轮真实轨迹 ​

取二维约束 hi:x≤i,i=0,…,127,最大化 x;字典序中的 y 方向由形式框处理。最终最强约束是 h0。执行器用允许不可行系统的保守维数上界 δ=3,每轮抽 54 次,初始 W=128。

种子194产生以下完整运行;“样本最小 ID”决定本轮 x 上界,全部54个原始抽样 ID 保存在下载结果中。

轮 W 样本最小 ID 违反 ID w(V) 操作
1 128 17 0至16 17 9⋅17>128,不改权
2 128 3 0、1、2 3 三个权重由1变2
3 131 1 0 2 w0 由2变4
4 133 0 空 0 全局检查通过,返回

第二轮后总权是 128+3=131;第三轮增加的是当前 w0=2,所以变成133,而不是132。最后 x=0 为真正最优值,不能在第二轮得到 x=3 时提前退出。

固定样本只负责求候选 ​

这个例子的约束实际上全都平行,最优基只有一个 ID;算法使用更大的合法维数上界只会使样本更大。一般输入可能需要两个最优性约束,或者三条矛盾约束。不能从这一次运行看到单元素基,就把通用二维求解器的 δ 改成一。

若将最强约束替换为与其余约束矛盾的几条半平面,输出应变成不可行。若删掉所有限制目标增长的半平面,输出应变成无界射线。加权外层不负责修补底层 LP 接口,把这三类状态全写成一个未经定义的数值会破坏模型的局部性。

推论与应用

有放回样本的违反权界 ​

固定当前权重。令 Z1,…,Zr+1 为独立同分布的加权抽样,R 是前 r 项所含的不同约束集合。条件于 R,最后一项违反它的概率恰为 w(V(R))/W。

反过来,固定全部 r+1 个抽样位置构成的多重集,均匀选一个位置删除。若某约束出现至少两次,删除其中一个位置不改变所含约束集合。其余可能改变答案的位置,对应去重集合中的极端元素,至多 δ 个。因此由交换性,

Ew(V(R))W=Pr[Zr+1∈V(R)]≤δr+1.

这段论证允许重复、允许基不唯一,也不把有放回样本误当均匀 r 元子集。由 Markov 不等式,

Pr[w(V)>W3δ]≤3δ2r+1<12.

所以条件于任意过去历史,下一轮至少以一半概率通过轻违反阈值或直接结束。条件概率下界才是后续期望轮数证明所需的性质。

每轮有效倍增都击中一份固定的全局基 ​

固定完整系统的一份基 B∗,不要求唯一。若候选还违反某些约束,却没有违反 B∗ 中任何一项,逐个把 B∗ 的项加入样本。每次都保持原值,且局部性使违反集合保持不变。最终得到

φ(B∗)≤φ(R∪B∗)=φ(R)≤φ(H)=φ(B∗),

这里用 φ 表示 LP-type 的优化值函数,与整数权重分开记。相等再结合局部性给出 V(R)=V(H)=∅,与尚有违反者矛盾。因此每轮没有结束的有效倍增,必将 B∗ 中至少一个权重乘二。

为避免实现混淆,程序把优化解存为 symbolic,整数权重数组单独存为 weights,不会拿同一个数兼任两个含义。

基增长快,总权增长慢 ​

设进行了 k 次没有结束的有效倍增。每次总权至多乘 1+1/(3δ),所以

Wk≤n(1+13δ)k≤nek/(3δ).

设 b=|B∗|≤δ。若 b=0,初始值已是全局值,算法直接结束;否则该基各项权重的乘积至少为 2k。由算术—几何平均不等式,

Wk≥∑h∈B∗wh≥b2k/b≥2k/δ.

合并得到

k≤δln⁡nln⁡2−1/3.

所以有效倍增只有 O(δlog⁡(n+1)) 次;每次等待下一次有效试验的条件期望至多二,算法几乎必然结束,期望总轮数也为这个数量级。基非唯一不影响证明,因为从头到尾只固定任意一份 B∗。

实际成本与维度依赖 ​

设单次违反测试成本为 Cv,至多 r 个约束的小求解器成本为 Q(r)。按前缀权重加二分实现,一轮需

O(nCv+n+rlog⁡(n+1)+Q(r))

次基本操作,故总期望乘上 O(δlog⁡(n+1))。这显式保留了 r=6δ2 和小求解器代价;没有免费抽样,也没有免费检查完整输入。

附件只实例化二维 LP,固定 δ=3,用精确枚举形式框顶点的小内核求解样本;若不可行,再删除冗余样本约束取得至多三行证书。这个内核最坏 Q(r)=O((r+4)4),对固定的54项是常数,因此整个加权循环期望为 O((n+1)log⁡(n+2)) 次精确算术/整数操作,工作空间 O(n+1)。它不是 Clarkson 混合算法的期望线性实现。

上述有效轮数界还给出 Wk≤n1+1/[3(ln⁡2−1/3)],所以权重与整数票只需 O(log⁡(n+1)) 位,不会因为无限次拒绝就持续增长。几何有理数运算仍须计输入位长;开启完整日志会额外保存每轮54次抽样及违反 ID,其总大小按实际轨迹计。预算为零直接返回未知,空约束则由底层求解器按原目标返回有限零目标或无界,不需要抽样。

终结任务要求重放以上四轮,逐次核阈值和总权,再用独立完整 LP 求解核验最后输出。完整执行器保留这些原始抽样记录,读者可以换输入而不是只重画概率直觉。

参考资料
  1. Kenneth L. Clarkson,“Las Vegas Algorithms for Linear and Integer Programming When the Dimension Is Small”,JACM 42(2),1995,§2.2、Figure 2、§3 Lemma 3.1、Theorem 3.4,印刷 pp.491–495。原文从整数多重集中无放回抽样;本页的有放回常数与交换性证明单独给出。可读的大学托管原论文与作者稿页码不同。
  2. Bernd Gärtner、Emo Welzl,“A Simple Sampling Lemma: Analysis and Applications in Geometric Optimization”,2001,§1、§3:违反与极端元素的双计数、非唯一基;§5 的约束缩减是另一个算法,不是本页直接实现的循环。
关系图谱8 个相邻概念 · 3 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系