diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2014-10-24 12:16:51 -0400 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2014-10-24 12:16:51 -0400 |
| commit | ece1d828d53d6123fcecb5ea8bf9b126d1728ccc (patch) | |
| tree | b669382d0e5f1234556d1aeb7fa919891510b24d /apgl | |
| parent | 7426d8ff0e7969eb1a86bdb5bec8a0c971309e2b (diff) | |
| download | fast-seeding-ece1d828d53d6123fcecb5ea8bf9b126d1728ccc.tar.gz | |
Add code
Diffstat (limited to 'apgl')
| -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() |
