Given a symmetric n × n {\displaystyle n\times n} 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 R {\displaystyle R} of vertices which is the new order of the vertices.
First we choose a peripheral vertex (the vertex with the lowest degree) x {\displaystyle x} and set R := ( { x } ) {\displaystyle R:=(\{x\})} .
Then for i = 1 , 2 , … {\displaystyle i=1,2,\dots } we iterate the following steps while | R | < n {\displaystyle |R|<n}
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).
E. Cuthill and J. McKee. Reducing the bandwidth of sparse symmetric matrices In Proc. 24th Nat. Conf. ACM, pages 157–172, 1969. http://portal.acm.org/citation.cfm?id=805928 ↩
"Ciprian Zavoianu - weblog: Tutorial: Bandwidth reduction - The CutHill-McKee Algorithm". 15 January 2009. http://ciprian-zavoianu.blogspot.ch/2009/01/project-bandwidth-reduction.html ↩
J. A. George and J. W-H. Liu, Computer Solution of Large Sparse Positive Definite Systems, Prentice-Hall, 1981 ↩
The Reverse Cuthill-McKee Algorithm in Distributed-Memory [1], slide 8, 2016 https://archive.siam.org/meetings/csc16/slides/ariful_azad_CSC16.pdf ↩