Class ClusteringCoefficientIncrement<U>

java.lang.Object
es.uam.eps.ir.relison.sna.metrics.pair.AbstractPairMetric<U>
es.uam.eps.ir.relison.sna.metrics.pair.ClusteringCoefficientIncrement<U>
Type Parameters:
U - type of the users.
All Implemented Interfaces:
PairMetric<U>

public class ClusteringCoefficientIncrement<U>
extends AbstractPairMetric<U>
Computes the increment of clustering coefficient if a link is added.
  • Field Summary

    Fields 
    Modifier and Type Field Description
    private Graph<U> graph
    The original network.
    private java.util.Map<U,​java.util.Set<U>> ins
    Incoming links.
    private double numTriads
    The current number of triads.
    private double numTriangles
    The current number of triangles
    private java.util.Map<U,​java.util.Set<U>> outs
    Outgoing links.
  • Constructor Summary

    Constructors 
    Constructor Description
    ClusteringCoefficientIncrement()  
  • Method Summary

    Modifier and Type Method Description
    java.util.Map<Pair<U>,​java.lang.Double> compute​(Graph<U> graph)
    Computes the value of the metric for all the possible pairs in the graph.
    java.util.Map<Pair<U>,​java.lang.Double> compute​(Graph<U> graph, java.util.stream.Stream<Pair<U>> pairs)
    Computes the value of the metric for a selection of pairs in the graph.
    double compute​(Graph<U> graph, U orig, U dest)
    Computes the value of the metric for a single pair of nodes
    java.util.function.Function<U,​java.lang.Double> computeDest​(Graph<U> graph, U dest)
    Given a user, computes the value of a metric for all the possible pairs in the graph where the user is the destination.
    private java.util.function.Function<U,​java.lang.Double> computeIndividual​(Graph<U> graph, U node, boolean orig)  
    java.util.function.Function<U,​java.lang.Double> computeOrig​(Graph<U> graph, U orig)
    Given a user, computes the value of a metric for all the possible pairs in the graph where the user is the origin.
    private double computePair​(Graph<U> graph, U u, U v, java.util.Set<U> uIn, java.util.Set<U> uOut, java.util.Set<U> vIn, java.util.Set<U> vOut)
    Computes the increment of the clustering coefficient for a pair of users.
    private void count​(Graph<U> graph)
    Counts the number of triads and triangles in the graph.
    private void countTrianglesAndTriads​(U u, it.unimi.dsi.fastutil.objects.Object2DoubleOpenHashMap<U> triads, it.unimi.dsi.fastutil.objects.Object2DoubleOpenHashMap<U> triangles, java.util.Set<U> uNeigh, java.util.Set<U> wNeigh)
    Auxiliar method for updating the number of triangles and triads.

    Methods inherited from class es.uam.eps.ir.relison.sna.metrics.pair.AbstractPairMetric

    averageValue, averageValue, averageValueOnlyLinks, computeOnlyLinks

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • graph

      private Graph<U> graph
      The original network.
    • numTriads

      private double numTriads
      The current number of triads.
    • numTriangles

      private double numTriangles
      The current number of triangles
    • ins

      private java.util.Map<U,​java.util.Set<U>> ins
      Incoming links.
    • outs

      private java.util.Map<U,​java.util.Set<U>> outs
      Outgoing links.
  • Constructor Details

  • Method Details

    • compute

      public double compute​(Graph<U> graph, U orig, U dest)
      Description copied from interface: PairMetric
      Computes the value of the metric for a single pair of nodes
      Parameters:
      graph - The full graph.
      orig - The origin node of the edge.
      dest - The destiny node of the edge.
      Returns:
      The value of the metric for that edge.
    • compute

      public java.util.Map<Pair<U>,​java.lang.Double> compute​(Graph<U> graph)
      Description copied from interface: PairMetric
      Computes the value of the metric for all the possible pairs in the graph.
      Specified by:
      compute in interface PairMetric<U>
      Overrides:
      compute in class AbstractPairMetric<U>
      Parameters:
      graph - The full graph.
      Returns:
      A map containing the metrics for each node.
    • compute

      public java.util.Map<Pair<U>,​java.lang.Double> compute​(Graph<U> graph, java.util.stream.Stream<Pair<U>> pairs)
      Description copied from interface: PairMetric
      Computes the value of the metric for a selection of pairs in the graph.
      Specified by:
      compute in interface PairMetric<U>
      Overrides:
      compute in class AbstractPairMetric<U>
      Parameters:
      graph - The full graph.
      pairs - A stream containing the selected pairs.
      Returns:
      A map containing the metrics for each pair in the stream that exists.
    • computePair

      private double computePair​(Graph<U> graph, U u, U v, java.util.Set<U> uIn, java.util.Set<U> uOut, java.util.Set<U> vIn, java.util.Set<U> vOut)
      Computes the increment of the clustering coefficient for a pair of users.
      Parameters:
      graph - the original graph.
      u - the origin user.
      v - the destination user.
      uIn - the incident nodes of the origin user.
      uOut - the adjacent nodes of the origin user.
      vIn - the incident nodes of the destination user.
      vOut - the adjacent nodes of the destination user.
      Returns:
      the increment of clustering coefficient for the pair of users.
    • computeOrig

      public java.util.function.Function<U,​java.lang.Double> computeOrig​(Graph<U> graph, U orig)
      Description copied from interface: PairMetric
      Given a user, computes the value of a metric for all the possible pairs in the graph where the user is the origin. As, for efficiency methods, all values might not be computed, the default value of the metric shall be retrieved from the outcome.
      Specified by:
      computeOrig in interface PairMetric<U>
      Overrides:
      computeOrig in class AbstractPairMetric<U>
      Parameters:
      graph - the graph.
      orig - the origin node.
      Returns:
      the map containing the values of the metric.
    • countTrianglesAndTriads

      private void countTrianglesAndTriads​(U u, it.unimi.dsi.fastutil.objects.Object2DoubleOpenHashMap<U> triads, it.unimi.dsi.fastutil.objects.Object2DoubleOpenHashMap<U> triangles, java.util.Set<U> uNeigh, java.util.Set<U> wNeigh)
      Auxiliar method for updating the number of triangles and triads.
      Parameters:
      u - the origin node.
      triads - the map for storing the number of triads.
      triangles - the map for storing the number of triangles.
      uNeigh - the neighborhoods of u.
      wNeigh - the neighborhoods of a neighbor of u.
    • computeDest

      public java.util.function.Function<U,​java.lang.Double> computeDest​(Graph<U> graph, U dest)
      Description copied from interface: PairMetric
      Given a user, computes the value of a metric for all the possible pairs in the graph where the user is the destination. As, for efficiency methods, all values might not be computed, the default value of the metric shall be retrieved from the outcome.
      Specified by:
      computeDest in interface PairMetric<U>
      Overrides:
      computeDest in class AbstractPairMetric<U>
      Parameters:
      graph - the graph.
      dest - the origin node.
      Returns:
      the map containing the values of the metric.
    • computeIndividual

      private java.util.function.Function<U,​java.lang.Double> computeIndividual​(Graph<U> graph, U node, boolean orig)
    • count

      private void count​(Graph<U> graph)
      Counts the number of triads and triangles in the graph.
      Parameters:
      graph - the graph.