Cuthill–McKee algorithm

In numerical linear algebra, the Cuthill–McKee algorithm (CM), named for Elizabeth Cuthill and James[1] McKee,[2] 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 is the same algorithm but with the resulting index numbers reversed.[3] In practice this generally results in less fill-in than the CM ordering when Gaussian elimination is applied.[4]

Cuthill-McKee ordering of a matrix
RCM ordering of the same matrix

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 listed in increasing degree. This last detail is the only difference with the breadth-first search algorithm.

Algorithm

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 with ascending vertex order (vertex degree).
  • Append to the Result set .

In other words, number the vertices according to a particular breadth-first traversal where neighboring vertices are visited in order from lowest to highest vertex order.

gollark: The Pi Zero, Pi Pico and Pi 4 can work as USB devices.
gollark: "V-USB" or something? It does need a crystal and some extra components.
gollark: You can use software USB things still.
gollark: Maybe not. How apioform.
gollark: Most microcontrollers will have some sort of debugger capability which lets you use some extra hardware to program them even if you beeize the bootloader or something.

See also

References

  1. Recommendations for ship hull surface representation, page 6
  2. E. Cuthill and J. McKee. Reducing the bandwidth of sparse symmetric matrices In Proc. 24th Nat. Conf. ACM, pages 157–172, 1969.
  3. http://ciprian-zavoianu.blogspot.ch/2009/01/project-bandwidth-reduction.html
  4. J. A. George and J. W-H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.