预计算后能否在二次时间内求解对角线加固定对称线性系统?


21

是否存在方法来求解形式为线性系统,其中A为固定SPD矩阵,D_i为正对角矩阵?O(n3+n2k)k(Di+A)xi=biADi

例如,如果每个Di是标量,则足以计算A的SVD A。但是,由于缺乏可交换性,因此对于一般D而言,这种情况会D恶化。

更新:到目前为止,答案为“否”。有谁对为什么有任何有趣的直觉?没有答案意味着没有非平凡的方法来压缩两个非交换运算符之间的信息。这并不出乎意料,但是更好地理解它会很棒。


SPD =半正定?
— rcollyer 2012年

是的,尽管没有SPD的问题本质上是相同的。我添加该约束只是为了确保系统永远不会单一。
— 杰弗里·欧文

Answers:


19

我能找到的最接近您问题的肯定答案是稀疏对角线扰动(请参见下文)。

话虽如此,我不知道一般情况下的任何算法,尽管您提到了从SPD矩阵到所有平方矩阵的标量转换的技术的概括:

给定任何方阵A,存在Schur分解A=UTUH,其中U单一,T是上三角,和A+σI=U(T+σI)UH一个舒尔的分解提供了A+σI。因此,您的预计算思想将通过算法扩展到所有平方矩阵:

  • 在最多O(n 3)个工作中计算。[U,T]=schur(A)O(n3)
  • 解决各经由X := ù (Ť + σ 我)- 1 ü ħ b在Ö(Ñ 2)工作(中间反转是简单地回代)。(A+σI)x=bx:=U(T+σI)−1UHbO(n2)

这种推理方法简化为您在为SPD 时提到的方法,因为对于正常矩阵,Schur分解可简化为EVD,而对于Hermitian正定矩阵,EVD与SVD一致。A

更新回应: 在没有证据之前,我一直拒绝声明答案为“否”。但是,我可以给出一些困难的见解,以及其他答案是肯定的子案例。

根本的困难在于,即使更新是对角线的,它仍然在总体上排名靠前,因此用于更新逆的主要工具Sherman-Morrison-Woodbury公式似乎没有帮助。如前所述,即使标量移位的情况也是满秩的,它也是一个非常特殊的情况,因为它与每个矩阵都可以交换。

话虽如此,如果每个都是稀疏的,即它们每个都有O(1 )个非零值,那么Sherman-Morrison-Woodbury公式对每个对{ D ,b }都会产生O(n 2)解。例如,对于在单一的非零Ĵ个对角项,以使得d = δ Ë Ĵ Ê ħ Ĵ:DO(1)O(n2){D,b}jD=δejejH

[A−1+δejejH]−1=A−1−δA−1ejejHA−11+δ(ejHA−1ej),

其中是第j个标准基向量。ejj

另一个更新:我要提到的是,我尝试了PC - 1使用@GeoffOxberry在使用PCG 的一些随机SPD 1000 × 1000矩阵上建议的预调节器,并且当| | |时,它似乎大大减少了迭代次数。| D | | 2 / | | A | | 2很小,但是当它等于O(1 )或更大时则不是。A−11000×1000||D||2/||A||2O(1)


12

如果是对角占优每个我,然后最近Koutis,米勒,彭(见工作Koutis'网站为对称对角占优矩阵的工作),可用于解决各系统Ø(ñ 2日志(n ))时间(实际上是O(m log (n ))时间,其中m是(D i + A )中所有非零项的最大数量(Di+A)iO(n2log⁡(n))O(mlog⁡(n))m(Di+A),因此您也可以利用稀疏性)。然后,总运行时间将为 O(n 2 log (n )k ),这比使用密集线性代数简单地求解每个系统的 O(n 3 k )方法要好,但比二次运行时间稍差正在要求。iO(n2log⁡(n)k)O(n3k)

稀疏求解器可能会利用中所有i的显着稀疏性来生成O(n 2 k )算法,但是我猜测如果您具有显着稀疏性,那么您会提到它。(Di+A)iO(n2k)

您还可以将用作前提条件,以使用迭代方法求解每个系统,并查看其效果。A−1

更新响应:@JackPaulson从数值线性代数和算法的观点出发很重要。我将专注于计算复杂性参数。

线性系统解的计算复杂度与矩阵乘法的计算复杂度基本相等。(请参阅代数复杂性理论。)如果您找到一种可以压缩两个非交换算符之间的信息的算法(忽略正半定数部分),并直接以二次时间求解您要提出的系统,则它是可能您可以使用这种算法来推断更快的矩阵乘法。很难看到如何在线性系统的密集直接方法中使用正半定结构来降低其计算复杂性。n

像@JackPaulson一样,我不愿意说没有证明就回答“否”,但是鉴于上述联系,该问题非常困难并且具有当前的研究兴趣。你可以从一个渐近的角度来看离不开利用特殊结构最好是铜匠和威诺格拉德算法的改进,产生算法,其中α ≈ 2.375。该算法将难以编码,并且对于较小的矩阵可能很慢,因为相对于高斯消除,渐近估计之前的常数因子可能很大。O(nαk)α≈2.375


3
我还没有看到关于交叉点可能在哪里的具体陈述,但是有一些著名的消息人士指出(除了实现问题),Coppersmith-Winograd无法击败矩阵大小的标准方法,这些方法可以在不久的将来放入内存中(几十年)。鉴于Linpack基准测试在当前的顶级计算机上运行需要超过一天的时间,因此似乎不太可能在实践中使用Coppersmith-Winograd。Strassen实际上对于大问题很实用,尽管它的数值稳定性较差。
— 杰德·布朗

这并不令我惊讶。+1了解实施细节。
— Geoff Oxberry

6

A first order Taylor expansion can be used to improve convergence over simple lagging. Suppose we have a preconditioner (or factors for a direct solve) available for A+D, and we want to use it for preconditioning A. We can compute

A−1=(A+D−D)−1(A+D)(A+D)−1=[(A+D)−1(A+D−D)]−1(A+D)−1=[I−(A+D)−1D]−1(A+D)−1≈[I+(A+D)−1D](A+D)−1

where the Taylor expansion was used to write the last line. Application of this preconditioner requires two solves with A+D.

It works fairly well when the preconditioner is shifted away from 0 by a similar or larger amount than the operator we are trying to solve with (e.g. D≳0). If the shift in the preconditioner is smaller (D≲minσ(A)), the preconditioned operator becomes indefinite.

If the shift in the preconditioner is much larger than in the operator, this method tends to produce a condition number about half that of preconditioning by the lagged operator (in the random tests I ran, it could be better or worse for a specific class of matrices). That factor of 2 in condition number gives a factor of 2 in iteration count. If the iteration cost is dominated by the solves with A+D, then this is not a sufficient factor to justify the first order Taylor expansion. If matrix application is proportionately expensive (e.g. you only have an inexpensive-to-apply preconditioner for A+D), then this first order method may make sense.

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.