ioftools / networkxMiCe / networkxmaster / 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 smetric of graph.

7 

8 
The smetric 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 
smax 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 smetric.

17 
normalized : bool (optional)

18 
Normalize the value.

19 

20 
Returns

21 


22 
s : float

23 
The smetric of the graph.

24 

25 
References

26 


27 
.. [1] Lun Li, David Alderson, John C. Doyle, and Walter Willinger,

28 
Towards a Theory of ScaleFree Graphs:

29 
Definition, Properties, and Implications (Extended Version), 2005.

30 
https://arxiv.org/abs/condmat/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()])) 