Mercurial > repos > shellac > sam_consensus_v3
view env/share/doc/networkx-2.5/examples/algorithms/plot_rcm.py @ 0:4f3585e2f14b draft default tip
"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author | shellac |
---|---|
date | Mon, 22 Mar 2021 18:12:50 +0000 |
parents | |
children |
line wrap: on
line source
""" === Rcm === Cuthill-McKee ordering of matrices The reverse Cuthill-McKee algorithm gives a sparse matrix ordering that reduces the matrix bandwidth. """ import networkx as nx from networkx.utils import reverse_cuthill_mckee_ordering import numpy as np # build low-bandwidth numpy matrix G = nx.grid_2d_graph(3, 3) rcm = list(reverse_cuthill_mckee_ordering(G)) print("ordering", rcm) print("unordered Laplacian matrix") A = nx.laplacian_matrix(G) x, y = np.nonzero(A) # print(f"lower bandwidth: {(y - x).max()}") # print(f"upper bandwidth: {(x - y).max()}") print(f"bandwidth: {(y - x).max() + (x - y).max() + 1}") print(A) B = nx.laplacian_matrix(G, nodelist=rcm) print("low-bandwidth Laplacian matrix") x, y = np.nonzero(B) # print(f"lower bandwidth: {(y - x).max()}") # print(f"upper bandwidth: {(x - y).max()}") print(f"bandwidth: {(y - x).max() + (x - y).max() + 1}") print(B)