其他分享
首页 > 其他分享> > 随机网络中的孤立点(片)处理

随机网络中的孤立点(片)处理

作者:互联网

在用ER随机图生成随机网络的时候,如果连接概率设置得小,很有可能会产生孤立的节点或者比较小的分散的连通片,这对分析网络的性能造成了一定的困扰。

有些情况下不想出现孤立点,否则在网络处理的时候会很不方便,采用最大连通片的模式来消除孤立点,连通片求解对于有向网络和无向网络是有区别的,为了方便,这里一律采用转化为无向网络的方式来进行处理。具体操作见下面代码:

%% Q为邻接矩阵
[a,b]=components(sparse(triu(Q)+triu(Q)'));
a1=find(a==1); % 找出最大连通片
for i=2:max(a) % 在其余的孤立连通片中进行循环
    ind=find(a==i); % 找到当前孤立点(片)连通片
    h=randperm(length(ind),1); % 在当前孤立连通片中任取一点
    k=randperm(length(a1),1);  % 在最大连通片中任取一点
    Q(ind(h),a1(k))=1;  % 进行连接
    Q(a1(k),ind(h))=1;
end

处理后的网络结构变化如下图所示:
存在孤立点的网络
上图为存在孤立点的网络。
处理后没有孤立点的网络
上图为处理后没有孤立点的网络。

标签:连通,孤立,网络,a1,随机,ind,片中
来源: https://blog.csdn.net/qq_30082785/article/details/123589279