コード例 #1
0
 def test_FI(self):
     print("---FI---")
     for i in range(0, COUNT+1):
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         base.print_graph_name(PREFIX, i)
         T, w = tdlib.fillIn_decomp(G)
         self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #2
0
ファイル: test_long_apps_CFGs.py プロジェクト: freetdi/tdlib
 def test_max_independent_set(self):
     print("---maxIndependentSet---")
     for i in range(0, COUNT+1):
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         base.print_graph_name(PREFIX, i)
         T, w = tdlib.minDegree_decomp(G)
         S = tdlib.max_independent_set_with_treedecomposition(G, T)
コード例 #3
0
 def test_min_vertex_cover(self):
     print("---minVertexCover--")
     for i in range(0, COUNT+1):
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         base.print_graph_name(PREFIX, i)
         T, w = tdlib.minDegree_decomp(G)
         S = tdlib.min_vertex_cover_with_treedecomposition(G, T, True, True)
コード例 #4
0
ファイル: test_long_approx_Zoo.py プロジェクト: freetdi/tdlib
    def test_boost_MD(self):
	print("---boost_MD---")
        for i in range(0, COUNT+1):
            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
            T, w = tdlib.boost_minDegree_decomp(G)
            self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #5
0
ファイル: test_long_approx_Zoo.py プロジェクト: freetdi/tdlib
    def test_PP_FI_TM(self):
	print("---PP_FI_TM---")
        for i in range(0, COUNT+1):
            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
            T, w = tdlib.PP_FI_TM(G)
            self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #6
0
 def test_seperator_algorithm(self):
     print("---seperator_algorithm---")
     for i in range(0, COUNT + 1):
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         base.print_graph_name(PREFIX, i)
         T, w = tdlib.seperator_algorithm(G)
         self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #7
0
 def test_boost_MD(self):
     print("---boost_MD---")
     for i in range(0, COUNT + 1):
         base.print_graph_name(PREFIX, i)
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         T, w = tdlib.boost_minDegree_decomp(G)
         self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #8
0
ファイル: test_long_approx_Zoo.py プロジェクト: freetdi/tdlib
    def test_MSVS_trivial(self):
	print("---MSVS_trivial---")
        for i in range(0, COUNT+1):
            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
            T1, w1 = tdlib.trivial_decomposition(G)
            T2, w2 = tdlib.MSVS(G, T1)
            self.assertEqual(tdlib.is_valid_treedecomposition(G, T2), True)
コード例 #9
0
 def test_PP_FI_TM(self):
     print("---PP_FI_TM---")
     for i in range(0, COUNT + 1):
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         base.print_graph_name(PREFIX, i)
         T, w = tdlib.PP_FI_TM(G)
         self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #10
0
ファイル: test_long_lb_Zoo.py プロジェクト: freetdi/tdlib
 def test_LB7(self):
     print("---LBPC_deltaC---")
     for i in range(0, COUNT+1):
         if base.skip(PREFIX, i, lambda x,y: x > 300 or y > 300):
             continue
         base.print_graph_name(PREFIX, i)
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         tdlib.lower_bound(G, "LBPC_deltaC")
コード例 #11
0
ファイル: test_long_apps_CFGs.py プロジェクト: zbhuang/tdlib
 def test_min_vertex_cover(self):
     print("---minVertexCover--")
     for i in range(0, COUNT + 1):
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         base.print_graph_name(PREFIX, i)
         T, w = tdlib.minDegree_decomp(G)
         S = tdlib.min_vertex_cover_with_treedecomposition(G, T)
コード例 #12
0
ファイル: test_long_apps_CFGs.py プロジェクト: zbhuang/tdlib
 def test_max_independent_set(self):
     print("---maxIndependentSet---")
     for i in range(0, COUNT + 1):
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         base.print_graph_name(PREFIX, i)
         T, w = tdlib.minDegree_decomp(G)
         S = tdlib.max_independent_set_with_treedecomposition(G, T)
コード例 #13
0
ファイル: test_long_approx_Zoo.py プロジェクト: freetdi/tdlib
    def test_PP(self):
	print("---PP---")
        for i in range(0, COUNT+1):
            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
            G_, B, lb = tdlib.preprocessing(G)
            if G.vertices() is []:
                self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #14
0
 def test_MSVS_trivial(self):
     print("---MSVS_trivial---")
     for i in range(0, COUNT + 1):
         base.print_graph_name(PREFIX, i)
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         T1, w1 = tdlib.trivial_decomposition(G)
         T2, w2 = tdlib.MSVS(G, T1)
         self.assertEqual(tdlib.is_valid_treedecomposition(G, T2), True)
コード例 #15
0
 def test_PP(self):
     print("---PP---")
     for i in range(0, COUNT + 1):
         base.print_graph_name(PREFIX, i)
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         G_, B, lb = tdlib.preprocessing(G)
         if G.vertices() is []:
             self.assertEqual(tdlib.is_valid_treedecomposition(G, T), True)
コード例 #16
0
ファイル: test_long_lb_Zoo.py プロジェクト: jamesjer/tdlib
 def test_LB7(self):
     print("---LBPC_deltaC---")
     for i in range(0, COUNT + 1):
         if base.skip(PREFIX, i, lambda x, y: x > 300 or y > 300):
             continue
         base.print_graph_name(PREFIX, i)
         G = Graph(eval(PREFIX + ".V_" + str(i)),
                   eval(PREFIX + ".E_" + str(i)))
         tdlib.lower_bound(G, "LBPC_deltaC")
コード例 #17
0
ファイル: test_long_approx_Zoo.py プロジェクト: freetdi/tdlib
    def test_conversion(self):
	print("---conversion---")
        for i in range(0, COUNT+1):
            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
            T1, w1 = tdlib.minDegree_decomp(G)
            O = tdlib.treedec_to_ordering(T1)
            T2, w2 = tdlib.ordering_to_treedec(G, O)
            self.assertEqual(w1, w2)
コード例 #18
0
 def test_conversion(self):
     print("---conversion---")
     for i in range(0, COUNT+1):
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         base.print_graph_name(PREFIX, i)
         T1, w1 = tdlib.minDegree_decomp(G)
         O = tdlib.treedec_to_ordering(T1)
         T2, w2 = tdlib.ordering_to_treedec(G, O)
         self.assertEqual(w1, w2)
コード例 #19
0
ファイル: test_long_apps_CFGs.py プロジェクト: zbhuang/tdlib
    def test_min_coloring(self):
        print("---minColoring--")
        for i in range(0, COUNT + 1):
            if i == 999:  #huge graph
                continue

            G = Graph(eval(PREFIX + ".V_" + str(i)),
                      eval(PREFIX + ".E_" + str(i)))
            base.print_graph_name(PREFIX, i)
            T, w = tdlib.minDegree_decomp(G)
            S = tdlib.min_coloring_with_treedecomposition(G, T)
コード例 #20
0
    def test_long1(self):
        print("---generic search - FILL config---")
        for i in range(0, COUNT_NETWORKS+1):
            if base.skip(PREFIX_NETWORKS, i, lambda x,y: x > 100 or y > 2000):
                continue

            base.print_graph_name(PREFIX_NETWORKS, i)

            G = Graph(eval(PREFIX_NETWORKS+".V_"+str(i)), eval(PREFIX_NETWORKS+".E_"+str(i)))

            tdlib.generic_elimination_search_p17_jumper(G, MAX_NODES, MAX_ORDERINGS)
            print("")
コード例 #21
0
ファイル: test_Zoo.py プロジェクト: llarisch/VC
    def test_max_clique(self):
        print("---max_clique---")
        for i in range(0, COUNT + 1):
            if base.skip(PREFIX, i, lambda x, y: y > 2000):
                print("skip.. ")
                base.print_graph_name(PREFIX, i)
                continue

            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX + ".V_" + str(i)),
                      eval(PREFIX + ".E_" + str(i)))
            T, w = tdlib.minDegree_decomp(G)
            S = tdlib.max_clique_with_treedecomposition(G, T)
コード例 #22
0
    def test_long1(self):
        print("---generic search - PACE config---")
        for i in range(0, COUNT_DIMACS + 1):
            if base.skip(PREFIX_DIMACS, i, lambda x, y: x > 100 or y > 2000):
                continue

            base.print_graph_name(PREFIX_DIMACS, i)

            G = Graph(eval(PREFIX_DIMACS + ".V_" + str(i)),
                      eval(PREFIX_DIMACS + ".E_" + str(i)))

            tdlib.generic_elimination_search_p17_jumper(
                G, MAX_NODES, MAX_ORDERINGS)
            print("")
コード例 #23
0
ファイル: test_Zoo.py プロジェクト: llarisch/VC
    def test_min_vertex_cover(self):
        print("---vertex_cover---")
        for i in range(0, COUNT + 1):
            if base.skip(PREFIX, i, lambda x, y: y > 2000):
                print("skip.. ")
                base.print_graph_name(PREFIX, i)
                continue

            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX + ".V_" + str(i)),
                      eval(PREFIX + ".E_" + str(i)))
            T, w = tdlib.minDegree_decomp(G)
            if w > 17:
                print("...tw > 17, skipping...")
                continue

            S = tdlib.min_vertex_cover_with_treedecomposition(G, T)
コード例 #24
0
ファイル: test_long_apps_Zoo.py プロジェクト: zbhuang/tdlib
    def test_min_dominating_set(self):
        print("---dominating_set---")
        for i in range(0, COUNT + 1):
            if i == 91:
                continue

            if base.skip(PREFIX, i, lambda x, y: y > 2000):
                continue

            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX + ".V_" + str(i)),
                      eval(PREFIX + ".E_" + str(i)))
            T, w = tdlib.minDegree_decomp(G)
            if w > 8:
                print("...tw > 8, skipping...")
                continue

            S = tdlib.min_dominating_set_with_treedecomposition(G, T)
コード例 #25
0
ファイル: test_long_apps_Zoo.py プロジェクト: freetdi/tdlib
    def test_min_vertex_cover(self):
        print("---vertex_cover---")
        for i in range(0, COUNT+1):
            if i == 91:
                 continue

            if base.skip(PREFIX, i, lambda x,y: y > 10000):
                continue

            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
            T, w = tdlib.minDegree_decomp(G)
            if w > 25:
                print("...tw > 25, skipping...")
                continue

            S = tdlib.min_vertex_cover_with_treedecomposition(G, T)
            print(str(S))
コード例 #26
0
ファイル: test_Zoo_Clique.py プロジェクト: llarisch/VC
    def test_max_clique(self):
        print("---max_clique---")

	max_vc = 0
        avg_vc = 0.0
        max_time = 0
        avg_time = 0.0

        passed = 0

        for i in range(0, COUNT+1):
            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))

            start = time.time()
            T, w = tdlib.minDegree_decomp(G)
            print("...width " + str(w))
            if w > 30:
                print("......skip")
                continue
            S = tdlib.max_clique_with_treedecomposition(G, T)
            end = time.time()

            t = end-start

            max_vc = len(S) if len(S) > max_vc else max_vc
            avg_vc += len(S)

            max_time = t if t > max_time else max_time
            avg_time += t

        avg_vc /= (COUNT-passed)
        avg_time /= (COUNT-passed)

        print("max clique: " + str(max_vc))
        print("avg clique: " + str(avg_vc))
        print("max time: " + str(max_time))
        print("avg time: " + str(avg_time))
コード例 #27
0
    def test_max_clique(self):
        print("---max_clique---")

        max_vc = 0
        avg_vc = 0.0
        max_time = 0
        avg_time = 0.0

        for n in [50,100,200,250,500]:
            for k in range(1, 16):
                for p in [.97, .95, .90, .80, .70]:
                    for c in range(5):
                        suffix = str(n) + '_' + str(k) + '_' + str(p).replace('.','') + '_' + str(c)

                        base.print_graph_name(PREFIX, suffix)
                        G = Graph(eval(PREFIX+".V_"+str(suffix)), eval(PREFIX+".E_"+str(suffix)))

                        start = time.time()
                        T, w = tdlib.minDegree_decomp(G)
                        S = tdlib.max_clique_with_treedecomposition(G, T)
                        end = time.time()

                        t = end-start

                        max_vc = len(S) if len(S) > max_vc else max_vc
                        avg_vc += len(S)

                        max_time = t if t > max_time else max_time
                        avg_time += t

        avg_vc /= COUNT
        avg_time /= COUNT

        print("max clique: " + str(max_vc))
        print("avg clique: " + str(avg_vc))
        print("max time: " + str(max_time))
        print("avg time: " + str(avg_time))
コード例 #28
0
ファイル: test_CFGs_VertexCover.py プロジェクト: llarisch/VC
    def test_min_vertex_cover(self):
        print("---vertex_cover---")

        max_n = 0
        avg_n = 0.0

        max_m = 0
        avg_m = 0.0

        max_vc = 0
        avg_vc = 0.0

        max_tw = 0
        avg_tw = 0.0

        max_time = 0
        avg_time = 0.0

        Ns = list()
        Ms = list()
        VCs = list()
        TWs = list()
        TIMEs = list()

        for i in range(0, COUNT + 1):
            #for i in range(1224, 1752+1):
            base.print_graph_name(PREFIX, i)
            G = Graph(eval(PREFIX + ".V_" + str(i)),
                      eval(PREFIX + ".E_" + str(i)))

            start = time.time()
            #T, w = tdlib.minDegree_decomp(G)
            T, w = tdlib.PP_FI_TM(G)
            s, S = tdlib.min_vertex_cover_with_treedecomposition2(G, T, False)
            end = time.time()

            t = end - start

            max_n = len(G.vertices()) if len(G.vertices()) > max_n else max_n
            avg_n += len(G.vertices())
            Ns.append(len(G.vertices()))

            max_m = len(G.edges()) if len(G.edges()) > max_m else max_m
            avg_m += len(G.edges())
            Ms.append(len(G.edges()))

            max_vc = s if s > max_vc else max_vc
            avg_vc += s
            VCs.append(s)

            max_tw = w if w > max_tw else max_tw
            avg_tw += w
            TWs.append(w)

            max_time = t if t > max_time else max_time
            avg_time += t
            TIMEs.append(t)

        #COUNT = 1752-1224

        avg_n /= COUNT
        avg_m /= COUNT
        avg_vc /= COUNT
        avg_tw /= COUNT
        avg_time /= COUNT

        med_n = median(Ns)
        med_m = median(Ms)
        med_vc = median(VCs)
        med_tw = median(TWs)
        med_time = median(TIMEs)

        print("avg n: " + str(avg_n))
        print("med n: " + str(med_n))
        print("max n: " + str(max_n))

        print("")

        print("avg m: " + str(avg_m))
        print("med m: " + str(med_m))
        print("max m: " + str(max_m))

        print("")

        print("avg tw: " + str(avg_tw))
        print("med tw: " + str(med_tw))
        print("max tw: " + str(max_tw))

        print("")

        print("avg vc: " + str(avg_vc))
        print("med vc: " + str(med_vc))
        print("max vc: " + str(max_vc))

        print("")

        print("avg time: " + str(avg_time))
        print("med time: " + str(med_time))
        print("max time: " + str(max_time))
コード例 #29
0
ファイル: test_long_lb_Dimacs.py プロジェクト: freetdi/tdlib
 def test_LB3(self):
     print("---deltaC_least_c---")
     for i in range(0, COUNT+1):
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         base.print_graph_name(PREFIX, i)
         tdlib.lower_bound(G, "deltaC_least_c")
コード例 #30
0
ファイル: test_long_lb_Zoo.py プロジェクト: freetdi/tdlib
 def test_LB4(self):
     print("---LBN_deltaC---")
     for i in range(0, COUNT+1):
         base.print_graph_name(PREFIX, i)
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         tdlib.lower_bound(G, "LBN_deltaC")
コード例 #31
0
ファイル: test_long_lb_CFGs.py プロジェクト: zbhuang/tdlib
 def test_LB4(self):
     print("---LBN_deltaC---")
     for i in range(0, COUNT+1):
         G = Graph(eval(PREFIX+".V_"+str(i)), eval(PREFIX+".E_"+str(i)))
         base.print_graph_name(PREFIX, i)
         tdlib.lower_bound(G, "LBN_deltaC")