org.jgrapht.generate

## Class RandomGraphGenerator<V,E>

- java.lang.Object
- - org.jgrapht.generate.RandomGraphGenerator<V,E>

- All Implemented Interfaces:
    GraphGenerator<V,E,V>

      public class RandomGraphGenerator<V,E>
      extends Object
      implements GraphGenerator<V,E,V>

  This Generator creates a random-topology graph of a specified number of vertexes and edges. An instance of this generator will always return the same graph-topology in calls to generateGraph(). The vertexes can be different (depends on the VertexFactory implementation)

  However, two instances which use the same constructor parameters will produce two different random graphs (note: as with any random generator, there is always a small possibility that two instances will create the same results).

  Since:
    Aug 6, 2005
  Author:
    Assaf Lehr

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `RandomGraphGenerator.DefaultEdgeTopologyFactory<VV,EE>` Default implementation of the EdgeTopologyFactory interface.
    `static interface` | `RandomGraphGenerator.EdgeTopologyFactory<VV,EE>` This class is used to generate the edge topology for a graph.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `numOfEdges`
    `protected int` | `numOfVertexes`
    `protected Random` | `randomizer`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RandomGraphGenerator(int aNumOfVertexes, int aNumOfEdges)`
    `RandomGraphGenerator(int aNumOfVertexes, int aNumOfEdges, long seed)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `generateGraph(Graph<V,E> target, VertexFactory<V> vertexFactory, Map<String,V> resultMap)` (non-Javadoc)
    `long` | `getRandomSeed()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### numOfVertexes

          protected int numOfVertexes

    - #### numOfEdges

          protected int numOfEdges

    - #### randomizer

          protected Random randomizer

  - ### Constructor Detail

    - #### RandomGraphGenerator

          public RandomGraphGenerator(int aNumOfVertexes,
                              int aNumOfEdges)

    - #### RandomGraphGenerator

          public RandomGraphGenerator(int aNumOfVertexes,
                              int aNumOfEdges,
                              long seed)

  - ### Method Detail

    - #### getRandomSeed

          public long getRandomSeed()

    - #### generateGraph

          public void generateGraph(Graph<V,E> target,
                           VertexFactory<V> vertexFactory,
                           Map<String,V> resultMap)

      (non-Javadoc)
      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` - if non-null, receives implementation-specific mappings from String roles to graph elements (or collections of graph elements)
      Throws:
        `IllegalArgumentException` - if the aNumOfEdges passed in the constructor, cannot be created on a graph of the concrete type with aNumOfVertexes. org.jgrapht.generate.RandomGraphGenerator.DefaultEdgeTopologyFactory#isNumberOfEdgesValid(org.jgrapht.Graph, int)
      See Also:
        `GraphGenerator.generateGraph(Graph, VertexFactory, Map)`

Copyright © 2016. All rights reserved.