Matlab digraph最短周期

时间:2016-11-22 19:03:18

标签: matlab

Matlab最近对图形和网络算法的支持允许通过在{{3}上调用函数distances来获取从一个顶点到一个矩阵的任何顶点的所有距离。对象。

在它的对角线上,这个矩阵是零。那么如何从任何顶点到自身获得最短路径?换句话说,通过该顶点的最短周期是什么?

1 个答案:

答案 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