function ba_net()
disp('BA无标度网络模型');
m0=input('请输入网络初始节点数');
m=input('引入一个新节点后,连接到m个以存在节点(m<=m0),请输入m的值');%????
N=input('请输入网络最终节点数');
disp('请输入初始网络状况 1 孤立点 2 完全图 3 随机加边图');
pp=input('请输入 1,2或3');
randnumber=rand(2,N)*1000;
x=randnumber(1,:);
y=randnumber(2,:);
plot(x,y,'r.','Markersize',18);
hold on;
switch pp
case 1
A=zeros(N);
case 2
A=zeros(N);
for i=1:m0
for j=i+1:m0
A(i,j)=1;
A(j,i)=1;
end
end
case 3
A=zeros(N);
p0=0.5;
for i=1:m0
for j=i+1:m0
p1=unifrnd(0,1);
if p1<=p0
A(i,j)=1;
A(j,i)=1;
end
end
end
end
number=m0;
for i=m0+1:N
B=leiji_shuzu(A,number);
C=zeros(1,number);
for PP=2:number+1
C(1,PP-1)=B(1,PP)/B(1,number+1);
end
fprintf('累计概率%8.5f\n',C);
for j=1:m %利用赌轮法从已有的节点中随机选择m个节点与新加入的节点相连
random_data=rand(1,1);
aa=find(C>=random_data);jj=aa(1);
fprintf('aa%8.5f\n',jj) ; % 节点jj即为用赌轮法选择的节点
A(i,jj)=1;A(jj,i)=1;
end
number=number+1;
end
for i=1:N
for j=1:N
if A(i,j)==1
plot([x(i),x(j)],[y(i),y(j)],'linewidth',1);
hold on;
end
end
end
hold off
degree_distribution(A);
aver_path=aver_pathlength(A);
disp(aver_path);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% 累计数组
function B=leiji_shuzu(A,N)
B=zeros(1,N+1);
k=0;
for i=1:N
for j=1:N
if A(i,j)==1;
k=k+1;
end
end
B(1,i+1)=k+B(1,i);
k=0;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
AVER_PATHLENGTH-.zip_aver_pathlength_pathlength_复杂网络_复杂网络 BA_平均路
版权申诉
80 浏览量
2022-09-23
00:17:31
上传
评论
收藏 1KB ZIP 举报
朱moyimi
- 粉丝: 65
- 资源: 1万+
最新资源
- 手机号安全脱敏工具方案:Oracle自定义函数实现中间四位替换为4位星号
- X80 Dock EE Proposal V1.1(20231201).pptx
- gene_pheatmap.pdf
- Dock项目硬件DRB.pptx
- bootstrap安装好后的安装包,可以进行安装
- JAVAWML信息查询与后端信息发布系统实现-WML信息查询设计(源代码+论文)
- 6回路比赛抢答器PLC程序.opt
- 最终结果-信贷可得性.xlsx
- 基于python和模拟退火算法的拆装流水线问题解决方案(免费提供源码)
- 使用 SSM(Spring MVC + Spring + MyBatis)框架实现申报项目信息管理系统实验报告
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈