How to scale each linear inequality constraint




  • Alias: None

  • Arguments: STRINGLIST

  • Default: vector values = “none”


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

The options are:

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

  • ‘auto’ - automatic scaling.

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

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 inequality 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.