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>
,java.util.function.Supplier<Graph<V,E>>
public class EppsteinPowerLawGenerator<V,E> extends java.lang.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Graph<V,E>
get()
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.
-
-
-
Constructor Detail
-
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 graphvertexFactory
- the Supplier to use to create verticesedgeFactory
- the Supplier to use to create edgesnumVertices
- the number of vertices for the generated graphnumEdges
- 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
-
-