# graphscope.nx.generators.degree_seq.random_degree_sequence_graph¶

graphscope.nx.generators.degree_seq.random_degree_sequence_graph(sequence, seed=None, tries=10)[source]

Returns a simple random graph with the given degree sequence.

If the maximum degree \$d_m\$ in the sequence is \$O(m^{1/4})\$ then the algorithm produces almost uniform random graphs in \$O(m d_m)\$ time where \$m\$ is the number of edges.

Parameters
• sequence (list of integers) – Sequence of degrees

• seed (integer, random_state, or None (default)) – Indicator of random number generation state. See Randomness.

• tries (int, optional) – Maximum number of tries to create a graph

Returns

G – A graph with the specified degree sequence. Nodes are labeled starting at 0 with an index corresponding to the position in the sequence.

Return type

Graph

Raises
• NetworkXUnfeasible – If the degree sequence is not graphical.

• NetworkXError – If a graph is not produced in specified number of tries

`is_graphical`, `configuration_model`

Notes

The generator algorithm 1 is not guaranteed to produce a graph.

References

1

Moshen Bayati, Jeong Han Kim, and Amin Saberi, A sequential algorithm for generating random graphs. Algorithmica, Volume 58, Number 4, 860-910, DOI: 10.1007/s00453-009-9340-1

Examples

```>>> sequence = [1, 2, 2, 3]
>>> G = nx.random_degree_sequence_graph(sequence, seed=42)
>>> sorted(d for n, d in G.degree())
[1, 2, 2, 3]
```