embcol.problem.Constraint.transform¶
- Constraint.transform(feasible)[source]¶
Transform a constraint for adjusting a feasible region.
- Parameters:
feasible (
{'nonnegative', 'nonpositive'}) – Feasible region after the transform.- Returns:
listofembcol.problem.Constraint– Transformed constrains.
Examples
>>> import numpy as np >>> original = Constraint( ... lambda params: 2*params, ... lambda params: 2*np.eye(len(params)), ... lambda params: np.zeros((len(params),)*3), ... 3, ... lower_bound=-1.0, ... upper_bound=1.0, ... ) >>> transformed = original.transform("nonnegative") >>> params = np.array([-1.0, 0.0, 2.0])
Only
params[1]is feasible for the original constraint.>>> original.function(params) array([-2., 0., 4.]) >>> original.violation(params) == 0 array([False, True, False])
Only the feasible parameter gives nonnegative constrained values for all transformed constraints.
>>> [t.function(params) for t in transformed] [array([-1., 1., 5.]), array([ 3., 1., -3.])]