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.
Update the Lagrange multiplier :
\[\lambda_{ALM}^{n+1} = \lambda_{ALM}^{n} + \mu_{ALM}^{n}(C(\Omega^{n}) + s^{n+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:
Initialization of the Lagrange multiplier :
\[\lambda_{ALM}^{0} = \frac{10^{k}C(\Omega^{0})}{D}\]with \(k=10^{\text{round}(\log_{10}(\text{cost}))}\)
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}))}\)
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\).