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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。