cfpq_data.graphs.generators.labeled_barabasi_albert_graph#
- labeled_barabasi_albert_graph(n: int, m: int, *, labels: ~typing.List[str] = 'abcd', choice: ~typing.Callable[[~typing.List[str]], str] = <bound method Random.choice of <random.Random object>>, seed: int | None = None) MultiDiGraph[source]#
Returns a random graph according to the Barabási–Albert preferential attachment model. With labeled edges.
A graph of
nnodes is grown by attaching new nodes each withmedges that are preferentially attached to existing nodes with high degree.- Parameters:
- nint
Number of nodes.
- mint
Number of edges to attach from a new node to existing nodes.
- labels: Iterable[str]
Labels that will be used to mark the edges of the graph.
- choice: Callable[[Iterable[str]], str]
Function for marking edges.
- seedint or None
Indicator of random number generation state.
- Returns:
- gMultiDiGraph
A random graph according to the Barabási–Albert preferential attachment model.
- Raises:
- NetworkXError
If
mdoes not satisfy1 <= m < n.
References
[1]A. L. Barabási and R. Albert “Emergence of scaling in random networks”, Science 286, pp 509-512, 1999.
Examples
>>> from cfpq_data import * >>> g = labeled_barabasi_albert_graph(42, 29, seed=42) >>> g.number_of_nodes() 42 >>> g.number_of_edges() 754