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.
Author:
Scott White
See Also:
  • "A Steady State Model for Graph Power Law by David Eppstein and Joseph Wang"
  • Constructor Summary

    Constructors
    Constructor
    Description
    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.
  • Method Summary

    Modifier and Type
    Method
    Description
    get()
    Generates a graph whose degree distribution approximates a power-law.
    protected Graph<V,E>
     
    void
    setSeed(long seed)
    Sets the seed for the random number generator.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 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.