org.jgrapht.generate
Class ScaleFreeGraphGenerator<V,E>

java.lang.Object
  extended by org.jgrapht.generate.ScaleFreeGraphGenerator<V,E>
All Implemented Interfaces:
GraphGenerator<V,E,V>

public class ScaleFreeGraphGenerator<V,E>
extends java.lang.Object
implements GraphGenerator<V,E,V>

Generates directed or undirected scale-free network of any size. Scale-free network is a connected graph, where degrees of vertices are distributed in unusual way. There are many vertices with small degrees and only small amount of vertices with big degrees.

Author:
Ilya Razenshteyn

Constructor Summary
ScaleFreeGraphGenerator(int size)
          Constructs a new ScaleFreeGraphGenerator.
ScaleFreeGraphGenerator(int size, long seed)
          Constructs a new ScaleFreeGraphGenerator using fixed seed for the random generator.
 
Method Summary
 void generateGraph(Graph<V,E> target, VertexFactory<V> vertexFactory, java.util.Map<java.lang.String,V> resultMap)
          Generates scale-free network with size passed to the constructor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ScaleFreeGraphGenerator

public ScaleFreeGraphGenerator(int size)
Constructs a new ScaleFreeGraphGenerator.

Parameters:
size - number of vertices to be generated

ScaleFreeGraphGenerator

public ScaleFreeGraphGenerator(int size,
                               long seed)
Constructs a new ScaleFreeGraphGenerator using fixed seed for the random generator.

Parameters:
size - number of vertices to be generated
seed - initial seed for the random generator
Method Detail

generateGraph

public void generateGraph(Graph<V,E> target,
                          VertexFactory<V> vertexFactory,
                          java.util.Map<java.lang.String,V> resultMap)
Generates scale-free network with size passed to the constructor. Each call of this method produces identical output (but if target is an undirected graph, the directions of edges will be lost).

Specified by:
generateGraph in interface GraphGenerator<V,E,V>
Parameters:
target - receives the generated edges and vertices; if this is non-empty on entry, the result will be a disconnected graph since generated elements will not be connected to existing elements
vertexFactory - called to produce new vertices
resultMap - unused parameter