for num_c in tqdm(num_cs, desc="num_c"): #print(f"\n### n:{n} num_c:{num_c} ###") #print("Generation of G ...") clusters = pd.fixed_clusters(n, num_c) G, GT, labels = pd.custom_cluster_matrix(n, clusters, inter, 1, intra, 0) # epsilon parameter for the approx Alon et al c = Codec(0.285, 0.285, 1) c.verbose = False #print("Generation of compressed/reduced graph ...") tm = time.time() k, epsilon, classes, sze_idx, reg_list, nirr = c.compress( G, "indeg_guided") red = c.reduced_matrix(G, k, epsilon, classes, reg_list) t_compression = time.time() - tm #print(f"s:{t_compression:.2f}") # Precomputation of the eigenvalues #print("Eigenvalues of G ... ") tm = time.time() G_eig, aux = metrics.eigs(G) t_G_eig = time.time() - tm #print(f"s:{t_G_eig:.2f}") #print("Eigenvalues of red ... ") tm = time.time() red_eig, aux = metrics.eigs(red) t_red_eig = time.time() - tm
############## Main script code ############## ############################################## refinement = 'indeg_guided' vals = [0.1, 0.2, 0.5, 0.7] first = True n = 1000 # Query graph, the bigger one clusters = pd.random_clusters(n, 8) inter = 0.1 intra = 0.1 oG, oGT, olabeling = pd.custom_cluster_matrix(n, clusters, inter, 1, intra, 0) c = Codec(0.15, 0.5, 5) k, epsilon, classes, sze_idx, reg_list, nirr = c.compress(oG, refinement) query = c.reduced_matrix(oG, k, epsilon, classes, reg_list) # Database c = Codec(0.2, 0.5, 5) num_c = 8 for r in range(5): for i in vals: clusters = pd.random_clusters(n, num_c) G, GT, labeling = pd.custom_cluster_matrix(n, clusters, i, 1, i, 0) k, epsilon, classes, sze_idx, reg_list, nirr = c.compress( G, refinement) red = c.reduced_matrix(G, k, epsilon, classes, reg_list) if query.shape[0] > red.shape[0]:
tm = time.time() clusters1 = proc_d.random_clusters(n, 8) G, GT, labeling = proc_d.custom_cluster_matrix(n, clusters1, 0.3, 1, 0.2, 0) tgen = time.time() -tm #print(f"TIME: tgen:{tgen:.2f}") # Second graph clusters2 = proc_d.random_clusters(n, 8) G2, GT2, labeling2 = proc_d.custom_cluster_matrix(n, clusters2, 0.6, 1, 0.1, 0) # Compression G1 c = Codec(0.285, 0.285, 1) c.verbose = False tm = time.time() k, epsilon, classes, sze_idx, reg_list, nirr = c.compress(G, 'indeg_guided') tcompression1 = time.time() - tm #print(f"TIME: tcompression1:{tcompression1:.2f}") # Compression G1 c = Codec(0.285, 0.285, 1) c.verbose = False tm = time.time() k2, epsilon, classes2, sze_idx, reg_list2, nirr2 = c.compress(G2, 'indeg_guided') tcompression2 = time.time() - tm #print(f"TIME: tcompression2:{tcompression2:.2f}") # Reduced graph tm = time.time() red = c.reduced_matrix(G, k, epsilon, classes, reg_list) red2 = c.reduced_matrix(G2, k2, epsilon, classes2, reg_list2)