Example #1
0
gamma = 0.85  # noise
k = 3
T = 100

error_null = np.zeros(T)
error_struct = np.zeros(T)

deg_null = np.zeros(T)
deg_struct = np.zeros(T)

for t in range(T):

    (G1_null, G2_null) = genNull(n, p, gamma)
    (G1_struct, G2_struct) = genStruct(n, p, gamma)

    v1_null = cycleCount(G1_null, n, k)
    v2_null = cycleCount(G2_null, n, k)
    v1_struct = cycleCount(G1_struct, n, k)
    v2_struct = cycleCount(G2_struct, n, k)

    d1_null = degreeCount(G1_null)
    d2_null = degreeCount(G2_null)
    d1_struct = degreeCount(G1_struct)
    d2_struct = degreeCount(G2_struct)

    # degree sequence
    deg_null[t] = np.linalg.norm(np.sort(d1_null) - np.sort(d2_null))
    deg_struct[t] = np.linalg.norm(np.sort(d1_struct) - np.sort(d2_struct))

    # normalize each row
    for i in range(k - 1):
Example #2
0
v3_null = np.zeros([k - 1, T])
v1_struct = np.zeros([k - 1, T])
v2_struct = np.zeros([k - 1, T])

deg_null = np.zeros(T)
deg_struct = np.zeros(T)

(mean_est, std_est) = estCycleCount(n, k, p, gamma, 100)

for t in range(T):

    (G1_null, G2_null) = genNull(n, p, gamma)
    (G3_null, G4_null) = genNull(n, p, gamma)
    (G1_struct, G2_struct) = genStruct(n, p, gamma)

    v1_null[:, t] = np.sum(cycleCount(G1_null, n, k), axis=1)
    v2_null[:, t] = np.sum(cycleCount(G2_null, n, k), axis=1)
    v3_null[:, t] = np.sum(cycleCount(G3_null, n, k), axis=1)
    v1_struct[:, t] = np.sum(cycleCount(G1_struct, n, k), axis=1)
    v2_struct[:, t] = np.sum(cycleCount(G2_struct, n, k), axis=1)

    d1_null = degreeCount(G1_null)
    d2_null = degreeCount(G2_null)
    d1_struct = degreeCount(G1_struct)
    d2_struct = degreeCount(G2_struct)
    # degree sequence
    deg_null[t] = np.linalg.norm(np.sort(d1_null) - np.sort(d2_null))
    deg_struct[t] = np.linalg.norm(np.sort(d1_struct) - np.sort(d2_struct))

#for i in range(k-1):
#    v1_null[i,:] = v1_null[i,:]/((i+2)*(i+2)) # divide #aut
Example #3
0
        (G1_struct, G2_struct) = genStruct(n, p, gamma[g])

        # degree sequence
        d1_struct = degreeCount(G1_struct)
        d2_struct = degreeCount(G2_struct)

        C_deg_struct = distMatrix(d1_struct, d2_struct, n, 1)

        (row_ind, col_ind) = linear_sum_assignment(C_deg_struct)
        for i in range(n):
            if row_ind[i] == col_ind[i]:
                deg_struct[t] = deg_struct[t] + 1.0

        # degree + 3-cycle
        d1_struct = cycleCount(G1_struct, n, k)
        d2_struct = cycleCount(G2_struct, n, k)

        for i in range(k - 1):
            d1_struct[i, :] = (d1_struct[i, :] -
                               mean_est[i] * np.ones(n)) / std_est[i]
            d2_struct[i, :] = (d2_struct[i, :] -
                               mean_est[i] * np.ones(n)) / std_est[i]

        C_deg_struct = distMatrix(d1_struct, d2_struct, n, k)

        (row_ind, col_ind) = linear_sum_assignment(C_deg_struct)
        for i in range(n):
            if row_ind[i] == col_ind[i]:
                cor_struct[t] = cor_struct[t] + 1.0