随机网络,无标度网络,小世界网络以及NS小世界的性能对比matlab仿真

1.软件版本

matlab2021a

2.系统实现过程

1.随机网络(random network)

网络的场景如下所示:

 其性能指标如下:

 

下面,通过不同的攻击类型,来判断网络的鲁棒性,仿真结果如下所示:

clc;
clear;
close all;
warning off;
addpath 'func\'
rng(1);

%产生随机网络
%Num--顶点个数,Per--连接概率,avg_length--边的平均长度
Num          = 100;
Per          = 0.036;
avg_length   = 100;
[matrix,x,y] = func_Random_network(Num,Per,avg_length);

figure;
plot(x,y,'r.','Markersize',18);
hold on;
for i=1:Num 
    for j=i+1:Num
        if matrix(i,j)~=0
           plot([x(i),x(j)],[y(i),y(j)],'b--','linewidth',1);
           hold on;
        end
    end
end
hold off

%计算相应的指标
[Cc,Cc_avg]          = func_Cluster_Coeff(matrix);
disp(['聚类系数为:',num2str(Cc_avg)]);
[Dds,Dds_avg,M,P_Dds]= func_Degree_Distribution(matrix);
disp(['平均度为:',num2str(Dds_avg)]);   
[Lens,Lens_avg]      = func_Path_Length(matrix);   
disp(['平均路径长度为:',num2str(Lens_avg)]); 



figure;  
subplot(211);
bar([1:Num],Dds);  
xlabel('节点编号');
ylabel('节点的度');
subplot(212);
bar([0:M],P_Dds,'r');
xlabel('节点的度');
ylabel('节点度的概率');
 

2.无标度网络 (scale-free network)

扫描二维码关注公众号,回复: 14337944 查看本文章

 其性能指标如下:

下面,通过不同的攻击类型,来判断网络的鲁棒性,仿真结果如下所示:

 

clc;
clear;
close all;
warning off;
addpath 'func\'
rng(1);

%产生随机网络
%Num--顶点个数,Per--连接概率,avg_length--边的平均长度
Num          = 100;
[matrix,x,y] = func_scalefree_network(Num);

figure;
plot(x,y,'r.','Markersize',18);
hold on;
for i=1:Num 
    for j=i+1:Num
        if matrix(i,j)~=0
           plot([x(i),x(j)],[y(i),y(j)],'b--','linewidth',1);
           hold on;
        end
    end
end
hold off

%计算相应的指标
[Cc,Cc_avg]          = func_Cluster_Coeff(matrix);
disp(['聚类系数为:',num2str(Cc_avg)]);
[Dds,Dds_avg,M,P_Dds]= func_Degree_Distribution(matrix);
disp(['平均度为:',num2str(Dds_avg)]);   
[Lens,Lens_avg]      = func_Path_Length(matrix);   
disp(['平均路径长度为:',num2str(Lens_avg)]); 

figure;  
subplot(211);
bar([1:Num],Dds);  
xlabel('节点编号');
ylabel('节点的度');
subplot(212);
bar([0:M],P_Dds,'r');
xlabel('节点的度');
ylabel('节点度的概率');
 
 

3.小世界 network

 其性能指标如下:

 下面,通过不同的攻击类型,来判断网络的鲁棒性,仿真结果如下所示:

clc;
clear;
close all;
warning off;
addpath 'func\'
rng(1);
%产生随机网络
%Num--顶点个数,Per--连接概率,avg_length--边的平均长度
Num          = 100;
K            = 3;
Per          = 0.4;
[matrix,x,y] = func_WS_network(Num,K,Per);

figure;
plot(x,y,'r.','Markersize',18);
hold on;
for i=1:Num 
    for j=i+1:Num
        if matrix(i,j)~=0
           plot([x(i),x(j)],[y(i),y(j)],'b--','linewidth',1);
           hold on;
        end
    end
end
hold off

%计算相应的指标
[Cc,Cc_avg]          = func_Cluster_Coeff(matrix);
disp(['聚类系数为:',num2str(Cc_avg)]);
[Dds,Dds_avg,M,P_Dds]= func_Degree_Distribution(matrix);
disp(['平均度为:',num2str(Dds_avg)]);   
[Lens,Lens_avg]      = func_Path_Length(matrix);   
disp(['平均路径长度为:',num2str(Lens_avg)]); 

figure;  
subplot(211);
bar([1:Num],Dds);  
xlabel('节点编号');
ylabel('节点的度');
subplot(212);
bar([0:M],P_Dds,'r');
xlabel('节点的度');
ylabel('节点度的概率');
 
 
 

4.NS小世界 network

 其性能指标如下:

下面,通过不同的攻击类型,来判断网络的鲁棒性,仿真结果如下所示:

 

clc;
clear;
close all;
warning off;
addpath 'func\'
rng(1);

%产生随机网络
%Num--顶点个数,Per--连接概率,avg_length--边的平均长度
Num          = 100;
K            = 2;
Per          = 0.005;
[matrix,x,y] = func_NW_network(Num,K,Per);

figure;
plot(x,y,'r.','Markersize',18);
hold on;
for i=1:Num 
    for j=i+1:Num
        if matrix(i,j)~=0
           plot([x(i),x(j)],[y(i),y(j)],'b--','linewidth',1);
           hold on;
        end
    end
end
hold off

%计算相应的指标
[Cc,Cc_avg]          = func_Cluster_Coeff(matrix);
disp(['聚类系数为:',num2str(Cc_avg)]);
[Dds,Dds_avg,M,P_Dds]= func_Degree_Distribution(matrix);
disp(['平均度为:',num2str(Dds_avg)]);   
[Lens,Lens_avg]      = func_Path_Length(matrix);   
disp(['平均路径长度为:',num2str(Lens_avg)]); 

figure;  
subplot(211);
bar([1:Num],Dds);  
xlabel('节点编号');
ylabel('节点的度');
subplot(212);
bar([0:M],P_Dds,'r');
xlabel('节点的度');
ylabel('节点度的概率');
 
 
%A12-27

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/125532047