/* * Copyright (c) 2003, the JUNG Project and the Regents of the University * of California * All rights reserved. * * This software is open-source under the BSD license; see either * "license.txt" or * http://jung.sourceforge.net/license.txt for a description. */ package edu.uci.ics.jung.algorithms.shortestpath; import java.util.Collection; import org.apache.commons.collections15.Transformer; import edu.uci.ics.jung.algorithms.scoring.ClosenessCentrality; import edu.uci.ics.jung.algorithms.scoring.util.VertexScoreTransformer; import edu.uci.ics.jung.graph.Hypergraph; /** * Statistics relating to vertex-vertex distances in a graph. * *
Formerly known as GraphStatistics
in JUNG 1.x.
v
in graph
,
* calculates the average shortest path length from v
* to all other vertices in graph
using the metric
* specified by d
, and returns the results in a
* Map
from vertices to Double
values.
* If there exists an ordered pair <u,v>
* for which d.getDistance(u,v)
returns null
,
* then the average distance value for u
will be stored
* as Double.POSITIVE_INFINITY
).
*
* Does not include self-distances (path lengths from v
* to v
).
*
*
To calculate the average distances, ignoring edge weights if any: *
* Map distances = DistanceStatistics.averageDistances(g, new UnweightedShortestPath(g)); ** To calculate the average distances respecting edge weights: *
* DijkstraShortestPath dsp = new DijkstraShortestPath(g, nev); * Map distances = DistanceStatistics.averageDistances(g, dsp); ** where
nev
is an instance of Transformer
that
* is used to fetch the weight for each edge.
*
* @see edu.uci.ics.jung.algorithms.shortestpath.UnweightedShortestPath
* @see edu.uci.ics.jung.algorithms.shortestpath.DijkstraDistance
*/
public static v
in g
,
* calculates the average shortest path length from v
* to all other vertices in g
, ignoring edge weights.
* @see #diameter(Hypergraph)
* @see edu.uci.ics.jung.algorithms.scoring.ClosenessCentrality
*/
public static g
using the metric
* specified by d
. The diameter is defined to be
* the maximum, over all pairs of vertices u,v
,
* of the length of the shortest path from u
to
* v
. If the graph is disconnected (that is, not
* all pairs of vertices are reachable from one another), the
* value returned will depend on use_max
:
* if use_max == true
, the value returned
* will be the the maximum shortest path length over all pairs of connected
* vertices; otherwise it will be Double.POSITIVE_INFINITY
.
*/
public static g
using the metric
* specified by d
. The diameter is defined to be
* the maximum, over all pairs of vertices u,v
,
* of the length of the shortest path from u
to
* v
, or Double.POSITIVE_INFINITY
* if any of these distances do not exist.
* @see #diameter(Hypergraph, Distance, boolean)
*/
public static g
, ignoring edge weights.
* @see #diameter(Hypergraph, Distance, boolean)
*/
public static