### view env/lib/python3.9/site-packages/networkx/algorithms/vitality.py @ 0:4f3585e2f14bdraftdefaulttip

author shellac Mon, 22 Mar 2021 18:12:50 +0000
line wrap: on
line source
```
"""
Vitality measures.
"""
from functools import partial

import networkx as nx

__all__ = ["closeness_vitality"]

def closeness_vitality(G, node=None, weight=None, wiener_index=None):
"""Returns the closeness vitality for nodes in the graph.

The *closeness vitality* of a node, defined in Section 3.6.2 of [1],
is the change in the sum of distances between all node pairs when
excluding that node.

Parameters
----------
G : NetworkX graph
A strongly-connected graph.

weight : string
The name of the edge attribute used as weight. This is passed
directly to the :func:`~networkx.wiener_index` function.

node : object
If specified, only the closeness vitality for this node will be
returned. Otherwise, a dictionary mapping each node to its
closeness vitality will be returned.

Other parameters
----------------
wiener_index : number
If you have already computed the Wiener index of the graph
`G`, you can provide that value here. Otherwise, it will be
computed for you.

Returns
-------
dictionary or float
If `node` is None, this function returns a dictionary
with nodes as keys and closeness vitality as the
value. Otherwise, it returns only the closeness vitality for the
specified `node`.

The closeness vitality of a node may be negative infinity if
removing that node would disconnect the graph.

Examples
--------
>>> G = nx.cycle_graph(3)
>>> nx.closeness_vitality(G)
{0: 2.0, 1: 2.0, 2: 2.0}

--------
closeness_centrality

References
----------
.. [1] Ulrik Brandes, Thomas Erlebach (eds.).
*Network Analysis: Methodological Foundations*.
Springer, 2005.