ó
    …~i…  ã                   óÞ   • S r SSKrSSKJr  SSKJr  / SQr\" S5      \R                  S 5       5       r	\" S5      \R                  S	 5       5       r
\" S5      \R                  S
 5       5       rg)zDProvides functions for computing the efficiency of nodes and graphs.é    N)ÚNetworkXNoPathé   )Únot_implemented_for)Ú
efficiencyÚlocal_efficiencyÚglobal_efficiencyÚdirectedc                 ób   •  S[         R                  " XU5      -  nU$ ! [         a    Sn U$ f = f)aä  Returns the efficiency of a pair of nodes in a graph.

The *efficiency* of a pair of nodes is the multiplicative inverse of the
shortest path distance between the nodes [1]_. Returns 0 if no path
between nodes.

Parameters
----------
G : :class:`networkx.Graph`
    An undirected graph for which to compute the average local efficiency.
u, v : node
    Nodes in the graph ``G``.

Returns
-------
float
    Multiplicative inverse of the shortest path distance between the nodes.

Examples
--------
>>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)])
>>> nx.efficiency(G, 2, 3)  # this gives efficiency for node 2 and 3
0.5

Notes
-----
Edge weights are ignored when computing the shortest path distances.

See also
--------
local_efficiency
global_efficiency

References
----------
.. [1] Latora, Vito, and Massimo Marchiori.
       "Efficient behavior of small-world networks."
       *Physical Review Letters* 87.19 (2001): 198701.
       <https://doi.org/10.1103/PhysRevLett.87.198701>

é   r   )ÚnxÚshortest_path_lengthr   )ÚGÚuÚvÚeffs       Úd/home/mande/repo/quber/.venv/lib/python3.13/site-packages/networkx/algorithms/efficiency_measures.pyr   r      sA   € ðXØ”"×)Ò)¨!°Ó2Ñ2ˆð €Jøô ó Ø‰Ø€Jðús   ‚ ž.­.c                 óÞ   • [        U 5      nXS-
  -  nUS:w  aR  [        R                  " U 5      nSnU H.  u  pVUR                  5        H  u  pxUS:”  d  M  USU-  -  nM     M0     XB-  nU$ SnU$ )a»  Returns the average global efficiency of the graph.

The *efficiency* of a pair of nodes in a graph is the multiplicative
inverse of the shortest path distance between the nodes. The *average
global efficiency* of a graph is the average efficiency of all pairs of
nodes [1]_.

Parameters
----------
G : :class:`networkx.Graph`
    An undirected graph for which to compute the average global efficiency.

Returns
-------
float
    The average global efficiency of the graph.

Examples
--------
>>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)])
>>> round(nx.global_efficiency(G), 12)
0.916666666667

Notes
-----
Edge weights are ignored when computing the shortest path distances.

See also
--------
local_efficiency

References
----------
.. [1] Latora, Vito, and Massimo Marchiori.
       "Efficient behavior of small-world networks."
       *Physical Review Letters* 87.19 (2001): 198701.
       <https://doi.org/10.1103/PhysRevLett.87.198701>

r   r   )Úlenr   Úall_pairs_shortest_path_lengthÚitems)	r   ÚnÚdenomÚlengthsÚg_effÚsourceÚtargetsÚtargetÚdistances	            r   r   r   >   s‡   € ôT 	ˆA‹€AØ�Q‘‰K€EØ�ƒzÜ×3Ò3°AÓ6ˆØˆÛ&‰OˆFØ$+§M¡M¦OÑ �Ø˜a•<Ø˜Q ™\Ñ)’Eó %4ñ  'ð 	‰ˆð €Lð ˆð €Ló    c                 óJ   ^ • U 4S jT  5       n[        U5      [        T 5      -  $ )a0  Returns the average local efficiency of the graph.

The *efficiency* of a pair of nodes in a graph is the multiplicative
inverse of the shortest path distance between the nodes. The *local
efficiency* of a node in the graph is the average global efficiency of the
subgraph induced by the neighbors of the node. The *average local
efficiency* is the average of the local efficiencies of each node [1]_.

Parameters
----------
G : :class:`networkx.Graph`
    An undirected graph for which to compute the average local efficiency.

Returns
-------
float
    The average local efficiency of the graph.

Examples
--------
>>> G = nx.Graph([(0, 1), (0, 2), (0, 3), (1, 2), (1, 3)])
>>> nx.local_efficiency(G)
0.9166666666666667

Notes
-----
Edge weights are ignored when computing the shortest path distances.

See also
--------
global_efficiency

References
----------
.. [1] Latora, Vito, and Massimo Marchiori.
       "Efficient behavior of small-world networks."
       *Physical Review Letters* 87.19 (2001): 198701.
       <https://doi.org/10.1103/PhysRevLett.87.198701>

c              3   ó^   >#   • U  H"  n[        TR                  TU   5      5      v •  M$     g 7f)N)r   Úsubgraph)Ú.0r   r   s     €r   Ú	<genexpr>Ú#local_efficiency.<locals>.<genexpr>¦   s'   øé € ÐFÂA¸qÔ(¨¯©°A°a±DÓ)9×:Ð:ÂAùs   ƒ*-)Úsumr   )r   Úefficiency_lists   ` r   r   r   {   s%   ø€ ôV GÁAÓF€OÜˆÓ¤# a£&Ñ(Ð(r   )Ú__doc__Únetworkxr   Únetworkx.exceptionr   Úutilsr   Ú__all__Ú_dispatchabler   r   r   © r   r   Ú<module>r/      s�   ðÙ Jã Ý -å 'â
A€ñ �ZÓ Ø×Ññ.ó ó !ð.ñb �ZÓ Ø×Ññ8ó ó !ð8ñv �ZÓ Ø×Ññ*)ó ó !ñ*)r   