summaryrefslogtreecommitdiff
path: root/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/smetric.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/setoolsgui/networkx/algorithms/smetric.py')
-rw-r--r--lib/python2.7/site-packages/setoolsgui/networkx/algorithms/smetric.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/smetric.py b/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/smetric.py
new file mode 100644
index 0000000..0e801bf
--- /dev/null
+++ b/lib/python2.7/site-packages/setoolsgui/networkx/algorithms/smetric.py
@@ -0,0 +1,37 @@
+import networkx as nx
+#from networkx.generators.smax import li_smax_graph
+
+def s_metric(G, normalized=True):
+ """Return the s-metric of graph.
+
+ The s-metric is defined as the sum of the products deg(u)*deg(v)
+ for every edge (u,v) in G. If norm is provided construct the
+ s-max graph and compute it's s_metric, and return the normalized
+ s value
+
+ Parameters
+ ----------
+ G : graph
+ The graph used to compute the s-metric.
+ normalized : bool (optional)
+ Normalize the value.
+
+ Returns
+ -------
+ s : float
+ The s-metric of the graph.
+
+ References
+ ----------
+ .. [1] Lun Li, David Alderson, John C. Doyle, and Walter Willinger,
+ Towards a Theory of Scale-Free Graphs:
+ Definition, Properties, and Implications (Extended Version), 2005.
+ http://arxiv.org/abs/cond-mat/0501169
+ """
+ if normalized:
+ raise nx.NetworkXError("Normalization not implemented")
+# Gmax = li_smax_graph(list(G.degree().values()))
+# return s_metric(G,normalized=False)/s_metric(Gmax,normalized=False)
+# else:
+ return float(sum([G.degree(u)*G.degree(v) for (u,v) in G.edges_iter()]))
+