How to scale each linear equality constraint




  • Alias: None

  • Arguments: STRINGLIST

  • Default: vector values = “none”


Each string in linear_equality_scale_types indicates the scaling type for each linear equality constraint. They only have effect when the associated method specifies scaling.

The options are:

  • ‘value’ - characteristic value. If this is chosen, then linear_equality_scales must be specified; ‘value’ is assumed if scales are given without a scale_types

  • ‘auto’ - automatic scaling.

If a single string is specified it will apply to all linear equality constraints. Otherwise the number of strings specified should be equal to the number of linear equalities.

Scaling for linear constraints is applied after any continuous variable scaling.

For example, for variable scaling on continuous design variables x:

\[\tilde{x}^j = \frac{x^j - x^j_O}{x^j_M}\]

we have the following system for linear equality constraints

\[a_L \leq A_i x \leq a_U\]
\[a_L \leq A_i \left( \mathrm{diag}(x_M) \tilde{x} + x_O \right) \leq a_U\]
\[a_L - A_i x_O \leq A_i \mathrm{diag}(x_M) \tilde{x} \leq a_U - A_i x_O\]
\[\tilde{a}_L \leq \tilde{A}_i \tilde{x} \leq \tilde{a}_U\]

and user-specified or automatically computed scaling multipliers are appplied to this final transformed system, which accounts for continuous design variable scaling. When automatic scaling is in use for linear constraints they are linearly scaled by a computed characteristic value, but not affinely to [0,1].

See the scaling information under specific methods, e.g., method-*-scaling for details on how to use this keyword.