在讨论BA网络的生成时,涉及到初始网络的选择,理论上当然可以选择只之前已近提及的ER随机网络模型或者WS小世界网络等等,但是如果初始规模较小,这些网络的的特性并不能很好的体现,所以我在生成BA无标度网络时,选择使用规则网络来作为初始网络:
function f = regular(N0,m0,t)
a1 = fix(m0/(N0/2)); %取出生成初始矩阵时的整数循环个数
a2 = mod(m0,N0/2); %确定需要后期再连接的边数
A = zeros(N0+t,N0+t); %创建邻接矩阵
if mod(a1,2) == 0 %整数个全循环
for i = 1:N0 %规则连接
for j = 1:(a1/2)
x = i;
y = i+j;
if y > N0
y = mod(y,N0);
end
A(x,y) = 1;
A(y,x) = 1;
end
end
for i = 1:a2 %补充连边
x = i;
y = i+1+(a1/2);
if y > N0
y = mod(y,N0);
end
A(x,y) = 1;
A(y,x) = 1;
end
else %奇数个半循环
if a1 == 1 %考虑仅1个半循环的情况
for i = 1:2:N0
x = i;
y = i+1;