def _evaluate(self, X, out, *args, **kwargs): # Convert X to a DataSet X = DataSet(np.atleast_2d(X), columns=self.X_columns) # Add in any fixed columns (i.e., values for cateogricals) if self.fixed_variables is not None: for key, value in self.fixed_variables.items(): X[key] = value F = np.zeros([X.shape[0], self.n_obj]) for i in range(self.n_obj): F[:, i] = self.models[i].predict(X) # Negate objectives that are need to be maximized for i, v in enumerate(self.domain.output_variables): if v.maximize: F[:, i] *= -1 out["F"] = F # Add constraints if necessary if self.domain.constraints: constraint_res = [ X.eval(c.lhs, resolvers=[X]) for c in self.domain.constraints ] out["G"] = [c.tolist()[0] for c in constraint_res]
def problem_wrapper(X): X = DataSet(np.atleast_2d(X), columns=input_columns) X[("strategy", "METADATA")] = "NSGAII" result = self.experiment.run_experiments(X) if self.domain.constraints: constraint_res = [ X.eval(c.lhs, resolvers=[X]) for c in self.domain.constraints ] constraint_res = [c.tolist()[0] for c in constraint_res] return result[output_columns].to_numpy()[0,:], constraint_res else: return result[output_columns].to_numpy()[0,:]
def _evaluate(self, X, out, *args, **kwargs): X = DataSet(np.atleast_2d(X), columns=self.input_columns) X[("strategy", "METADATA")] = "NSGAII" F = self.experiment.run_experiments(X) F = F[self.output_columns].data_to_numpy() # Negate objectives that need to be maximized for i, v in enumerate(self.domain.output_variables): if v.maximize: F[:,i] *= -1 out["F"] = F # Add constraints if necessary if self.domain.constraints: constraint_res = [ X.eval(c.lhs, resolvers=[X]) for c in self.domain.constraints ] out["G"] = [c.tolist()[0] for c in constraint_res]