Lecture 1 - 2025 / 2 / 17
Checking matrix multiplication
输入:三个 n×n 矩阵 A,B,C。
输出:是否 AB=C。
随机选定向量 r=(r1,r2,⋯,rn),其中 ri 独立同分布于 U(S),2≤∣S∣<∣N∣
如果 (AB)r=Cr 则输出 No
,否则输出 Yes
。
确定算法 O(n3),或者最优秀的是 O(n2.376)。
算法时间复杂度 O(n2)。
Claim: 如果 AB=C,则 Pr[(AB)r=Cr]≤∣S∣1。
设 D=AB−C=0,则不失一般性设 d11=0。
如果 Dr=0,则
(Dr)1=i=1∑nd1iri=0
于是
r1=−d111(d12r2+⋯+d1nrn)
于是对于 r2,⋯,rn 的每种选择,r1 只有唯一的可能性有可能使 Dr=0,于是 Pr[Dr=0]≤∣S∣1。
Checking associativity
输入:在一个大小为 n 的集合 X 上定义二元运算 ∘。
输出:是否满足结合律 ∀i,j,k∈X,i∘(j∘k)=(i∘j)∘k。
确定性算法 O(n3)。
不妨规定 X={1,2,⋯,n}。
首先可以构造一种 ∘ 使得不满足条件的三元组是常数组。
事实上,构造 1∘2=1,其余运算结果全部为 3,则只有 (1∘2)∘2=1∘(2∘2)。
记 X=2X,对于 R∈X,可以用 R=r1r2⋯rn 表示,其中 ri∈F2 表示 i 有没有在 R 中出现。
从而 R 可以写成 i=1∑nri⋅i。
我们在 X 上定义一种 + 运算,并扩展 ∘ 运算
R+S=i=1∑n(ri+si)⋅iR∘S=i=1∑nj=1∑n(risj)⋅(i∘j)
我们将算法规定为:
均匀随机选择 R,S,T∈X,如果 (R∘S)∘T=R∘(S∘T) 输出 No
,否则输出 Yes
。
可以看出 ∘ 在 X 上是结合的,等价于 ∘ 在 X 上是结合的。
⇒ 可以通过展开得到,⇐ 是因为单元素集 ∈X。
Claim: 如果 ∘ 不结合,那么 Pr[(R∘S)∘T=R∘(S∘T)]≤87。
假设存在 i∗,j∗,k∗ 不结合。
任取一组 R0,S0,T0 使得 i∗∈/R0,j∗∈/S0,k∗∈/T0。
令 R1=R0∪{i∗},S1=S0∪{j∗},T1=T0∪{k∗}。
则设 f(α,β,γ)=(α∘β)∘γ+α∘(β∘γ)。
不结合即 f({i∗},{j∗},{k∗})=∅。
根据容斥原理 f({i∗},{j∗},{k∗})=r,s,t∈{0,1}∑f(Rr,Ss,Tt)=∅
从而 ∃r,s,t∈{0,1} 使得 f(Rr,Ss,Tt)=∅。
由于这样的 (R0,S0,T0) 以及衍生出的 8 个集合构成了 X3 的一个划分,所以一定有 81 的 X 的三元组是不满足结合律的。
Testing Polynomial Identities
给定某个域下 2 个 n 元多项式 P,Q,判定是否 P≡Q。
作差后问题等价于判定 P≡0 是否成立。
我们在有限集 ∣S∣ 上均匀随机采样 r1,⋯,rn,并带入 P 计算。
Claim: 如果 P=0,则 Pr[P(r1,⋯,rn)=0]≤∣S∣d,其中 d=degP。
对于 n 归纳。n=1 时显然至多 d 个根,结论成立。
设 k 是 P 关于 x1 的最大度数。
P(x1,⋯,xn)=M(x2,⋯,xn)x1k+N(x1,⋯,xn)
其中 degM≤d−k,N 中 x1 的度数 <k。
设 E 表示 M(r2,⋯,rn)=0。
-
如果 E 发生,则对 M 由归纳,Pr[E]≤∣S∣d−k。
-
如果 E 不发生,则当固定 r2,⋯,rn 时,P 是关于 x1 的 k 次多项式,从而能使 P=0 的 x1 不超过 k 个,于是 Pr[P(r1,⋯,rn)=0∣¬E]≤∣S∣k。
根据 union bound 立刻得证。