计算行列式的最小算术运算数


14

是否有任何工作要找到为较小且固定的计算 x矩阵的行列式所需的基本算术运算的最小数目?例如,。n n n = 5nnnn=5


4
我已经问过专家这个问题,显然现在甚至还不知道是否需要9次乘法来计算3x3矩阵的行列式。
Jeffrey Shallit,2016年

@JeffreyShallit如果9可能已经很有趣(例如,小于n3)。如何n=4
Lembik '16

3
不,一点都不有趣。n = 3的9次乘法由未成年人进行扩展。再次对于n = 4,未成年人的扩张得到40。我不知道如何用少于40的乘法来实现。
Jeffrey Shallit '16

@JeffreyShallit哦,我明白了。如果对于任何固定没有什么比天真更好的了(至少对我来说是令人惊讶的)n
Lembik '16

如果有人知道,也许他们可以告诉我们。
Jeffrey Shallit '16

Answers:


9

众所周知,算术运算必要的数量来计算的行列式矩阵是Ñ ω + Ö 1 ,其中ω是所述矩阵乘法常数。例如,请参见Wikipedia上的此表及其脚注和参考。注意,在同样的意义上,矩阵求逆的渐进复杂度也与矩阵乘法相同。n×nnω+o(1)ω

等效是相当有效的。特别是,您可以使用Schur补码通过处理n / 2 × n / 2 个块来递归计算矩阵的行列式:n×n(n/2)×(n/2)

D invertibledet(ABCD)=det(D)det(ABD1C).

因此,可以计算一个通过计算两个行列式决定,反相一个矩阵,乘以2双矩阵,以及一些更简单的操作。递归扩展行列式调用,复杂度最终由矩阵乘法和求逆控制。n / 2 × n / 2 n / 2 × n / 2 n / 2 × n / 2 n×n(n/2)×(n/2)(n/2)×(n/2)(n/2)×(n/2)

即使对于较小的甚至不使用亚三次矩阵乘法算法,这也能很好地工作。(当然,它最终被更多或更少相当于高斯消去。)例如,对于,我们可以计算具有两个乘法,四个分部,具有乘法,具有2个乘法,并且最终答案是一个乘法。总数为乘法加除,小于nn=4det(D)D1BD1C2×8=16det(ABD1C)2+4+16+2+1=2540从辅助因子扩展。使用Strassen算法在这里保存了两个乘法,但渐近地保存了两个。

您可能会注意到,此扩展至关重要地使用了除法。如果您想避免除法,则可以通过使用Clow序列和动态编程在操作中进行除法。还已知如何实现乘法且无除法。O(n4)n2+ω/2+o(1)


您知道乘法的下限吗?即使n = 3?
Jeffrey Shallit '16

您的措辞“算术运算必要以计算的行列式数矩阵是Ñ ω + Ö 1 ”表明的下限是已知的。但是我在任何引用的作品中都没有看到这一点。我想念什么吗?n×nnω+o(1)
Jeffrey Shallit '16

2
下限在W.Baur和V.Strassen的论文“偏导数的复杂性”中(dx.doi.org/10.1016/0304-3975(83)90110-X)–
弗拉基米尔·
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.