Nested dissection explained
In numerical analysis, nested dissection is a divide and conquer heuristic for the solution of sparse symmetric systems of linear equations based on graph partitioning. Nested dissection was introduced by ; the name was suggested by Garrett Birkhoff.[1]
Nested dissection consists of the following steps:
- Form an undirected graph in which the vertices represent rows and columns of the system of linear equations, and an edge represents a nonzero entry in the sparse matrix representing the system.
- Recursively partition the graph into subgraphs using separators, small subsets of vertices the removal of which allows the graph to be partitioned into subgraphs with at most a constant fraction of the number of vertices.
- Perform Cholesky decomposition (a variant of Gaussian elimination for symmetric matrices), ordering the elimination of the variables by the recursive structure of the partition: each of the two subgraphs formed by removing the separator is eliminated first, and then the separator vertices are eliminated.
As a consequence of this algorithm, the fill-in (the set of nonzero matrix entries created in the Cholesky decomposition that are not part of the input matrix structure) is limited to at most the square of the separator size at each level of the recursive partition. In particular, for planar graphs (frequently arising in the solution of sparse linear systems derived from two-dimensional finite element method meshes) the resulting matrix has O(n log n) nonzeros, due to the planar separator theorem guaranteeing separators of size O.[2] For arbitrary graphs there is a nested dissection that guarantees fill-in within a
O(min\{\sqrt{d}log4n,m1/4log3.5n\})
factor of optimal, where
d is the maximum degree and
m is the number of non-zeros.
[3] See also
- Cycle rank of a graph, or a symmetric Boolean matrix, measures the minimum parallel time needed to perform Cholesky decomposition
- Vertex separator
References
Notes and References
- .
- .
- .