Skip to main content
`Ctrl`+`K`

# preferential_attachment

preferential_attachment(G, ebunch=None)

  Compute the preferential attachment score of all node pairs in ebunch.

  Preferential attachment score of `u` and `v` is defined as

  \[|\Gamma(u)| |\Gamma(v)|\]

  where \(\Gamma(u)\) denotes the set of neighbors of \(u\).

  Parameters:
    G graph

      NetworkX undirected graph.

    ebunch iterable of node pairs, optional (default = None)

      Preferential attachment score will be computed for each pair of nodes given in the iterable. The pairs must be given as 2-tuples (u, v) where u and v are nodes in the graph. If ebunch is None then all nonexistent edges in the graph will be used. Default value: None.

  Returns:
    piter iterator

      An iterator of 3-tuples in the form (u, v, p) where (u, v) is a pair of nodes and p is their preferential attachment score.

  Raises:
    NetworkXNotImplemented

      If `G` is a `DiGraph`, a `Multigraph` or a `MultiDiGraph`.

    NodeNotFound

      If `ebunch` has a node that is not in `G`.

  References

  [1]

  D. Liben-Nowell, J. Kleinberg. The Link Prediction Problem for Social Networks (2004). http://www.cs.cornell.edu/home/kleinber/link-pred.pdf

  Examples

      >>> G = nx.complete_graph(5)
      >>> preds = nx.preferential_attachment(G, [(0, 1), (2, 3)])
      >>> for u, v, p in preds:
      ...     print(f"({u}, {v}) -> {p}")
      (0, 1) -> 16
      (2, 3) -> 16