“多项式恒等式测试把这个概率界接到算术电路上:不展开全部系数,直接计算点值。发现非零值就是确定的反例;连续发现零值只得到单边漏检保证。”
形式陈述
输入是表示多项式的电路,不是已经展开的系数表
给定固定域F上的无除法算术电路C,叶子是域常数或变量,内部门执行加、减、乘,指定一个输出门。问题是输出的形式多项式
若输入已经是合并同类项的显式稀疏系数表,检查所有系数是否为零便能解决问题。这里的困难是同一个小电路可以隐含很多单项式,展开会失去紧凑表示。
先给每个门一个形式次数上界:常数为0、变量为1,加减取两个前驱上界的最大值,乘法取其和。输出上界记为D;实际次数可能因抵消而更小,零多项式也可有很大的上界。
随机测试的两个出口
选非空有限
- 一旦输出非零,返回NONZERO以及代入点和输出值。重算这一点即可验证
- 若全部输出为零,返回NOT_DETECTED。若P实际非零,发生这个出口的概率至多
第二条使用Schwartz–Zippel引理,条件是整个电路在抽随机点之前已经固定。它是对非零输入的漏检概率界,不是看到零值之后“输入为零的后验概率”。若D=0,输出与变量无关,计算一次就能确定ZERO或NONZERO。
直觉
每个门只做它在这个点上的运算
设两个前驱门分别代表f和g。若已保存f(r)、g(r),当前加法门只需相加,乘法门只需相乘,无须知道它们各有多少项。拓扑遍历的不变量是:处理过的每个门,保存值恰等于该门形式多项式在r处的值。
变量和常数门满足不变量。对加、减、乘门,代入与这些运算相容,所以前驱值正确就推出当前值正确。共享子电路只计算一次;用递归反复展开共享节点会把DAG误当成树。
零点是可以碰到的,非零见证不能伪装
若
例如真实P=x时,代入x=0没有发现差异,代入x=3就给出确定见证。返回3并不说明算法猜得更准,而是提供了可独立验证的反例点。
例子与边界
一个逐门复算的恒等式
在
取(x,y)=(3,5)。左边先得x+y=8,再得64≡13;右边的三项为9、30≡13、25≡8,相加30≡13,差为0。把B改成B+x,同一个点的差变成−3≡14,立刻返回NONZERO。
电路中x、y可被多条边引用,输出差的形式次数上界D=2。取
小特征需要保留,取模不能随意替换
在
反过来,把整数电路直接模p化简只能测试它在特征p下的像。例如整数常数p本来非零,却被该取模变成零。要由模素数测试推出有理数或整数上的一般PIT,还需控制分母、系数大小和坏素数;本页的域内算法没有免费解决这一转换。
分母、浮点和自适应电路不在当前保证里
除法门可能在代入点分母为零,即使表达式在别处有定义。要纳入除法,须另行处理分母和定义域,不能把异常值当成输出零。参考实现只接受const、var、add、sub、mul五种门。
浮点小数中的“等于零”会受舍入与消去误差影响;这里用精确有限域运算。参考程序的常数是整数对指定素数取余,素数限于明列并已验证的六个值,不把一般素性判定或任意扩域构造藏进一次函数调用。
若对手在看见本轮随机点后才提交电路,可以提交在该点恰为零的非零多项式。此时应改变交互协议,而非继续引用固定输入的漏检界。
推论与应用
时间、随机位和存储分别计数
设电路有s个门、n个变量。验证拓扑前驱并计算次数上界需要O(s)个整数操作;即使连续平方使D达到指数大小,次数整数的位长仍为O(s)。每轮求值需要O(s+n)个域操作及O(s+n)个域元素空间,t轮总计O(t(s+n))域操作;程序一次只保留当前轮全部门值,日志另保留t个点及输出值,占O(t(n+1))个域元素。
对b位素数域,约化后每个门值占O(b)位。朴素整数乘法和取模可按O(b²)位操作收费,加法更便宜;于是求值部分为O(t(s+n)b²),另加读取常数、处理索引、次数大整数与生成随机位的成本。固定机器字模型下b受字长限制,才可把域运算近似看作常数。
为得到有界随机位接口,可以选择
单边误差方向取决于问的是零还是非零
若把问题写成“是否非零”,零输入永不被接受,非零输入以至少1/2概率被接受,这对应RP的单边接受方向。若问“是否恒等于零”,把全部零值当成接受,则方向反过来,是coRP。这里的复杂度归类以域表示、抽样和次数预算都能在相应输入长度的多项式资源内实现为前提。
Tutte矩阵给出具体的代数判定接口:无需把行列式展开成指数多个项,先代入边变量,再用精确消元计算数值行列式。电路PIT与该矩阵例子共享零点界,但它们的求值器可以不同。
终点迁移:给出见证,而非只打印布尔值
代数随机化证书终点要求提交电路、底域、D、S、每轮代入点与输出值。把最后一个−x改成−(x−y),重新检查实际零点率与统一D/|S|界;再说明为何把两个坐标强制取相同值会完全遮住这个改动。
参考资料
- Gregory Valiant、Mary Wootters,CS265 Lecture 1,2022,§§2、3–3.1,PDF pp.1–3、5–7:随机计算模型与随机代入PIT。本文的DAG接口、见证日志和明确位成本为实现展开。
- Virginia Vassilevska Williams,6.890 Lecture 16: Perfect Matching,2021,§1.1,PDF p.3:先代入Tutte矩阵再求行列式的应用。