我正在使用networkx,这是我的网络。
import networkx as nx
G = nx.from_edgelist([['a','b'], ['b','c'], ['c','a']])
nx.draw_networkx(G)
您能告诉我为什么minimum_node_cut
会返回b
,而node_connectivity
会返回2
吗?
nx.minimum_node_cut(G, 'a', 'c')
{'b'}
nx.node_connectivity(G, 'a', 'c')
2
我期待minimum_node_cut
的长度等于node_connectivity
。
答案 0 :(得分:0)
来自文档:
networkx.minimum_node_cut
- 如果提供了源节点和目标节点,则此函数返回最小基数的节点集,如果删除,则会破坏G中源节点和目标节点之间的所有路径。
networkx.node_connectivity
- 如果提供了源节点和目标节点,则此函数返回本地节点连接:必须删除的最小节点数,以便在G中断开源到目标的所有路径。
第一个返回一组节点,当移除这些节点时将破坏本地连接,第二个节点返回需要删除的最小节点数以破坏本地连接。
在我看来,networkx.minimum_node_cut
返回的集合排除了源节点和目标节点,因为删除它们会轻易地破坏它们之间的连接。 networkx.node_connectivity
正确地报告必须删除2个节点以破坏本地连接。