edu.uci.ics.jung.algorithms.generators.random
Class EppsteinPowerLawGenerator<V,E>

java.lang.Object
  extended by edu.uci.ics.jung.algorithms.generators.random.EppsteinPowerLawGenerator<V,E>
All Implemented Interfaces:
GraphGenerator<V,E>, org.apache.commons.collections15.Factory<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
EppsteinPowerLawGenerator(org.apache.commons.collections15.Factory<Graph<V,E>> graphFactory, org.apache.commons.collections15.Factory<V> vertexFactory, org.apache.commons.collections15.Factory<E> edgeFactory, int numVertices, int numEdges, int r)
          Creates an instance with the specified factories and specifications.
 
Method Summary
 Graph<V,E> create()
          Generates a graph whose degree distribution approximates a power-law.
protected  Graph<V,E> initializeGraph()
           
 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 Detail

EppsteinPowerLawGenerator

public EppsteinPowerLawGenerator(org.apache.commons.collections15.Factory<Graph<V,E>> graphFactory,
                                 org.apache.commons.collections15.Factory<V> vertexFactory,
                                 org.apache.commons.collections15.Factory<E> edgeFactory,
                                 int numVertices,
                                 int numEdges,
                                 int r)
Creates an instance with the specified factories and specifications.

Parameters:
graphFactory - the factory to use to generate the graph
vertexFactory - the factory to use to create vertices
edgeFactory - the factory 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 Detail

initializeGraph

protected Graph<V,E> initializeGraph()

create

public Graph<V,E> create()
Generates a graph whose degree distribution approximates a power-law.

Specified by:
create in interface org.apache.commons.collections15.Factory<Graph<V,E>>
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.


Copyright © 2009. All Rights Reserved.