Automatic scaling of the function values passed to optimizers
Release notes
The function values passed to optimizers can optionally be scaled relative to the function values of the current value of the DesignSpace
.
Problem to solve
Automatically scale the function values passed to optimizers relative to the function values of the current value of the DesignSpace
: replace f(x)
by f(x) / max{ |f(x_0)|, epsilon }
where epsilon
is a nullity tolerance.
Proposal
- Extend the mutliplication of an
MDOFunction
by a scalar to arrays of scalars. -
At the very end of
OptimizationLibrary._pre_run
, once the functions are evaluated at the current value of theDesignSpace
, optionally overwrite every functionf
of theOptimizationProblem
withf / max{ |f(x_0)|, epsilon }
.
Intended users
End users.
User experience goal
Pass function values scaled relative to the function values of the current value of the DesignSpace
to optimizers.
Further details
Scaling the function values of an optimization problem is a good practice to improve the performance of many optimizers.