Class Lattice2DGenerator<V,E>

java.lang.Object
edu.uci.ics.jung.algorithms.generators.Lattice2DGenerator<V,E>
All Implemented Interfaces:
com.google.common.base.Supplier<Graph<V,E>>, GraphGenerator<V,E>, Supplier<Graph<V,E>>
Direct Known Subclasses:
KleinbergSmallWorldGenerator

public class Lattice2DGenerator<V,E> extends Object implements GraphGenerator<V,E>
Simple generator of an m x n lattice where each vertex is incident with each of its neighbors (to the left, right, up, and down). May be toroidal, in which case the vertices on the edges are connected to their counterparts on the opposite edges as well.

If the graph Supplier supplied has a default edge type of EdgeType.DIRECTED, then edges will be created in both directions between adjacent vertices.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int
     
    protected com.google.common.base.Supplier<E>
     
    protected com.google.common.base.Supplier<? extends Graph<V,E>>
     
    protected boolean
     
    protected boolean
     
    protected int
     
    private List<V>
     
    protected com.google.common.base.Supplier<V>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Lattice2DGenerator(com.google.common.base.Supplier<? extends Graph<V,E>> graph_factory, com.google.common.base.Supplier<V> vertex_factory, com.google.common.base.Supplier<E> edge_factory, int latticeSize, boolean isToroidal)
    Constructs a generator of square lattices of size latticeSize with the specified parameters.
    Lattice2DGenerator(com.google.common.base.Supplier<? extends Graph<V,E>> graph_factory, com.google.common.base.Supplier<V> vertex_factory, com.google.common.base.Supplier<E> edge_factory, int row_count, int col_count, boolean isToroidal)
    Creates a generator of row_count x col_count lattices with the specified parameters.
  • Method Summary

    Modifier and Type
    Method
    Description
    get()
    Generates a graph based on the constructor-specified settings.
    protected int
    getCol(int i)
     
    int
    Returns the number of edges found in a lattice of this generator's specifications.
    protected int
    getIndex(int i, int j)
     
    protected int
    getRow(int i)
     
    protected V
    getVertex(int i)
     
    protected V
    getVertex(int i, int j)
     
    protected int
    mod(int i, int modulus)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • row_count

      protected int row_count
    • col_count

      protected int col_count
    • is_toroidal

      protected boolean is_toroidal
    • is_directed

      protected boolean is_directed
    • graph_factory

      protected com.google.common.base.Supplier<? extends Graph<V,E>> graph_factory
    • vertex_factory

      protected com.google.common.base.Supplier<V> vertex_factory
    • edge_factory

      protected com.google.common.base.Supplier<E> edge_factory
    • v_array

      private List<V> v_array
  • Constructor Details

    • Lattice2DGenerator

      public Lattice2DGenerator(com.google.common.base.Supplier<? extends Graph<V,E>> graph_factory, com.google.common.base.Supplier<V> vertex_factory, com.google.common.base.Supplier<E> edge_factory, int latticeSize, boolean isToroidal)
      Constructs a generator of square lattices of size latticeSize with the specified parameters.
      Parameters:
      graph_factory - used to create the Graph for the lattice
      vertex_factory - used to create the lattice vertices
      edge_factory - used to create the lattice edges
      latticeSize - the number of rows and columns of the lattice
      isToroidal - if true, the created lattice wraps from top to bottom and left to right
    • Lattice2DGenerator

      public Lattice2DGenerator(com.google.common.base.Supplier<? extends Graph<V,E>> graph_factory, com.google.common.base.Supplier<V> vertex_factory, com.google.common.base.Supplier<E> edge_factory, int row_count, int col_count, boolean isToroidal)
      Creates a generator of row_count x col_count lattices with the specified parameters.
      Parameters:
      graph_factory - used to create the Graph for the lattice
      vertex_factory - used to create the lattice vertices
      edge_factory - used to create the lattice edges
      row_count - the number of rows in the lattice
      col_count - the number of columns in the lattice
      isToroidal - if true, the created lattice wraps from top to bottom and left to right
  • Method Details

    • get

      public Graph<V,E> get()
      Generates a graph based on the constructor-specified settings.
      Specified by:
      get in interface com.google.common.base.Supplier<V>
      Specified by:
      get in interface Supplier<V>
      Returns:
      the generated graph
    • getGridEdgeCount

      public int getGridEdgeCount()
      Returns the number of edges found in a lattice of this generator's specifications. (This is useful for subclasses that may modify the generated graphs to add more edges.)
      Returns:
      the number of edges that this generator will generate
    • getIndex

      protected int getIndex(int i, int j)
    • mod

      protected int mod(int i, int modulus)
    • getVertex

      protected V getVertex(int i, int j)
      Parameters:
      i - row index into the lattice
      j - column index into the lattice
      Returns:
      the vertex at position (i mod row_count, j mod col_count)
    • getVertex

      protected V getVertex(int i)
      Parameters:
      i - row index into the lattice
      Returns:
      the ith vertex (counting row-wise)
    • getRow

      protected int getRow(int i)
      Parameters:
      i - index of the vertex whose row we want
      Returns:
      the row in which the vertex with index i is found
    • getCol

      protected int getCol(int i)
      Parameters:
      i - index of the vertex whose column we want
      Returns:
      the column in which the vertex with index i is found