barabasi.game()
was renamed to sample_pa()
to create a more
consistent API.
barabasi.game(
n,
power = 1,
m = NULL,
out.dist = NULL,
out.seq = NULL,
out.pref = FALSE,
zero.appeal = 1,
directed = TRUE,
algorithm = c("psumtree", "psumtree-multiple", "bag"),
start.graph = NULL
)
Number of vertices.
The power of the preferential attachment, the default is one, i.e. linear preferential attachment.
Numeric constant, the number of edges to add in each time step This
argument is only used if both out.dist
and out.seq
are omitted
or NULL.
Numeric vector, the distribution of the number of edges to
add in each time step. This argument is only used if the out.seq
argument is omitted or NULL.
Numeric vector giving the number of edges to add in each time step. Its first element is ignored as no edges are added in the first time step.
Logical, if true the total degree is used for calculating the citation probability, otherwise the in-degree is used.
The ‘attractiveness’ of the vertices with no adjacent edges. See details below.
Whether to create a directed graph.
The algorithm to use for the graph generation.
psumtree
uses a partial prefix-sum tree to generate the graph, this
algorithm can handle any power
and zero.appeal
values and
never generates multiple edges. psumtree-multiple
also uses a
partial prefix-sum tree, but the generation of multiple edges is allowed.
Before the 0.6 version igraph used this algorithm if power
was not
one, or zero.appeal
was not one. bag
is the algorithm that
was previously (before version 0.6) used if power
was one and
zero.appeal
was one as well. It works by putting the ids of the
vertices into a bag (multiset, really), exactly as many times as their
(in-)degree, plus once more. Then the required number of cited vertices are
drawn from the bag, with replacement. This method might generate multiple
edges. It only works if power
and zero.appeal
are equal one.
NULL
or an igraph graph. If a graph, then the
supplied graph is used as a starting graph for the preferential attachment
algorithm. The graph should have at least one vertex. If a graph is supplied
here and the out.seq
argument is not NULL
, then it should
contain the out degrees of the new vertices only, not the ones in the
start.graph
.