NetLogo中nw:clustering-coefficient均值恒为0的问题咨询
问题根因
聚类系数全为0和你是否使用自定义连边breed无关,核心是你调用nw:generate-preferential-attachment时传入的参数有误:
- 该函数第4个参数的含义是每个新节点加入网络时创建的连边数量,你当前设置的值为
1 - 聚类系数的计算规则是:单个节点的邻居之间实际存在的连边数 / 邻居之间理论上可存在的最大连边数,只有当网络中存在三角形(三个节点两两相连)结构时,聚类系数才会大于0
- 当每个新节点加入时仅连1条边,生成的网络是无环树状结构,不存在任何三角形闭合结构:新节点每次仅和1个已有节点建立连接,不会同时连接2个及以上已有节点,自然不会让两个邻居之间产生共同连边,这种情况下所有节点的聚类系数必然为0
- 你认知里“优先连接机制生成的网络聚类系数大于0”,对应的是新节点连边数≥2的BA无标度网络场景,连边数为1时的树状优先连接网络本身就符合聚类系数为0的特征。
修复方法
将nw:generate-preferential-attachment的第4个参数从1修改为≥2的整数即可,以每个新节点连2条边为例,修改后的生成代码如下:
nw:generate-preferential-attachment agents links 100 2 [ set shape "person" setxy random-xcor random-ycor set status random 2 ifelse status = 0 [set status -1][set status 1] ifelse status = 1 [set color green] [set color red] ]
修改后重新运行setup,即可得到大于0的平均聚类系数结果,其余网络指标也会符合BA无标度网络的典型特征。
内容的提问来源于stack exchange,提问作者Kevin A
相关产品推荐
相关产品推荐

