From 929561e60b8bb836baa193ba8cb980cafc2f3f20 Mon Sep 17 00:00:00 2001
From: Antoine Castillon <antoine.castillon@ens-lyon.fr>
Date: Sun, 13 Mar 2022 14:57:03 +0000
Subject: [PATCH] Upload New File

---
 test_LFR_graphs.py | 146 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 146 insertions(+)
 create mode 100644 test_LFR_graphs.py

diff --git a/test_LFR_graphs.py b/test_LFR_graphs.py
new file mode 100644
index 0000000..942dd5c
--- /dev/null
+++ b/test_LFR_graphs.py
@@ -0,0 +1,146 @@
+
+import time
+import quick
+import quick_del_edges as quick_del
+import quick_red_aware
+import tools
+import greedy_qclq_mining as greed_qclq
+import summarization
+from os import listdir
+
+
+def load_communities(path2file):
+    "load the communities of a LFR graph"
+
+    file = open(path2file)
+    comm = []
+    
+    S = ''
+    
+    line = file.readline().rstrip('\n\r')
+    while line:
+        S += line
+        line = file.readline().rstrip('\n\r')
+    
+    true = True             # these keywords are defined in the .json file and
+    false = False           # must be introduced for the eval
+    null = None
+    
+    dic = eval(S)
+    
+    comm = (dic["clu2elm_dict"]).values()
+    
+    file.close()
+    
+    return comm
+
+
+gamma = 0.9
+min_size = 14
+
+taille_graphe = 300
+
+file_path_1 = "graph_database\\LFR_graphs\\setB\\"+str(taille_graphe)+"n"
+
+mu_list = [int(f[:-2]) for f in listdir(file_path_1)]
+
+for mu in mu_list:
+
+    file = open("results\\LFR_graphs\\LFR_graphs_"+str(taille_graphe)+"n_"+str(mu)+"mu.txt","w")
+    file.write("Graph type = LFR, n = "+str(taille_graphe)+", mu = "+str(mu)+"/100 \n\r")
+    file.write("t_quick_true, size_quick_true, t_quick_false, size_quick_false, t_del_edges_true, size_del_edges_true, t_del_edges_false, size_del_edges_false, t_red_aware_true, size_red_aware_true, t_red_aware_false, size_red_aware_false, t_greedy_true, size_greedy_true, t_greedy_false, size_greedy_false, |G|, seed \n\r")
+    
+    file_vis = open("results\\LFR_graphs\\LFR_graph_vis_"+str(taille_graphe)+"n_"+str(mu)+"mu.txt","w")
+    file_vis.write("type de graphe = LFR, n = "+str(taille_graphe)+", mu = "+str(mu)+"/100 \n\r")
+    file_vis.write("vis_del_edges_true, vis_del_edges_false, vis_red_aware_true, vis_red_aware_false, vis_greedy_true, vis_greedy_false, |G|, seed \n\r")
+    
+    file_path_2 = file_path_1+"\\"+str(mu)+"mu"
+    
+    id_list = [f[6:-4] for f in listdir(file_path_2) if f[:5]=='graph'] #on ne garde que les numeros des .txt
+    
+    for id_graphs in id_list:
+        
+        print(mu,id_graphs)
+        
+        G = tools.load_graph(file_path_2+"\\graph_"+id_graphs+".txt")
+    
+        G2 = G.copy()
+        t0 = time.time()
+        tools.reduction(G2,gamma,min_size,edge_red=True)
+        t_reduction_true = time.time()-t0
+        
+        G3 = G.copy()
+        t0 = time.time()
+        tools.reduction(G3,gamma,min_size,edge_red=False)
+        t_reduction_false = time.time()-t0
+        
+        # Quick ###############################################################
+        
+        t0 = time.time()
+        Qclqs = tools.only_maximal(quick.quick_quasi_cliques(G2,gamma,min_size))
+        t_quick_true = t_reduction_true + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_quick_true = summarization.summary_size(H,remaining_edges)
+        
+        t0 = time.time()
+        tot_Qclqs = tools.only_maximal(quick.quick_quasi_cliques(G3,gamma,min_size))
+        t_quick_false = t_reduction_false + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_quick_false = summarization.summary_size(H,remaining_edges)
+        
+        # Quick_del_edges #####################################################
+        
+        t0 = time.time()
+        Qclqs = tools.only_maximal(quick_del.quick_quasi_cliques(G2.copy(),gamma,min_size))
+        t_del_edges_true = t_reduction_true + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_del_edges_true = summarization.summary_size(H,remaining_edges)
+        vis_del_edges_true = tools.measure_visibility(Qclqs,tot_Qclqs)
+        
+        t0 = time.time()
+        tot_Qclqs = tools.only_maximal(quick_del.quick_quasi_cliques(G3.copy(),gamma,min_size))
+        t_del_edges_false = t_reduction_false + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_del_edges_false = summarization.summary_size(H,remaining_edges)
+        vis_del_edges_false = tools.measure_visibility(Qclqs,tot_Qclqs)
+        
+        # Quick_red_aware #####################################################
+        
+        t0 = time.time()
+        Qclqs = tools.only_maximal(quick_red_aware.quick_quasi_cliques(G2,gamma,min_size))
+        t_red_aware_true = t_reduction_true + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_red_aware_true = summarization.summary_size(H,remaining_edges)
+        vis_red_aware_true = tools.measure_visibility(Qclqs,tot_Qclqs)
+        
+        t0 = time.time()
+        tot_Qclqs = tools.only_maximal(quick_red_aware.quick_quasi_cliques(G3,gamma,min_size))
+        t_red_aware_false = t_reduction_false + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_red_aware_false = summarization.summary_size(H,remaining_edges)
+        vis_red_aware_false = tools.measure_visibility(Qclqs,tot_Qclqs)
+        
+        # Greedy ##############################################################
+        
+        t0 = time.time()
+        Qclqs = tools.only_maximal(greed_qclq.greedy_qclq(G2,gamma,min_size))
+        t_greedy_true = t_reduction_true + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_greedy_true = summarization.summary_size(H,remaining_edges)
+        vis_greedy_true = tools.measure_visibility(Qclqs,tot_Qclqs)
+        
+        t0 = time.time()
+        tot_Qclqs = tools.only_maximal(greed_qclq.greedy_qclq(G3,gamma,min_size))
+        t_greedy_false = t_reduction_false + time.time() - t0
+        H,remaining_edges = summarization.DSS_summarization(G,Qclqs)
+        size_greedy_false = summarization.summary_size(H,remaining_edges)
+        vis_greedy_false = tools.measure_visibility(Qclqs,tot_Qclqs)
+
+        
+        file.write("{0} \t {1} \t {2} \t {3} \t {4} \t {5} \t {6} \t {7} \t {8} \t {9} \t {10} \t {11} \t {12} \t {13} \t {14} \t {15} \t {16} \t {17} \n\r".format(t_quick_true, size_quick_true, t_quick_false, size_quick_false, t_del_edges_true, size_del_edges_true, t_del_edges_false, size_del_edges_false, t_red_aware_true, size_red_aware_true, t_red_aware_false, size_red_aware_false, t_greedy_true, size_greedy_true, t_greedy_false, size_greedy_false, len(G.nodes)+len(G.edges), id_graphs))
+        file_vis.write("{0} \t {1} \t {2} \t {3} \t {4} \t {5} \t {6} \t {7} \n\r".format(vis_del_edges_true, vis_del_edges_false, vis_red_aware_true, vis_red_aware_false, vis_greedy_true, vis_greedy_false, len(G.nodes)+len(G.edges), id_graphs))
+
+
+
+    file.close()
+    file_vis.close()
\ No newline at end of file
-- 
GitLab