Esempio n. 1
0
    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]