cdlib.algorithms.bayan

cdlib.algorithms.bayan(g_original: object, threshold: float = 0.001, time_allowed: int = 60, resolution: float = 1) NodeClustering

Bayan算法是一种社区检测方法,能够为模块度最大化问题提供全局最优解。 Bayan也可以实现为提供最大模块度的近似值,并保证接近性。 该算法在理论上基于模块度最大化问题的整数规划(IP)公式,并依赖于精确的分支切割方案来解决NP完全优化问题以达到全局最优。

该算法作为可选功能集成到CDlib中,因为它依赖于Gurobi求解器。 有关如何满足此类依赖项的详细说明,请参阅官方文档中提供的说明:https://github.com/saref/bayan

支持的图表类型

无向

有向

加权

是的

是的

Parameters:
  • g_original – 一个 networkx/igraph 对象

  • threshold – 阈值是Bayan应执行的最小最优性差距。在上面的例子中,如果Bayan找到一个与最优解在0.001范围内的模块性解决方案,它将返回该解决方案。

  • time_allowed – 允许的时间是 Bayan 应该执行的最大时间,单位为秒。

  • resolution – 分辨率是模块化函数的分辨率参数。

Returns:

节点聚类对象

Example:

>>> from cdlib import algorithms
>>> import networkx as nx
>>> G = nx.karate_club_graph()
>>> com = algorithms.bayan(G)
References:

Aref, Samin, Hriday Chheda, 和 Mahdi Mostajabdaveh. “Bayan算法:通过模块化的精确和近似优化检测网络中的社区。” arXiv预印本 arXiv:2209.04562 (2022).