def exploit_best_region()

in scheme_adapters/polyfit_adapter/polyfit_adapter.py [0:0]


    def exploit_best_region(self):
        scores = self.scores[:]
        scores.sort()
        scores.reverse()
        num_points = max(0.1 * self.num_runs, 2)
        runs_left = self.total_runs - self.num_runs
        data_dict = dict()
        if runs_left <= 0:
            return data_dict

        for i in range(0, num_points, 1):
            for j in range(len(self.params)):
                if isinstance(self.ranges[self.params[j]], list):
                    point = scores[i][1][j]
                    min_range = self.convert(self.ranges[self.params[j]][0])
                    max_range = self.convert(self.ranges[self.params[j]][1])
                    range_diff = max_range - min_range
                    lower_bound = max(point - int(0.1 * range_diff), min_range)
                    upper_bound = min(point + int(0.1 * range_diff), max_range)
                    num_samples = int(runs_left / (num_points - i))
                    num_samples = min(num_samples, upper_bound - lower_bound)
                    runs_left -= num_samples
                    random_list = random.sample(range(lower_bound, upper_bound), num_samples)
                    if self.params[j] in data_dict.keys():
                        data_dict[self.params[j]] += random_list
                    else:
                        data_dict[self.params[j]] = random_list
                else:
                    data_dict[self.params[j]] = [scores[i][1][j]]
        data_dict["action"] = [self.ranges["action"]]
        return data_dict