diff options
Diffstat (limited to 'apgl/main.py')
| -rw-r--r-- | apgl/main.py | 66 |
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() |
