Class EppsteinPowerLawGenerator<V,E>

java.lang.Object
edu.uci.ics.jung.algorithms.generators.random.EppsteinPowerLawGenerator<V,E>
All Implemented Interfaces:
com.google.common.base.Supplier<Graph<V,E>>, GraphGenerator<V,E>, Supplier<Graph<V,E>>

public class EppsteinPowerLawGenerator<V,E> extends Object implements GraphGenerator<V,E>
Graph generator that generates undirected graphs with power-law degree distributions.
See Also:
  • "A Steady State Model for Graph Power Law by David Eppstein and Joseph Wang"
  • Field Details

    • mNumVertices

      private int mNumVertices
    • mNumEdges

      private int mNumEdges
    • mNumIterations

      private int mNumIterations
    • mMaxDegree

      private double mMaxDegree
    • mRandom

      private Random mRandom
    • graphFactory

      private com.google.common.base.Supplier<Graph<V,E>> graphFactory
    • vertexFactory

      private com.google.common.base.Supplier<V> vertexFactory
    • edgeFactory

      private com.google.common.base.Supplier<E> edgeFactory
  • Constructor Details

    • EppsteinPowerLawGenerator

      public EppsteinPowerLawGenerator(com.google.common.base.Supplier<Graph<V,E>> graphFactory, com.google.common.base.Supplier<V> vertexFactory, com.google.common.base.Supplier<E> edgeFactory, int numVertices, int numEdges, int r)
      Creates an instance with the specified factories and specifications.
      Parameters:
      graphFactory - the Supplier to use to generate the graph
      vertexFactory - the Supplier to use to create vertices
      edgeFactory - the Supplier to use to create edges
      numVertices - the number of vertices for the generated graph
      numEdges - the number of edges the generated graph will have, should be Theta(numVertices)
      r - the number of iterations to use; the larger the value the better the graph's degree distribution will approximate a power-law
  • Method Details

    • initializeGraph

      protected Graph<V,E> initializeGraph()
    • get

      public Graph<V,E> get()
      Generates a graph whose degree distribution approximates a power-law.
      Specified by:
      get in interface com.google.common.base.Supplier<V>
      Specified by:
      get in interface Supplier<V>
      Returns:
      the generated graph
    • setSeed

      public void setSeed(long seed)
      Sets the seed for the random number generator.
      Parameters:
      seed - input to the random number generator.