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):
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
(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