Clear Filters
Clear Filters

How to find maximum eccentricity of a vertex of non-directed graph?

4 views (last 30 days)
How to find maximum eccentricity of a vertex of non-directed graph?
  7 Comments
Bruno Luong
Bruno Luong on 2 Oct 2018
Edited: Bruno Luong on 2 Oct 2018
Did you check out FEX for shortest path algorithms? There are a bunch of them. Not sure if you need Floyd–Warshall algorithm or loop on Dijkstra for the all edges containing the considered vertex.
Anjani Chaudhary
Anjani Chaudhary on 3 Oct 2018
Edited: Walter Roberson on 3 Oct 2018
I have a graph like this.
s = [1 1 1 2 2 2 2 3 3 3 4 4 4 5 5 5 5 6 6 6 7 7 7 7 8 8 8 8 9 9 10 10 11 11 12 12 12 12 13 13 13 14 14 14 15 15];
t = [3 8 15 3 7 8 13 1 2 11 8 10 15 7 8 10 12 7 14 13 2 5 6 12 1 2 4 5 12 14 4 5 3 13 5 7 9 14 2 6 11 6 9 12 1 4];
G = digraph(s,t)
A = adjacency(G)
TR = shortestpathtree(G,1);
p = plot(G);
A = adjacency(G)
highlight(p,TR,'EdgeColor','r')
Here I need to find eccentricity of each node and diameter of the graph. And at end check which node eccentricity is equal as the graph diameter.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 3 Oct 2018
%need a graph
s = [1 1 2 3 3 4 4 6 6 7 8 7 5];
t = [2 3 4 4 5 5 6 1 8 1 3 2 8];
G = digraph(s,t);
%now process it
allnodes = unique(G.Edges.EndNodes);
numnodes = length(allnodes);
eccentricities = zeros(1, numnodes);
for N = 1 : numnodes
thisnode = allnodes(N);
[~, D] = shortestpathtree(G,thisnode);
eccentricities(N) = max(D);
end
graph_diameter = max(eccentricities);
  7 Comments
Walter Roberson
Walter Roberson on 7 Oct 2020
s = [1 1 2 3 3 4 4 6 6 7 8 7 5];
t = [2 3 4 4 5 5 6 1 8 1 3 2 8];
G = digraph(s,t);
plot(G)

Sign in to comment.

More Answers (0)

Categories

Find more on Graph and Network Algorithms in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!