Statistics
| Branch: | Revision:

iof-tools / networkxMiCe / networkx-master / networkx / algorithms / smetric.py @ 5cef0f13

History | View | Annotate | Download (1.17 KB)

1
import networkx as nx
2
#from networkx.generators.smax import li_smax_graph
3

    
4

    
5
def s_metric(G, normalized=True):
6
    """Returns the s-metric of graph.
7

8
    The s-metric is defined as the sum of the products deg(u)*deg(v)
9
    for every edge (u,v) in G. If norm is provided construct the
10
    s-max graph and compute it's s_metric, and return the normalized
11
    s value
12

13
    Parameters
14
    ----------
15
    G    : graph
16
           The graph used to compute the s-metric.
17
    normalized : bool (optional)
18
           Normalize the value.
19

20
    Returns
21
    -------
22
    s : float
23
        The s-metric of the graph.
24

25
    References
26
    ----------
27
    .. [1] Lun Li, David Alderson, John C. Doyle, and Walter Willinger,
28
           Towards a Theory of Scale-Free Graphs:
29
           Definition, Properties, and  Implications (Extended Version), 2005.
30
           https://arxiv.org/abs/cond-mat/0501169
31
    """
32
    if normalized:
33
        raise nx.NetworkXError("Normalization not implemented")
34
#        Gmax = li_smax_graph(list(G.degree().values()))
35
#        return s_metric(G,normalized=False)/s_metric(Gmax,normalized=False)
36
#    else:
37
    return float(sum([G.degree(u) * G.degree(v) for (u, v) in G.edges()]))