scipy.sparse.csgraph.

reverse_cuthill_mckee#

scipy.sparse.csgraph.reverse_cuthill_mckee(graph, symmetric_mode=False)#

Returns the permutation array that orders a sparse CSR or CSC matrix in Reverse-Cuthill McKee ordering.

It is assumed by default, symmetric_mode=False, that the input matrix is not symmetric and works on the matrix A+A.T. If you are guaranteed that the matrix is symmetric in structure (values of matrix elements do not matter) then set symmetric_mode=True.

Parameters:
graphsparse matrix

Input sparse in CSC or CSR sparse matrix format.

symmetric_modebool, optional

Is input matrix guaranteed to be symmetric.

Returns:
permndarray

Array of permuted row and column indices.

Notes

Added in version 0.15.0.

References

E. Cuthill and J. McKee, “Reducing the Bandwidth of Sparse Symmetric Matrices”, ACM ‘69 Proceedings of the 1969 24th national conference, (1969).

Examples

>>> from scipy.sparse import csr_matrix
>>> from scipy.sparse.csgraph import reverse_cuthill_mckee
>>> graph = [
... [0, 1, 2, 0],
... [0, 0, 0, 1],
... [2, 0, 0, 3],
... [0, 0, 0, 0]
... ]
>>> graph = csr_matrix(graph)
>>> print(graph)
  (np.int32(0), np.int32(1))        1
  (np.int32(0), np.int32(2))        2
  (np.int32(1), np.int32(3))        1
  (np.int32(2), np.int32(0))        2
  (np.int32(2), np.int32(3))        3
>>> reverse_cuthill_mckee(graph)
array([3, 2, 1, 0], dtype=int32)