Use this if you are using igraph from R
These functions implement evolving network models based on different vertex types.
sample_traits_callaway(nodes, types, edge.per.step = 1, type.dist = rep(1, types), pref.matrix = matrix(1, types, types), directed = FALSE) traits_callaway(...) sample_traits(nodes, types, k = 1, type.dist = rep(1, types), pref.matrix = matrix(1, types, types), directed = FALSE) traits(...)
nodes |
The number of vertices in the graph. |
types |
The number of different vertex types. |
edge.per.step |
The number of edges to add to the graph per time step. |
type.dist |
The distribution of the vertex types. This is assumed to be stationary in time. |
pref.matrix |
A matrix giving the preferences of the given vertex types. These should be probabilities, ie. numbers between zero and one. |
directed |
Logical constant, whether to generate directed graphs. |
... |
Passed to the constructor, |
k |
The number of trials per time step, see details below. |
For sample_traits_callaway
the simulation goes like this: in each
discrete time step a new vertex is added to the graph. The type of this
vertex is generated based on type.dist
. Then two vertices are
selected uniformly randomly from the graph. The probability that they will
be connected depends on the types of these vertices and is taken from
pref.matrix
. Then another two vertices are selected and this is
repeated edges.per.step
times in each time step.
For sample_traits
the simulation goes like this: a single vertex is
added at each time step. This new vertex tries to connect to k
vertices in the graph. The probability that such a connection is realized
depends on the types of the vertices involved and is taken from
pref.matrix
.
A new graph object.
Gabor Csardi csardi.gabor@gmail.com
# two types of vertices, they like only themselves g1 <- sample_traits_callaway(1000, 2, pref.matrix=matrix( c(1,0,0,1), nc=2)) g2 <- sample_traits(1000, 2, k=2, pref.matrix=matrix( c(1,0,0,1), nc=2))