Generate a new random graph from a given graph by randomly adding/removing edges
Sample a new graph by perturbing the adjacency matrix of a given graph and shuffling its vertices.
sample_correlated_gnp(old.graph, corr, p = old.graph$p, permutation = NULL)
- The original graph.
- A scalar in the unit interval, the target Pearson correlation between the adjacency matrices of the original the generated graph (the adjacency matrix being used as a vector).
- A numeric scalar, the probability of an edge between two vertices, it must in the open (0,1) interval.
- A numeric vector, a permutation vector that is
applied on the vertices of the first graph, to get the second graph. If
NULL, the vertices are not permuted.
Please see the reference given below.
- An unweighted graph of the same size as
old.graphsuch that the correlation coefficient between the entries of the two adjacency matrices is
corr. Note each pair of corresponding matrix entries is a pair of correlated Bernoulli random variables.
Lyzinski, V., Fishkind, D. E., Priebe, C. E. (2013). Seeded
graph matching for correlated Erdos-Renyi graphs.
g <- sample_gnp(1000, .1) g2 <- sample_correlated_gnp(g, corr = 0.5) cor(as.vector(g), as.vector(g2)) g g2