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).