V
- the graph vertex typeE
- the graph edge typepublic class BarabasiAlbertGraphGenerator<V,E> extends Object implements GraphGenerator<V,E,V>
The 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 complete graph of $m_0$ nodes and grows the network by adding $n - m_0$ additional nodes. The additional nodes are added one by one and each of them is connected to $m$ previously added nodes, where the probability of connecting to a node is proportional to its degree.
Note that the Barabàsi-Albert model is designed for undirected networks. Nevertheless, this generator also works with directed networks where the probabilities are proportional to the sum of incoming and outgoing degrees. For a more general discussion see the paper: M. E. J. Newman. The Structure and Function of Complex Networks. SIAM Rev., 45(2):167--256, 2003.
For a version that generates trees/forests see BarabasiAlbertForestGenerator
.
Constructor and Description |
---|
BarabasiAlbertGraphGenerator(int m0,
int m,
int n)
Constructor
|
BarabasiAlbertGraphGenerator(int m0,
int m,
int n,
long seed)
Constructor
|
BarabasiAlbertGraphGenerator(int m0,
int m,
int n,
Random rng)
Constructor
|
Modifier and Type | Method and Description |
---|---|
void |
generateGraph(Graph<V,E> target,
Map<String,V> resultMap)
Generates an instance.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
generateGraph
public BarabasiAlbertGraphGenerator(int m0, int m, int n)
m0
- number of initial nodesm
- number of edges of each new node added during the network growthn
- final number of nodesIllegalArgumentException
- in case of invalid parameterspublic BarabasiAlbertGraphGenerator(int m0, int m, int n, long seed)
m0
- number of initial nodesm
- number of edges of each new node added during the network growthn
- final number of nodesseed
- seed for the random number generatorIllegalArgumentException
- in case of invalid parameterspublic BarabasiAlbertGraphGenerator(int m0, int m, int n, Random rng)
m0
- number of initial nodesm
- number of edges of each new node added during the network growthn
- final number of nodesrng
- the random number generator to useIllegalArgumentException
- in case of invalid parametersCopyright © 2019. All rights reserved.