📑 Table of Contents
Cuthill-McKee ordering of a matrix
RCM ordering of the same matrix

In numerical linear algebra, the Cuthill–McKee algorithm (CM), named after Elizabeth Cuthill and James McKee,[1] is an algorithm to permute a sparse matrix that has a symmetric sparsity pattern into a band matrix form with a small bandwidth. The reverse Cuthill–McKee algorithm (RCM) due to Alan George and Joseph Liu is the same algorithm but with the resulting index numbers reversed.[2] In practice this generally results in less fill-in than the CM ordering when Gaussian elimination is applied.[3]

The Cuthill McKee algorithm is a variant of the standard breadth-first search algorithm used in graph algorithms. It starts with a peripheral node and then generates levels for until all nodes are exhausted. The set is created from set by listing all vertices adjacent to all nodes in . These nodes are ordered according to predecessors and degree.

Algorithm

edit

Given a symmetric matrix we visualize the matrix as the adjacency matrix of a graph. The Cuthill–McKee algorithm is then a relabeling of the vertices of the graph to reduce the bandwidth of the adjacency matrix.

The algorithm produces an ordered n-tuple of vertices which is the new order of the vertices.

First we choose a peripheral vertex (the vertex with the lowest degree) and set .

Then for we iterate the following steps while

  • Construct the adjacency set of (with the i-th component of ) and exclude the vertices we already have in
  • Sort ascending by minimum predecessor (the already-visited neighbor with the earliest position in R), and as a tiebreak ascending by vertex degree.[4]
  • Append to the Result set .

In other words, number the vertices according to a particular level structure (computed by breadth-first search) where the vertices in each level are visited in order of their predecessor's numbering from lowest to highest. Where the predecessors are the same, vertices are distinguished by degree (again ordered from lowest to highest).

See also

edit

References

edit
  1. ^ E. Cuthill and J. McKee. Reducing the bandwidth of sparse symmetric matrices In Proc. 24th Nat. Conf. ACM, pages 157–172, 1969.
  2. ^ "Ciprian Zavoianu - weblog: Tutorial: Bandwidth reduction - The CutHill-McKee Algorithm". 15 January 2009.
  3. ^ J. A. George and J. W-H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981
  4. ^ The Reverse Cuthill-McKee Algorithm in Distributed-Memory [1], slide 8, 2016

📚 Artikel Terkait di Wikipedia

List of algorithms

matrix algorithm (Thomas algorithm): solves systems of tridiagonal equations SMAWK Algorithm Sparse matrix algorithms Cuthill–McKee algorithm: reduce

Graph traversal

component; Cheney's algorithm; finding the shortest path between two vertices; testing a graph for bipartiteness; Cuthill–McKee algorithm mesh numbering;

Breadth-first search

by number of edges (an advantage over depth-first search) (Reverse) Cuthill–McKee mesh numbering Ford–Fulkerson method for computing the maximum flow

Elizabeth Cuthill

States Navy at the David Taylor Model Basin. The Cuthill–McKee algorithm and reverse Cuthill–McKee algorithm are heuristics for permuting matrices into forms

Band matrix

Cuthill–McKee algorithm can be used to reduce the bandwidth of a sparse symmetric matrix. There are, however, matrices for which the reverse Cuthill–McKee

Graph bandwidth

obtaining linear graph layouts of low bandwidth is the Cuthill–McKee algorithm. Fast multilevel algorithm for graph bandwidth computation was proposed in. The

List of numerical analysis topics

rotation Krylov subspace Block matrix pseudoinverse Bidiagonalization Cuthill–McKee algorithm — permutes rows/columns in sparse matrix to yield a narrow band

RCM

the United States to track revenue from patients Reverse Cuthill–McKee algorithm, an algorithm to reduce the bandwidth of sparse symmetric matrices Ring-closing