コード例 #1
0
ファイル: test.py プロジェクト: vkhakham/k-segment
    def test_coreset_merging(self):
        # generate points
        n = 120
        k = 6
        epsilon = 0.1
        generate_input_file(n)
        data = np.genfromtxt("input.csv", delimiter=" ")
        p = np.c_[np.mgrid[1:n + 1], data]

        coreset = Coreset.build_coreset(p, k, epsilon)
        coreset_of_coreset = Coreset.build_coreset(coreset, k, epsilon, is_coreset=True)
        dividers = ksegment.coreset_k_segment(coreset_of_coreset, k)
コード例 #2
0
    def test_fast_segmentation(self):
        n = 360
        k = 3
        epsilon = 1

        generate_input_file(n)
        data = np.genfromtxt("input.csv", delimiter=" ")
        p = np.c_[np.mgrid[1:n + 1], data]

        D = Coreset.build_coreset(p, k, epsilon)
        print len(D)
        x = np.empty((0, 4))
        for coreset in D:
            print "coreset range", coreset.e - coreset.b + 1
            pts = utils.pt_on_line(xrange(int(coreset.b), int(coreset.e) + 1), coreset.g)
            # TODO: 2nd parameter should be epsilon
            w = Coreset.PiecewiseCoreset(len(pts[0]), epsilon)
            p_coreset = np.column_stack((pts[0], pts[1], pts[2], w))
            p_coreset_filtered = p_coreset[p_coreset[:, 3] > 0]
            # print "weighted points", p_coreset_filtered
            x = np.append(x, p_coreset_filtered, axis=0)
        print "num of weighted points", len(x)
        dividers = ksegment.coreset_k_segment_fast_segmentation(x, k)
        print "dividers", dividers
        print "dividers-cost:", utils.calc_cost_dividers(p, dividers)
        utils.visualize_3d(p, dividers)
コード例 #3
0
ファイル: test.py プロジェクト: vkhakham/k-segment
    def test_coreset_merging(self):
        # generate points
        n = 120
        # dimension = 2
        k = 3
        epsilon = 0.1

        # data = random_data(N, dimension)
        # for example1 choose N that divides by 6
        data = example1(n)

        p = np.c_[np.mgrid[1:n + 1], data]

        coreset = Coreset.build_coreset(p, k, epsilon)
        coreset_of_coreset = Coreset.build_coreset(coreset, k, epsilon, is_coreset=True)
        dividers = ksegment.coreset_k_segment(coreset_of_coreset, k)
        utils.visualize_3d(p, dividers)
コード例 #4
0
ファイル: test.py プロジェクト: vkhakham/k-segment
    def test_basic_demo(self):
        # generate points
        k = 3
        epsilon = 0.5
        n = 600
        generate_input_file(n)
        data = np.genfromtxt("input.csv", delimiter=" ")
        p = np.c_[np.mgrid[1:n + 1], data]

        coreset = Coreset.build_coreset(p, k, epsilon)
        dividers = ksegment.coreset_k_segment(coreset, k)
コード例 #5
0
ファイル: tree.py プロジェクト: vkhakham/k-segment
 def k_segment_merge(a, b):
     # case both are coresets
     if type(a) is list and type(b) is list:
         a.extend(b)
         merged_coreset = Coreset.build_coreset(a, k, eps, True)
     # case one of them is a set of points
     elif type(a) is list or type(b) is list:
         if type(a) is list:
             points_to_coreset = b
             coreset_to_merge = a
         else:
             points_to_coreset = a
             coreset_to_merge = b
         new_coreset = Coreset.build_coreset(points_to_coreset, k, eps, False)
         coreset_to_merge.extend(new_coreset)
         merged_coreset = Coreset.build_coreset(coreset_to_merge, k, eps, True)
     # case both of them are sets of points
     else:
         merged_coreset = Coreset.build_coreset(np.vstack((a, b)), k, eps, False)
     return merged_coreset
コード例 #6
0
ファイル: test.py プロジェクト: vkhakham/k-segment
    def test_bicritiria(self):
        n = 300
        k = 8
        data = example1(n)

        p = np.c_[np.mgrid[1:n + 1], data]

        bicritiria_cost = Coreset.bicriteria(p, k)
        print "Bicritiria estimate: ", bicritiria_cost
        real_cost = utils.calc_cost_dividers(p, ksegment.k_segment(p, k))
        print "real cost: ", real_cost
        self.assertGreaterEqual(bicritiria_cost, real_cost)
コード例 #7
0
    def test_basic_demo(self):
        # dimension = 2
        k = 3
        epsilon = 0.5
        n = 300

        generate_input_file(n)
        data = np.genfromtxt("input.csv", delimiter=" ")
        p = np.c_[np.mgrid[1:n + 1], data]

        coreset = Coreset.build_coreset(p, k, epsilon)
        dividers = ksegment.coreset_k_segment(coreset, k)
        utils.visualize_3d(p, dividers)
コード例 #8
0
ファイル: test.py プロジェクト: vkhakham/k-segment
    def test_fast_segmentation(self):
        # generate points
        n = 600
        k = 6
        epsilon = 10
        generate_input_file(n)
        data = np.genfromtxt("input.csv", delimiter=" ")
        p = np.c_[np.mgrid[1:n + 1], data]

        D = Coreset.build_coreset(p, k, epsilon)
        print D
        dividers = ksegment.coreset_k_segment_fast_segmentation(D, k, epsilon)
        print "dividers", dividers
        print "dividers-cost:", utils.calc_cost_dividers(p, dividers)
コード例 #9
0
        self.allocate_array = (self.allocate_array).transpose()
        return self.allocate_array

    def print_SolutionStatus(self):
        print("solve status: {0}".format(self.solve_flag))
        print("elapsed time: {0}".format(self.elapsed_time))
        print("best ObjVal: {0}".format(self.best_ObjVal))
        print("best core_conf: freq {0}, power {1}".format(
            self.best_core_freq, self.best_core_power))


t = taskset.Taskset("taskset1")
t.set_TasksetConf(1)
t.create_Taskset(option=3)
#t.print_TasksetStatus()
c = Coreset.Coreset("coreset1")
c.set_CoresetConf()
c.create_Coresets()
#c.print_CoresetStatus()
a = Allocate("allocate1")
a.allcate_all_search_static_noconsider(c.get_CoresetCoreNum(),
                                       c.get_CoresetBigCoreNum(),
                                       c.get_CoresetLittleCoreNum(),
                                       c.get_CoresetFreqList(),
                                       c.get_CoresetPowerList(),
                                       t.get_TaskNum(),
                                       t.get_TasksetWcetList(),
                                       t.get_TasksetPeriodList())
ary = a.get_AllocateArray()
print ary