Generates a scale-free random graph based on Bollabas et al. (2001), also know as
Linearized Chord Diagram (LCD) which has nice mathematical propoerties.
And also scale-free homophilic networks when an vertex attribute
Integer scalar. Number of initial vertices in the graph.
Integer scalar. Number of new edges per vertex added.
Integer scalar. Number of time periods (steps).
Any class of accepted graph format (see
Logical scalar. When
Numeric vector of length
Based on Ballobás et al. (2001) creates a directed random graph of size
t + m0. A big difference with B-A model
is that this allows for loops (self/auto edges) and further multiple links,
nevertheless, as t increases, the number of such cases reduces.
By default, the degree of the first
m0 vertices is set to be 2 (loops).
m>1, as described in the paper, each new link from the new vertex
is added one at a time
“counting ‘outward half’ of the edge being added as already contributing to the degrees”.
self=FALSE, the generated graph is created without autolinks. This
means that at the beginning, if the number of links equals zero, all vertices
have the same probability of receiving a new link.
eta is passed, it implements the model specified in De Almeida et al.
(2013), a scale-free homophilic network. To do so
eta is rescaled to
be between 0 and 1 and the probability that the node i links to node j
is as follows:
Where A(ij) = |eta(i) - eta(j)| and k(j) is the degree of the j-th vertex.
graph is not provided, a static graph, otherwise an expanded
t aditional vertices) of the same class as
The resulting graph will have
graph$meta$undirected = FALSE if it is of
attr(graph, "undirected")=FALSE otherwise.
George G. Vega Yon
Bollobás, B´., Riordan, O., Spencer, J., & Tusnády, G. (2001). The degree sequence of a scale-free random graph process. Random Structures & Algorithms, 18(3), 279–290. http://doi.org/10.1002/rsa.1009
Albert-László Barabási, & Albert, R. (1999). Emergence of Scaling in Random Networks. Science, 286(5439), 509–512. http://doi.org/10.1126/science.286.5439.509
Albert-László Barabási. (2016). Network Science: (1st ed.). Cambridge University Press. Retrieved from http://barabasi.com/book/network-science
De Almeida, M. L., Mendes, G. A., Madras Viswanathan, G., & Da Silva, L. R. (2013). Scale-free homophilic network. European Physical Journal B, 86(2). http://doi.org/10.1140/epjb/e2012-30802-x
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
# Using another graph as a base graph --------------------------------------- graph <- rgraph_ba() graph graph <- rgraph_ba(graph=graph) # Generating a scale-free homophilic graph (no loops) ----------------------- set.seed(112) eta <- rep(c(1,1,1,1,2,2,2,2), 20) ans <- rgraph_ba(t=length(eta) - 1, m=3, self=FALSE, eta=eta) # Converting it to igraph (so we can plot it) ig <- igraph::graph_from_adjacency_matrix(ans) # Neat plot showing the output oldpar <- par(no.readonly = TRUE) par(mfrow=c(1,2)) plot(ig, vertex.color=c("red","blue")[factor(eta)], vertex.label=NA, vertex.size=5, main="Scale-free homophilic graph") suppressWarnings(plot(dgr(ans), main="Degree distribution")) par(oldpar)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.