Exemple #1
0
    def test_goldstein_price(self):
        task = GoldsteinPrice()

        # Check batch computation
        n_points = 10
        X = np.random.rand(n_points, task.n_dims)

        X[:, 0] = X[:, 0].dot(task.X_upper[0] - task.X_lower[0]) + task.X_lower[0]
        X[:, 1] = X[:, 1].dot(task.X_upper[1] - task.X_lower[1]) + task.X_lower[1]
        y = task.evaluate(X)
        assert y.shape[0] == n_points
        assert y.shape[1] == 1

        # Check single computation
        X = np.array([np.random.rand(task.n_dims)])

        X[:, 0] = X[:, 0].dot(task.X_upper[0] - task.X_lower[0]) + task.X_lower[0]
        X[:, 1] = X[:, 1].dot(task.X_upper[1] - task.X_lower[1]) + task.X_lower[1]

        y = task.evaluate(X)
        assert y.shape[0] == 1

        # Check optimas
        X = np.array([[0, -1]])
        y = task.evaluate(X)

        assert np.all(np.round(y) == 3) == True
Exemple #2
0
class EnvGoldsteinPrice(BaseTask):

    def __init__(self):
        self.goldstein_price = GoldsteinPrice()
        X_lower = np.concatenate((self.goldstein_price.original_X_lower, np.array([0])))
        X_upper = np.concatenate((self.goldstein_price.original_X_upper, np.array([1])))
        self.is_env = np.array([0, 0, 1])
        super(EnvGoldsteinPrice, self).__init__(X_lower, X_upper)

    def objective_function(self, x):
        y = self.goldstein_price.objective_function(x[:, :-1]) * np.exp(-(x[0, -1] - 1))

        return y

    def objective_function_test(self, x):
        return self.goldstein_price.objective_function(x[:, :-1])
Exemple #3
0
 def __init__(self):
     self.goldstein_price = GoldsteinPrice()
     X_lower = np.concatenate((self.goldstein_price.original_X_lower, np.array([0])))
     X_upper = np.concatenate((self.goldstein_price.original_X_upper, np.array([1])))
     self.is_env = np.array([0, 0, 1])
     super(EnvGoldsteinPrice, self).__init__(X_lower, X_upper)