資源簡介
利用MATLAB求解復雜網(wǎng)絡介數(shù)的函數(shù) 很好用。輸入?yún)?shù)是網(wǎng)絡的鄰接矩陣,輸出包括網(wǎng)絡邊介數(shù),點介數(shù),以及最短路徑
代碼片段和文件信息
function?[pNbEb]=?betweenness(A)
%求鄰接矩陣對應的網(wǎng)絡的節(jié)點介數(shù)Nb和邊介數(shù)Eb并在p中輸出所有最短路徑。在floyd算法基礎上得來。
%先利用floyd算法得到最短路徑和路徑矩陣(path(ij)=從i到j最短路的第一跳節(jié)點號),然后利用path矩陣
%求出所有最短路徑矩陣short_path,并根據(jù)short_path矩陣得到所有節(jié)點和邊的介數(shù)。
%----先求path矩陣-------------------------
%circlenet(A);
n=size(A1);
D=A;
path=zeros(nn);
for?i=1:n
???for?j=1:n
???????if?D(ij)~=inf
???????????path(ij)=j;?%j是i的后續(xù)點
???????end
???end
end
%?利用Floyed算法求最短路徑
for?k=1:n
???for?i=1:n
??????for?j=1:n
?????????if?D(ij)>D(ik)+D(kj)
????????????D(ij)=D(ik)+D(kj);
????????????path(ij)=path(ik);
?????????end
??????end
???end
end
%------再求介數(shù)-------------------------
short_path=zeros(nnn);%short_path是所有最短路徑,最后一個n表示源節(jié)點,中間的n表示目的節(jié)點,第一個n表示路徑,
????????????????????????%因為最長路徑去掉源節(jié)點還
評論
共有 條評論