Matlab最近对图形和网络算法的支持允许通过在{{3}上调用函数distances
来获取从一个顶点到一个矩阵的任何顶点的所有距离。对象。
在它的对角线上,这个矩阵是零。那么如何从任何顶点到自身获得最短路径?换句话说,通过该顶点的最短周期是什么?
答案 0 :(得分:1)
dist = distances(G);
% big matrix [nVertices x nVertices] containing Inf (no connection)
% Problem: diagonal is zero
circDist = dist+dist';
% [nVertices x nVertices] Distance for circulatory paths: A→B + B→A
[circDist,minInd] = min(circDist+diag(Inf(nVertices,1)),[],1);
% [nVertices x 1] take circulatory circle with smallest distance