“普通测试区分距离为零与距离至少为 $\varepsilon$。容忍性质测试则给定 $0\le\varepsilon 1<\varepsilon 2$,要求接受距离至多 $\varepsilo…”
形式陈述
两阈值承诺
固定输入表示与 oracle,例如坐标查询模型。设性质为非空集合
给定
距离位于
间隔宽度是资源参数
令
当
给定目标失败概率
便可在阈值中点附近切分得到 tolerant tester。反过来,对一系列阈值调用 tester 并做带置信度的二分,可形成粗距离估计;各次调用的失败事件须用并集界合并,不能把单次
直觉
普通单侧错误测试器若找到一个确实排除性质成员的局部见证,就可以拒绝;容忍测试面对的 close 输入本来就可能遍布少量违规。它必须判断的是错误总量是否越过第二道阈值,而不是有没有看见一处错误。
两阈值之间的宽度决定所需分辨率。间隔大时,粗糙估计已足够把两侧分开;间隔缩小时,采样波动必须压得更低,查询量随之上升。许多容忍测试器因而更接近距离估计器,需要汇总多个观察,而非找到一个局部见证就停止。
例子与边界
常量字符串的容忍测试
令
均匀独立查询
函数
足以把估计误差控制在
与非容忍常量测试相比,这里不能见到一对不同 bit 就立即拒绝;close 对象本来允许含少量少数 bit。测试器必须估计少数 bit 的比例,而非只寻找一个局部违例。
容忍性为何可能更难
普通 tester 的 yes 输入完全满足性质,常能依靠 perfect completeness 和局部 witness;tolerant tester 必须接受整个
对某些性质,普通测试只需常数或 poly
错误侧别与适应性
Tolerant 与 one-sided/two-sided 是不同轴。当
查询仍可自适应或非自适应。上面的样本均值 tester 非自适应;某些距离估计算法会根据粗估结果把后续查询集中到可疑区域。容忍性本身不规定访问顺序。
边界
距离必须与对象表示一致。对图性质,dense 与 bounded-degree 距离给同一图不同 close/far 身份;阈值不能脱离 oracle 单独搬用。
如果两个阈值都等于
最后,接受 close 对象不等于输出修复后的成员,也不保证找到最近对象。Tolerant testing 仍只输出一个 gap decision bit;local reconstruction 是额外任务。
推论与应用
能把
应用到图、分布或编码性质时,
参考资料
- Michal Parnas, Dana Ron, and Ronitt Rubinfeld, “Tolerant Property Testing and Distance Approximation,” Journal of Computer and System Sciences 72(6), 2006, pp. 1012–1042.
- Oded Goldreich, Introduction to Property Testing, Cambridge University Press, 2017, Chapter 12.
- Irit Newman and Christian Sohler, “Every Property of Hyperfinite Graphs Is Testable,” SIAM Journal on Computing 42(3), 2013, tolerant-testing context.