|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.graphstream.stream.SourceBase
org.graphstream.algorithm.generator.BaseGenerator
org.graphstream.algorithm.generator.DorogovtsevMendesGenerator
public class DorogovtsevMendesGenerator
Dorogovtsev - Mendes graph generator.
This generator creates graph using the Dorogovtsev - Mendes algorithm. This starts by creating three nodes and tree edges, making a triangle, and then add one node at a time. Each time a node is added, an edge is chosen randomly and the node is connected via two new edges to the two extremities of the chosen edge.
This process generates a power-low degree distribution, as nodes that have more edges have more chances to be selected since their edges are more represented in the edge set.
The Dorogovtsev - Mendes algorithm always produce planar graphs.
The more this generator is iterated, the more nodes are generated. It can
therefore generate trees of any size. A each call to nextEvents()
,
a new node and two edges are added.
Graph graph = new SingleGraph("Dorogovtsev mendes"); Generator gen = new DorogovtsevMendesGenerator(); gen.addSink(graph); gen.begin(); for(int i=0; i<100; i++) { gen.nextEvents(); } gen.end(); graph.display();
This kind of graph is described, among others, in the "Evolution of networks" by Dorogovtsev and Mendes.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class org.graphstream.stream.SourceBase |
---|
org.graphstream.stream.SourceBase.ElementType |
Constructor Summary | |
---|---|
DorogovtsevMendesGenerator()
Create a new generator with default random object. |
|
DorogovtsevMendesGenerator(Random random)
New generator with the given random number generator. |
Method Summary | |
---|---|
void |
begin()
Init the generator. |
void |
end()
End the graph generation by finalizing it. |
boolean |
nextEvents()
Step of the DorogovtsevMendes 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 |
---|
public DorogovtsevMendesGenerator()
public DorogovtsevMendesGenerator(Random random)
random
- The number generator to use.Method Detail |
---|
public void begin()
Generator.begin()
public boolean nextEvents()
Generator.nextEvents()
public void end()
BaseGenerator
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.
end
in interface Generator
end
in class BaseGenerator
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |