背景

很早之前在 CSDN 上写的一篇文章社团检测领域的 LFR 基准网络及其生成程序,今天突然发现很多朋友留言说对「重叠社团的 LFR 基准网络生成程序」有较大的需求,就不再通过邮件一一进行发送,这篇博文统一附上下载方式并且介绍下社团检测领域中各种属性的 LFR 基准生成程序。

LFR 基准网络

首先是最简单的无向无权基准网络生产程序,之前已经写过一篇文章介绍,现在直接附过来。


以下是 Linux 下使用的版本,对于 Windows 下的同学可以参考博客 LFR 网络生成程序,没下载过也不知道能不能用。

下面介绍一下 LFR 生成程序的用法:

想要生成网络首先需要对配置文件 parameters.dat 进行修改:

1
2
3
4
5
6
7
8
9
10
11
12
###############################################################################

1000 # number of nodes
15 # average degree
50 # maximum degree
2 # exponent for the degree distribution
1 # exponent for the community size distribution
0.2 # mixing parameter
20 # minimum for the community sizes (optional; just comment this line, if you wish)
50 # maximum for the community sizes (optional; just comment this line, if you wish)

################################################################################

以上的配置可以根据自己的需求进行修改,具体的参数介绍可以查看论文 Benchmark graphs for testing community detection algorithms,上面提供下载的压缩包中包含此论文。

配置好参数后在目录下 benchmark 目录下执行命令:

1
$ .\benchmark

执行命令后会生成三个文件:

  • network.dat

    包含网络中的边

  • community.dat

    包含每一个节点所属的类。

  • statistics.dat

    包含度分布,社团大小分布,混合参数分布。

经过上述步骤之后就可以利用生成的网络进行算法性能测试。


以下介绍各种不同属性的重叠社团 LFR 基准网络生成程序:

  • package1:生成无向无权的重叠社团基准网络;
  • package2:生成无向加权的重叠社团基准网络;
  • package3:生成有向无权的重叠社团基准网络;
  • package4:生成有向加权的重叠社团基准网络;
  • package5:生成层次基准网络,小社团可能包含在大社团中;

📢 以上源码都是使用 C++ 编写可能需要编译,命令使用方法参考每个包下的 Readme 文件。

此外,附上生成动态网络的基准程序。

  • package6:生成社团检测中动态基准网络

以上所有程序,如果不能翻墙的同学可以在 DreamHub 公众号回复 package,即可获取全部 LFR 基准程序的下载链接。

以上程序中的参数可以参考以下论文的介绍,感谢学术大佬 Santo Fortunato 的分享,如果有需求可以在 Google 站点中直接下载。

参考:

Contact