该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
format long;
N=1000;
k=5;
L=zeros(14,20);
C=zeros(14,20);
for i=1:14
p(15-i,1)=1/2^(i-1);
end
A=zeros(N);
for i=1:N
for j=i+1:i+k
jj=j;
if j>N
jj=mod(j,N);
end
A(i,jj)=1;A(jj,i)=1;
end
end
D1=A;
D1(find(D1==0))=inf;
for i=1:N
D1(i,j)=0;
end
m=1;
while m<=N
for i=1:N
for j=1:N
if D1(i,j)>D1(i,m)+D1(m,j)
D1(i,j)=D1(i,m)+D1(m,j);
end
end
end
m=m+1;
end
L0=sum(sum(D1))/(N*(N-1)); %平均路径长度
Ci0=zeros(N,1);
for i=1:N
aa1=find(D1(i,:)==1); %寻找子图的邻居节点
if isempty(aa1)
Ci0(i)=0;
else
m1=length(aa1)
if m1==1
Ci0(i)=0;
else
B1=D1(aa1,aa1); % 抽取子图的邻接矩阵
Ci0(i)=length(find(B1==1))/(m1*(m1-1));
end
end
end
C0=mean(Ci0);
for z=1:14
for g=1:20
B=zeros(N)
for i=1:N
for j=i+1:i+k
jj=j;
if j>N
jj=mod(j,N);
end
B(i,jj)=1; B(jj,i)=1; %%生成最近邻耦合网络的邻接矩阵
end
end
for i=1:N
for j=1:k
p_rand=rand(1,1);
if p_rand
bb=randint(1,1,[1,N]);
if B(i,bb)==0&&B(bb,i)==0&&bb~=i
j2=j+i;
if j2>N
j2=mod(j2,N);
end
B(i,j2)=0;
B(j2,i)=0;
B(i,bb)=1;
B(bb,i)=1;
end
end
end
end
N1=size(A,2)
D=B;
D(find(D==0))=inf;
for i=1:N
D(i,i)=0;
end
m2=1;
while m2<=N
for i=1:N
for j=1:N
if D(i,j)>D(i,m2)+D(m2,j)
D(i,j)=D(i,m2)+D(m2,j); %
end
end
end
m2=m2+1;
end
Ci=zeros(N,1);
for i=1:N
aa=find(D(i,:)==1); %寻找子图的邻居节点
if isempty(aa)
Ci(i)=0;
else
m3=length(aa);
if m3==1
Ci(i)=0;
else
BB=D(aa,aa); % 抽取子图的邻接矩阵
Ci(i)=length(find(BB==1))/(m3*(m3-1));
end
end
end
C(z,g)=mean(Ci);
end
end
figure
LWS=mean(L,2);
CWS=mean(C,2);
semilogx(p,LWS/L0,'ro');
hold on;
semilogx(p,CWS/C0,'b*');