rgraph_ws {netdiffuseR} | R Documentation |
Watts-Strogatz model
Description
Generates a small-world random graph.
Usage
rgraph_ws(
n,
k,
p,
both.ends = FALSE,
self = FALSE,
multiple = FALSE,
undirected = FALSE
)
Arguments
n |
Integer scalar. Set the size of the graph. |
k |
Integer scalar. Set the initial degree of the ring (must be less than |
p |
Numeric scalar/vector of length |
both.ends |
Logical scalar. When |
self |
Logical scalar. When |
multiple |
Logical scalar. When |
undirected |
Logical scalar. Passed to |
Details
Implemented as in Watts and Strogatz (1998). Starts from an
undirected ring with vertices all with degree
(so it must
be an even number), and then rewire each edge by setting the endpoint (so
now you treat it as a digraph) randomly any vertex in
avoiding multiple links (by default) using the rewiring algorithm described on
the paper.
Value
A random graph of size following the small-world
model. The resulting graph will have
attr(graph, "undirected")=FALSE
.
Author(s)
George G. Vega Yon
References
Watts, D. J., & Strogatz, S. H. (1998). Collective dynamics of "small-world" networks. Nature, 393(6684), 440–2. doi:10.1038/30918
Newman, M. E. J. (2003). The Structure and Function of Complex Networks. SIAM Review, 45(2), 167–256. doi:10.1137/S003614450342480
See Also
Other simulation functions:
permute_graph()
,
rdiffnet()
,
rewire_graph()
,
rgraph_ba()
,
rgraph_er()
,
ring_lattice()
Examples
library(igraph)
set.seed(7123)
x0 <- graph_from_adjacency_matrix(rgraph_ws(10,2, 0))
x1 <- graph_from_adjacency_matrix(rgraph_ws(10,2, .3))
x2 <- graph_from_adjacency_matrix(rgraph_ws(10,2, 1))
oldpar <- par(no.readonly=TRUE)
par(mfrow=c(1,3))
plot(x0, layout=layout_in_circle, edge.curved=TRUE, main="Regular")
plot(x1, layout=layout_in_circle, edge.curved=TRUE, main="Small-world")
plot(x2, layout=layout_in_circle, edge.curved=TRUE, main="Random")
par(oldpar)