原作者:(5条消息) 复杂网络多局域世界模型matlab算法实现_乾三连的博客-CSDN博客_多局域世界模型https://blog.csdn.net/qq_36434958/article/details/102770052MLW模型,即复杂网络多局域世界模型(the Multi Local Worlds Model)是一个具有度指数分布特性的小世界模型。比起BA等其他小世界模型,MLW模型最大的优点是具有较高的聚类系数,而高聚类系数是多数现实小世界网络的特征。因此,MLW模型能较好地模拟现实中的小世界网络。
MLW模型的生成过程为数个步骤的迭代,最终生成数个互相有较少连接的局域世界,局域世界内的节点之间的连边则较多。具体的步骤可以参考上面贴出来的原作者的文章,这里不具体阐述。
原作者贴出的代码存在较多的bug,我已将其修复,现于此贴出以便诸位可直接使用。
这段代码需要一个matlab app的支持(具体哪个我不记得了,总之如果到时候报缺少xxx的错误直接下载那个就可以了)。如果仍有bug(下载该app后仍无法运行),请告知我,我尽可能及时修正代码!
clc,clear
m=5;m0=8;e0=15;p=0.3;q=0.2;r=0.25;s=0.05;u=0.2;
m1=3;m2=5;m3=4;m4=6;alpha=1;
p=[p,q,r,s,u];n=m;
pp=cumsum(p); %轮盘赌法选条件
for i=1:m
A{i}=generategraph(m0,e0); %产生初始的m个局域世界
end
num(1:m)=m0; %此处先声名一个num变量,num变量的1到m个元素都是m0,此处是为了存储各个局域世界的节点个数
Tno=[];Tuv=[]; %返回值初始化
for i=1:400 % 迭代2000次
ind=find(pp>=rand); % 轮盘赌法,此处返回一个索引向量,即大于随机数rand的两个累计概率值
switch ind(1) % 索引到第一个大于累计概率值的对应索引,共有五种可能1,2,3,4,5。分别对应我们的五种可能
case 1 %如果上面返回1就执行这个操作
n=n+1; %更新局域世界个数
A{n}&#