Note

This documents the development version of NetworkX. Documentation for the current release can be found here.

networkx.generators.directed.gn_graph

gn_graph(n, kernel=None, create_using=None, seed=None)[source]

Returns the growing network (GN) digraph with n nodes.

The GN graph is built by adding nodes one at a time with a link to one previously added node. The target node for the link is chosen with probability based on degree. The default attachment kernel is a linear function of the degree of a node.

The graph is always a (directed) tree.

Parameters
nint

The number of nodes for the generated graph.

kernelfunction

The attachment kernel.

create_usingNetworkX graph constructor, optional (default DiGraph)

Graph type to create. If graph instance, then cleared before populated.

seedinteger, random_state, or None (default)

Indicator of random number generation state. See Randomness.

References

1

P. L. Krapivsky and S. Redner, Organization of Growing Random Networks, Phys. Rev. E, 63, 066123, 2001.

Examples

To create the undirected GN graph, use the to_directed() method:

>>> D = nx.gn_graph(10)  # the GN graph
>>> G = D.to_undirected()  # the undirected version

To specify an attachment kernel, use the kernel keyword argument:

>>> D = nx.gn_graph(10, kernel=lambda x: x ** 1.5)  # A_k = k^1.5