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

5 visualizzazioni (ultimi 30 giorni)
How to find maximum eccentricity of a vertex of non-directed graph?
  7 Commenti
Bruno Luong
Bruno Luong il 2 Ott 2018
Modificato: Bruno Luong il 2 Ott 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 il 3 Ott 2018
Modificato: Walter Roberson il 3 Ott 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.

Accedi per commentare.

Risposta accettata

Walter Roberson
Walter Roberson il 3 Ott 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 Commenti
Walter Roberson
Walter Roberson il 7 Ott 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)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Just for fun in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by