networkx.algorithms.tree.mst.maximum_spanning_edges
的用法。用法:
maximum_spanning_edges(G, algorithm='kruskal', weight='weight', keys=True, data=True, ignore_nan=False)
在无向加权图的最大生成森林中生成边。
最大生成树是图(树)的子图,具有最大可能的边权总和。生成森林是图的每个连接组件的生成树的联合。
- G:无向图
一个无向图。如果
G
已连接,则算法会找到生成树。否则,会找到一个生成林。- algorithm:string
查找最大生成树时使用的算法。有效选择是‘kruskal’, ‘prim’或‘boruvka’。默认为‘kruskal’。
- weight:string
用于权重的边数据键(默认 ‘weight’)。
- keys:bool
除了边之外,是否在多重图中产生边键。如果
G
不是多重图,则忽略它。- data:布尔型,可选
如果 True 产生边数据以及边。
- ignore_nan:布尔(默认值:假)
如果发现NaN 作为边权重,通常会引发异常。如果
ignore_nan is True
则忽略该边。
- edges:迭代器
G
的最大生成树中的边上的迭代器。连接节点u
和v
的边表示为元组:(u, v, k, d)
或(u, v, k)
或(u, v, d)
或(u, v)
如果
G
是多图,keys
表示边键k
是否会在边元组的第三个位置上报。data
指示边数据字典d
是否会出现在边元组的末尾。如果
G
不是多重图,则如果data
为True,则元组为(u, v, d)
,如果data
为False,则为(u, v)
。
参数:
返回:
注意:
对于 Borůvka 的算法,每条边必须有一个权重属性,并且每条边的权重必须是不同的。
对于其他算法,如果图边没有权重属性,则将使用默认权重 1。
来自 David Eppstein 的修改代码,2006 年 4 月 http://www.ics.uci.edu/~eppstein/PADS/
例子:
>>> from networkx.algorithms import tree
通过 Kruskal 算法找到最大跨越边
>>> G = nx.cycle_graph(4) >>> G.add_edge(0, 3, weight=2) >>> mst = tree.maximum_spanning_edges(G, algorithm="kruskal", data=False) >>> edgelist = list(mst) >>> sorted(sorted(e) for e in edgelist) [[0, 1], [0, 3], [1, 2]]
通过 Prim 算法找到最大跨越边
>>> G = nx.cycle_graph(4) >>> G.add_edge(0, 3, weight=2) # assign weight 2 to edge 0-3 >>> mst = tree.maximum_spanning_edges(G, algorithm="prim", data=False) >>> edgelist = list(mst) >>> sorted(sorted(e) for e in edgelist) [[0, 1], [0, 3], [2, 3]]
相关用法
- Python NetworkX maximum_spanning_tree用法及代码示例
- Python NetworkX maximum_flow用法及代码示例
- Python NetworkX maximum_flow_value用法及代码示例
- Python NetworkX maximal_independent_set用法及代码示例
- Python NetworkX max_flow_min_cost用法及代码示例
- Python NetworkX make_small_graph用法及代码示例
- Python NetworkX make_max_clique_graph用法及代码示例
- Python NetworkX multi_source_dijkstra_path用法及代码示例
- Python NetworkX minimum_spanning_edges用法及代码示例
- Python NetworkX modularity_matrix用法及代码示例
- Python NetworkX minimum_edge_cut用法及代码示例
- Python NetworkX minimum_st_node_cut用法及代码示例
- Python NetworkX minimum_spanning_tree用法及代码示例
- Python NetworkX minimum_node_cut用法及代码示例
- Python NetworkX minimum_cut_value用法及代码示例
- Python NetworkX multi_source_dijkstra_path_length用法及代码示例
- Python NetworkX min_cost_flow_cost用法及代码示例
- Python NetworkX modularity用法及代码示例
- Python NetworkX min_cost_flow用法及代码示例
- Python NetworkX minimum_cut用法及代码示例
- Python NetworkX minimum_st_edge_cut用法及代码示例
- Python NetworkX minimum_cycle_basis用法及代码示例
- Python NetworkX multi_source_dijkstra用法及代码示例
- Python NetworkX multipartite_layout用法及代码示例
- Python NetworkX negative_edge_cycle用法及代码示例
注:本文由纯净天空筛选整理自networkx.org大神的英文原创作品 networkx.algorithms.tree.mst.maximum_spanning_edges。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。