1 简介
本文提出了一种基于粒子群优化算法的网络拓扑图形自动生成方法,包括以下步骤:S1:获取存储有各节点连通关系的邻接矩阵G;根据邻接矩阵G确定待布置的节点总数N,初始化已布置节点数M=0;S2:从未布置节点中选取待确定位置的当前节点n;S3:当M=0时,随机确定当前节点n的位置;当M>0时,利用粒子群优化算法确定当前节点n的最佳位置,根据邻接矩阵G的描述信息绘制当前节点n与所有已布置节点间的边;S4:设置M=M+1,递加已布置节点数M;S5:重复步骤S2至S4,直至M=N;本发明实现了自动化,智能化的图形绘制,在处理相对复杂的网络时,可节省大量人工绘图的劳动,有助于生成符合自然规律的拓扑图形.
2 部分代码
function fitness = fitness_fun(pop)
%适应度值计算
%输入为邻接矩阵,输出为适应度值
%% 计算拉普拉斯矩阵判断连通性
% 求各节点的度向量
node_du=sum(pop);
% 求由节点度构成的对角矩阵
D=diag(node_du);
% 求网络的拉普拉斯矩阵
L=D-pop;
% 求拉普拉斯矩阵的特征值
mu=eig(L);
%% 判断代数连通度mu(2)是否大于0
if mu(2)>0.01
N=size(pop);
lambda=eig(pop);
fitness=0;
for i=1:N(1)
fitness=fitness+exp(lambda(i));
end
fitness=log(fitness./N(1));
else
fitness=0.1;
% N=size(pop);
% lambda=eig(pop);
% fitness=0;
% for i=1:N(1)
% fitness=fitness+exp(lambda(i));
% end
% fitness=log(fitness/N(1));
end
3 仿真结果
4 参考文献
[1]姚灿中. "一种基于有向动态网络拓扑的粒子群优化算法." journal6 (2006).