connected_watts_strogatz_graph#

connected_watts_strogatz_graph(n, k, p, tries=100, seed=None, *, create_using=None)[source]#

Returns a connected Watts–Strogatz small-world graph.

Attempts to generate a connected graph by repeated generation of Watts–Strogatz small-world graphs. An exception is raised if the maximum number of tries is exceeded.

Parameters:
nint

The number of nodes

kint

Each node is joined with its k nearest neighbors in a ring topology.

pfloat

The probability of rewiring each edge

triesint

Number of attempts to generate a connected graph.

seedinteger, random_state, or None (default)

Indicator of random number generation state. See Randomness.

create_usingGraph constructor, optional (default=nx.Graph)

Graph type to create. If graph instance, then cleared before populated. Multigraph and directed types are not supported and raise a NetworkXError.

Notes

First create a ring over n nodes [1]. Then each node in the ring is joined to its k nearest neighbors (or k1 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. The entire process is repeated until a connected graph results.

References

[1]

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