Transforms
Transforms map values between the user domain and the optimizer domain. Each transform is initialized with a boolean mask and applied in sequence during optimization. The base classes define the contract; the built-in defaults provide linear scale/offset transforms.
See Transforms for usage, configuration, and implementation guidance.
ropt.transforms
Public API for domain transforms.
Provides base classes for transforming variables, objectives, and constraints between user-defined domains and the optimizer's internal domain:
See Transforms for usage, configuration, and implementation guidance.
NonlinearConstraintTransform
Bases: ABC
Abstract base class for nonlinear constraint transformations.
Subclasses must implement:
to_optimizer/from_optimizer: map constraint values.bounds_to_optimizer: map constraint RHS bounds.nonlinear_constraint_diffs_from_optimizer: map violation differences.init: apply a mask selecting which constraints this transform affects.
All arrays use the last axis for the constraint dimension.
__init__
abstractmethod
Initialize the constraint transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
NonlinearConstraintTransformConfig
|
The transform configuration. |
required |
init
abstractmethod
Apply a mask selecting which constraints this transform affects.
Unmasked positions must pass through unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mask
|
NDArray[bool_]
|
Boolean array ( |
required |
to_optimizer
abstractmethod
Transform constraint values from user domain to optimizer domain.
The last axis represents constraints. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
NDArray[float64]
|
Constraint values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the optimizer domain. |
from_optimizer
abstractmethod
Transform constraint values from optimizer domain to user domain.
The last axis represents constraints. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
NDArray[float64]
|
Constraint values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the user domain. |
bounds_to_optimizer
abstractmethod
bounds_to_optimizer(
lower_bounds: NDArray[float64],
upper_bounds: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform constraint RHS bounds to the optimizer domain.
Adjusts bounds to remain consistent with the constraint transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_bounds
|
NDArray[float64]
|
Lower RHS bounds in user domain. |
required |
upper_bounds
|
NDArray[float64]
|
Upper RHS bounds in user domain. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_bounds, upper_bounds) in optimizer domain. |
nonlinear_constraint_diffs_from_optimizer
abstractmethod
nonlinear_constraint_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform constraint-violation differences to user domain.
Used for reporting constraint violations in user-domain units.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Constraint value minus lower bound. |
required |
upper_diffs
|
NDArray[float64]
|
Constraint value minus upper bound. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_diffs, upper_diffs) in user domain. |
ObjectiveTransform
Bases: ABC
Abstract base class for objective transformations.
Subclasses must implement to_optimizer and from_optimizer to map
objective values between user and optimizer domains, plus init to
apply a mask selecting which objectives this transform affects.
All arrays use the last axis for the objective dimension.
__init__
abstractmethod
Initialize the objective transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
ObjectiveTransformConfig
|
The transform configuration. |
required |
init
abstractmethod
Apply a mask selecting which objectives this transform affects.
Unmasked positions must pass through unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mask
|
NDArray[bool_]
|
Boolean array ( |
required |
to_optimizer
abstractmethod
Transform objective values from user domain to optimizer domain.
The last axis represents objectives. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
objectives
|
NDArray[float64]
|
Objective values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the optimizer domain. |
from_optimizer
abstractmethod
Transform objective values from optimizer domain to user domain.
The last axis represents objectives. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
objectives
|
NDArray[float64]
|
Objective values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the user domain. |
VariableTransform
Bases: ABC
Abstract base class for variable transformations.
Subclasses must implement methods to transform variables and related quantities between user and optimizer domains:
to_optimizer/from_optimizer: map variable values.magnitudes_to_optimizer: map perturbation magnitudes.bound_constraint_diffs_from_optimizer: map bound-violation differences.init: apply a mask selecting which variables this transform affects.
Override linear_constraints_to_optimizer and
linear_constraints_diffs_from_optimizer if linear constraints are used.
All arrays use the last axis for the variable dimension.
See Transforms for lifecycle and guidance.
__init__
abstractmethod
Initialize the variable transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
VariableTransformConfig
|
The transform configuration. |
required |
init
abstractmethod
Apply a mask selecting which variables this transform affects.
The mask combines the free-variable mask with the per-transform assignment. Unmasked positions must pass through unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mask
|
NDArray[bool_]
|
Boolean array ( |
required |
to_optimizer
abstractmethod
Transform variable values from user domain to optimizer domain.
The last axis represents variables. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Variable values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the optimizer domain. |
from_optimizer
abstractmethod
Transform variable values from optimizer domain to user domain.
The last axis represents variables. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Variable values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the user domain. |
magnitudes_to_optimizer
abstractmethod
Transform perturbation magnitudes to the optimizer domain.
Must be consistent with the variable transform (e.g., if variables are divided by scale, magnitudes should be too).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Perturbation magnitudes in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Magnitudes in the optimizer domain. |
bound_constraint_diffs_from_optimizer
abstractmethod
bound_constraint_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform bound-violation differences to the user domain.
Used for reporting constraint violations in user-domain units.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Variable value minus lower bound (optimizer domain). |
required |
upper_diffs
|
NDArray[float64]
|
Variable value minus upper bound (optimizer domain). |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_diffs, upper_diffs) in user domain. |
linear_constraints_to_optimizer
linear_constraints_to_optimizer(
coefficients: NDArray[float64],
lower_bounds: NDArray[float64],
upper_bounds: NDArray[float64],
) -> tuple[
NDArray[np.float64],
NDArray[np.float64],
NDArray[np.float64],
]
Transform linear constraint coefficients and bounds to optimizer domain.
Adjusts the coefficient matrix and RHS bounds so that linear constraints remain valid after the variable transformation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coefficients
|
NDArray[float64]
|
Coefficient matrix |
required |
lower_bounds
|
NDArray[float64]
|
Lower RHS bounds. |
required |
upper_bounds
|
NDArray[float64]
|
Upper RHS bounds. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64], NDArray[float64]]
|
Tuple of (coefficients, lower_bounds, upper_bounds) in optimizer domain. |
linear_constraints_diffs_from_optimizer
linear_constraints_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform linear-constraint-violation differences to user domain.
Used for reporting constraint violations in user-domain units.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Constraint value minus lower bound. |
required |
upper_diffs
|
NDArray[float64]
|
Constraint value minus upper bound. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_diffs, upper_diffs) in user domain. |
ropt.transforms.VariableTransform
Bases: ABC
Abstract base class for variable transformations.
Subclasses must implement methods to transform variables and related quantities between user and optimizer domains:
to_optimizer/from_optimizer: map variable values.magnitudes_to_optimizer: map perturbation magnitudes.bound_constraint_diffs_from_optimizer: map bound-violation differences.init: apply a mask selecting which variables this transform affects.
Override linear_constraints_to_optimizer and
linear_constraints_diffs_from_optimizer if linear constraints are used.
All arrays use the last axis for the variable dimension.
See Transforms for lifecycle and guidance.
__init__
abstractmethod
Initialize the variable transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
VariableTransformConfig
|
The transform configuration. |
required |
init
abstractmethod
Apply a mask selecting which variables this transform affects.
The mask combines the free-variable mask with the per-transform assignment. Unmasked positions must pass through unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mask
|
NDArray[bool_]
|
Boolean array ( |
required |
to_optimizer
abstractmethod
Transform variable values from user domain to optimizer domain.
The last axis represents variables. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Variable values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the optimizer domain. |
from_optimizer
abstractmethod
Transform variable values from optimizer domain to user domain.
The last axis represents variables. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Variable values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the user domain. |
magnitudes_to_optimizer
abstractmethod
Transform perturbation magnitudes to the optimizer domain.
Must be consistent with the variable transform (e.g., if variables are divided by scale, magnitudes should be too).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Perturbation magnitudes in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Magnitudes in the optimizer domain. |
bound_constraint_diffs_from_optimizer
abstractmethod
bound_constraint_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform bound-violation differences to the user domain.
Used for reporting constraint violations in user-domain units.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Variable value minus lower bound (optimizer domain). |
required |
upper_diffs
|
NDArray[float64]
|
Variable value minus upper bound (optimizer domain). |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_diffs, upper_diffs) in user domain. |
linear_constraints_to_optimizer
linear_constraints_to_optimizer(
coefficients: NDArray[float64],
lower_bounds: NDArray[float64],
upper_bounds: NDArray[float64],
) -> tuple[
NDArray[np.float64],
NDArray[np.float64],
NDArray[np.float64],
]
Transform linear constraint coefficients and bounds to optimizer domain.
Adjusts the coefficient matrix and RHS bounds so that linear constraints remain valid after the variable transformation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coefficients
|
NDArray[float64]
|
Coefficient matrix |
required |
lower_bounds
|
NDArray[float64]
|
Lower RHS bounds. |
required |
upper_bounds
|
NDArray[float64]
|
Upper RHS bounds. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64], NDArray[float64]]
|
Tuple of (coefficients, lower_bounds, upper_bounds) in optimizer domain. |
linear_constraints_diffs_from_optimizer
linear_constraints_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform linear-constraint-violation differences to user domain.
Used for reporting constraint violations in user-domain units.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Constraint value minus lower bound. |
required |
upper_diffs
|
NDArray[float64]
|
Constraint value minus upper bound. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_diffs, upper_diffs) in user domain. |
ropt.transforms.ObjectiveTransform
Bases: ABC
Abstract base class for objective transformations.
Subclasses must implement to_optimizer and from_optimizer to map
objective values between user and optimizer domains, plus init to
apply a mask selecting which objectives this transform affects.
All arrays use the last axis for the objective dimension.
__init__
abstractmethod
Initialize the objective transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
ObjectiveTransformConfig
|
The transform configuration. |
required |
init
abstractmethod
Apply a mask selecting which objectives this transform affects.
Unmasked positions must pass through unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mask
|
NDArray[bool_]
|
Boolean array ( |
required |
to_optimizer
abstractmethod
Transform objective values from user domain to optimizer domain.
The last axis represents objectives. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
objectives
|
NDArray[float64]
|
Objective values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the optimizer domain. |
from_optimizer
abstractmethod
Transform objective values from optimizer domain to user domain.
The last axis represents objectives. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
objectives
|
NDArray[float64]
|
Objective values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the user domain. |
ropt.transforms.NonlinearConstraintTransform
Bases: ABC
Abstract base class for nonlinear constraint transformations.
Subclasses must implement:
to_optimizer/from_optimizer: map constraint values.bounds_to_optimizer: map constraint RHS bounds.nonlinear_constraint_diffs_from_optimizer: map violation differences.init: apply a mask selecting which constraints this transform affects.
All arrays use the last axis for the constraint dimension.
__init__
abstractmethod
Initialize the constraint transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
NonlinearConstraintTransformConfig
|
The transform configuration. |
required |
init
abstractmethod
Apply a mask selecting which constraints this transform affects.
Unmasked positions must pass through unchanged.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
mask
|
NDArray[bool_]
|
Boolean array ( |
required |
to_optimizer
abstractmethod
Transform constraint values from user domain to optimizer domain.
The last axis represents constraints. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
NDArray[float64]
|
Constraint values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the optimizer domain. |
from_optimizer
abstractmethod
Transform constraint values from optimizer domain to user domain.
The last axis represents constraints. Multi-dimensional arrays are supported.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
NDArray[float64]
|
Constraint values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the user domain. |
bounds_to_optimizer
abstractmethod
bounds_to_optimizer(
lower_bounds: NDArray[float64],
upper_bounds: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform constraint RHS bounds to the optimizer domain.
Adjusts bounds to remain consistent with the constraint transform.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_bounds
|
NDArray[float64]
|
Lower RHS bounds in user domain. |
required |
upper_bounds
|
NDArray[float64]
|
Upper RHS bounds in user domain. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_bounds, upper_bounds) in optimizer domain. |
nonlinear_constraint_diffs_from_optimizer
abstractmethod
nonlinear_constraint_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Transform constraint-violation differences to user domain.
Used for reporting constraint violations in user-domain units.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Constraint value minus lower bound. |
required |
upper_diffs
|
NDArray[float64]
|
Constraint value minus upper bound. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_diffs, upper_diffs) in user domain. |
ropt.transforms.default.DefaultVariableTransform
Bases: VariableTransform
Linearly scales and shifts variables between domains.
This class implements a linear transformation for variables, allowing for scaling and shifting between the user-defined domain and the optimizer's internal domain. The transformation is defined by a scaling factor and an offset for each variable.
The transformation from the user domain to the optimizer domain is given by:
The transformation from the optimizer domain back to the user domain is:
This transformation can be used to improve the performance of the optimizer by working with variables that are scaled to a more suitable range or centered around a specific value.
__init__
Initialize the variable scaler.
Reads scales and offsets from the transform configuration options.
If both are provided, they are broadcasted to the same length.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
VariableTransformConfig
|
The transform configuration. |
required |
to_optimizer
Apply (values - offset) / scale.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Variable values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the optimizer domain. |
from_optimizer
Apply values * scale + offset.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Variable values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed values in the user domain. |
magnitudes_to_optimizer
Apply values / scale.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
values
|
NDArray[float64]
|
Perturbation magnitudes in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Magnitudes in the optimizer domain. |
linear_constraints_to_optimizer
linear_constraints_to_optimizer(
coefficients: NDArray[float64],
lower_bounds: NDArray[float64],
upper_bounds: NDArray[float64],
) -> tuple[
NDArray[np.float64],
NDArray[np.float64],
NDArray[np.float64],
]
Transform linear constraints to the optimizer domain.
The set of linear constraints can be represented by a matrix equation: \(\mathbf{A} \mathbf{x} = \mathbf{b}\).
If the linear transformation of variables to the optimizer domain is:
then the coefficients and right-hand-side values become:
where \(S\) is a diagonal matrix with scaling factors and \(o\) are offsets.
The resulting equations are further scaled by dividing by the maximum absolute coefficient in each equation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
coefficients
|
NDArray[float64]
|
The coefficient matrix of the linear constraints. |
required |
lower_bounds
|
NDArray[float64]
|
The lower bounds on the right-hand-side values. |
required |
upper_bounds
|
NDArray[float64]
|
The upper bounds on the right-hand-side values. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64], NDArray[float64]]
|
A tuple containing the transformed coefficient matrix and bounds. |
bound_constraint_diffs_from_optimizer
bound_constraint_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Scale differences back by * scale.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Variable value minus lower bound (optimizer domain). |
required |
upper_diffs
|
NDArray[float64]
|
Variable value minus upper bound (optimizer domain). |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
A tuple of (lower_diffs, upper_diffs) in user domain. |
linear_constraints_diffs_from_optimizer
linear_constraints_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Re-scale by the equation weights stored during linear_constraints_to_optimizer.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Linear constraint value minus lower bound. |
required |
upper_diffs
|
NDArray[float64]
|
Linear constraint value minus upper bound. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
A tuple of (lower_diffs, upper_diffs) in user domain. |
ropt.transforms.default.DefaultObjectiveTransform
Bases: ObjectiveTransform
Linearly scales objectives between domains.
Divides by scales when going to the optimizer domain, multiplies when
returning to the user domain.
__init__
Initialize the objective scaler.
Reads scales from the transform configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
ObjectiveTransformConfig
|
The transform configuration. |
required |
to_optimizer
Apply objectives / scales.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
objectives
|
NDArray[float64]
|
Objective values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed objectives in the optimizer domain. |
from_optimizer
Apply objectives * scales.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
objectives
|
NDArray[float64]
|
Objective values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed objectives in the user domain. |
update
Set new scaling factors (applies mask if previously initialized).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
scales
|
ArrayLike
|
The new scaling factors. |
required |
ropt.transforms.default.DefaultNonlinearConstraintTransform
Bases: NonlinearConstraintTransform
Linearly scales constraints between domains.
Divides by scales when going to the optimizer domain, multiplies when
returning to the user domain. Also scales RHS bounds consistently.
__init__
Initialize the constraint scaler.
Reads scales from the transform configuration options.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
transform_config
|
NonlinearConstraintTransformConfig
|
The transform configuration. |
required |
to_optimizer
Apply constraints / scales.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
NDArray[float64]
|
Constraint values in the user domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed constraint values in the optimizer domain. |
from_optimizer
Apply constraints * scales.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constraints
|
NDArray[float64]
|
Constraint values in the optimizer domain. |
required |
Returns:
| Type | Description |
|---|---|
NDArray[float64]
|
Transformed constraint values in the user domain. |
bounds_to_optimizer
bounds_to_optimizer(
lower_bounds: NDArray[float64],
upper_bounds: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Apply bounds / scales.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_bounds
|
NDArray[float64]
|
Lower RHS bounds in user domain. |
required |
upper_bounds
|
NDArray[float64]
|
Upper RHS bounds in user domain. |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_bounds, upper_bounds) in optimizer domain. |
nonlinear_constraint_diffs_from_optimizer
nonlinear_constraint_diffs_from_optimizer(
lower_diffs: NDArray[float64],
upper_diffs: NDArray[float64],
) -> tuple[NDArray[np.float64], NDArray[np.float64]]
Apply diffs * scales.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lower_diffs
|
NDArray[float64]
|
Constraint value minus lower bound (optimizer domain). |
required |
upper_diffs
|
NDArray[float64]
|
Constraint value minus upper bound (optimizer domain). |
required |
Returns:
| Type | Description |
|---|---|
tuple[NDArray[float64], NDArray[float64]]
|
Tuple of (lower_diffs, upper_diffs) in user domain. |
update
Set new scaling factors (applies mask if previously initialized).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
scales
|
ArrayLike
|
The new scaling factors. |
required |