Skip to content

Commit 40ad138

Browse files
committed
Check linear equality constraints in RepairIndividuals
Squash into other commit
1 parent 68cb881 commit 40ad138

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

CADETProcess/optimization/pymooAdapter.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -265,13 +265,21 @@ def __init__(self, optimization_problem, *args, **kwargs):
265265
super().__init__(*args, **kwargs)
266266

267267
def _do(self, problem, X, **kwargs):
268-
# Check if linear constraints are met
268+
# Check if linear (equality) constraints are met
269+
X_new = None
269270
for i, ind in enumerate(X):
270-
X_new = None
271-
if not self.optimization_problem.check_linear_constraints(
272-
ind, untransform=True, get_dependent_values=True):
271+
if (
272+
not self.optimization_problem.check_linear_constraints(
273+
ind, untransform=True, get_dependent_values=True
274+
)
275+
or
276+
not self.optimization_problem.check_linear_equality_constraints(
277+
ind, untransform=True, get_dependent_values=True
278+
)
279+
):
273280
if X_new is None:
274-
X_new = self.optimization_problem.create_initial_values(len(X))
281+
burn_in = 1e5 * 10 ** self.optimization_problem.n_linear_equality_constraints
282+
X_new = self.optimization_problem.create_initial_values(len(X), burn_in)
275283
x_new = X_new[i, :]
276284
X[i, :] = self.optimization_problem.transform(x_new)
277285

0 commit comments

Comments
 (0)