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 仿真结果

【优化拓扑】基于粒子群算法优化网络拓扑附matlab代码_邻接矩阵

4 参考文献

[1]姚灿中. "一种基于有向动态网络拓扑的粒子群优化算法." journal6 (2006).

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【优化拓扑】基于粒子群算法优化网络拓扑附matlab代码_邻接矩阵_02