random_k_out_graph#
- random_k_out_graph(n, k, alpha, self_loops=True, seed=None)[source]#
Returns a random
k-out graph with preferential attachment.A random
k-out graph with preferential attachment is a multidigraph generated by the following algorithm.Begin with an empty digraph, and initially set each node to have weight
alpha.Choose a node
uwith out-degree less thankuniformly at random.Choose a node
vfrom with probability proportional to its weight.Add a directed edge from
utov, and increase the weight ofvby one.If each node has out-degree
k, halt, otherwise repeat from step 2.
For more information on this model of random graph, see [1].
- Parameters:
- nint
The number of nodes in the returned graph.
- kint
The out-degree of each node in the returned graph.
- alphafloat
A positive
floatrepresenting the initial weight of each vertex. A higher number means that in step 3 above, nodes will be chosen more like a true uniformly random sample, and a lower number means that nodes are more likely to be chosen as their in-degree increases. If this parameter is not positive, aValueErroris raised.- self_loopsbool
If True, self-loops are allowed when generating the graph.
- seedinteger, random_state, or None (default)
Indicator of random number generation state. See Randomness.
- Returns:
MultiDiGraphA
k-out-regular multidigraph generated according to the above algorithm.
- Raises:
- ValueError
If
alphais not positive.
Notes
The returned multidigraph may not be strongly connected, or even weakly connected.
References
- [1]: Peterson, Nicholas R., and Boris Pittel.
“Distance between two random
k-out digraphs, with and without preferential attachment.” arXiv preprint arXiv:1311.5961 (2013). <https://arxiv.org/abs/1311.5961>