18

1979年,Freivalds表明,可以在随机时间内完成任何领域的矩阵乘积的验证。更正式地说,给定三个矩阵A,B和C,其中包含来自字段F的条目,检查AB = C是否具有随机O n 2时间算法的问题。O(n2)O(n2)

这很有趣,因为已知的最快的矩阵乘法算法比这慢,因此检查AB = C是否比计算C快。

我想知道什么是最通用的代数结构,在该结构上矩阵乘积验证仍然具有时间(随机)算法。由于原始算法适用于所有领域,因此我想它也适用于所有整数域。O(n2)

对于这个问题,我能找到的最佳答案是在路径,矩阵和三角形问题之间的亚三次等效性,他们说:“环上的矩阵乘积验证可以在随机时间[BK95]中完成。” ([BK95]:M。Blum和S. Kannan。设计检查其工作的程序。J。ACM ,42(1):269-291,1995年。)O(n2)

首先,环是这个问题具有随机算法的最一般的结构吗?其次,我看不到[BK95]的结果如何显示所有环上的O n 2时间算法。有人可以解释它是如何工作的吗?O(n2)O(n2)


一个愚蠢的问题:确定性验证与乘法一样难吗?如果您不仅获得了A,B和C,而且还获得了紧凑的证书,该怎么办?有什么帮助吗?
Jukka Suomela 2011年

@Jukka:我相信解决这个问题的最佳确定性算法并不比矩阵乘法快,但是我不知道是否有理由这样做。关于第二个问题,如果AB不等于C,然后有一个短暂的证书工程:C的条目是不正确的,A的B的相应的行和列
罗宾·科塔里

Answers:


14

这里有一个简短的论据,说明为什么它可以在环上使用。给定矩阵Ç,我们验证= Ç通过拾取随机位向量v,然后检查是否v = C ^ v。如果A B = C,显然可以通过。ABCAB=CvABv=CvAB=C

假设A B v = C v。设D = A B - CDD v = 0的非零矩阵。发生这种情况的可能性是多少?令D [ i 'j ' ]为非零条目。假设j D [ i 'j ] v [ j ] = 0ABCABv=CvD=ABCDDv=0D[i,j]jD[i,j]v[j]=0。以概率v [ Ĵ ' ] = 1,所以我们有1/2v[j]=1

D[i,j]+jjD[i,j]v[j]=0

其加法运算下的任何环是加法群,所以有一个独特的逆,即,- d [ 'Ĵ ' ]。现在,坏事件的概率- d [ 'Ĵ ' ] = Σ Ĵ Ĵ d [ 'Ĵ ] v [ Ĵ ]为至多1 / 2D[i,j]D[i,j]D[i,j]=jjD[i,j]v[j]1/2。(看到这一种方式就是“推迟决定原则”:为了总和相等,至少一个其他d [ 'Ĵ ]必须为非零所以考虑。v [ j ]对应于这些其他非零项,即使我们将所有v [ j ]最佳设置为除其中之一之外, 最后一个为01的可能性仍然相等D[i,j]D[i,j]v[j]v[j]01的,但仍然只有这些值可以使最终总和中的一个等于)。因此,与概率至少1 / 4,我们成功地发现,d v 0,当d是非零。(注意v [ j ]v [ j ' ]是为j j '独立选择。)D[i,j]1/4Dv0Dv[j]v[j]jj

如您所见,以上参数取决于减法。因此,它不适用于(例如)任意交换半环。也许您可以放宽代数结构的乘法性质,而仍然得到结果?


很好,谢谢。我认为您认为有可能减少对乘法结构的限制。仅作为我的信息,这与Freivalds的原始论文中使用的算法不同吗?
罗宾·科塔里

Freivalds的算法选择了一个分量为{-1,1}的随机向量。那也行。如果你更细心,你能获得成功的概率至少为1/2
Ryan Williams
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.