Skip to content

定义Definition

单调性测试

施工中 · 内容逐步修订

Monotonicity testing · Testing monotone functions

在带偏序的有限定义域上,通过函数值 oracle 区分单调函数与必须修改 ε 比例点值才能单调的函数。

形式陈述 ​

偏序域上的性质 ​

设 (P,⪯) 是有限非空偏序集,值域 (R,≤) 是非空全序集。函数 f:P→R 是单调映射,当且仅当

x⪯y⟹f(x)≤f(y)

对所有可比点成立。测试器通过 value oracle 查询 f(x),本地知道偏序关系和域大小。

距离通常按需要修改的函数表位置比例定义:

dist(f,MON)=1|P|ming∈MON|{x∈P:f(x)≠g(x)}|.

测试器要接受所有单调函数,拒绝距离至少 ε 的函数。它不负责输出最近单调修复,也不按违反关系对的比例直接定义 far。

Boolean cube ​

取整数 n≥1,最常见的域是 P={0,1}n,采用逐坐标偏序:x⪯y 当且仅当每个 i 都有 xi≤yi。对 Boolean-valued f,单调性禁止从较低点的 1 走到较高点的 0。

Hasse 图的有向边连接只差一个从 0 变 1 的坐标。若某条边 (x,x⊕ei) 满足

f(x)=1,f(x⊕ei)=0,

它是一个局部 violation,足以单侧拒绝。若所有 Hasse 边都不违反,则沿任意上升路径反复应用局部不减,函数对全部可比点单调。

Edge tester ​

一次 edge test 均匀选择 cube 中一条有向边,查询两端并在出现 1→0 时拒绝。单调函数从不被拒绝,查询数为 2。

令 Vi(h) 表示函数 h 在第 i 个方向上的违反边数,V(h)=∑iVi(h)。下面通过逐坐标排序给出 soundness,不能只把局部违反边的端点覆盖当成全局修复。

定义 Si:在每条第 i 方向边上,把两端值按低点在前排序,即将 (1,0) 交换成 (0,1),其余不变。排序后第 i 方向没有违反;对其他方向 j,违反数也不会增加。后一事实只需检查由 i,j 张成的二维小面:对 a,b,c,d∈{0,1},有

1[min(a,b)>min(c,d)]+1[max(a,b)>max(c,d)]≤1[a>c]+1[b>d].

这正是排序两行之后,横跨两行的下降边数不增加;逐个检查十六种四元组即可验证。对全部小面求和,得到 Vj(Sih)≤Vj(h)。

从 h0=f 开始依次取 hi=Sihi−1。已排好的方向不会再次出现违反,故 hn 单调。第 i 步只在 Vi(hi−1) 条互不相交边上各改两个值,因此

|{x:f(x)≠hn(x)}|≤2∑iVi(hi−1)≤2∑iVi(f)=2V(f).

若 f 到单调性的距离至少 0<ε≤1,就有 V(f)≥ε2n−1。Cube 共有 n2n−1 条有向边,故一次随机边检验的拒绝概率至少为 ε/n。[1]

独立重复 q≥⌈nln⁡3/ε⌉ 次,全部漏检概率至多 e−qε/n≤1/3,总查询至多 2q。这给出 O(n/ε) 上界;更精细算法还会使用长路径或更全局的比较,本页不声称该边测试器最优。

Violation graph 与距离 ​

定义无向简单 violation graph:顶点为 P,若 x⪯y 但 f(x)>f(y),就在两点间连边。任何修改集必须击中每条 violation,否则未修改的两个端点仍违反;因此修改集是该图的顶点覆盖。

对 Boolean-valued 函数,删除一个顶点覆盖 C 后,剩余标记间不存在可比的 1→0。具体定义 g(z)=1 当且仅当存在 u∉C 满足 u⪯z 且 f(u)=1。这个 g 单调;它保留每个未删除的 1,也不会把未删除的 0 改为 1,否则原来就有一条未被覆盖的违反边。因此只需改动 C 内的值。与修改集必为覆盖的方向合起来,最小顶点覆盖大小恰等于最少修改位置数。这个结构把“far”转换为许多互不相容的违反对,常用于 tester 分析。

只用 Hasse 边建立的图可能丢掉远距离可比对;虽然无局部违反等价于单调,但最小 cover 与完整 violation graph 的参数不必逐项相同。下界或精确距离论证要声明使用哪一张图。 例如三维 cube 上令 f(x)=1 当且仅当 |x|≤1。三个重量为一的点覆盖了全部局部违反边;但完整图中有四条顶点互不相交的违反对 000→111、001→011、010→110、100→101,每条都必须修改一个端点。故最少要改四个值,改成常零函数即可达到,距离恰为 1/2。局部覆盖的三个点并不足以完成单调修复。

直觉

单调性是一项由可比方向约束的全局秩序:较低点一旦取高值,它上方的所有点都不能再下降。在 Boolean cube 中,每条长的可比关系都能分解为逐坐标上升路径,因此局部 Hasse 边足以判断一个函数是否严格属于性质。

测试难点却不是证明某个反例有效,而是让随机查询以足够概率遇到反例。一个函数可以有一条明显下降边却只需改一个表项;只有当远离单调性迫使大量违反关系、大片路径结构或大的 vertex cover 出现时,少量查询才有 soundness。

例子与边界

一条真实违反轨迹 ​

在 {0,1}3 上,令 f(010)=1、f(011)=0。因为

010⪯011,

查询这条第三坐标边会立即给出 violation。无论其他六个点怎样赋值,当前 f 都不可能单调,至少要修改这两个端点之一的值。

但只存在一个违反边不表示函数距单调性为常数;在 2n 个表位置中,它可能只需一次修改。性质测试的 soundness 需要从 ε-far 推出 许多可命中证据或足够大的结构,不能把“发现一个反例”反向读成“远离”。

模型边界 ​

Total order、Boolean cube、hypergrid 与任意 poset 的可比对密度不同。均匀抽点对在 cube 中几乎总不可比,不能把线性序上的 pair tester 直接搬来。

值域若为实数,violation 仍按顺序判断,但“修改一个值”的编辑与 L1/L2 数值误差不同。测试 Boolean monotonicity 的查询界不自动适用于回归函数的数值距离。

域分布也可能非均匀。若距离按未知分布质量而不是均匀表位置计,采样和 far 定义都会改变;标准 uniform cube tester不能只换一个期望符号便保持 soundness。

推论与应用

Violation graph 提供了从修复距离到可抽样证据的核心接口:far 给出大的最小 vertex cover,再借助 matching、路径分解或边界结构,把覆盖规模转成 tester 能命中的比较。不同单调性算法的区别,常在于它们如何完成这第二次转换,而不是是否知道 1→0 是违反。

这套视角也适用于 hypergrid、排序数据与分布加权的序约束,但每次都要重新核对可比关系、距离测度和采样分布。偏序一变,随机边是否代表典型违反、长比较能否分解以及查询复杂度如何依赖维数,都可能随之改变。

参考资料
  • Oded Goldreich, Shafi Goldwasser, Eric Lehman, Dana Ron, and Alex Samorodnitsky, “Testing Monotonicity,” Combinatorica 20, 2000, pp. 301–337.
  • Deeparnab Chakrabarty and C. Seshadhri, “Optimal Bounds for Monotonicity and Lipschitz Testing over Hypercubes and Hypergrids,” STOC, 2013, pp. 419–428.
  • [1] Oded Goldreich, Lecture Notes on Testing Monotonicity, 2016,§2.1 Theorem 2、Claim 2.4 与 Corollary 2.5:坐标交换不增加其他方向的违反数;对应教材 Introduction to Property Testing, 2017, Chapter 4。
关系图谱11 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

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

使用的工具