max_weight_clique#

max_weight_clique(G, weight='weight')[source]#

找到图 G 中的最大权重团。

图中的一个 是一组节点,其中每两个不同的节点都相邻。一个团的 权重 是其中所有节点的权重之和。图 G 的 最大权重团 是一个团 C,使得 G 中没有其他团的权重大于 C 的权重。

Parameters:
GNetworkX 图

无向图

weight字符串或 None, 可选 (默认=’weight’)

节点属性,用于保存作为权重的整数值。 如果为 None,则每个节点的权重为 1。

Returns:
clique列表

最大权重团的节点

weight整数

最大权重团的权重

Notes

该实现是递归的,因此如果 G 包含一个节点数接近递归深度限制的团,可能会遇到递归深度问题。

在每个搜索节点,算法贪婪地构建图的一部分的加权独立集覆盖,以找到一个小的节点集合进行分支。该算法与 Tavares 等人 [1] 的算法非常相似,除了 NetworkX 版本不使用位集。这种最大权重团(以及最大权重独立集,这是相同的问题但在补图上)的算法有着数十年的历史。参见 Warren 和 Hicks [2] 的算法 B 及其参考文献。

References

[1]

Tavares, W.A., Neto, M.B.C., Rodrigues, C.D., Michelon, P.: Um algoritmo de branch and bound para o problema da clique máxima ponderada. Proceedings of XLVII SBPO 1 (2015).

[2]

Warren, Jeffrey S, Hicks, Illya V.: Combinatorial Branch-and-Bound for the Maximum Weight Independent Set Problem. Technical Report, Texas A&M University (2016).