Skip to content

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

  1. Extend the mutliplication of an MDOFunction by a scalar to arrays of scalars.
  2. At the very end of OptimizationLibrary._pre_run, once the functions are evaluated at the current value of the DesignSpace, optionally overwrite every function f of the OptimizationProblem with f / 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.