广义范德蒙矩阵的行列式


10

Moore矩阵类似于Vandermonde矩阵,但定义稍有修改。 http://en.wikipedia.org/wiki/Moore_matrix

计算给定的全秩Moore矩阵以某个整数为模的行列式的复杂度是多少?n×n

罐摩尔行列式从被降低使用FFT技术来一段?O(n3)O(nlogan)aR+{0}

Moore det取模整数的复杂度和Vandermonde det一样吗?Vandermonde行列式的复杂度为(《理论计算机科学手册》第644页:算法和复杂性,作者Jan Leeuwen)O(nlog2n)

发布与当前类似的帖子:行列式模m


Moore行列式是否可以在O(n ^ 3)时间内(在整数RAM上)进行计算?
杰夫斯

1
@Jɛff E这就是为什么我提到模随机。NN
T..

顺便说一句,我很好奇,是否有已知的应用程序会受益于这种“超快速”算法?
Juan Bermejo Vega 2012年

@J ffE,您是否偶然知道对于平凡的在BPP中计算基于的双模幂运算是否在BPP中?因为这是计算矩阵系数的问题。Ñ ÑεNN
Juan Bermejo Vega

Answers:


4

通常,存在一种理论上的时间算法,该算法使用Coppersmith-Winograd算法查找任意矩阵的LU分解,然后显然得出行列式(加上时间)。但是,存在一个问题,即在实践中认为Coppersmith-Winograd算法不可用。Afaik,人们大多使用时间Strassen算法。Boost UBLAS的lu_factorize不会使用这个吗?O n O n 2.807O(n2.376)O(n)O(n2.807)

在您的情况下,Moore矩阵应该接受可观的优化,因为基本上任何抽象的高斯消减(如LU分解)过程都可以抽象完成。确实,您会找到一个很好的公式来计算Wikipedia引用的Moore行列式,大概可以通过简单地算出LU分解来证明这一点。O(n)


嗨,杰夫:您正在参考O(n ^ 2)公式的哪个参考。我认为Vandermonde det可以用O(nlogn)计算,但是我找不到参考。那么Moore det也应该在O(nlogn)中吗?
T ..

是的,我显然应该说O(n),对于大n来说真的是O(n log n)。
杰夫·伯吉斯

嗨,杰夫:您有参考吗?
T ..

7
@JeffBurdges:如果运行时间为“对于大n”为O(n log n),则根据定义,运行时间为O(n log n),而不是O(n)。
杰夫斯

我没有看到Wikipedia引用的公式。充其量看起来是Θ n 2O(n)Θ(n2)
彼得·泰勒

3

重要的是,在您提供的定义中,矩阵存在于有限域中,例如,其中m为质数。这使您可以使用欧拉定理来计算在时间中出现在矩阵中的双指数。 否则,即使不分解也很难计算矩阵系数。ZmmaqemodmO(log(mn)M(logm))

aqiaqi(modφ(m))(modm)
m

如果为质数或可以有效分解,则最坏情况的复杂度由矩阵乘法所需的步数决定。例如,如果您使用“慢速”,我在合作伙伴帖子中提到的史密斯范式方法将计算时间乘法算法。可以选择为2.373。mO(nω)O(nωlog2mlog(mn))ω

由于必须对矩阵的系数进行两次幂运算,因此Moore vs Vandermonde 的速度变慢。当您可以分解这种减慢就是对数。如果不是这样,所给出的算法可以使您对幂进行Cook归约mmZm

注意*:更快的整数乘法算法允许您用替换 。log2mM(logmloglogm)


更新:关于实现的可能性。O(nlogan)

我对此没有确切的答案,但是我发现了一些可能会加紧搜索范围的信息。

在文献中将用于计算诸如时间行列式类的数量的结构化矩阵的 算法称为“超快”。结构矩阵(Vandermonde,Toeplitz,Hankel)的所有已知“超快速”算法似乎都依赖于该矩阵的共同特性,即低“位移等级”。在本书的第一章(开放访问页面)或本文[ACM][PDF]中进行讨论O(nlogan)

根据我的阅读,给定摩尔矩阵,如果您能够找到矩阵,,使得新矩阵(或者)具有以下结构m×nMABL(M)=AMMBL(M)=MAMB

L(M)=k=1rgkhkT

,并且等级很小(可以是常数,也可以由),则可以应用现有技术(请参阅本书第5章,访问页面)到三角形,并因此使用计算。上面的,表示向量。如果您找不到上面的书来阅读整本书,则本文还将提供有关这些方法的大量信息。r>0o(min{m,n})MdetMO(nlog2n)gkhk

不幸的是,我无法找到摩尔矩阵的低排位结构(范德蒙德拥有)。这里的主要复杂之处似乎来自于双指数的“非线性”性质。如果有帮助,本书中还会列出范德蒙德,柯西,托普利茨,汉克尔的案例。


我可以将矩阵放在char的字段中。但是,我预期的应用程序的字母大小会很大。因此,对于足够大的的形式为。3m3kk
T ..

很好,因为您可以计算的上位函数:)3k
Juan Bermejo Vega 2012年

我想说的是,这不会简化复杂性,因为该领域非常大。
T ..

它确实简化了我提到的双幂运算问题。由于,您可以使用欧拉定理对进行两次幂运算:首先,计算,然后。您可以在时间。使用学校乘法算法,您将最终获得“ netto”成本这是有效的。φ(3k)=3k3k1aqimodmb=qimodφ(3k)abmod3kO(log(n3k)M(klog3))M(n)=n2O(nωk2log23(logn+klog3))
Juan Bermejo Vega 2012年

我们可以用代替吗?这就是我所想的节省成本的方法(从矩阵结构中可以实现)。使用,我不会获得任何目的。ω1+ϵω2
T ....
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.