diff options
| author | ericbalkanski <ericbalkanski@MACD-01953.local> | 2014-11-28 15:44:14 -0500 |
|---|---|---|
| committer | ericbalkanski <ericbalkanski@MACD-01953.local> | 2014-11-28 15:44:14 -0500 |
| commit | cdb50fd10445f517aa58ab6e7b22c229b7f33174 (patch) | |
| tree | b7199ab223aa1f6e86c3df2d513d7539af2a3554 /jpa_test/cascade_creation.py | |
| parent | 6f092c5d1f6272049855257b85a924382724e1c6 (diff) | |
| download | cascades-cdb50fd10445f517aa58ab6e7b22c229b7f33174.tar.gz | |
Stanford Networks
added method to input graph from Stanford Network Database
Diffstat (limited to 'jpa_test/cascade_creation.py')
| -rw-r--r-- | jpa_test/cascade_creation.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/jpa_test/cascade_creation.py b/jpa_test/cascade_creation.py index ac094b9..f30b208 100644 --- a/jpa_test/cascade_creation.py +++ b/jpa_test/cascade_creation.py @@ -15,6 +15,24 @@ class InfluenceGraph(nx.Graph): self.add_nodes_from(G.nodes()) self.add_edges_from(G.edges()) + def createStanfordGraph(self, file): + """ + Takes a file from the Stanford collection of networks + Need to remove comments on top of the file + Graph still needs to be weighted on the edges + """ + f = open(file, 'r') + data = f.readlines() + G = nx.DiGraph() + for edge in data: + split1 = edge.split('\t') + split2 = split1[1].split('\n') + + u = int(split1[0]) + v = int(split2[0]) + G.add_edge(u,v) + return G + @property def mat(self): if not hasattr(self, '_mat'): @@ -37,7 +55,9 @@ def icc_cascade(G, p_init): p_init: proba that node in seed set """ susceptible = np.ones(G.number_of_nodes(), dtype=bool) + print susceptible active = np.random.rand(G.number_of_nodes()) < p_init + print active susceptible = susceptible - active cascade = [] while active.any() and susceptible.any(): @@ -53,8 +73,28 @@ def concat_cascades(cascades): """ Concatenate list of cascades into matrix """ + return np.vstack(cascades) + +def createStanfordGraph(file): + """ + Takes a file from the Stanford collection of networks + Need to remove comments on top of the file + Graph still needs to be weighted on the edges + """ + f = open(file, 'r') + data = f.readlines() + G = nx.DiGraph() + for edge in data: + split1 = edge.split('\t') + split2 = split1[1].split('\n') + + u = int(split1[0]) + v = int(split2[0]) + G.add_edge(u,v) + return G + def test(): """ unit test |
