“排列的价值是改变未来邻居集,而不只是让图看起来整齐。嵌套剖分把分隔器排到最后;不完全分解则主动拒绝保存某些填充,二者分别改变精确消元的次序与数值近似的规则。”
形式陈述
同一网格矩阵,消元次序不同,因子填充就不同。嵌套剖分用一个原则构造次序:先处理彼此分开的内部区域,把连接它们的分隔器留到最后。
设图的顶点分成
小到预设阈值的子图直接编号。实现既可先预留最大的编号给
本页的复杂度限定规则二维
直觉
分治中的“分别解决”在这里有严格的图依据。内部点被消去时,新增边只能连接其当前邻居。不同子域之间没有原边,而分隔器还没有被消去,因此不存在经过已消去节点、跨越两个子域的路径。填充可以到达界面,却不能穿过尚未消去的界面继续把其他子域搅在一起。
若反过来先消去整个十字分隔器,它的邻居会被补成团,原本独立的四个角区就提前连通。几何上看似“先把中间清空”,在线性代数上却可能制造更多耦合。
为什么二维存储与算术有不同阶数
深度
把这一界面前沿按稠密块上界估计,存储是边长平方,算术是边长立方。因此第
共有
例子与边界
一份可复现的七乘七次序
用
固定子域遍历为左上、右上、左下、右下;同层分隔器按自然编号追加。于是先输出左上
逐轮运行邻居补团算法,得到以下结构计数。平方和
| 网格 | 次序 | 因子结构位置数 | 新增填充边 | |
|---|---|---|---|---|
| 自然序 | 29 | 8 | 103 | |
| 十字嵌套剖分 | 26 | 5 | 82 | |
| 自然序 | 349 | 216 | 2643 | |
| 十字嵌套剖分 | 288 | 155 | 1926 | |
| 自然序 | 3389 | 2744 | 52907 | |
| 十字嵌套剖分 | 2300 | 1655 | 30178 | |
| 自然序 | 29821 | 27000 | 943451 | |
| 十字嵌套剖分 | 15140 | 12319 | 368390 |
例如七乘七原图有
自然行序在规则网格上形成约
维数与几何条件不能省略
三维
一般图也可能使用分隔器算法,但“找到一个小分隔器”并不足以自动得到本页递推。需要递归子图都保持合适的平衡分隔性质,并控制已有界面的传播。十字切法只适用于有相应规则几何的图;它不是任意稀疏矩阵的通用最优排列。
推论与应用
排序阶段可以直接从规则网格索引生成本例列表,递归扫描的朴素实现需
子域优先的次序也影响消元树:不同子域的列可并行处理,较晚的分隔器接收它们的更新。实际直接求解器常把多列合成前沿或超节点,以稠密块操作提高效率;数学填充界没有包括通信、同步与缓存等常数成本。
选择排列时,应同时记录设置开销、结构位置数、列大小分布和数值分解时间。嵌套剖分保证的是适当模型下的好界,不承诺每个小实例都比所有局部启发式更省。
参考资料
- Manpreet S. Khaira, Gary L. Miller and Thomas J. Sheffler, Nested Dissection: A Survey and Comparison of Various Nested Dissection Algorithms, CMU-CS-92-106R, 1992, §§3.1–3.3:机构报告。规则网格十字分隔、递归编号与一般化条件。
- Yousef Saad, Iterative Methods for Sparse Linear Systems, 2nd ed., 2003, §3.6.2:作者教材。分隔器后编号的嵌套剖分框架。
- Yousef Saad, A Tutorial on Iterative Methods for Sparse Matrix Problems, CRM Montreal, 2008, slide 35:作者讲义。二维与三维的存储、算术尺度对比。