def __init__(self, objective_function, num_objectives, num_variables, k, **kwargs): assert num_objectives > 1 assert k >= 1 and k < num_variables assert k % (num_objectives - 1) == 0 self.max_objectives = None self.min_objectives = None if num_objectives == 3: self.max_objectives = [10.0, 10.0, 10.0] self.min_objectives = [0.0, 0.0, 0.0] elif num_objectives == 5: self.max_objectives = [10.0, 10.0, 10.0, 10.0, 12.0] self.min_objectives = [0.0, 0.0, 0.0, 0.0, 0.0] self.min_bounds = [0.0] * num_variables self.max_bounds = [2.0 * i for i in range(1, num_variables + 1)] MultiObjectiveTestProblem.__init__(self, objective_function, num_objectives, **kwargs) self.k = k self.num_variables = num_variables self.is_deterministic = True self.do_maximize = False if num_objectives <= 4: self.default_reference_set_size = 500 else: self.default_reference_set_size = 1000
def __init__(self, objective_function, num_objectives, num_variables, phenome_preprocessor=None, **kwargs): assert num_variables > num_objectives self.num_variables = num_variables self.min_bounds = [0.0] * num_variables self.max_bounds = [1.0] * num_variables bounds = (self.min_bounds, self.max_bounds) preprocessor = BoundConstraintsChecker(bounds, phenome_preprocessor) self.is_deterministic = True self.do_maximize = False MultiObjectiveTestProblem.__init__(self, objective_function, num_objectives, phenome_preprocessor=preprocessor, **kwargs)