org.graphstream.algorithm.generator
Class RandomFixedDegreeDynamicGraphGenerator

java.lang.Object
  extended by org.graphstream.stream.SourceBase
      extended by org.graphstream.algorithm.generator.BaseGenerator
          extended by org.graphstream.algorithm.generator.RandomFixedDegreeDynamicGraphGenerator
All Implemented Interfaces:
Generator, org.graphstream.stream.Source

public class RandomFixedDegreeDynamicGraphGenerator
extends BaseGenerator

This is a graph generator that generates dynamic random graphs. The principle:

A graph consists in a set of vertices and a set of edges. The dynamic relies on 4 kinds of steps of events: at each step:

This generator is characterized by:

How to build such graphs ? There exist at least one mathematical function for doing that f(step) = nbVertices*log(step)/log(step+"Pente") the larger "Pente", the softer the "pente" of the curve. Given f(step), it is possible to compute nbCreations and nbDeletions together with the graph nervosity. f(step) represents the number of vertices that should be present within the graph given the step and the value of the parameter "Pente". However, as our graph is dynamic, some vertices may be deleted while some other vertices may be added to the graph. Question: could it be possible to build a dynamic graph that reaches a stable state (stabilization of the number of vertices, and stabilization of some other properties), just by adding some constraints/characteristics on each node?

Since:
20080616
Author:
Frédéric Guinand

Nested Class Summary
 
Nested classes/interfaces inherited from class org.graphstream.stream.SourceBase
org.graphstream.stream.SourceBase.ElementType
 
Constructor Summary
RandomFixedDegreeDynamicGraphGenerator()
          Create a new RandomFixedDegreeDynamicGraphGenerator generator with default values for attributes.
RandomFixedDegreeDynamicGraphGenerator(int nbVertices, double meanDegreeLimit, double nervousness)
          Create a new RandomFixedDegreeDynamicGraphGenerator generator.
 
Method Summary
 void begin()
          Begin the graph generation.
 void end()
          End the graph generation by finalizing it.
 double meanDegree()
          This method computes the mean degree of the graph.
 boolean nextEvents()
          Step of the generator.
 
Methods inherited from class org.graphstream.algorithm.generator.BaseGenerator
addEdgeAttribute, addEdgeLabels, addNodeAttribute, addNodeLabels, isUsingInternalGraph, removeEdgeAttribute, removeNodeAttribute, setDirectedEdges, setEdgeAttributesRange, setNodeAttributesRange, setRandomSeed, setUseInternalGraph
 
Methods inherited from class org.graphstream.stream.SourceBase
addAttributeSink, addElementSink, addSink, attributeSinks, clearAttributeSinks, clearElementSinks, clearSinks, elementSinks, removeAttributeSink, removeElementSink, removeSink, sendAttributeChangedEvent, sendAttributeChangedEvent, sendEdgeAdded, sendEdgeAdded, sendEdgeRemoved, sendEdgeRemoved, sendGraphCleared, sendGraphCleared, sendNodeAdded, sendNodeAdded, sendNodeRemoved, sendNodeRemoved, sendStepBegins, sendStepBegins
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.graphstream.stream.Source
addAttributeSink, addElementSink, addSink, clearAttributeSinks, clearElementSinks, clearSinks, removeAttributeSink, removeElementSink, removeSink
 

Constructor Detail

RandomFixedDegreeDynamicGraphGenerator

public RandomFixedDegreeDynamicGraphGenerator()
Create a new RandomFixedDegreeDynamicGraphGenerator generator with default values for attributes.

See Also:
RandomFixedDegreeDynamicGraphGenerator(int, double, double)

RandomFixedDegreeDynamicGraphGenerator

public RandomFixedDegreeDynamicGraphGenerator(int nbVertices,
                                              double meanDegreeLimit,
                                              double nervousness)
Create a new RandomFixedDegreeDynamicGraphGenerator generator.

Parameters:
nbVertices - The number of vertices.
meanDegreeLimit - The average degree.
nervousness - The nervousness.
Method Detail

meanDegree

public double meanDegree()
This method computes the mean degree of the graph.


begin

public void begin()
Description copied from interface: Generator
Begin the graph generation. This usually is the place for initialization of the generator. After calling this method, call the Generator.nextEvents() method to add elements to the graph.


nextEvents

public boolean nextEvents()
Step of the generator. Some nodes will be removed according to the nervousness, then new nodes and new edges will be added.

Returns:
true while there are elements to add to the graph.
See Also:
Generator.nextEvents()

end

public void end()
Description copied from class: BaseGenerator
End the graph generation by finalizing it. Once the Generator.nextEvents() method returned false (or even if you stop before), this method must be called to finish the graph. In addition, BaseGenerator adds a "clear" operations that removes all the kept edges and nodes identifiers and the associated data.

Specified by:
end in interface Generator
Overrides:
end in class BaseGenerator


Copyright © 2011. All Rights Reserved.