计算矩阵幂的复杂性


14

我对计算n × n矩阵A次幂感兴趣。假设我们有一个在OM n 时间内运行的矩阵乘法算法。然后,可以轻松地以OM n log n 时间计算A n。是否可以用更少的时间来解决这个问题?nn×nAO(M(n))AnO(M(n)log(n))

通常,矩阵条目可以来自半环,但如果有帮助,则可以采用其他结构。

注意:我了解在一般情况下,以o M n log m 时间计算会得到o log m 求幂的算法。但是,许多有趣的问题都归结为矩阵求幂的特殊情况,其中m = On ,而我无法证明这个简单问题也是如此。Amo(M(n)log(m))o(logm)O(n)


矩阵的条目是什么?整数?
卡夫

1
条目通常可以来自半环,但如果有帮助,则可以采用其他结构。
Shitikanth'4

从上述提议的方法(即使用),我无法得到从乘法到平方的简化。但是,使用0 A B 0 2可以。但是,这在计算A n时仅给出Ω M n (A±B)2(0AB0)2Ω(M(n))An
Shitikanth '04年

Answers:


11

如果矩阵是可对角的,则可以在时间O D n + n log n )中获得第次幂 n

O(D(n)+nlogn)
中,其中是对角化A的时间。D(n)A

只是为了完成细节,如果且对角线为D,则 A n = P 1 D P n = P 1 D n PA=P1DPD

An=(P1DP)n=P1DnP

通过仅将对角线的每个元素(A的每个特征值)取第n次幂即可计算出D nDnAn


6
O(n3)O(n2.3727log(m))Am

1
(1)您引用的时间并非由Coppersmith-Winograd(您可能知道)。(2)所有该形式的算法仅适用于环;它们不适用于一般的半环(在您的问题中允许)。
瑞安·威廉姆斯

5

n×nAA=UΣUTΣO(n3)Am=UΣmUTO(nlogm)U×Σm×UTO(n2.3727)O(n3+nlogm)

O(n2.3727+nlogm)o(M(n)log(m))o(logn)


O(n2.3727)O(n2.3727log(m))Amm=O(n)
Shitikanth'4

1
SVD不给 一种=üΣü 通常-右侧矩阵为 Vü
Suresh'4

1
有一个有点误导 ñ 功率也一样,所以我将使用 。如果ñ=1个 它应该 Ø中号1个日志 找时间 一种,等于将整数相乘
PKG 2012年

2
@Shitikanth参见ccrwest.org/gordon/jalg.pdf,以了解快速求幂算法。通常,使用的数量不能少于日志乘法。
2012年

1
如上所述,您的问题尚不清楚。
PKG 2012年
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.