当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python NetworkX cuthill_mckee_ordering用法及代码示例


本文简要介绍 networkx.utils.rcm.cuthill_mckee_ordering 的用法。

用法:

cuthill_mckee_ordering(G, heuristic=None)

生成图节点的排序(排列)以制作稀疏矩阵。

使用Cuthill-McKee启发式(基于广度优先搜索)[1]。

参数

G图形

NetworkX 图

heuristic函数,可选

用于选择 RCM 算法的起始节点的函数。如果 None 使用来自 pseudo-peripheral 对的节点。可以提供一个用户定义的函数,它接受一个图形对象并返回一个节点。

返回

nodes生成器

Cuthill-McKee 排序中的节点生成器。

注意

带宽减少的最佳解决方案是NP-complete [2]。

参考

1

E. Cuthill and J. McKee. Reducing the bandwidth of sparse symmetric matrices, In Proc. 24th Nat. Conf. ACM, pages 157-172, 1969. http://doi.acm.org/10.1145/800195.805928

2

Steven S. Skiena. 1997. The Algorithm Design Manual. Springer-Verlag New York, Inc., New York, NY, USA.

例子

>>> from networkx.utils import cuthill_mckee_ordering
>>> G = nx.path_graph(4)
>>> rcm = list(cuthill_mckee_ordering(G))
>>> A = nx.adjacency_matrix(G, nodelist=rcm)

作为启发式函数的最小度数节点:

>>> def smallest_degree(G):
...     return min(G, key=G.degree)
>>> rcm = list(cuthill_mckee_ordering(G, heuristic=smallest_degree))

相关用法


注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.utils.rcm.cuthill_mckee_ordering。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。