Class BarabasiAlbertForestGenerator<V,E>

java.lang.Object
org.jgrapht.generate.BarabasiAlbertForestGenerator<V,E>
Type Parameters:
V - the graph vertex type
E - the graph edge type
All Implemented Interfaces:
GraphGenerator<V,E,V>

public class BarabasiAlbertForestGenerator<V,E> extends Object implements GraphGenerator<V,E,V>
Barabási-Albert growth and preferential attachment forest generator.

The general graph generator is described in the paper: A.-L. Barabási and R. Albert. Emergence of scaling in random networks. Science, 286:509-512, 1999.

The generator starts with a $t$ isolated nodes and grows the network by adding $n - t$ additional nodes. The additional nodes are added one by one and each of them is connected to one previously added node, where the probability of connecting to a node is proportional to its degree.

Note that this Barabàsi-Albert generator only works on undirected graphs. For a version that works on both directed and undirected graphs and generates only connected graphs see BarabasiAlbertGraphGenerator.

Author:
Alexandru Valeanu
  • Constructor Details

    • BarabasiAlbertForestGenerator

      public BarabasiAlbertForestGenerator(int t, int n)
      Constructor
      Parameters:
      t - number of trees
      n - final number of nodes
      Throws:
      IllegalArgumentException - in case of invalid parameters
    • BarabasiAlbertForestGenerator

      public BarabasiAlbertForestGenerator(int t, int n, long seed)
      Constructor
      Parameters:
      t - number of trees
      n - final number of nodes
      seed - seed for the random number generator
      Throws:
      IllegalArgumentException - in case of invalid parameters
    • BarabasiAlbertForestGenerator

      public BarabasiAlbertForestGenerator(int t, int n, Random rng)
      Constructor
      Parameters:
      t - number of trees
      n - final number of nodes
      rng - the random number generator to use
      Throws:
      IllegalArgumentException - in case of invalid parameters
  • Method Details