This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.


newman_watts_strogatz_graph(n, k, p, seed=None)[source]

Return a Newman–Watts–Strogatz small-world graph.

  • n (int) – The number of nodes.
  • k (int) – Each node is joined with its k nearest neighbors in a ring topology.
  • p (float) – The probability of adding a new edge for each edge.
  • seed (int, optional) – The seed for the random number generator (the default is None).


First create a ring over n nodes. Then each node in the ring is connected with its k nearest neighbors (or k - 1 neighbors if k is odd). Then shortcuts are created by adding new edges as follows: for each edge (u, v) in the underlying “n-ring with k nearest neighbors” with probability p add a new edge (u, w) with randomly-chosen existing node w. In contrast with watts_strogatz_graph(), no edges are removed.


[1]M. E. J. Newman and D. J. Watts, Renormalization group analysis of the small-world network model, Physics Letters A, 263, 341, 1999. http://dx.doi.org/10.1016/S0375-9601(99)00757-4