如何对变量重新排序以产生最小带宽的带状矩阵?


15

我正在尝试通过有限差分来求解2D泊松方程。在此过程中,我获得了每个方程式中只有变量的稀疏矩阵。例如,如果变量为U,则离散化将产生:5U

Ui1,j+Ui+1,j4Ui,j+Ui,j1+Ui,j+1=fi,j

我知道我可以通过迭代方法求解该系统,但是我想到,如果我对变量进行适当排序,我也许能够获得可以通过直接方法(即高斯消去w)求解的带状矩阵。 / o旋转)。这可能吗?是否有其他策略可用于其他结构较疏的稀疏系统呢?


2
像Cuthill-McKee这样的东西吗?
JM 2012年

有趣的是……我之前从未听说过Cuthill-McKee算法!:)
保罗

1
也有一个反向Cuthill-McKee。
Geoff Oxberry 2012年

1
我希望这是从明确的答案,但你希望使用带状求解这个问题,也没有选择的顺序,最大限度地减少带宽。也许可以对问题或选择的答案进行编辑以使这一点变得清楚,否则我担心这个神话将永久化。我进行了视觉比较,并比较了scicomp.stackexchange.com/a/880/119中的填充。
杰德·布朗

@JedBrown:实际上,我本身并没有解决泊松问题……我的问题与泊松问题的结构相似...变量(i和j)的指标完全相同,并且矩阵在对角线占主导地位,非对角线条目(在同一行内)恰好等于对角线条目的总和。
保罗

Answers:


13

在稀疏直接求解器领域,这是一个经过充分研究的问题。我强烈建议阅读Joseph Liu的多前沿方法概述,以更好地了解重新排序和超节点如何影响填充和求解时间。

嵌套解剖是生成重新排序的一种极为常见的方法,并且基本上由递归图分区组成。MeTiS是图形分区的事实上的标准,您可以在此处了解其背后的一些想法。另一个常用的软件包是SCOTCHChaco也很重要,因为它的作者介绍了多级图分区,这也是MeTiS背后的基本思想

乔治和刘翔出现在他们的经典书 是2D稀疏直接的解决方案只需要工作和Ø ñ 日志ñ 内存,而3D稀疏直接需要Ø ñ 2工作和Ø ñ 4 / 3记忆。O(n3/2)O(nlogn)O(n2)O(n4/3)


您有引用乔治和刘的参考文献吗?
保罗

添加; 第一次提交时,我正要下车。我知道该书的某个地方有在线可用的免费版本(Jed知道它在哪里),但我找不到它。
Jack Poulson

我更新了链接,使其指向本书的PDF而不是书评。
杰德·布朗

@JedBrown那是一个很好的参考!非常感谢!:)
保罗

1
@Alexander每个人都将3D绑定到George和Liu,尽管我不知道他们是否在书中明确指出了3D。然而从理论上显然。要的最小顶点分离器网格是Ñ 2 / 3 = × 。与该超级节点相关联的所述稠密矩阵具有Ñ 2 / 32 = Ñ 4 / 3的条目,并且需要Ñ 2 / 33 = Ñ 2n=m×m×mn2/3=m×m(n2/3)2=n4/3(n2/3)3=n2操作要考虑。2D情况下的对数项更加微妙,将在第8章“嵌套解剖”中进行处理,从而实现了下界。
杰德·布朗


4

说到多面方法,从事LU分解的多面方法(UMFPACK)的Tim Davis拥有许多例程,这些例程将对矩阵进行重新排序以最大程度地减少填充。您可以在此处找到它们,SuiteSparse的一部分。SuiteSparse使用MeTiS。

需要注意的另一件事:在某些问题中,您可能会聪明地对变量进行排序,以便获得带状或接近带状的模式,这样可以节省调用这些算法的麻烦(和CPU时间)。但是,这种巧妙的重新排序需要您的独到见解,并且远没有人们在此处的答案中提到的基于图论的重新排序算法那么普遍。


不客气,保罗。如果喜欢,请投票。
杰夫·奥克斯贝里

3

在应用数学界中有一种称为ADI(交替方向隐式)的算法,在物理界中有一种称为分裂算符的算法,基本上可以完成您所描述的事情。这是一种迭代方法,它遵循以下基本过程:

  1. ÿX

  2. Xÿ

  3. 重复1和2,直到错误尽可能小为止。

我不知道该算法的形式复杂性,但是我发现每次使用它时,它的收敛迭代次数都少于Jacobi和Gauss-Seidel之类的迭代次数。


2
如果您决定采用操作员拆分路线,则需要注意的一点是,在某些情况下,已知操作员拆分会导致稳态解决方案出错。(我的一位同事已经开发出一种克服此困难的方法,但我不相信他已经发表过。)而且,已知运算符拆分会导致数值错误。有公认的方法可以估算这些后验误差。Don Estep在这方面做得很好。
Geoff Oxberry 2012年

@GeoffOxberry听起来您是在指不同的拆分。您可以在没有拆分错误的完全隐式方案中使用ADI,因为它实际上可以解决系统问题。还有IMEX方法可以严格控制拆分错误。
杰德·布朗

@JedBrown:我说的是Godunov和Strang分裂,如果将它们分开,它们可以产生相似的三对角矩阵 Xÿ条款。我的错。(我一直告诉人们我想在博士后学习PDE方法...)
Geoff Oxberry 2012年

我从未听说过Godunov和Strang分裂。我倾向于用Baker-Campbell-Hausdorf公式来拆分运算符。那是同一件事吗?
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.