function A=BA(N,m0,m,Initial)
% N:表示网络的节点的个数
% m0:表示网络的初始节点个数
% m:表示新点与旧网络连边的数目
% Initial:表示初始网络边的连接
format long;
if m>m0
disp('输入参数m不合法');
return;
end
%初始网络
switch Initial
case 1
A=zeros(m0);
case 2
A=ones(m0);
for i=1:m0
A(i,i)=0;
end
case 3
for i=1:m0
for j=i+1:m0
p1=rand(1,1);
if p1>0.5
A(i,j)=1;
A(j,i)=1;
end
end
end
otherwise
disp('输入参数Initial不合法');
return;
end
A = sparse( A ) ; % 用sparse表示邻接矩阵adjacent_matrix,极大地释放内存
% 网络演化与优先连接
node_degree = sparse( 1 , m0 ) ; % node_degree表示各个节点的度数
for i = 1 : m0
node_degree( i ) = sum( A( 1 : m0 , i ) ) ;
end
% 每次加入一个新点,新点和老点之间按照择优概率进行连接,值得注意的是,每次新点加入之后,
% 网络的择优概率都发生变化
for k=m0+1:N
k
M=size(A,1);
p=zeros(1,M);
total_degree=length(find(A==1));
if total_degree==0 %为避免被零除
p(:)=1/M;
else
p(:)=node_degree./total_degree;
end
pp=cumsum(p); %求累计概率
for i=1:m %利用赌轮法从已有的节点中随机选择m个节点与新加入的节点相连
random_data=rand(1,1);
aa=find(pp>=random_data);
jj=aa(1); % 节点jj即为用赌轮法选择的节点
A(k,jj)=1;A(jj,k)=1;
end
for i = 1 : k
node_degree(i) = sum( A( 1 : k , i ) ) ; % 这个循环的目的是重新给各个节点的度赋值
end
end
huzhaolong0000
- 粉丝: 1
- 资源: 3
最新资源
- 2025计算机网络技术考试题及答案.docx
- 2025驾驶员交通安全知识测试题及答案.docx
- 2025继续教育公需课必修课考试题库附含答案.docx
- 2025家政服务考试题及答案.docx
- 工程造价咨询企业基于绩效的体系设计.doc
- 2018年造价咨询公司绩效提成方案.doc
- 工程造价从业人员绩效考核制度.doc
- 工程造价企业绩效考核细则.doc
- 工程造价咨询项目考核评分制度(试行).doc
- 项目管理有限公司造价咨询薪酬管理办法.doc
- 造价咨询公司绩效提成方法.doc
- 造价咨询公司薪酬管理办法.doc
- 2025驾照C1证考试科目一必考考试题库带答案.docx
- 2025建筑八大员(材料员基础知识)考试题与答案.docx
- 2025检验类之临床医学检验技术(士)真题库附答案.docx
- 咨询公司薪酬管理办法.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
- 3
前往页