From 466d15b07e9eb4ee250a45f17eb8b1866fb86f99 Mon Sep 17 00:00:00 2001 From: Kenshin Abe Date: Thu, 22 Dec 2022 18:26:44 +0900 Subject: [PATCH 1/2] Fix correction of out-of-range discrete params --- cmaes/_cmawm.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/cmaes/_cmawm.py b/cmaes/_cmawm.py index ce4c189..63bcf39 100644 --- a/cmaes/_cmawm.py +++ b/cmaes/_cmawm.py @@ -213,9 +213,7 @@ def ask(self) -> Tuple[np.ndarray, np.ndarray]: ) return x_encoded, x x = self._cma._sample_solution() - x[self._continuous_idx] = self._repair_continuous_params( - x[self._continuous_idx] - ) + x = self._cma._repair_infeasible_params(x) x_encoded = x.copy() x_encoded[self._discrete_idx] = self._encoding_discrete_params( x[self._discrete_idx] From 062de4cfd59a7c77735ab79e4ac3a291d6b794d0 Mon Sep 17 00:00:00 2001 From: Kenshin Abe Date: Mon, 26 Dec 2022 12:42:02 +0900 Subject: [PATCH 2/2] Delete CMAwM._repair_continuous_params --- cmaes/_cmawm.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/cmaes/_cmawm.py b/cmaes/_cmawm.py index 63bcf39..93f5fcc 100644 --- a/cmaes/_cmawm.py +++ b/cmaes/_cmawm.py @@ -229,21 +229,6 @@ def _is_continuous_feasible(self, continuous_param: np.ndarray) -> bool: and np.all(continuous_param <= self._continuous_space[:, 1]), ) # Cast bool_ to bool. - def _repair_continuous_params(self, continuous_param: np.ndarray) -> np.ndarray: - if self._continuous_space is None: - return continuous_param - - # clip with lower and upper bound. - param = np.where( - continuous_param < self._continuous_space[:, 0], - self._continuous_space[:, 0], - continuous_param, - ) - param = np.where( - param > self._continuous_space[:, 1], self._continuous_space[:, 1], param - ) - return param - def _encoding_discrete_params(self, discrete_param: np.ndarray) -> np.ndarray: """Encode the values into discrete domain.""" mean = self._cma._mean