Пример #1
0
        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
Пример #2
0
############## 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)