summaryrefslogtreecommitdiffstats
path: root/apgl
diff options
context:
space:
mode:
Diffstat (limited to 'apgl')
-rw-r--r--apgl/main.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/apgl/main.py b/apgl/main.py
new file mode 100644
index 0000000..c9d5f11
--- /dev/null
+++ b/apgl/main.py
@@ -0,0 +1,66 @@
+from apgl.graph import SparseGraph
+from apgl.generator.BarabasiAlbertGenerator import BarabasiAlbertGenerator
+from apgl.generator.SmallWorldGenerator import SmallWorldGenerator
+from apgl.generator.KroneckerGenerator import KroneckerGenerator
+from apgl.generator.ConfigModelGenerator import ConfigModelGenerator
+from random import sample
+from math import log
+import numpy as np
+
+vertices = 10000
+
+
+def pgraph(l, name):
+ s = sample(range(len(l)), int(len(l) / 100.))
+ with open(name, "w") as fh:
+ for i in s:
+ friends = [(f, len(l[f])) for f in l[i]]
+ line = str(i) + "\t" + "\t".join("\t".join(map(str, a))
+ for a in friends)
+ fh.write(line + "\n")
+
+
+def ba():
+ graph = SparseGraph(vertices)
+ generator = BarabasiAlbertGenerator(10, 10)
+ graph = generator.generate(graph)
+ l, _ = graph.adjacencyList()
+ pgraph(l, "b-a.txt")
+
+
+def sw():
+ # slow
+ graph = SparseGraph(vertices)
+ generator = SmallWorldGenerator(0.3, 50)
+ graph = generator.generate(graph)
+ l, _ = graph.adjacencyList()
+ pgraph(l, "sw.txt")
+
+
+def kk():
+ init = SparseGraph(4)
+ init[0, 1] = 1
+ init[0, 2] = 1
+ init[0, 3] = 1
+ for i in range(4):
+ init[i, i] = 1
+ k = int(log(vertices, 4)) + 1
+ generator = KroneckerGenerator(init, k)
+ graph = generator.generate()
+ l, _ = graph.adjacencyList()
+ pgraph(l, "kk.txt")
+
+
+def cm():
+ with open("../facebook_analysis/coachella_degrees.txt") as fh:
+ l = [int(line.strip()) for line in fh]
+ l = np.array(l)
+ n = len(l)
+ graph = SparseGraph(n)
+ generator = ConfigModelGenerator(l)
+ graph = generator.generate(graph)
+ l, _ = graph.adjacencyList()
+ pgraph(l, "cm.txt")
+
+
+cm()