User Interface to Synthesize an Augmented Lagrangian
The last step is to form the Augmented Lagrangian. We generate the struct in two steps (assuming that the objective and constraints have been instantiated).
# Equiped with the constraint term and the objective term, I now build the
# Augmented Lagrangian
penaltyStart = 1.0
alRocket = augLag(costFun, cMRocket, penaltyStart)
For more information, see
TrajOptSOCPs.augLag
— TypeaugLag(obj::objectiveFunc, cM::constraintManager, rho::Float64)
This is a mutable struct that stores an SOCP Augmented Lagrangian.
For a single SOCP constraint, the lagrangian is
\[φ(y) = f(y) + (ρ/2) ||c(y)||_2^2 + λ c(y)\]
\[φ(y) = f(y) + (ρ/2) c(y)'c(y) + λ c(y)\]
Where y
is represented a primal vector struct.
Generally, we initialize ρ
to 1.
See also: evalAL
, evalGradAL
, evalHessAl