SNOPT is a sparse nonlinear optimizer that is particularly useful for solving large-scale constrained problems with smooth objective functions and constraints. The algorithm consists of a sequential quadratic programming (SQP) algorithm that uses a smooth augmented Lagrangian merit function, while making explicit provision for infeasibility in the original problem and in the quadratic programming subproblems. The Hessian of the Lagrangian is approximated using a limited-memory quasi-Newton method. [Gill2002] [LICENSE]
Bases: pyOpt.pyOpt_optimizer.Optimizer
SNOPT Optimizer Class - Inherited from Optimizer Abstract Class
SNOPT Optimizer Class Initialization
Keyword arguments:
Documentation last updated: Feb. 16, 2010 - Peter W. Jansen
Run Optimizer (Optimize Routine)
Keyword arguments:
Additional arguments and keyword arguments are passed to the objective function call.
Documentation last updated: Feb. 2, 2011 - Peter W. Jansen
Name | Type | Default Value | Notes |
---|---|---|---|
Major print level | int | 1 | Majors Print (1 - line major iteration log) |
Minor print level | int | 1 | Minors Print (1 - line minor iteration log) |
Print file | str | ‘SNOPT_print.out’ | Print File Name (specified by subroutine snInit) |
iPrint | int | 18 | Print File Output Unit |
Summary file | str | ‘SNOPT_summary.out’ | Summary File Name (specified by subroutine snInit) |
iSumm | int | 19 | Summary File Output Unit |
Print frequency | int | 100 | Minors Log Frequency on Print File |
Summary frequency | int | 100 | Minors Log Frequency on Summary File |
Solution | str | ‘Yes’ | Print Solution on the Print File |
Suppress options listing | type(None) | None | options are normally listed |
System information | str | ‘No’ | Print System Information on the Print File |
Problem Type | str | ‘Minimize’ | Alternatives ‘Maximize’, ‘Feasible point’ |
Objective row | int | 1 | has precedence over ObjRow (snOptA) |
Infinite bound | float | 1.0e+20 | Infinite Bound Value |
Major feasibility tolerance | float | 1.0e-6 | Target Nonlinear Constraint Violation |
Major optimality tolerance | float | 1.0e-6 | Target Complementarity Gap |
Minor feasibility tolerance | float | 1.0e-6 | For Satisfying the QP Bounds |
Verify level | int | 0 | Gradients Check Flag |
Scale option | int | 1 | Scaling (1 - linear constraints and variables) |
Scale tolerance | float | 0.9 | Scaling Tolerance |
Scale Print | type(None) | None | Default: scales are not printed |
Crash tolerance | float | 0.1 | |
Linesearch tolerance | float | 0.9 | smaller for more accurate search |
Pivot tolerance | float | 3.7e-11 | epsilon^{2/3} |
QPSolver | str | ‘Cholesky’ | Default: Cholesky |
Crash option | int | 3 | 3 - first basis is essentially triangular |
Elastic mode | str | ‘No’ | start with elastic mode until necessary |
Elastic weight | float | 1.0e+4 | used only during elastic mode |
Iterations limit | int | 10000 | or 20*ncons if that is more |
Partial price | int | 1 | 10 for large LPs |
Start | str | ‘Cold’ | has precedence over argument start |
Major iterations limit | int | 1000 | or ncons if that is more |
Minor iterations limit | int | 500 | or 3*ncons if that is more |
Major step limit | float | 2.0 | |
Superbasics limit | int | None | n1 + 1, n1 = number of nonlinear variables |
Derivative level | int | 3 | NOT ALLOWED IN snOptA |
Derivative option | int | 1 | ONLY FOR snOptA |
Derivative linesearch | type(None) | None | |
Nonderivative linesearch | type(None) | None | |
Function precision | float | 3.0e-13 | epsilon^0.8 (almost full accuracy) |
Difference interval | float | 5.5e-7 | Function precision^(1/2) |
Central difference interval | float | 6.7e-5 | Function precision^(1/3) |
New superbasics limit | int | 99 | controls early termination of QPs |
Objective row | int | 1 | row number of objective in F(x) |
Penalty parameter | float | 0.0 | initial penalty parameter |
Proximal point method | int | 1 | 1 - satisfies linear constraints near x0 |
Reduced Hessian dimension | int | 2000 | or Superbasics limit if that is less |
Violation limit | int | 10.0 | unscaled constraint violation limit |
Unbounded step size | float | 1.0e+18 | |
Unbounded objective | float | 1.0e+15 | |
Hessian full memory | type(None) | None | default if n1 <= 75 |
Hessian limited memory | type(None) | None | default if n1 > 75 |
Hessian frequency | int | 999999 | for full Hessian (never reset) |
Hessian updates | int | 10 | for limited memory Hessian |
Hessian flush | int | 999999 | no flushing |
Check frequency | int | 60 | test row residuals l2norm(Ax - sk) |
Expand frequency | int | 10000 | for anti-cycling procedure |
Factorization frequency | int | 50 | 100 for LPs |
Save frequency | int | 100 | save basis map |
LU factor tolerance | float | 3.99 | for NP (100.0 for LP) |
LU update tolerance | float | 3.99 | for NP ( 10.0 for LP) |
LU singularity tolerance | float | 3.2e-11 | |
LU partial pivoting | type(None) | None | default threshold pivoting strategy |
LU rook pivoting | type(None) | None | threshold rook pivoting |
LU complete pivoting | type(None) | None | threshold complete pivoting |
Old basis file | int | 0 | input basis map |
New basis file | int | 0 | output basis map |
Backup basis file | int | 0 | output extra basis map |
Insert file | int | 0 | input in industry format |
Punch file | int | 0 | output Insert data |
Load file | int | 0 | input names and values |
Dump file | int | 0 | output Load data |
Solution file | int | 0 | different from printed solution |
Total character workspace | int | 500 | lencw: 500 |
Total integer workspace | int | None | leniw: 500 + 100 * (m+n) |
Total real workspace | int | None | lenrw: 500 + 200 * (m+n) |
User character workspace | int | 500 | |
User integer workspace | int | 500 | |
User real workspace | int | 500 | |
Debug level | int | 0 | 0 - Normal, 1 - for developers |
Timing level | int | 3 | 3 - print cpu times |