Numerical analysis Direct methods for linear systems Proposition
Cuthill–McKee algorithm
Builds on Sparse matrixBand matrixSymmetric matrixGraphDegree of a vertexPermutation matrixCholesky decomposition
Statement
Let be a symmetric matrix. Its graph has vertices and an edge between when ; assume is connected. The bandwidth of is . The Cuthill–McKee algorithm orders the vertices as follows. It picks a start vertex . For it appends to the list the neighbours of not yet listed, in order of increasing degree. Let and, for , let be the set of vertices at distance from in . Then:
- the algorithm lists every vertex exactly once, and each level forms a contiguous block of the list, in the order ;
- if is the permutation matrix of this ordering, the bandwidth of is at most ;
- the reversed ordering, called reverse Cuthill–McKee, gives a matrix with the same bandwidth.
Remarks
The list is built exactly as a breadth-first search from would build its queue, which lists the vertices by nondecreasing distance from ; this gives clause 1. In a breadth-first level structure, every edge joins two vertices of the same level or of adjacent levels. Two adjacent levels occupy consecutive positions, so the positions of the ends of an edge differ by at most ; this gives clause 2. Clause 3 holds because reversing the order maps the positions to , which have the same difference. So a start vertex with many small levels, such as a vertex far from the rest of the graph, gives a narrow band. In practice one starts from a vertex of minimum degree or a pseudo-peripheral vertex. Example: for the path graph (with ), starting at gives the order , and the reordered matrix is tridiagonal, with bandwidth . The reverse ordering usually produces less fill-in in a Cholesky factorization, which is why it is the version used in sparse solvers.
Going deeper
For a student
The algorithm is a heuristic: it does not find the smallest possible bandwidth, which is an NP-hard problem, but it is fast and usually good. It runs in time roughly proportional to the number of nonzero entries, up to the sorting by degree. Reverse Cuthill–McKee is a standard preprocessing step before banded or envelope Cholesky factorization of symmetric sparse matrices.
Reading path
To understand this page from the ground up, read these 16 pages in order. The foundations come first.
Show the path as a graph
- no evidence level
- Band matrix concept
- Degree of a vertex concept
- Graph concept
- Matrix definition
- Permutation matrix concept
- Sparse matrix concept
- Symmetric matrix concept
- Square matrix definition
- Transpose definition
- Lower triangular matrix definition
- Symmetric matrix definition
- Conjugate transpose definition
- Hermitian matrix definition
- Positive definite matrix definition
- Cholesky decomposition statement
- Cuthill–McKee algorithm statement
Where this leads
1 page builds on this one.
Further reading
About this page
| Tag | 1X0E3JHCH9 |
|---|---|
| URI | m2://1X0E3JHCH9 |
| Kind | statement, proposition |
| Writing | W0 stub |
| MSC | 65F50, 05C85 |
| Status | This copy of the site has no build data. Run m2 status 1X0E3JHCH9. |
| About | Sparse matrix |
| Uses | Sparse matrix, Band matrix, Symmetric matrix, Graph, Degree of a vertex, Permutation matrix, Cholesky decomposition |
| Same as |
Markdown · JSON · Edit on GitHub
What this page needs for W1
- an inventory row: the row of the inventory that the node accounts for (0 of 1)
- a source with a locator (0 of 1)
The writing levels say how complete the text of a page is. They do not measure its truth.