NetworkX

Previous topic

networkx.newman_watts_strogatz_graph

Next topic

networkx.connected_watts_strogatz_graph

networkx.watts_strogatz_graph

watts_strogatz_graph(n, k, p, create_using=None, seed=None)

Return a Watts-Strogatz small-world graph.

Parameters:

n : int

The number of nodes

k : int

Each node is connected to k nearest neighbors in ring topology

p : float

The probability of rewiring each edge

create_using : graph, optional (default Graph)

The graph instance used to build the graph.

seed : int, optional

Seed for random number generator (default=None)

Notes

First create a ring over n nodes. Then each node in the ring is connected with its k nearest neighbors (k-1 neighbors if k is odd). Then shortcuts are created by replacing some edges as follows: for each edge u-v in the underlying “n-ring with k nearest neighbors” with probability p replace it with a new edge u-w with uniformly random choice of existing node w.

In contrast with newman_watts_strogatz_graph(), the random rewiring does not increase the number of edges. The rewired graph is not guaranteed to be connected as in connected_watts_strogatz_graph().

References

[R26]Duncan J. Watts and Steven H. Strogatz, Collective dynamics of small-world networks, Nature, 393, pp. 440–442, 1998.