Skip to content

定义Definition

消元树与稀疏列依赖

Elimination tree · Cholesky elimination tree

从因子每列首个下方结构位置构造父指针,证明非零必指向祖先,并用两条独立子链解释依赖、并行与祖先判据的单向性。

形式陈述 ​

符号 Cholesky 分解给出每列的完整位置。若把每条数值更新都画成依赖边,图可能很密。能否用每列至多一条父边,保留必须先后处理的信息?

固定排列,设 L 为下三角因子的结构模式。定义

parent(j)=min{i>j:Lij 是结构非零}.

若集合为空,则 j 没有父节点,是一个根。把每个非根连向其父节点,得到消元树;矩阵模式不连通时,应称为消元森林。父编号严格增加,所以不可能有有向环;每个节点至多一个父节点,确实具有根树与祖先关系。

构造接口很简单:输入每列有序行号,跳过对角,取第一个行号作父节点;空的下方部分记为根。如果列号尚未排序,可扫描求最小值。后一实现总时间 O(nnzstructL),父数组占 O(n)。这个成本假设因子模式已给定,不包括获得它所需的符号分析。

最重要的性质是:只要 i>j 且 Lij 结构非零,i 就是 j 的祖先。反方向一般不成立;一棵消元树并不能单独编码所有因子位置。

直觉

一列消完后,它的剩余邻居已被补成团。其中编号最小的邻居先被处理,可以接收这一列的贡献,再把需要继续传递的信息送向更晚的邻居。父边正是这个最早接收者。

父指针压缩消元依赖

为什么每个因子非零都通向祖先 ​

设 Lij 为结构非零,令 p=parent(j)。若 p=i,结论成立;否则 j<p<i。消去 j 时,p 与 i 同为剩余邻居,所以二者被连接。到消去 p 时,位置 Lip 仍在结构模式内。

于是问题从 (j,i) 转成 (p,i)。继续取父节点,编号严格增加且不超过 i,有限步后必到 i。这也说明完整更新依赖 j→i 可以沿父路径传递,父数组没有漏掉必要的先后约束。

证明使用结构边,不依赖某次计算中的系数恰好非零。若数值相消使一条实际更新为零,预先保留的树仍是安全的调度依据。

例子与边界

取七个顶点,原边为

01, 12, 26, 34, 45, 56,

即两条链 0−1−2−6 与 3−4−5−6 在顶点 6 汇合。可以用 A=I+LG 实现一个具有此图的正定矩阵,其中 LG 是图 Laplacian;单位阵使常量方向也有正能量。

按 0,1,2,3,4,5,6 消元,每次当前节点只有一个尚存邻居,所以没有填充。模式与父指针如下:

列 j 严格下方行号 父节点
0 1 1
1 2 2
2 6 6
3 4 4
4 5 5
5 6 6
6 空 根

第 0 列必须先于第 1 列,第 1 列先于第 2 列;另一侧相应是 3→4→5。两侧可以同时推进,根 6 等待两条子链的贡献都到达。

但 2 是 0 的祖先,L20 却不在模式中;6 也是 0 的祖先,L60 同样不在模式中。父路径记录间接依赖,不会自动把所有祖先变成直接因子位置。

树高、列大小与并行成本 ​

本例的两个子树没有相互依赖,可独立计算局部更新。不过它们都向根贡献数值,汇合时仍需归约或同步。“子树独立”不表示多个线程可以不加控制地同时写同一块数组。

若把同一无分支链按自然次序消元,消元树也会是一条长链,串行依赖深。重排序可能让树更平衡,但树高不是唯一指标:一个很宽的树若在根部汇集极大稠密前沿,最终的算术量和内存仍可能主导时间。要同时看每个节点对应的列大小、工作权重和可用并行度。

如果图不连通,各连通分量独立产生一棵树。人为添加一个没有数值自由度的超级根可以方便遍历,但不应把它当成额外矩阵列或给它增加因子非零。

推论与应用

先由父指针建立每个节点的孩子列表,再从各根沿孩子方向做深度优先遍历,按退出顺序获得后序:孩子先于父亲,所有依赖方向都一致。后序可帮助安排工作与聚集子树数据;它本身不重新求最小填充排列,也不把任何正序编号都变成相同的数值算法。

树还可以配合原矩阵模式做结构可达性查询,避免显式遍历所有已填充图边。此时必须保留原边信息:仅凭“祖先”判据无法恢复因子模式,正如上例所示。

嵌套剖分先消去分离子域、最后处理分隔器,往往产生适于子树并行的依赖结构。它的分隔器树以一整组顶点为节点,消元树则以单列为节点;两者可以相互解释,但不是同一个数据对象。

参考资料
  • Yousef Saad, CSCI 8314, “Sparse Direct Methods”, slides 8-6–8-18:官方讲义。父指针、列依赖、祖先性质、自然序与嵌套剖分的对比。
  • Manpreet S. Khaira, Gary L. Miller and Thomas J. Sheffler, Nested Dissection, CMU-CS-92-106R, 1992, §3.3:机构报告。分隔器树及其与消元路径的联系。
关系图谱9 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系