# dual_barabasi_albert_graph#

dual_barabasi_albert_graph(n, m1, m2, p, seed=None, initial_graph=None)[source]#

Returns a random graph using dual Barabási–Albert preferential attachment

A graph of $$n$$ nodes is grown by attaching new nodes each with either $$m_1$$ edges (with probability $$p$$) or $$m_2$$ edges (with probability $$1-p$$) that are preferentially attached to existing nodes with high degree.

Parameters:
nint

Number of nodes

m1int

Number of edges to link each new node to existing nodes with probability $$p$$

m2int

Number of edges to link each new node to existing nodes with probability $$1-p$$

pfloat

The probability of attaching $$m_1$$ edges (as opposed to $$m_2$$ edges)

seedinteger, random_state, or None (default)

Indicator of random number generation state. See Randomness.

initial_graphGraph or None (default)

Initial network for Barabási–Albert algorithm. A copy of initial_graph is used. It should be connected for most use cases. If None, starts from an star graph on max(m1, m2) + 1 nodes.

Returns:
GGraph
Raises:
NetworkXError

If m1 and m2 do not satisfy 1 <= m1,m2 < n, or p does not satisfy 0 <= p <= 1, or the initial graph number of nodes m0 does not satisfy m1, m2 <= m0 <= n.

References

[1]
1. Moshiri “The dual-Barabasi-Albert model”, arXiv:1810.10538.