您的位置:首页 > 理论基础 > 计算机网络

无向网络全局以及局部效率matlab程序

2017-06-28 14:30 197 查看
在网络规模不是太大时(网络节点小于1000为最佳),用matlab里graphallshortestpaths函数求解网络的效率是比较简单地,下面是求解无向网络效率程序

%全局效率

A=zeros(5,5);

A(1,2)=1;A(2,1)=1;A(2,3)=1;A(3,2)=1;A(1,3)=1;A(3,1)=1;A(4,2)=1;

A(2,4)=1;A(3,4)=1;A(4,3)=1;A(5,2)=1;A(2,5)=1;A(3,5)=1;A(5,3)=1;

% %%%%%%%%%%%%%%%%%%%%%%%只需把连接矩阵换成对应的矩阵即可

A=sparse(A);

ShortPath=1./graphallshortestpaths(A);

ShortPath(ShortPath==inf)=0;

Eglob=(1/(length(A)*(length(A)-1)))*sum(sum(ShortPath))

%局部效率

A=zeros(5,5);

A(2,3)=1;A(3,2)=1;A(5,2)=1;A(2,5)=1;A(3,5)=1;A(5,3)=1;

%%%%%%%%%%%%%%%%%%%只需把连接矩阵换成对应的矩阵即可

Eloca=0;

for i=1:length(A)

   Neigh=find(A(i,:)==1);

   if numel(Neigh)>1

       NeighPath=A(Neigh,Neigh);

        NeighPath=sparse(NeighPath);

       ShortPath=1./graphallshortestpaths(NeighPath);

      ShortPath(ShortPath==inf)=0;

       Eloca=Eloca+(1/(length(NeighPath)*(length(NeighPath)-1)))*sum(sum(ShortPath));

  end

end

Eloca=1./(length(A))*Eloca
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: