one_exchange#

one_exchange(G, initial_cut=None, seed=None, weight=None)[源代码]#

计算图节点的划分和相应的割值。

使用贪婪的一交换策略来找到局部最大割及其值,它通过找到对当前割贡献最大(即产生最高增益)的节点加入割,并重复此过程直到无法改进为止。

参数:
Gnetworkx 图

用于寻找最大割的图。

initial_cut集合

用作起点的割。如果未提供,算法将从空割开始。

seed整数、random_state 或 None (默认)

随机数生成状态的指示器。参见 随机性

weight对象

用作权重的边属性键。如果未指定,边的权重为一。

返回:
cut_value标量

最大割的值。

partition节点集对

定义最大割的节点划分。

引发:
NetworkXNotImplemented

如果图是有向图或多重图。

示例

>>> G = nx.complete_graph(5)
>>> curr_cut_size, partition = nx.approximation.one_exchange(G, seed=1)
>>> curr_cut_size
6
>>> partition
({0, 2}, {1, 3, 4})