Exemple #1
0
kind = sys.argv[1]

attack = {}

for d in range(1, 4):
    for m in range(3, 4):
        for p in range(1, 4):
            v = "d" + str(d) + "m" + str(m) + "p" + str(p)

            attack[v] = {}
            attack[v]['dc'] = defaultdict(float)
            attack[v]['ec'] = defaultdict(float) 
            attack[v]['bc'] = defaultdict(float)
            for j in sample:
                g = sim.graph_by_time(sim.retrieve_graph(kind, d, m, p, j), t)     
                strategies = {}
                strategies['dc'] = sorted(nx.degree_centrality(g).items(), key=lambda x: x[1], reverse=True)[0:a]
                strategies['ec'] = sorted(nx.eigenvector_centrality(g).items(), key=lambda x: x[1], reverse=True)[0:a]
                strategies['bc'] = sorted(nx.betweenness_centrality(g).items(), key=lambda x: x[1], reverse=True)[0:a]
            
                for strategy in strategies:
                    
                    cg = copy.deepcopy(g)
                    
                    for i in range(0,a):
                        if (attack[v][strategy][i]): 
                            attack[v][strategy][i] += sim.average_inverse_geodesic(cg)
                        else:
                            attack[v][strategy][i] = sim.average_inverse_geodesic(cg)
                        id, degree = strategies[strategy][i]
Exemple #2
0
import simlib as sim
import sys
import pickle
import random

degree = {}

n = 1001
sample = random.sample(range(1,500),100)
kind = sys.argv[1]

for d in range(1, 4):
    for m in range(1, 6):
        for p in range(1, 4):
            v = "d" + str(d) + "m" + str(m) + "p" + str(p)
    
            # degree array by time
            degree[v] = {}
            for j in range(1, sample):
                g = sim.retrieve_graph(kind, d, m, p, j)        
                for t in range(1, n):
                    degree[v][t] = []
                    gt = sim.graph_by_time(g, t)
                    for node in gt.nodes():
                        degree[v][t].append(g.degree(node))
         
            print "Done with: " + v        
          
            with open("./serial/time_degree_" + kind + "_" + v + ".obj", 'wb') as objfile:
                pickle.dump(degree[v], objfile)    
Exemple #3
0
                names[name] = [tmp[2]]

print ("loaded names...")

for name in names:
    haig = {}
    hcmp = {}
    for t in range(0,attack):
        haig[t] = 0.0
        hcmp[t] = 0.0
    
    random.shuffle(names[name])
    for _ in range(0,sample): 
        j = names[name].pop()
        G = nx.read_gpickle("graphs/"+name+"_"+j)
        g = sim.graph_by_time(G, time)
        nds = sorted(nx.degree_centrality(g).items(), key=lambda x: x[1], reverse=True)[0:attack]
#        print nds
        print ("\nWorking on "+j)
        for i in range(0, attack):
            geo = sim.average_inverse_geodesic(g) 
            haig[i] += geo
#            hcmp[i] += nx.connected_component_subgraphs(g)[0].number_of_nodes()
            nid, degree = nds[i]
            g.remove_node(nid)
            sys.stdout.write("-") #+str(geo))
            sys.stdout.flush()

    for t in range(0, attack):
        haig[t] = float(haig[t])/sample
        hcmp[t] = float(hcmp[t])/sample