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)
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)
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)
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)
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
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)
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)
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)
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