• 复杂网络算法

    简单复杂网络算法,运行效果好,效率高。 N=input('请输入最近邻耦合网络中节点的总数N:'); %%参数输入 K=input('请输入最近邻耦合网络中每个节点的邻居数K:'); if K > floor (N-1) | mod (K,2) ~=0 disp ('参数输入错误:K值必须是小于网络节点总数且为偶数的整数'); return; end angle=0:2*pi/N:2*pi-2*pi/N;x=100*sin(angle);y=100*cos(angle);%%生成各节点坐标 plot(x,y,'ro','MarkerEdgeColor','g','MarkerFaceColor','r','markersize',8); hold on; A=zeros(N); for i=1:N %%生成最近邻耦合网络的邻接矩阵 for j=i+1:i+K/2 jj=j; if j>N jj=mod(j,N); end A(i,jj)=1;A(jj,i)=1; end end p=input('请输入随机化重连的概率p:'); for i=1:N for j=i+1:i+K/2 jj=j; if j>N jj=mod(j,N); end p1=rand(1,1);%%若生成的随机数小于p,则边进行随机化重连,否则不重连 if p1<p %%重连策略:断开原来的边,在未连的边中随机选择另一个节点与原节点连接 A(i,jj)=0;A(jj,i)=0;A(i,i)=inf;a=find(A(i,:)==0); rand_data=randint(1,1,[1,length(a)]); jjj=a (rand_data);A(i,jjj)=1;A(jjj,i)=1;A(i,i)=0; end end end for i=1:N %%开始画最近邻耦合网络 for j=i+1:N if A(i,j)~=0 plot([x(i),x(j)],[y(i),y(j)],'linewidth',1.2); hold on; end end end axis equal; hold off

    0
    613
    1KB
    2015-06-29
    32
关注 私信
上传资源赚积分or赚钱