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

    Methods inherited from interface com.google.common.base.Supplier

    equals
  • 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.