Class BetweennessCentrality<V,​E>

  • All Implemented Interfaces:
    EdgeScorer<E,​java.lang.Double>, VertexScorer<V,​java.lang.Double>

    public class BetweennessCentrality<V,​E>
    extends java.lang.Object
    implements VertexScorer<V,​java.lang.Double>, EdgeScorer<E,​java.lang.Double>
    Computes betweenness centrality for each vertex and edge in the graph.
    See Also:
    "Ulrik Brandes: A Faster Algorithm for Betweenness Centrality. Journal of Mathematical Sociology 25(2):163-177, 2001."
    • Field Detail

      • graph

        protected Graph<V,​E> graph
      • vertex_scores

        protected java.util.Map<V,​java.lang.Double> vertex_scores
      • edge_scores

        protected java.util.Map<E,​java.lang.Double> edge_scores
    • Constructor Detail

      • BetweennessCentrality

        public BetweennessCentrality​(Graph<V,​E> graph)
        Calculates betweenness scores based on the all-pairs unweighted shortest paths in the graph.
        Parameters:
        graph - the graph for which the scores are to be calculated
      • BetweennessCentrality

        public BetweennessCentrality​(Graph<V,​E> graph,
                                     com.google.common.base.Function<? super E,​? extends java.lang.Number> edge_weights)
        Calculates betweenness scores based on the all-pairs weighted shortest paths in the graph.

        NOTE: This version of the algorithm may not work correctly on all graphs; we're still working out the bugs. Use at your own risk.

        Parameters:
        graph - the graph for which the scores are to be calculated
        edge_weights - the edge weights to be used in the path length calculations
    • Method Detail

      • initialize

        protected void initialize​(Graph<V,​E> graph)
      • computeBetweenness

        protected void computeBetweenness​(java.util.Queue<V> queue,
                                          com.google.common.base.Function<? super E,​? extends java.lang.Number> edge_weights)
      • getVertexScore

        public java.lang.Double getVertexScore​(V v)
        Specified by:
        getVertexScore in interface VertexScorer<V,​E>
        Parameters:
        v - the vertex whose score is requested
        Returns:
        the algorithm's score for this vertex
      • getEdgeScore

        public java.lang.Double getEdgeScore​(E e)
        Specified by:
        getEdgeScore in interface EdgeScorer<V,​E>
        Parameters:
        e - the edge whose score is requested
        Returns:
        the algorithm's score for this edge