****optimize augmented_lagrangian
#
Description#
This optimizer is a basic implementation of the classic augmented-lagrangian method for constrained optimization. For problems of the form:
The penalty parameter \(r\) must then be chosen large enough to improve convergence of the dual problem, but not too large because the lagrange function \(\hat{L}(x,\lambda,r)\) can become ill-conditioned in this case.
For each value of the lagrange multiplier \(\lambda_i\) the unconstrained problem \(Min_x ~\hat{L}(x,\lambda,r)\) is solved by a BFGS method. At each iteration of the BFGS method an economic line-search procedure based upon the Goldstein rule has been implemented.
Syntax#
The following adjustable parameters are allowed in the ***convergence
section.
iter
Maximum number of function \(f\) evaluations before terminating. Default is 100. Note that this doesn’t include function evaluations associated with the line-search procedure.
perturb
Magnitude of the perturbation (in percent of the normalized design variables) used to calculate gradient through finite differences. Default value is 0.5 percent.
r0
Value of the penalty parameter \(r\). Default is 1.0.
aug_conv
Convergence parameter for dual problem based upon the relative variation of design variables. Default value is 1.e-7.
bfgs_conv
Convergence parameter for the inner unconstrained optimization problem based upon the relative variation of design variables. Default value is 1.e-7.
oned_conv
Convergence parameter for the line search procedure. Default value is 1.e-7.
gradient_tol
Additional convergence parameter for the inner unconstrained problem, based upon the gradient of the lagrangian function. Default value is 1.e-7.
constraint_tol
Constraint violation tolerance value, ie. constraints are verified when \(g_i(x)<constraint\_tol\), and the corresponding design point \(x\) retained as feasible. Default value is 0.001.