コード例 #1
0
def CombinationBetweennessClosenessExperiments(G, min_target, step, max_target, filename):
    print nx.info(G)
    print "Combination Indicator X :", UF.closeness_betweenness_combination_centrality(G)

    X_centrality = []
    Y_nD = []

    target = min_target
    while target <= max_target:
        copyG = G.copy()
        new_G = SimulatedAnnealing(G, target, combination_betweenness_closeness_centrality_cost_function)
        centrality = UF.closeness_betweenness_combination_centrality(new_G)
        nD = SCT.controllability(G)
        X_centrality.append(centrality)
        Y_nD.append(nD)
        print 'target = ', target, "X = ", centrality, "nD = ", nD
        target += step

    s = 'results/' + filename
    with open(s, "w") as f:
        for i in range(len(Y_nD)):
            print >> f, "%f %f"%(X_centrality[i], Y_nD[i])

    return (X_centrality, Y_nD)
コード例 #2
0
def combination_betweenness_closeness_centrality_cost_function(G, target):
    return math.fabs(UF.closeness_betweenness_combination_centrality(G) - target)
コード例 #3
0
    ### NW Networks
    #n = 100
    #for k in range(2, 8, 2):
    #    for p in [0.1, 0.2, 0.3]:
    #        G = NM.directed_newman_watts_strogatz_graph(n, k, p)
    #        filename = "NW_CombinationX_n%dK%dp%f"%(n,k,p)
    #        CombinationBetweennessClosenessExperiments(G, 0.05, 0.05, 0.99, filename)

    ## BA Networks
    #n = 100
    #for m in range(2, 6):
    #    G = NM.directed_barabasi_albert_graph(n, m)
    #    filename = "BA_CombinationX_n%dm%d"%(n, m)
    #    CombinationBetweennessClosenessExperiments(G, 0.05, 0.05, 0.99, filename)
    n = 1000;
    m = 3;
    G = NM.directed_barabasi_albert_graph(n, m)
    combine = UF.closeness_betweenness_combination_centrality(G)
    nD = SCT.controllability(G)
    print '************************ INIT INFO ************************\n'
    print nx.info(G)
    print 'average X: ', combine
    print 'Init ND:', nD
    print '************************ INIT INFO ************************\n'
    target = 0.15
    new_G = SimulatedAnnealing(G, target, betweenness_centrality_cost_function)
    combine = UF.closeness_betweenness_combination_centrality(new_G)
    nD = SCT.controllability(new_G)