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.augLagType
augLag(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

source