Augmented Lagrangian Tools

almMethod.maj_param_constraint_optim_slack(parameters, rest_constraint)[source]

Update the slack parameter for inequality constraint, as the following equation:

\[s^{n+1} = \text{max}(0,-( \frac{\lambda_{ALM}^{n}}{\mu_{ALM}^{n}}+C(\Omega^{n}) ) )\]
Parameters:
  • parameters (Parameter) – The parameter object.

  • rest_constraint (float) – The value of \(C(\Omega^{n})\).

almMethod.maj_param_constraint_optim(parameters, rest_constraint)[source]

Update the Augmented Lagrangian parameters of the Parameter object.

  1. Update the Lagrange multiplier :

\[\lambda_{ALM}^{n+1} = \lambda_{ALM}^{n} + \mu_{ALM}^{n}(C(\Omega^{n}) + s^{n+1})\]
  1. Update the Lagrange penalty parameter :

\[\mu_{ALM}^{n+1} = \text{min}(\overline{\mu},c \mu_{ALM}^{n})\]

where \(\overline{\mu}\) is the limit of the penalty parameter and \(c\) is the penalty multiplier coefficient.

Parameters:
  • parameters (Parameter) – The parameter object.

  • rest_constraint (float) – The value of \(C(\Omega)\).

almMethod.init_param_constraint_optim(constraint, parameters, cost, denom=100)[source]

Initialized the Augmented Lagrangian parameters:

  1. Initialization of the Lagrange multiplier :

\[\lambda_{ALM}^{0} = \frac{10^{k}C(\Omega^{0})}{D}\]

with \(k=10^{\text{round}(\log_{10}(\text{cost}))}\)

  1. Initialization of the Lagrange penalty parameter :

\[\mu_{ALM}^{0} = \frac{10^{k}C(\Omega^{0})}{D}\]

with \(k=10^{\text{round}(\log_{10}(\text{cost}))}\)

  1. Initialization of the penalty limit :

\[\overline{\mu}_{ALM}^{0} = \text{denom}*\frac{10^{k}C(\Omega^{0})}{D}\]

with \(k=10^{\text{round}(\log_{10}(\text{cost}))}\)

Note

The set of simulations we conducted allowed us to determine a value for D of approximately 100.

Parameters:
  • parameters (Parameter) – The parameter object.

  • cost (float) – The cost value \(J(\Omega^{0})\) at the initialization.

  • denom (float) – The D value, with a default value of \(100\).